微机原理及应用实验报告_第1页
微机原理及应用实验报告_第2页
微机原理及应用实验报告_第3页
微机原理及应用实验报告_第4页
微机原理及应用实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理及应用实验报告 班级: 机械1301班 姓名: 黄佳清 学号: 0801130117 座位号: 中南大学机电工程学院 实验一 单片机仿真开发机操作和MCS-51指令系统应用一实验目的1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。二实验设备台式微型计算机MCS-51仿真开发机THKSCM-2A三实验内容及步骤(完成分值:60分)本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真1. 新建工程项目2. 设置工程文件参数3. 编写新程序事例4. 调试

2、程序直至能够运行出结果。四实验程序AJMP MAIN ORG 0030HMAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00HA1: MOV R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FHA2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FHA3: MOVX A,DPTR MOVX R0,A INC R0 INC

3、 DPTR DJNZ R2,A3DO: LJMP DO END;内部存储器数据块赋值,搬运数据块到外部存储器,再搬运回内部数据存储器。五、附加题1. 将光标移到想要暂停的地方,MOV R0,#20H所在行,选择 “执行到光标处”功能,程序快速执行到光标所在行。观察运行情况,并记录下表。R0R2A20H21H22H23H24H25H0x2f0x000x0f00H01H02H03H04H05H26H27H28H29H2AH2BH2CH2DH2EH06H07H08H09H0AH0BH0CH0DH0EH2. 在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元内容R0DPL7000

4、H7001H7002H7003H7004H7005H7006H0X2F0FH00H01H02H03H04H05H06H7007H7008H7009H700AH700BH700CH700DH700EH07H08H09H0AH0BH0CH0DH0EH开始 3.画出程序流程图 赋值 R020H R20FH A00H(R0)(A)R0R0+1AA+1R2R2-1R2=0?N 赋值 R020H DPTR7000H R20FHY(A)(R0)(DPTR)(A)R0R0+1DPTRDPTR+1 R2R2-1R2=0?NY 赋值 R030H R20FH DPTR7000H(A)(DPTR)(R0)(A)DPT

5、RDPTR+1 R0R0+1R2R2-1R2=0?NY结束4.修改程序,实现新功能 实现倒序数据转移程序 AJMP MAIN ORG 0030HMAIN: MOV R0,#40H MOV R2,#0FH MOV A,#00HA1: MOV R0,A DEC R0 INC A DJNZ R2,A1 MOV R0,#30H MOV DPTR,#7000H MOV R2,#0FHA2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H MOV DPTR,#7000H MOV R2,#0FHA3: MOVX A,DPTR MOVX

6、 R0,A INC R0 INC DPTR DJNZ R2,A3DO: LJMP DOEND实验二 程序设计一、实验目的1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。二、实验内容及步骤(完成分值:30分/单个程序)题目1、编写排序程序并上机调试通过。已知8031内部RAM60H69H单元中,依次存放了0FH,09H,07H,0CH,03H,0DH,08H,0BH,04H,01H共10个字节无符号数,编程将它们规律排序,最大数放在60H中,最小数放在69H中。结果应该是0FH,0DH,0CH,0BH,09H,08H,07H,0

7、4H,03H,01H。 题目2、编写多字节加法程序并上机调试通过。8031内部RAM22H、21H、20H单元中,分别存放了3字节无符号被加数0FFH、0FFH、0FFH(低字节在低地址),在32H、31H、30H单元中分别存放3字节无符号加数22H、22H、22H(低字节在低地址),求两数之和,并将结果存入内部RAM23H 、22H 、21H 、20H单元中(低字节在低地址)。结果应该是01H、22H、22H、21H。四、参考实验程序题目1ORG 0000HLJMP mainORG 0100Hmain:.将10个随机数送入内部RAM的5059H单元NOP;可在此处设置断点ACALL SELS

8、ORT;调用排序子程序HERE:AJMP HERE;可在此处设置断点,观察每次排序结果NOP;排序子程序DAT EQU 60H ;排序数据首地址N EQU 10 ;排序个数SELSORT: MOV R0,#DAT MOV R2,#N-1LOOP: MOV B,R0 MOV A,R0 MOV R3,A INC A MOV R1,A MOV A,R2 MOV R4,ALOOP1: MOV A,R1 CLR C SUBB A,B JC LOOP2;改为JNC即可逆序排列 MOV B,R1 MOV A,R1 MOV R3,ALOOP2: INC R1 DJNZ R4,LOOP1 MOV A,R3 MO

9、V R1,A MOV A,R1 XCH A,R0 XCH A,R1 INC R0 DJNZ R2,LOOP RETEND题目2ORG 0000HLJMP mainORG 0100Hmain:MOV R0,#20HMOV R0,#0FFHINC R0MOV R0,#0FFHINC R0MOV R0,#0FFHMOV R0,#30HMOV R0,#22HINC R0MOV R0,#22HINC R0MOV R0,#22HACALL MULTADD;调用多字节加法子程序HERE:AJMP HERE;可在此处设置断点,观察结果NOP;N字节无符号数加法子程序 (R0+R1)=(R0);入口 :R0,R

10、1,R2;占用资源:ACC,B;堆栈需求:2字节;出口 :R0存放结果高地址MULTADD:MOV R0,#20H;地址1MOV R1,#30H;地址2MOV R2,#03H;加法字节数NSUB: CLR CNSUB1: MOV A,R0 ADDC A,R1 MOV R0,A INC R0 INC R1 DJNZ R2,NSUB1CLR A ADDC A, #00H ; 把进位位C加到高8位去 MOV R0, A RETEND五、附加题1. 画出题目1的程序流程图。开始 存入数据到60H69H R060H N10H R260H A(R0) R2R2+1 B(R2) A>B?Y(R0)和(

11、R2)交换NN R2=69H?NY R0R0+1R0=69H? N结束 Y2. 将题目1的排序算法进行改变,采用另一种排序算法进行排序。 ORG 0000HLJMP mainORG 0100H MAIN:.;将10个随机数送入LOOP2:MOV A,R0MOV 50H,R1CJNE A,50H,BIG ;做减法。BIG: JNC LESS;是0则跳转LJMP LOOP3LESS: XCH A,R1;交换60与61中的内容XCH A,R0LOOP3:INC R1CJNE R1,#6AH,LOOP2;INC R0MOV 51H,R0MOV R1,51HINC R1 CJNE R0,#69H,LOO

12、P2;以此类推,直到剩最后两个数比较完。SJMP $END3. 画出题目2的程序流程图。开始 存入数据到20好22H,30H32HR020HR130HR23HC清零A(R0)+(R1)(R0)AR0R0+1R1R1+1R2R2-1R2=0?NAA+C(R0)AY结束4. 改为编写多字节减法程序。ORG 0000HLJMP mainORG 0100Hmain:MOV R0,#20HMOV R0,#0FFHINC R0MOV R0,#0FFHINC R0MOV R0,#0FFHMOV R0,#30HMOV R0,#22HINC R0MOV R0,#22HINC R0MOV R0,#22HACALL

13、 MULTADD;调用多字节加法子程序HERE:AJMP HERE;可在此处设置断点,观察结果NOP;N字节无符号数加法子程序 (R0+R1)=(R0);入口 :R0,R1,R2;占用资源:ACC,B;堆栈需求:2字节;出口 :R0存放结果高地址MULTADD:MOV R0,#20H;地址1MOV R1,#30H;地址2MOV R2,#03H;加法字节数NSUB: CLR CNSUB1: MOV A,R0 ADDC A,R1 MOV R0,A INC R0 INC R1 DJNZ R2,NSUB1CLR A ADDC A, #00H ; 把进位位C加到高8位去 MOV R0, A RETEND

14、 实验三 定时/计数器实验一、实验目的1、掌握MCS-51单片机内部定时/计数器的功能与特点,工作方式选择和编程方法,中断功能的使用和中断服务程序的设计;2、 了解和熟悉MCS-51单片机实验板的功能。二、实验内容及步骤(完成分值:60分/单个程序)本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块(I4区)。用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。三、参考流程图、电路图、参考程序 程序:Tick equ 5000 ;100us记数次数,5000 x 100us = 0.5s,十六进制#1388H T100us equ 156 ; 10

15、0us时间常数(12MHz) C100us equ 5h ; 100us记数单元,05H、06H org 0000H ljmp Start org 000BH LJMP T0Int;- ORG 0100HStart: mov TMOD, #02h ; 方式2, 定时器 mov TH0, #T100us ; 100us时间常数(12MHz) mov TL0, #T100us ; 100us时间常数(12MHz) mov IE, #10000010b ; EA=1, IT0 = 1 setb TR0 ; 开始定时 mov p1,#0FEH;由于电路原因,输出高电平为灭灯。 mov C100us,

16、#HIGH(Tick);05H<-#13H,初始化100us记数单元 mov C100us+1, #LOW(Tick);06H<-#88H,初始化100us记数单元Loop: ljmp Loop;- ORG 0300HT0Int: push PSW mov a, C100us+1; 100us高位记数单元06H jnz Goon dec C100us; 100us低位记数单元05HGoon: dec C100us+1 mov a, C100us; 100us低位记数单元05H orl a, C100us+1 jnz Exit ; 100us 记数单元不为0, 返回 mov C100

17、us, #HIGH(Tick);05H<-#13H,100us 记数单元为0则初始化100us记数单元 mov C100us+1, #LOW(Tick);06H<-#88H,100us 记数单元为0则初始化100us记数单元 MOVA,P1 ; 100us 记数单元为0, 位移!RLAMOVP1,AExit: pop PSW reti;- End五、附加题1. 修改程序,实现新功能 奇数偶数交换点亮Tick equ 5000 T100us equ 156 C100us equ 5h org 0000H ljmp Start org 000BH LJMP T0Int;- ORG 01

18、00HStart: mov TMOD, #02h mov TH0, #T100us mov TL0, #T100us mov IE, #10000010b setb TR0 mov p1,#0AAH mov C100us mov C100us+1Loop: ljmp Loop;- ORG 0300HT0Int: push PSW mov a, C100us+1 jnz Goon dec C100usGoon: dec C100us+1 mov a, C100us orl a, C100us+1 jnz Exit mov C100us, #HIGH(Tick) mov C100us+1, #LO

19、W(Tick) MOVA,P1 RLAMOVP1,AExit: pop PSW reti;- End 2. 用MCS-51单片机的内部定时器定时中断,编写一段电子秒表程序,在静态数码管上实现显示。TCNTA EQU 30H ;TCNTB EQU 31H SEC EQU 32H KEYCNT EQU 33H SP1 BIT P3.5 ORG 00H LJMP START ORG 0BH LJMP INT_T0 START: MOV KEYCNT,#00H MOV SEC,#00H MOV A,SEC MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,A+DPTR M

20、OV P0,A MOV A,B MOV DPTR,#TABLE MOVC A,A+DPTR MOV P2,A MOV TMOD,#02H ; SETB ET0 SETB EA WT: JB SP1,WT LCALL DELY10MS JB SP1,WT INC KEYCNT MOV A,KEYCNT CJNE A,#01H,KN1 SETB TR0 MOV TH0,#06H MOV TL0,#06H MOV TCNTA,#00H MOV TCNTB,#00H LJMP DKN KN1: CJNE A,#02H,KN2 CLR TR0 LJMP DKN KN2: CJNE A,#03H MOV

21、SEC,#00H MOV A,SEC MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,B MOV DPTR,#TABLE MOVC A,A+DPTR MOV P2,A MOV KEYCNT,#00H DKN: JNB SP1,$ LJMP WT DELY10MS: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET INT_T0: INC TCNTA MOV A,TCNTA CJNE A,#100,NEXT MOV TCNTA,#00H INC TCNTB MOV A

22、,TCNTB CJNE A,#4,NEXT MOV TCNTB,#00H INC SEC MOV A,SEC CJNE A,#100,DONE MOV SEC,#00H DONE: MOV A,SEC MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,B MOV DPTR,#TABLE MOVC A,A+DPTR MOV P2,A NEXT: RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END 实验四 动态显示实验一、实验目的1、掌握七段LED数码管显示器

23、工作原理,以及用动态扫描方法编程实现8位LED数码管显示的方法;2、进一步了解和熟悉MCS-51单片机实验板的功能。二、实验内容及步骤(完成分值:60分/单个程序)本实验需要用到单片机最小应用系统(F1区)和动态扫描显示模块(I2区)。1. 用8P排线将单片机最小应用系统(F1区)的P2口和动态扫描显示的位选JD1I相连, 用8P排线将单片机最小应用系统(F1区)的P0口和动态扫描显示模块的段码JD0I相连。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加源程序,

24、进行编译,直到编译无误。4.全速运行程序,直至显示效果为稳定的“123456”。四、参考流程图、电路图、实验程序电路接线图程序:ORG 0000HAJMP MAINORG 0080HMAIN:MOV P2,#0FFHMOV P0,#7DH ;显示6CLR P2.0 ;选中第一个数码管LCALL DELAY ; 调用延时;MOV P0,#0FFH ;关显示SETB P2.0MOV P0,#6DH ;显示5CLR P2.1 ;选中第二个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.1MOV P0,#066H ;显示4CLR P2.2 ;选中第三个数码管LCALL DELAY

25、;MOV P0,#0FFHSETB P2.2MOV P0,#4FH ;显示3CLR P2.3 ;选中第四个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.3MOV P0,#5BH ;显示2CLR P2.4 ;选中第五个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.4MOV P0,#06H ; 显示1CLR P2.5 ;选中第六个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.5;CLR P2.6 ;选中第七个数码管;MOV P0,#21H ; 显示6;LCALL DELAY;MOV P0,#0FFH;SETB P2.6;CLR

26、 P2.7 ;选中第八个数码管;MOV P0,#7AH ; 显示7;LCALL DELAY;SETB P2.7;MOV P0,#0FFHAJMP MAIN ;重新开始DELAY: ;延时子程序MOV R7,#20HD1: MOV R6,#30HD2: DJNZ R6,D2DJNZ R7,D1RET;DISTAB: DB 3FH,06H,5BH,4FH;DB 66H,6DH,7DH,07H;DB 7FH,6FH,77H,7CH;DB 39H,5EH,79H,71HEND五、附加题(完成分值:20分/单个附加题,附加题要求当场给指导老师检查结果,否则无效。)1. 修改程序,稳定循环显示“GOOD”

27、、 “HELLO”、 “CSU”、 “D510”,程序如何修改?ORG 0000HAJMP MAINORG 0080HMAIN:MOV R1,#7FH MOV R2,#7FH MOV R3,#7FH MOV R4,#7FHLOOP1:MOVP2,#0FFHMOV P0,#3FH CLR P2.0 LCALL DELAY ;MOV P0,#0FFH SETB P2.0MOV P0,#3FH CLR P2.1 ;选中第二个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.1MOV P0,#03FH CLR P2.2 ;选中第三个数码管LCALL DELAY;MOV P0,#0F

28、FHSETB P2.2MOV P0,#7DH CLR P2.3 ;选中第四个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.3 DJNZ R1,LOOP1 LOOP2:MOV P2,#0FFHMOV P0,#3FH CLR P2.0 ;选中第一个数码管LCALL DELAY ; 调用延时;MOV P0,#0FFH ;关显示SETB P2.0MOV P0,#38H CLR P2.1 ;选中第二个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.1MOV P0,#038H CLR P2.2 ;选中第三个数码管LCALL DELAY;MOV P0,#0FFH

29、SETB P2.2MOV P0,#79H CLR P2.3 ;选中第四个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.3 MOV P0,#76H CLR P2.4 ;选中第五个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.4 DJNZ R2,LOOP2 LOOP3:MOV P2,#0FFHMOV P0,#3EH CLR P2.0 ;选中第一个数码管LCALL DELAY ; 调用延时;MOV P0,#0FFH ;关显示SETB P2.0MOV P0,#6DHCLR P2.1 ;选中第二个数码管LCALL DELAY;MOV P0,#0FFHSET

30、B P2.1MOV P0,#039H CLR P2.2 ;选中第三个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.2 DJNZ R3,LOOP3 LOOP4:MOV P2,#0FFHMOV P0,#3FH CLR P2.0 ;选中第一个数码管LCALL DELAY ; 调用延时;MOV P0,#0FFH ;关显示SETB P2.0MOV P0,#6H CLR P2.1 ;选中第二个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.1MOV P0,#06DH CLR P2.2 ;选中第三个数码管LCALL DELAY;MOV P0,#0FFHSETB

31、P2.2MOV P0,#39H CLR P2.3 ;选中第四个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.3 DJNZ R4,LOOP4AJMP MAIN ;重新开始DELAY: ;延时子程序MOV R7,#20HD1: MOV R6,#30HD2: DJNZ R6,D2DJNZ R7,D1RET;DISTAB: DB 3FH,06H,5BH,4FH;DB 66H,6DH,7DH,07H;DB 7FH,6FH,77H,7CH;DB 39H,5EH,79H,71HEND2修改程序,稳定显示当前时间(如AM 11:30),并且能模拟真实时钟走动。ORG 0000HAJMP

32、 MAINORG 0080HMAIN:MOV R1,#7FH MOV R2,#7FH MOV R3,#7FH MOV R4,#7FHLOOP1:MOVP2,#03FHMOV P0,#3FH CLR P2.0 LCALL DELAY ;MOV P0,#0FFH SETB P2.0MOV P0,#3FH CLR P2.1 ;选中第二个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.1MOV P0,#04H CLR P2.2 ;选中第三个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.2MOV P0,#06DH CLR P2.3 ;选中第四个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.3 MOV P0,#06H CLR P2.4 ;选中第五个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.4 DJNZ R1,LOOP1 LOOP2:MOV P2,#0FFHMOV P0,#6H CLR P2.0 ;选中第一个数码管LCALL DELAY ; 调用延时;MOV P0,#0FFH ;关显示SETB P2.0MOV P0,#3FH CLR P2.1 ;选中第二个数码管LCALL DELAY;MOV P0,#0FFHSETB P2.1MOV P0,#04H CLR P2.2 ;选中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论