《微机原理和单片机实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理和单片机实验报告.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一 汇编语言程序设计1 分支程序设计实验1.1.1 实验目的1. 掌握分支程序的结构。2. 掌握分支程序的设计、调试方法。1.1.2 实验设备PC机一台,TD-PITE实验装置一套。1.1.3 实验内容设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.14所示。(a) (b) (c)图1.1 源数据块与目的数据块在存储中的位置情况对于两个数据块分离的情况,如图1.1(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部
2、分会因“搬移”而遭到破坏,可有如下结论:当源数据块首地址目的块首地址时,从数据块末地址开始传送数据,如图1.14(b)所示。当源数据块首地址目的块首地址时,从数据块首地址开始传送数据,如图1.14(c)所示。实验程序流程图如图1.5所示。图1.5 程序流程图1.1.4 实验程序如下(自己填写)SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV CX, 0010H MOV SI, 3100HMOV DI, 3200H CMP SI, DI JA A2 ADD SI, CX ADD DI
3、, CX DEC SI DEC DIA1: MOV AL, SI MOV DI, AL DEC SIDEC DI DEC CX JNE A1 JMP A3A2: MOV AL, SI MOV DI, AL INC SI INC DI DEC CX JNE A2A3: JMP A3CODE ENDS END START1.1.5 实验步骤1. 按流程图编写实验程序,经编译、链接无误后装入系统。2. 用E命令在以SI为起始地址的单元中填入16个数。3. 运行程序,待程序运行停止。4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。5. 通过改变SI、DI的值,观察在三种不同的
4、数据块情况下程序的运行情况,并验证程序的功能。1.1.6 实验结果(自己填写)图1-1-2图1-1-2图1-1-3 图1-1-42.循环程序设计实验1.2.1 实验目的1. 加深对循环结构的理解。2. 掌握循环结构程序设计的方法以及调试方法。1.2.2 实验设备PC机一台,TD-PITE实验装置一套。1.2.3 实验内容计算S1233445N(N1),直到N(N1)项大于200为止。编写实验程序,计算上式的结果,参考流程图如图1.6所示。1.2.4 实验程序(自己填写) SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASS
5、UME CS:CODESTART: MOV DX,0001H MOV BL,02H A1: MOV AL,BL INC BL MUL BL ADD DX,AX CMP AX,00C8H JNA A1 MOV AX,4C00H INT 21HCODE ENDS END START图1.6 程序流程图1.2.5 实验步骤(1)编写实验程序,编译、链接无误后装入系统。 (2)运行程序,待程序运行停止。 (3)运算结果存储在寄存器DX中,查看结果是否正确。(4)可以改变N(N1)的条件来验证程序功能是否正确,但要注意,结果若大于0FFFFH将产生数据溢出。1.2.6 实验结果(自己填写)图1-2-1实
6、验二 8255并行接口实验2.1 实验目的1. 学习并掌握8255的工作方式及其应用。2. 掌握8255典型应用电路的接法。2.2 实验设备PC机一台,TD-PITE实验装置一套。2.3 实验内容查询式输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求将一开关设为总开关,由此开关来决定数据灯的显示是否随开关相应改变。2.4 实验步骤查询输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:(
7、1)实验接线图如图2.1所示,按图连接实验线路图。(2)编写实验程序,经编译、连接无误后装入系统。(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。图2.1 8255基本输入输出实验接线图2.5 实验程序(自己加)SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART:MOV DX,0646HMOV AL,90HOUT DX,ALAA1:MOV DX,0640HIN AL,DXTEST AL,80HJZ AA1CALL DELAYMOV DX,0642HOUT DX,
8、ALJMP AA1DELAY:PUSH CXMOV CX,0F00HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START2.6 实验结果(自己加)图2-1实验三. 8254定时/计数器应用实验3.1 实验目的1. 掌握8254的工作方式及应用编程。2. 掌握8254典型应用电路的接法。3.2 实验设备PC机一台,TD-PITE实验装置一套。3.3 实验内容计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动KK15次后,产生一次计数中断,并在屏幕上显示学号末两位。3.4 实验单元电路图8254实验单元电路图如下图所
9、示:图3.1 8254实验电路原理图3.5 实验程序(参考程序如下,大家改动)实验程序清单(A82541.ASM)A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODE, SS:SSTACKSTART:PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET IRQ7;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填IRQ7的偏移矢量
10、MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL;ICW1MOV AL, 08HOUT 21H, AL;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4MOV AL, 6FH;OCW1OUT 21H, AL;8254MOV DX, CON8254MOV AL, 10H;计数器0,方式0OUT DX, ALMOV DX, A8254MOV AL, 04HOUT DX, ALSTIAA1:JMP AA
11、1IRQ7:MOV DX, A8254MOV AL, 04HOUT DX, ALMOV AX, 0131HINT 10H;显示字符12MOV AX, 0132HINT 10HMOV AL, 20HOUT 20H, AL;中断结束命令IRETCODEENDSEND START3.6 实验结果(自己加)图3-1实验四. 数据采集实验4.1 实验目的1. 掌握8254的工作方式及应用编程。2. 掌握8254典型应用电路的接法。4.2 实验设备PC机一台,TD-PITE实验装置一套。4.3 实验内容要求实现三角波的产生,并且用示波器查看波形4.4 硬件连线图4.5 实验程序(自己加)4.6 实验步骤(
12、自己加)4.7 实验结果(自己加)图4-1实验五 求和程序设计(2学时)5.1 实验目的 1熟悉KEIL的软件使用环境及单片机C51语言编程;2 掌握C51环境下内存地址的访问方法及循环程序的实现方法。5.2 实验设备PC机一台5.3 实验内容内容:编写十个字节求和程序。要求:十个加数在片内RAM区20H29H单元; 结果存放在片内RAM区30H,31H区。 5.4 实验程序#includeabsacc.h#define uchar unsigned charvoid main()uchar i,a,sum;a=0x20;sum=0;for(i=0;i10;i+) sum+=DBYTEa; a
13、+;DBYTE0x30=sum;5.5 实验步骤 开机启动Keil C51软件进入Vision2 集成开发环境,确认89C51处于软件仿真状态。 完成程序的设计、编辑、编译、连接。 进入DEBUG方式,打开存储器Memory 1窗口,在窗口Address栏键入D:20H;点击鼠标右键,选择最后一项Modify Memory ,输入十个加数。 调试和运行程序并记录存储器Memory 1,D:30H窗口实验结果。5.6 实验结果图5-1图5-2实验六 基于PROTEUS的60S倒计时器设计(2学时)6.1 实验目的 1熟悉PROTEUS的软件使用环境及单片机C51语言编程;3 掌握C51环境下定时
14、中断、并行接口及LED的显示方法。6.2 实验设备PC机一台6.3 实验内容60S倒计时器,利用LED显示秒数。6.4 实验电路图6.5 实验程序#includeunsigned char num,t,n;unsigned char code table=0xc0,0x90,0x80,0xf8 ,0x82,0x92, 0x99,0xb0,0xa4,0xf9;unsigned char code table1=0x92,0x99,0xb0,0xa4,0xf9,0xc0;void main()num=0;t=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-
15、50000)%256;EA=1;ET0=1;TR0=1;P0=0xc0;P2=0x82;while(1)if(t=20)t=0;num+;if(num=10)num=0;P2=tablenum;if(num=1)P0=table1n;n+; if(n=6)if(num=0)while(1);void exter0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;t+;6.6 实验结果图6-6实验七. 外中断实验7.1 实验目的1. 掌握外中断的工作方式及应用编程。2. 掌握并行接口及LED显示器的典型应用电路。7.2 实验设备P
16、C机一台,TD-PITE实验装置一套。7.3 实验内容要求实现外部按键一次(利用KK1按键),LED显示器的值加1。7.4 实验电路图7.5 实验程序#include#includeunsigned char code tabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00unsigned char code tablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdfunsigned char x=0;void delay(unsigned char
17、 x)unsigned char y;for(;x0;x-)for(y=112;y0;y-);void display(unsigned char ge)P1=tableduge%10;P2=tablewe0; /此处可修改第几位显示delay(5);P1=0xff;P1=tableduge/10;P2=tablewe1; /此处可修改第几位显示delay(5);P1=0xff;void int0_isr() interrupt 0x+;if(x=100)x=0;display(x);void main()P1=0x00;IT0=1;EX0=1;/IT1=1;/EX1=1;EA=1;while
18、(1)display(x);7.6 实验结果图7-1实验八. 静态存储器扩展实验8.1 实验要求 1. 复习单片机扩展外部数据存储器的方法。 2. 复习常用数据存储器芯片的引脚功能。8.2 实验设备 PC机一台,TD-PITE实验装置一套。8.3 实验目的1. 进一步熟悉单片机仿真实验软件Keil C51 调试硬件的方法。2. 掌握单片机系统中存储器扩展的方法。3. 掌握单片机内部RAM 和外部RAM 之间数据传送的特点。8.4 实验内容根据实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:在单片机内部一段连续RAM 空间30H3FH 中写入初值00H0FH,然后将这16 个数
19、传送到RAM 的0000H000FH 中,最后再将外部RAM 的0000H000FH 空间的内容传送到片内RAM 的40H4FH 单元中。传送结果通过Keil C51 软件观察。8.5 实验单元电路及连线8.6 实验程序#include sfr AUXR =0x8E;void main()unsigned char i;AUXR = 0x02;for(i=0;i=15;i+)DBYTE0x30 + i=i;for(i=0;i=15;i+)XBYTE0x0000 + i = DBYTE0x30 + i;for(i=0;i=15;i+)DBYTE0x40 + i=XBYTE0x0000 + i;while(1);8.7 实验步骤1. 打开存储器观察窗口,在存储器1 的Address 中输入D:0x30,在存储器2 的Address 中输入X:0x0000 来监视存储器空间。2. 可单步运行程序,观察存储器内容的变化,或在伪停机指令和处设置断点再运行程序,验证实验功能。8.8 实验结果图8-1图8-2图8-3微机原理及单片机实验报告班 级: 13050141 姓 名: 赵伟 学 号: 1305014112