微机原理及应用实验报告_第1页
微机原理及应用实验报告_第2页
微机原理及应用实验报告_第3页
微机原理及应用实验报告_第4页
微机原理及应用实验报告_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

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

文档简介

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

2、序AJMPMAININCR0ORG0030HINCDPTRMAIN:MOVR0,#20HDJNZR2,A2MOVR2,#0FHMOVR0,#030HMOVA,#00H断点,观察并记录!A1:MOVR0,AMOVDPTR,#7000HINCR0MOVR2,#0FHA3:MOVXA,DPTRINCAMOVXR0,AINCR0DJNZR2,A1INCDPTRMOVR0,#20H ;暂DJNZR2,A3停,观察并记录!DO:LJMPDOMOVDPTR,#7000HEND;内部存储器数据块MOVR2,#0FH赋值,搬运数据块到外部存储器,A2:MOVA,R0再搬运回内部数据存储器。MOVXDPTR,A五

3、、附加题1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择 “执行到光标 处”功能,程序快速执行到光标所在行。观察运行情况,并记录下表。R0R2A20H21H22H123H24H25H0x2f0x000x0f00H01H02Hr 03H04H05H26H27H28H29H2AH2BH2CH2DH2EH06H07H08H09H0AH0BH:0CH0DH0EH2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元内R0DPL7000H7001H7002H7003H7004H7005H7006H0X2F0FH00H01H02H03H04H ;05H06H 1700

4、7H7008H7009H700AH700BH700CH700DH700EH07H08H09H0AH0BH0CH0DH0EH3 .画出程序流程图赋值R0- 20HR2 0FHA-00H开始C R2=0>N.N(A) (DPTR)(R0)(A)DPTR DPTR+1R2 R2-1支R2=.R2=QR R0+1N赋值R0-20HDPTR 7000HR20FH(A)(R0) (DPTR广(A) R0 R0+1 DPTR DPTR+1R2 R2-1R2=0 />NY赋值R0- 30HR2- 0FHDPTR 7000H结束4 .修改程序,实现新功能实现倒序数据转移程序AJMPMAINORG00

5、30HMAIN:MOVR0,#40HMOVR2,#0FHMOVA,#00HA1:MOVR0,ADECR0INCADJNZR2,A1MOVR0,#30HMOVDPTR,#7000HMOVR2,#0FHA2:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR2,A2MOVR0,#030HMOVDPTR,#7000HMOVR2,#0FHA3:MOVXA,DPTRMOVXR0,AINCR0INCDPTRDJNZR2,A3DO:LJMPDOENDMOV A,R2MOV R4,ALOOP1: MOV A,R1CLR CSUBB A,BJC LOOP2 ;改为JNC即可逆 序排列MOV B

6、,R1MOV A,R1MOV R3,ALOOP2: INC R1DJNZ R4,LOOP1MOV A,R3MOV R1,AMOV A,R1XCH A,R0XCH A,R1INC R0DJNZ R2,LOOPRETENDLJMP main实验二程序设计一、实验目的1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。二、实验内容及步骤(完成分值:30分/单个程序)题目1、编写排序程序并上机调试通过。已 知 8031 内 部 RAM60H69H 单 元中, 依次 存放了 0FH,09H,07H,0CH,03H,0DH,08H,0BH,0

7、4H,0俏 10 个字节无符号数,编程将它们 规律排序,最大数放在60H中,最小数放在69H中。结果应该是 0FH,0DH,0CH,0BH,09H,08H,07H,04H,03H,01H题目2、编写多字节加法程序并上机调试通过。8031内部RAM22H21H、20H单元中,分别存放了 3字节无符号被加数0FFH 0FFH 0FFH (低字节在低地址),在32H、31H、30H单元中分别存放3字节无符 号加数22H、22H、22H (低字节在低地址),求两数之和,并将结果存入内部 RAM23H、22H、21H、20H单元中(低字节在低地址)。结果应该是01H、22H、 22H、21H。四、参考实

8、验程序题目1ORG 0000HLJMP mainORG 0100Hmain:将10个随机数送入内部 RAM的5059H单元NOP;可在此处设置断点ACALL SELSORT;用排序子程序HERE:AJMP HERE同在此处设置断点,观察每次排序结果NOP;排序子程序DAT EQU 60H;排序数据首地址N EQU 10;排序个数SELSORT: MOV R0,#DATMOV R2,#N-1LOOP:MOV B,R0MOV A,R0MOV R3,A INC AMOV R1,A题目2ORG 0000H(R0+R1)=(R0);入口 :R0,R1,R2;占用资源:ACC,B;堆栈需求:2字节;出口:

9、R0存放结果高地址MULTADD:MOV R0,#20H 地址 1MOV R1,#30H ;地址 2MOV R2,#03H ;加法字节数NSUB:CLR CNSUB1: MOV A,R0ADDC A,R1MOV R0,AINC R0INC R1DJNZ R2,NSUB1 CLR AADDC A, #00H;把进位位C加到高8位去MOV R0, A RETENDORG 0100Hmain:MOV R0,#20HMOV R0,#0FFHINC R0MOV R0,#0FFHINC R0MOV R0,#0FFHMOV R0,#30HMOV R0,#22HINC R0MOV R0,#22HINC R0M

10、OV R0,#22HACALL MULTAD删用多字节力口法 子程序HERE:AJMP HERE;可在此处设置断点,观察结果NOP;N字节无符号数加法子程序五、附加题1.画出题目1的程序流程图。开始存入数据到 60H69HY结束2.将题目1的排序算法进行改变,采用另一种排序算法进行排序oORG 0000H LJMP main ORG 0100HLOOP3: INC R1CJNE R1,#6AH,LOOP2 ;MAIN:;将10个随机数送入INC R0LOOP2: MOV A,R0MOV 51H,R0MOV 50H,R1MOV R1,51HBIG:CJNE A,50H,BIG ;做减法。JNC

11、LESS ;是0贝U跳转INC R1CJNE R0,#69H,LOOP2;以此类推,直到剩最SJMP $LJMP LOOP3后两个数比较完。LESS: XCH A,R1;交换60与61中的内容XCH A,R03.画出题目2的程序流程图。END4.改为编写多字节减法程序。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 MULTAD删用多字节力

12、口法子程序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,R0ADDC A,R1MOV R0,AINC R0INC R1DJNZ R2,NSUB1CLR AADDC A, #00H; 把进位位 C 加到高 8 位去MOV R0, ARETEND实验三定时 /计数器实验一、

13、实验目的1、掌握MCS-51单片机内部定时/计数器的功能与特点,工作方式选择和编程 方法,中断功能的使用和中断服务程序的设计;2、 了解和熟悉MCS-51单片机实验板的功能。二、实验内容及步骤(完成分值:60分/单个程序)本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块(I4区)。用P1 口做输出口,接十六位逻辑电平显示,程序功能使发光二极管 从右到左轮流循环点亮。三、参考流程图、电路图、参考程序rU1F<P1.01Pn2fcP1.0VCCP1.1P0.0P1.2P0.1P1.3P0.2P1.4P0.3P1.5P0.4P1.6P0.5P1.7P0.6P0.74叮39 P

14、0.0c*38-P0TS7P02VCC P1723-KP1RESET产1»-P1.3 产PT45P卜P1.,36 P0.3心P1.5kT:67fcXP1:78fc、-eti.5 P0.44P05心C3F%3 P0.6后啊2 P0.7PPT?989C51RSTEAP3.0/RXD31 EAP3.01030 ALELP3.111""P3.1/TXDALE/PROGP3.2/INT0PSENP3.3/INT1P2.7P3.4/T0P2.6P3.5/T1P2.5P3.6/WRP2.4P3.7/RDP2.3XTAL2P2.2XTAL1P2.1VSSP2.0P3.21Z,9

15、PSENP3.31严C*28-P27» 1P3.41产理7P2.6-,-P3.515"26 P2.5P3.6 16*P37T7t受5P2.4响4P2.3XTAL1A廿'"23 P2.211.0592MHz19 一1寸Tf-22 P2.1%P2.022pFR2F100R1F1KVCC0510*82C3A22pF程序:Tickequ5000T100usequ156C100usequ5horg0000HljmpStartorg000BHLJMPT0IntORG0100H;100us 记数次数,5000 x 100us =,十六进制 #1388H ;100us 时

16、间常数(12MHz);100us 记数单元,05H、06HStart:mov mov mov mov setb mov mov mov Loop:TMOD, #02hTH0, #T100usTL0, #T100us;方式2,定时器;100us 时间常数(12MHz);100us 时间常数(12MHz)IE, #b ; EA=1, IT0 = 1TR0;开始定时ljmpp1,#0FEH;由于电路原因,输出高电平为灭灯。C100us, #HIGH(Tick);05H<-#13喇始化 100us 记数单元C100us+1, #LOW(Tick);06H<-#88H初始化 100us 记数

17、单元LoopORG 0300HT0Int:push PSWmov a, C100us+1; 100us 高位记数单元 06Hjnz GoondecC100us; 100us 低位记数单元05HGoon:decC100us+1mov a, C100us; 100us低位记数单元 05Horla, C100us+1jnzExit; 100us 记数单元不为0, 返回 mov C100us, #HIGH(Tick);05H<-#13H,100us 记数单元为 0 则初始化 100us 记数单元movC100us+1, #LOW(Tick);06H<-#88H,100us 记数单元为 0

18、则初始化 100us 记数单元MOV A,P1 ; 100us 记数单元为0, 位移!RL AMOV P1,AExit:pop PSW retiJEnd五、附加题1. 修改程序,实现新功能 奇数偶数交换点亮Tick equ 5000 T100us equ 156C100us equ 5h org 0000H ljmpStartorg000BHLJMP T0Int;ORG 0100HStart:movTMOD, #02hmovTH0, #T100usmovTL0, #T100usmovIE, #bsetb TR0movp1,#0AAHmovC100usmovC100us+1Loop:ljmp L

19、oopT0Int:push PSWmov a, C100us+1jnzGoondecC100usGoon:decC100us+1mova, C100usorla, C100us+1jnzExitmovC100us, #HIGH(Tick)movC100us+1, #LOW(Tick)MOV A,P1RL AMOV P1,AExit:pop PSW retiJEndJORG 0300H2. 用 MCS-51 单片机的内部定时器定时中断,编写一段电子秒表程 序,在静态数码管上实现显示。TCNTA EQU 30H;KEYCNT EQU 33HLJMP STARTTCNTB EQU 31HSP1BIT

20、ORG 0BHSEC EQU 32HORG 00HLJMP INT_T0START:MOV KEYCNT,#00HLJMP DKNMOV A,TCNTAMOV SEC,#00HKN1:CJNE A,#02H,KN2CJNE A,#100,NEXTMOV A,SECCLR TR0MOV TCNTA,#00HMOV B,#10LJMP DKNINC TCNTBDIV ABKN2:CJNE A,#03HMOV A,TCNTBMOV DPTR,#TABLEMOV SEC,#00HCJNE A,#4,NEXTMOVC A,A+DPTRMOV A,SECMOV TCNTB,#00HMOV P0,AMOV

21、B,#10INC SECMOV A,BDIV ABMOV A,SECMOV DPTR,#TABLEMOV DPTR,#TABLECJNE A,#100,DONEMOVC A,A+DPTRMOVC A,A+DPTRMOV SEC,#00HMOV P2,AMOV P0,ADONE: MOV A,SECMOVMOV A,BMOV B,#10TMOD,#02H;MOV DPTR,#TABLEDIV ABSETB ET0MOVC A,A+DPTRMOVDPTR,#TABLESETB EAMOV P2,AMOVC A,A+DPTRWT:JB SP1,WTMOV KEYCNT,#00HMOV P0,ALCA

22、LL DELY10MSDKN: JNB SP1,$MOV A,BJB SP1,WTLJMP WTMOVDPTR,#TABLEINC KEYCNTDELY10MS:MOVC A,A+DPTRMOV A,KEYCNTMOV R6,#20MOV P2,ACJNE A,#01H,KN1D1:MOV R7,#248NEXT: RETISETB TR0DJNZ R7,$TABLE:DBMOV TH0,#06HDJNZ R6,D13FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FMOV TL0,#06HRETH,6FHMOV TCNTA,#00HINT_T0:ENDMOV TCNTB,#0

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

24、上。3 .打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加源程 序,进行编译,直到编译无误。4 .全速运行程序,直至显示效果为稳定的“ 123456”。四、参考流程图、电路图、实验程序3 17 3 4 5 6 7P7P2P7P2P2,P2P2P2电路接线图程序:ORG 0000H AJMP MAINORG 0080HMAIN:MOV P2,#0FFHMOV P0,#7DH ;显示 6CLR ;选中第一个数码管LCALL DELAY调用延时; MOV P0,#0FFH 关显示 SETBMOV P0,#6DH ;显示 5 CLR ;选中第二个数码管LCALL DELAY;

25、 MOV P0,#0FFH SETBMOV P0,#4FH 显示 3CLR ;选中第四个数码管LCALL DELAYMOV P0,#0FFHSETBMOV P0,#5BH 显示 2CLR ;选中第五个数码管LCALL DELAYMOV P0,#0FFHSETBMOV P0,#066H ;显示 4CLR ;选中第三个数码管LCALL DELAYMOV P0,#0FFHSETBMOV P0,#06H ;显示 1CLR ;选中第六个数码管LCALL DELAYMOV P0,#0FFHSETBCLR ;选中第七个数码管MOV P0,#21H ;显示 6;LCALL DELAY;MOV P0,#0FFH

26、;SETB;CLR ;选中第八个数码管;MOV P0,#7AH ; 显示 7;LCALL DELAY;SETB;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. 修改程序,稳定循环显示“GOO

27、D”、 “ HELLO”、 “ CSU”、“D510”程序如何修改ORG 0000H五个数码管AJMP MAINDJNZ R1,LOOP1LCALL DELAYORG 0080H;MOV P0,#0FFHMAIN:MOV R1,#7FHLOOP2: MOV P2,#0FFHSETBMOV R2,#7FHMOV R3,#7FHMOV P0,#3FHDJNZ R2,LOOP2MOV R4,#7FHCLR ;选中第LOOP3: MOV P2,#0FFH一个数码管LOOP1:LCALL DELAY ;MOV P0,#3EHMOVP2,#0FFH调用延时CLR ; 选中第; MOV P0,#0FFH ;

28、一个数码管MOV P0,#3FH关显示LCALL DELAY ;CLRSETB调用延时LCALL DELAY;MOV P0,#0FFH ;MOV P0,#0FFHMOV P0,#38H关显示SETBCLR ;选中第SETB二个数码管MOV P0,#3FHLCALL DELAYMOV P0,#6DHCLR ;选中第; MOV P0,#0FFHCLR ; 选中第二个数码管SETB二个数码管LCALL DELAYLCALL DELAY;MOV P0,#0FFH;MOV P0,#0FFHSETBMOV P0,#038HCLR ;选中第SETB三个数码管MOV P0,#03FHLCALL DELAYMO

29、V P0,#039HCLR ;选中第; MOV P0,#0FFHCLR ; 选中第三个数码管SETB三个数码管LCALL DELAYLCALL DELAY;MOV P0,#0FFH;MOV P0,#0FFHSETBMOV P0,#79HCLR ;选中第四个数码管SETBDJNZ R3,LOOP3MOV P0,#7DHLCALL DELAYCLR ;选中第; MOV P0,#0FFH四个数码管SETBLOOP4: MOV P2,#0FFHLCALL DELAY;MOV P0,#0FFHMOV P0,#76HMOV P0,#3FHSETBCLR ;选中第CLR ; 选中第一个数码管LCALL DE

30、LAYMOV R7,#20HLCALL DELAY ; MOV P0,#0FFHD1: MOV R6,#30H调用延时SETBD2: DJNZ R6,D2;MOV P0,#0FFH ;DJNZ R7,D1关显示RETSETBMOV P0,#39HCLR ;选中第;DISTAB: DBMOV P0,#6H四个数码管3FH,06H,5BH,4FHCLR ;选中第LCALL DELAY;DB二个数码管; MOV P0,#0FFH66H,6DH,7DH,07HLCALL DELAYSETB;DB;MOV P0,#0FFH7FH,6FH,77H,7CHSETBDJNZ R4,LOOP4;DBAJMP M

31、AIN ;重新开 始39H,5EH,79H,71HMOV P0,#06DHCLR ;选中第DELAY: 延时子程序;END2 修改程序,稳定显示当前时间(如AM 11:30) ,并且能模拟真实时钟走动。ORG 0000HCLR ; 选中第AJMP MAIN二个数码管ORG 0080HMOV P0,#06DHLCALL DELAYMAIN:MOV R1,#7FHCLR ;选中第;MOV P0,#0FFHMOV R2,#7FH四个数码管SETBMOV R3,#7FHLCALL DELAYMOV R4,#7FH; MOV P0,#0FFHSETBMOV P0,#04HLOOP1:CLR ; 选中第MOVP2,#03FHMOV P0,#06H三个数码管CLR ;选中第LCALL DELAYMOV P0,#3FH五个数码管;MOV P0,#0FFHCLRLCALL DELAYSETBLCALL DELAY; MOV P0,#0FFH;MOV P0,#0FFHSETBSETBMOV P0,#06DHCLR ; 选中第MOV P0,#3FHDJNZ R1,LOOP1四个数码管CLR ;选中第LCALL DE

温馨提示

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

评论

0/150

提交评论