版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.微机原理及应用实验报告班级:机械 1301 班姓名:黄佳清学号:0801130117座位号:中南大学机电工程学院.实验一单片机仿真开发机操作和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,#030H;MOVA,#00H断点,观察并记录!A1:MOVR0,AMOVDPTR,#7000HINCR0MOVR2,#0FHA3:MOVXA,DPTRINCAMOVXR0,AINCR0DJNZR2,A1INCDPTRMOVR0,#20H;DJNZR2,A3暂停,观察并记录!DO:LJMPDOMOVDPTR,#7000HEND; 内部存储器数MOVR2,#0FH据块赋值, 搬运数据块到外部存储A2:MOVA,R0器,再搬运回内部
3、数据存储器。MOVXDPTR,A五、附加题1. 将光标移到想要暂停的地方, MOV R0,#20H 所在行,选择 “执行到光标处”功能,程序快速执行到光标所在行。观察运行情况,并记录下表。R0R2A20H21H22H23H24H25H0x2f0x000x0f00H01H02H03H04H05H26H27H28H29H2AH2BH2CH2DH2EH06H07H08H09H0AH0BH0CH0DH0EH.2. 在 MOV R0,#0A0H 行设置断点,全速执行,暂停后观察并记录以下单元内容R0DPL7000H7001H7002H7003H7004H7005H7006H0X2F0FH00H01H02
4、H03H04H05H06H7007H7008H7009H700AH700BH700CH700DH700EH07H08H09H0AH0BH0CH0DH0EH3. 画出程序流程图开始赋值R0 20HR2 0FHA 00H(R0) (A)R0 R0+1A A+1R2 R2-1NR2=0?Y赋值R0 20HDPTR 7000HR2 0FH(A) (R0) (DPTR) (A) R0 R0+1DPTR DPTR+1R2 R2-1R2=0?NY赋值R0 30HR2 0FHDPTR 7000H(A) (DPTR)(R0) (A)DPTR DPTR+1R0 R0+1R2 R2-1NR2=0?Y.结束4. 修改
5、程序,实现新功能实现倒序数据转移程序AJMPMAINORG0030HMAIN:MOVR0,#40HMOVR2,#0FHMOVA,#00HA1:MOVR0,ADECR0INCADJNZR2,A1MOVR0,#30HMOVDPTR,#7000HMOVR2,#0FHA2:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR2,A2MOVR0,#030HMOVDPTR,#7000HMOVR2,#0FHA3:MOVXA,DPTRMOVXR0,AINCR0INCDPTRDJNZR2,A3DO:LJMPDOEND.实验二程序设计一、实验目的1、掌握 MCS-51单片机指令系统及用汇编语言编程
6、技巧;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,04H,03H,01H。题目 2、编写多字节加法程序并上机调试通过。8031 内部 RAM22
7、H、21H、20H单元中,分别存放了 3 字节无符号被加数 0FFH、0FFH、0FFH(低字节在低地址),在 32H、31H、 30H单元中分别存放 3 字节无符号加数 22H、 22H、 22H(低字节在低地址) ,求两数之和,并将结果存入内部RAM23H、22H 、21H 、20H单元中(低字节在低地址) 。结果应该是 01H、22H、22H、 21H。四、参考实验程序题目 1ORG 0000HMOV A,R2LJMP mainMOV R4,AORG 0100HLOOP1: MOV A,R1main:. 将 10 个随机数送入内部 RAM的CLR C5059H 单元SUBB A,BNOP
8、;可在此处设置断点JC LOOP2; 改为 JNC即可逆ACALL SELSORT;调用排序子程序序排列MOV B,R1HERE:AJMP HERE; 可在此处设置断MOV A,R1点 , 观察每次排序结果MOV R3,ANOPLOOP2: INC R1DJNZ R4,LOOP1; 排序子程序MOV A,R3DAT EQU 60H;排序数据首地MOV R1,A址MOV A,R1N EQU 10;排序个数XCH A,R0SELSORT: MOV R0,#DATXCH A,R1MOV R2,#N-1INC R0LOOP: MOV B,R0DJNZ R2,LOOPMOV A,R0RETMOV R3,
9、AENDINC AMOV R1,A题目 2ORG 0000HLJMP main.ORG 0100H(R0+R1)=(R0)main:MOV R0,#20H; 入口:R0,R1,R2MOV R0,#0FFH; 占用资源 :ACC,BINC R0; 堆栈需求 :2 字节MOV R0,#0FFH; 出口:R0存放结果高地址INC R0MULTADD:MOV R0,#20H; 地址 1MOV R0,#0FFHMOV R1,#30H; 地址 2MOV R2,#03H; 加法字节数MOV R0,#30HNSUB:CLRCMOV R0,#22HNSUB1: MOVA,R0INC R0ADDCA,R1MOV
10、R0,#22HMOVR0,AINC R0INCR0MOV R0,#22HINCR1ACALL MULTADD;调用多字节加法子DJNZR2,NSUB1程序CLR AADDCA, #00H;把进位HERE:AJMP HERE ; 可在此处设置断位 C 加到高 8 位去点 , 观察结果MOVR0, ANOPRETEND;N 字节无符号数加法子程序五、附加题1. 画出题目 1 的程序流程图。开始存入数据到60H69HR060HN 10HR2 60HA (R0)R2 R2+1B (R2)AB?YN(R0) 和( R2)交N换NR2=69H?YR0 R0+1N R0=69H?Y结束.2. 将题目 1 的
11、排序算法进行改变,采用另一种排序算法进行排序。ORG 0000HLOOP3: INC R1LJMP mainORG 0100HCJNE R1,#6AH,LOOP2;MAIN:.;将 10 个随机数送入INC R0LOOP2:MOV A,R0MOV 51H,R0MOV 50H,R1MOV R1,51HCJNE A,50H,BIG;做减法。INC R1BIG:JNC LESS ;是 0 则跳转CJNE R0,#69H,LOOP2 ;以此类推,直到剩最LJMP LOOP3后两个数比较完。LESS:XCH A,R1;交换60 与 61 中的内SJMP $容ENDXCH A,R03. 画出题目 2 的程
12、序流程图。开始存入数据到20 好22H,30H32HR020HR130HR23HC 清零A (R0)+(R1)50食(R0) A0物R0 R0+1一R1 R1+1R2 R2-1R2=0?NYA A+C(R0) A结束.4. 改为编写多字节减法程序。ORG 0000H;N 字节无符号数加法子程序LJMP main(R0+R1)=(R0)ORG 0100H; 入口:R0,R1,R2main:MOV R0,#20H; 占用资源 :ACC,BMOV R0,#0FFH; 堆栈需求 :2 字节INC R0; 出口:R0存放结果高地址MOV R0,#0FFHMULTADD:MOV R0,#20H; 地址 1
13、INC R0MOV R1,#30H; 地址 2MOV R0,#0FFHMOV R2,#03H; 加法字节数NSUB:CLRCMOV R0,#30HNSUB1: MOVA,R0MOV R0,#22HADDCA,R1INC R0MOVR0,AMOV R0,#22HINCR0INC R0INCR1MOV R0,#22HDJNZR2,NSUB1ACALL MULTADD;调用多字节加法子CLR A程序ADDCA, #00H;把进位位 C 加到高 8 位去HERE:AJMP HERE ; 可在此处设置断MOVR0, A点 , 观察结果RETNOPEND.实验三定时 / 计数器实验一、实验目的1、掌握 M
14、CS-51 单片机内部定时 /计数器的功能与特点,工作方式选择和编程方法,中断功能的使用和中断服务程序的设计;2、 了解和熟悉 MCS-51 单片机实验板的功能。二、实验内容及步骤(完成分值: 60 分 / 单个程序)本实验需要用到单片机最小应用系统(F1 区)和十六位逻辑电平显示模块( I4 区)。用 P1 口做输出口,接十六位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。三、参考流程图、电路图、参考程序VCCU1FVCCP1.01P1.0VCC40P1.1239P0.0P1.0510*8L0P1.1P0.0VCCP1.2338P0.1P1.1P1.2P0.1RESETP1.343
15、7P0.2P1.2P1.3P0.2L1P1.4536P0.3P1.3P1.4P0.3P1.5635P0.4P1.4P1.5P0.4P1.6734P0.5P1.5L2R2FP1.6P0.5P1.7833P0.6P1.6100C3FP1.7P0.632P0.7P1.710uF9P0.7L3RST89C51EA31EAR1FP3.010P3.0/RXDL41KP3.11130ALEP3.1/TXDALE/PROGP3.21229PSENP3.2/INT0PSENP3.31328P2.7L5P3.3/INT1P2.7P3.41427P2.6P3.4/T0P2.6P3.51526P2.5P3.5/T1P
16、2.5L6P3.61625P2.4P3.6/WRP2.4P3.71724P2.3P3.7/RDP2.3XTAL1A1823P2.2L7XTAL2P2.211.0592MHz1922P2.1XTAL1P2.12021P2.0VSSP2.0C3AC2A22pF22pF程序:Tick equ 5000;100us记数次数, 5000 x 100us = 0.5s,十六进制 #1388HT100us equ 156; 100us时间常数 (12MHz)C100us equ 5h; 100us记数单元 ,05H 、 06Horg0000HljmpStartorg000BHLJMPT0Int;-ORG01
17、00HStart:movTMOD, #02h;方式 2,定时器movTH0, #T100us; 100us时间常数 (12MHz)movTL0, #T100us; 100us时间常数 (12MHz)movIE, #10000010b; EA=1, IT0 = 1setbTR0;开始定时movp1,#0FEH; 由于电路原因,输出高电平为灭灯。movC100us, #HIGH(Tick);05H-#13H,初始化 100us 记数单元movC100us+1, #LOW(Tick);06H-#88H,初始化 100us 记数单元Loop:ljmp Loop;-.ORG0300HT0Int:push
18、PSWmova, C100us+1; 100us高位记数单元06HjnzGoondecC100us; 100us低位记数单元05HGoon:decC100us+1mova, C100us; 100us低位记数单元05Horla, C100us+1jnzExit; 100us记数单元不为0,返回movC100us, #HIGH(Tick);05H-#13H,100us记数单元为0 则初始化 100us 记数单元movC100us+1, #LOW(Tick);06H-#88H,100us记数单元为0 则初始化100us 记数单元MOVA,P1; 100us记数单元为0,位移!RLAMOV P1,A
19、Exit:popPSWreti;-End五、附加题1. 修改程序,实现新功能奇数偶数交换点亮Tickequ 5000T100us equ 156C100us equ 5horg0000HljmpStartorg000BHLJMPT0Int;-ORG0100HStart:movTMOD, #02hmovTH0, #T100usmovTL0, #T100usmovIE, #10000010bsetbTR0movp1,#0AAHmovC100usmovC100us+1Loop:ljmpLoop;-ORG0300HT0Int:pushPSWmova, C100us+1jnzGoondecC100usG
20、oon:decC100us+1mova, C100usorla, C100us+1jnzExitmovC100us, #HIGH(Tick)movC100us+1,#LOW(Tick)MOVA,P1RLAMOV P1,AExit:popPSWreti;-End.2. 用 MCS-51单片机的内部定时器定时中断,编写一段电子秒表程序,在静态数码管上实现显示。TCNTAEQU 30H;MOV A,KEYCNTDJNZ R6,D1TCNTBEQU 31HCJNE A,#01H,KN1RETSECEQU 32HSETB TR0INT_T0:KEYCNTEQU 33HMOV TH0,#06HINC TC
21、NTASP1BIT P3.5MOV TL0,#06HMOV A,TCNTAORG 00HMOV TCNTA,#00HCJNE A,#100,NEXTLJMP STARTMOV TCNTB,#00HMOV TCNTA,#00HORG 0BHLJMP DKNINC TCNTBLJMP INT_T0KN1:CJNE A,#02H,KN2MOV A,TCNTBSTART:MOVCLR TR0CJNE A,#4,NEXTKEYCNT,#00HLJMP DKNMOV TCNTB,#00HMOV SEC,#00HKN2:CJNE A,#03HINC SECMOV A,SECMOV SEC,#00HMOV A
22、,SECMOV B,#10MOV A,SECCJNE A,#100,DONEDIV ABMOV B,#10MOV SEC,#00HMOV DPTR,#TABLEDIV ABDONE:MOV A,SECMOVC A,A+DPTRMOV DPTR,#TABLEMOV B,#10MOV P0,AMOVC A,A+DPTRDIV ABMOV A,BMOV P0,AMOVDPTR,#TABLEMOV DPTR,#TABLEMOV A,BMOVC A,A+DPTRMOVC A,A+DPTRMOV DPTR,#TABLEMOV P0,AMOV P2,AMOVC A,A+DPTRMOV A,BMOVMOV P
23、2,AMOVDPTR,#TABLETMOD,#02H;MOV KEYCNT,#00HMOVC A,A+DPTRSETB ET0DKN:JNB SP1,$MOV P2,ASETB EALJMP WTNEXT:RETIWT:JB SP1,WTDELY10MS:TABLE:DBLCALL DELY10MSMOV R6,#203FH,06H,5BH,4FH,66H,6DH,7DH,07H,JB SP1,WTD1:MOV R7,#2487FH,6FHINC KEYCNTDJNZ R7,$END.实验四动态显示实验一、实验目的1、掌握七段 LED 数码管显示器工作原理,以及用动态扫描方法编程实现 8 位
24、LED数码管显示的方法;2、 进一步了解和熟悉MCS-51单片机实验板的功能。二、实验内容及步骤(完成分值:60 分 / 单个程序)本实验需要用到单片机最小应用系统 ( F1 区)和动态扫描显示模块( I2 区)。1. 用 8P 排线将单片机最小应用系统( F1 区)的 P2 口和动态扫描显示的位选 JD1I 相连 , 用 8P 排线将单片机最小应用系统( F1 区)的 P0 口和动态扫描显示模块的段码 JD0I 相连。2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3.打开 Keil uVision2 仿真软件,首先建立本实验的项目文件,接
25、着添加源程序,进行编译,直到编译无误。4.全速运行程序,直至显示效果为稳定的“123456”。四、参考流程图、电路图、实验程序电路接线图程序:ORG 0000HAJMP MAINORG 0080HMOV P0,#066H ; 显示 4MAIN:CLR P2.2 ; 选中第三个数码管MOV P2,#0FFHLCALL DELAY;MOV P0,#0FFHMOV P0,#7DH ; 显示 6SETB P2.2CLR P2.0 ; 选中第一个数码管LCALL DELAY ; 调用延时;MOV P0,#0FFH ; 关显示MOV P0,#4FH ; 显示 3SETB P2.0CLR P2.3 ; 选中
26、第四个数码管LCALL DELAYMOV P0,#6DH ; 显示 5;MOV P0,#0FFHCLR P2.1 ; 选中第二个数码管SETB P2.3LCALL DELAY;MOV P0,#0FFHSETB P2.1MOV P0,#5BH ; 显示 2.CLR P2.4 ; 选中第五个数码管;LCALL DELAYLCALL DELAY;SETB P2.7;MOV P0,#0FFH;MOV P0,#0FFHSETB P2.4AJMP MAIN ;重新开始MOV P0,#06H ; 显示 1DELAY: ; 延时子程序CLR P2.5 ; 选中第六个数码管MOV R7,#20HLCALL DE
27、LAYD1:MOV R6,#30H;MOV P0,#0FFHD2:DJNZ R6,D2SETB P2.5DJNZ R7,D1RET; CLR P2.6 ; 选中第七个数码管;MOV P0,#21H ; 显示 6;DISTAB: DB 3FH,06H,5BH,4FH;LCALL DELAY;DB 66H,6DH,7DH,07H;MOV P0,#0FFH;DB 7FH,6FH,77H,7CH;SETB P2.6;DB 39H,5EH,79H,71H;CLR P2.7 ; 选中第八个数码管END; MOV P0,#7AH ; 显示 7五、附加题(完成分值: 20 分/ 单个附加题,附加题要求当场给指
28、导老师检查结果,否则无效。)1. 修改程序,稳定循环 显示“ GOOD ”、 “ HELLO ”、 “ CSU”、 “ D510”,程序如何修改?ORG 0000HCLR P2.2 ; 选中AJMP MAIN第三个数码管ORG 0080HMOV P0,#7DHLCALL DELAYMAIN:MOV R1,#7FHCLR P2.3 ; 选中;MOV P0,#0FFHMOV R2,#7FH第四个数码管SETB P2.2MOV R3,#7FHLCALL DELAYMOV R4,#7FH;MOV P0,#0FFHSETB P2.3MOV P0,#79HLOOP1:CLR P2.3 ; 选中MOVP2,
29、#0FFHDJNZ R1,LOOP1第四个数码管LCALL DELAYMOV P0,#3FHLOOP2:MOV P2,#0FFH;MOV P0,#0FFHCLR P2.0SETB P2.3LCALL DELAYMOV P0,#3FH;MOV P0,#0FFHCLR P2.0 ; 选中MOV P0,#76HSETB P2.0第一个数码管CLR P2.4 ; 选中LCALL DELAY ;第五个数码管MOV P0,#3FH调用延时LCALL DELAYCLR P2.1 ; 选中;MOV P0,#0FFH ;MOV P0,#0FFH第二个数码管关显示SETB P2.4LCALL DELAYSETB
30、P2.0;MOV P0,#0FFHDJNZ R2,LOOP2SETB P2.1MOV P0,#38HLOOP3:MOV P2,#0FFHCLR P2.1 ; 选中第二个数码管MOV P0,#3EHMOV P0,#03FHLCALL DELAYCLR P2.0 ; 选中CLR P2.2 ; 选中;MOV P0,#0FFH第一个数码管第三个数码管SETB P2.1LCALL DELAY ;LCALL DELAY调用延时;MOV P0,#0FFH;MOV P0,#0FFH ;SETB P2.2MOV P0,#038H关显示.SETB P2.0调用延时;MOV P0,#0FFH;MOV P0,#0FF
31、H ;SETB P2.3MOV P0,#6DH关显示CLR P2.1 ; 选中SETB P2.0DJNZ R4,LOOP4第二个数码管AJMPMAIN ; 重新开始LCALL DELAYMOV P0,#6H;MOV P0,#0FFHCLR P2.1 ; 选中DELAY: ; 延时子程序SETB P2.1第二个数码管MOV R7,#20HLCALL DELAYD1:MOV R6,#30H;MOV P0,#0FFHD2:DJNZ R6,D2MOV P0,#039HSETB P2.1DJNZ R7,D1CLR P2.2 ; 选中RET第三个数码管LCALL DELAYMOV P0,#06DH;DIS
32、TAB: DB;MOV P0,#0FFHCLR P2.2 ; 选中3FH,06H,5BH,4FHSETB P2.2第三个数码管;DBLCALL DELAY66H,6DH,7DH,07HDJNZ R3,LOOP3;MOV P0,#0FFH;DBSETB P2.27FH,6FH,77H,7CHLOOP4: MOV P2,#0FFH;DBMOV P0,#39H39H,5EH,79H,71HMOV P0,#3FHCLR P2.3 ; 选中ENDCLR P2.0 ; 选中第四个数码管第一个数码管LCALL DELAYLCALL DELAY ;2 修改程序,稳定 显示当前时间(如AM 11:30 ),并且
33、能模拟真实时钟走动。ORG 0000HAJMP MAINORG 0080HMOV P0,#04HDJNZ R1,LOOP1MAIN:MOV R1,#7FHCLR P2.2 ; 选中MOV R2,#7FH第三个数码管LOOP2:MOV P2,#0FFHMOV R3,#7FHLCALL DELAYMOV R4,#7FH;MOV P0,#0FFHMOV P0,#6HSETB P2.2CLR P2.0 ; 选中LOOP1:第一个数码管MOVP2,#03FHLCALL DELAY ;MOV P0,#06DH调用延时MOV P0,#3FHCLR P2.3 ; 选中;MOV P0,#0FFH ;CLR P2.0第四个数码管关显示LCALL DELAYLCALL DELAYSETB P2.0;MOV P0,#0FFH;MOV P0,#0FFHSETB P2.0SETB P2.3MOV P0,#3FHCLR P2.1 ; 选中MOV P0,#3FHMOV P0,#06H第二个数码管CLR P2.1 ; 选中CLR P2.4 ; 选中LCALL DELAY第二个数码管第五个数码管;MOV P0,#0FFHLCALL DELAYLCALL DELAYSETB P2.1;MOV P0,#0FFH;MOV P0,#0FFHSETB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《药剂学》2022-2023学年第一学期期末试卷
- 石河子大学《实验诊断学》2021-2022学年第一学期期末试卷
- 石河子大学《计算机辅助绘图》2022-2023学年第一学期期末试卷
- 沈阳理工大学《专业创新课程-仪器仪表生产与创新》2022-2023学年第一学期期末试卷
- 沈阳理工大学《信号与系统》2022-2023学年第一学期期末试卷
- 沈阳理工大学《人机工程学》2022-2023学年第一学期期末试卷
- 沈阳理工大学《建筑构造》2022-2023学年第一学期期末试卷
- 沈阳理工大学《光学设计》2022-2023学年第一学期期末试卷
- 沈阳理工大学《材料磨损与抗磨材料》2023-2024学年第一学期期末试卷
- 合同操作性条款
- LY/T 3357-2023定制家居木质部件通用技术要求
- 颈腰椎健康宣教课件
- 文控管理体系标准培训
- 抗狂犬病血清项目评估报告
- 气压治疗与护理
- 左侧偏瘫患者的护理课件
- 教案程式与意蕴-中国传统绘画(人物画)《步辇图》教学设计-高中美术人美版(2019)美术鉴赏
- 交通事故案例分析与教训总结
- 视神经炎演示课件
- 《重症肺炎诊治进展》课件
- 公司管理制度的责任追究与问责机制
评论
0/150
提交评论