微机原理与应用实验报告.docx
- 文档编号:9549879
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:37
- 大小:156.91KB
微机原理与应用实验报告.docx
《微机原理与应用实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理与应用实验报告.docx(37页珍藏版)》请在冰豆网上搜索。
微机原理与应用实验报告
微机原理及应用实验报告
班级:
机械1301班
:
黄佳清
学号:
0801130117
座位号:
中南大学机电工程学院
实验一单片机仿真开发机操作和MCS-51指令系统应用
一.实验目的
1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整;
2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;
3、掌握程序的调试和运行的各种方法。
二.实验设备
台式微型计算机
MCS-51仿真开发机
THKSCM-2A
三.实验容及步骤(完成分值:
60分)
本实验秩序运行KeiluVersion2程序,设置为keil为纯软件仿真
1.新建工程项目
2.设置工程文件参数
3.编写新程序事例
4.调试程序直至能够运行出结果。
四.实验程序
AJMPMAIN
ORG0030H
MAIN:
MOVR0,#20H
MOVR2,#0FH
MOVA,#00H
A1:
MOVR0,A
INCR0
INCA
DJNZR2,A1
MOVR0,#20H;暂停,观察并记录!
MOVDPTR,#7000H
MOVR2,#0FH
A2:
MOVA,R0
MOVXDPTR,A
INCR0
INCDPTR
DJNZR2,A2
MOVR0,#030H;断点,观察并记录!
MOVDPTR,#7000H
MOVR2,#0FH
A3:
MOVXA,DPTR
MOVXR0,A
INCR0
INCDPTR
DJNZR2,A3
DO:
LJMPDO
END;部存储器数据块赋值,搬运数据块到外部存储器,再搬运回部数据存储器。
五、附加题
1.将光标移到想要暂停的地方,MOVR0,#20H所在行,选择“执行到光标处”功能,程序快速执行到光标所在行。
观察运行情况,并记录下表。
R0
R2
A
20H
21H
22H
23H
24H
25H
0x2f
0x00
0x0f
00H
01H
02H
03H
04H
05H
26H
27H
28H
29H
2AH
2BH
2CH
2DH
2EH
06H
07H
08H
09H
0AH
0BH
0CH
0DH
0EH
2.在MOVR0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元容
R0
DPL
7000H
7001H
7002H
7003H
7004H
7005H
7006H
0X2F
0FH
00H
01H
02H
03H
04H
05H
06H
7007H
7008H
7009H
700AH
700BH
700CH
700DH
700EH
07H
08H
09H
0AH
0BH
0CH
0DH
0EH
3.画出程序流程图
N
Y
N
Y
N
Y
结束
4.修改程序,实现新功能
实现倒序数据转移程序
AJMP
MAIN
ORG0030H
MAIN:
MOVR0,#40H
MOVR2,#0FH
MOVA,#00H
A1:
MOVR0,A
DECR0
INCA
DJNZR2,A1
MOVR0,#30H
MOVDPTR,#7000H
MOVR2,#0FH
A2:
MOVA,R0
MOVXDPTR,A
INCR0
INCDPTR
DJNZR2,A2
MOVR0,#030H
MOVDPTR,#7000H
MOVR2,#0FH
A3:
MOVXA,DPTR
MOVXR0,A
INCR0
INCDPTR
DJNZR2,A3
DO:
LJMPDO
END
实验二程序设计
一、实验目的
1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;
2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。
二、实验容及步骤(完成分值:
30分/单个程序)
题目1、编写排序程序并上机调试通过。
已知8031部RAM60H~69H单元中,依次存放了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部RAM22H、21H、20H单元中,分别存放了3字节无符号被加数0FFH、0FFH、0FFH(低字节在低地址),在32H、31H、30H单元中分别存放3字节无符号加数22H、22H、22H(低字节在低地址),求两数之和,并将结果存入部RAM23H、22H、21H、20H单元中(低字节在低地址)。
结果应该是01H、22H、22H、21H。
四、参考实验程序
题目1
ORG0000H
LJMPmain
ORG0100H
main:
...将10个随机数送入部RAM的50~59H单元
NOP;可在此处设置断点
ACALLSELSORT;调用排序子程序
HERE:
AJMPHERE;可在此处设置断点,观察每次排序结果
NOP
;排序子程序
DATEQU60H;排序数据首地址
NEQU10;排序个数
SELSORT:
MOVR0,#DAT
MOVR2,#N-1
LOOP:
MOVB,R0
MOVA,R0
MOVR3,A
INCA
MOVR1,A
MOVA,R2
MOVR4,A
LOOP1:
MOVA,R1
CLRC
SUBBA,B
JCLOOP2;改为JNC即可逆序排列
MOVB,R1
MOVA,R1
MOVR3,A
LOOP2:
INCR1
DJNZR4,LOOP1
MOVA,R3
MOVR1,A
MOVA,R1
XCHA,R0
XCHA,R1
INCR0
DJNZR2,LOOP
RET
END
题目2
ORG0000H
LJMPmain
ORG0100H
main:
MOVR0,#20H
MOVR0,#0FFH
INCR0
MOVR0,#0FFH
INCR0
MOVR0,#0FFH
MOVR0,#30H
MOVR0,#22H
INCR0
MOVR0,#22H
INCR0
MOVR0,#22H
ACALLMULTADD;调用多字节加法子程序
HERE:
AJMPHERE;可在此处设置断点,观察结果
NOP
;N字节无符号数加法子程序([R0]+[R1])=([R0])
;入口:
R0,R1,R2
;占用资源:
ACC,B
;堆栈需求:
2字节
;出口:
R0存放结果高地址
MULTADD:
MOVR0,#20H;地址1
MOVR1,#30H;地址2
MOVR2,#03H;加法字节数
NSUB:
CLRC
NSUB1:
MOVA,R0
ADDCA,R1
MOVR0,A
INCR0
INCR1
DJNZR2,NSUB1
CLRA
ADDCA,#00H;把进位位C加到高8位去
MOVR0,A
RET
END
五、附加题
1.画出题目1的程序流程图。
Y
N
N
N
Y
N
Y
2.将题目1的排序算法进行改变,采用另一种排序算法进行排序。
ORG0000H
LJMPmain
ORG0100H
MAIN:
...;将10个随机数送入
LOOP2:
MOVA,R0
MOV50H,R1
CJNEA,50H,BIG;做减法。
BIG:
JNCLESS;是0则跳转
LJMPLOOP3
LESS:
XCHA,R1;交换60与61中的容
XCHA,R0
LOOP3:
INCR1
CJNER1,#6AH,LOOP2;
INCR0
MOV51H,R0
MOVR1,51H
INCR1
CJNER0,#69H,LOOP2;以此类推,直到剩最后两个数比较完。
SJMP$
END
3.画出题目2的程序流程图。
N
Y
4.改为编写多字节减法程序。
ORG0000H
LJMPmain
ORG0100H
main:
MOVR0,#20H
MOVR0,#0FFH
INCR0
MOVR0,#0FFH
INCR0
MOVR0,#0FFH
MOVR0,#30H
MOVR0,#22H
INCR0
MOVR0,#22H
INCR0
MOVR0,#22H
ACALLMULTADD;调用多字节加法子程序
HERE:
AJMPHERE;可在此处设置断点,观察结果
NOP
;N字节无符号数加法子程序([R0]+[R1])=([R0])
;入口:
R0,R1,R2
;占用资源:
ACC,B
;堆栈需求:
2字节
;出口:
R0存放结果高地址
MULTADD:
MOVR0,#20H;地址1
MOVR1,#30H;地址2
MOVR2,#03H;加法字节数
NSUB:
CLRC
NSUB1:
MOVA,R0
ADDCA,R1
MOVR0,A
INCR0
INCR1
DJNZR2,NSUB1
CLRA
ADDCA,#00H;把进位位C加到高8位去
MOVR0,A
RET
END
实验三定时/计数器实验
一、实验目的
1、掌握MCS-51单片机部定时/计数器的功能与特点,工作方式选择和编程方法,中断功能的使用和中断服务程序的设计;
2、了解和熟悉MCS-51单片机实验板的功能。
二、实验容及步骤(完成分值:
60分/单个程序)
本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块(I4区)。
用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
三、参考流程图、电路图、参考程序
程序:
Tickequ5000;100us记数次数,5000x100us=0.5s,十六进制#1388H
T100usequ156;100us时间常数(12MHz)
C100usequ5h;100us记数单元,05H、06H
org0000H
ljmpStart
org000BH
LJMPT0Int
;----------------------------------------
ORG0100H
Start:
movTMOD,#02h;方式2,定时器
movTH0,#T100us;100us时间常数(12MHz)
movTL0,#T100us;100us时间常数(12MHz)
movIE,#10000010b;EA=1,IT0=1
setbTR0;开始定时
movp1,#0FEH;由于电路原因,输出高电平为灭灯。
movC100us,#HIGH(Tick);05H<-#13H,初始化100us记数单元
movC100us+1,#LOW(Tick);06H<-#88H,初始化100us记数单元
Loop:
ljmpLoop
;----------------------------------------
ORG0300H
T0Int:
pushPSW
mova,C100us+1;100us高位记数单元06H
jnzGoon
decC100us;100us低位记数单元05H
Goon:
decC100us+1
mova,C100us;100us低位记数单元05H
orla,C100us+1
jnzExit;100us记数单元不为0,返回
movC100us,#HIGH(Tick);05H<-#13H,100us记数单元为0则初始化100us记数单元
movC100us+1,#LOW(Tick);06H<-#88H,100us记数单元为0则初始化100us记数单元
MOVA,P1;100us记数单元为0,位移!
RLA
MOVP1,A
Exit:
popPSW
reti
;----------------------------------------
End
五、附加题
1.修改程序,实现新功能
奇数偶数交换点亮
Tickequ5000
T100usequ156
C100usequ5h
org0000H
ljmpStart
org000BH
LJMPT0Int
;----------------------------------------
ORG0100H
Start:
movTMOD,#02h
movTH0,#T100us
movTL0,#T100us
movIE,#10000010b
setbTR0
movp1,#0AAH
movC100us
movC100us+1
Loop:
ljmpLoop
;----------------------------------------
ORG0300H
T0Int:
pushPSW
mova,C100us+1
jnzGoon
decC100us
Goon:
decC100us+1
mova,C100us
orla,C100us+1
jnzExit
movC100us,#HIGH(Tick)
movC100us+1,#LOW(Tick)
MOVA,P1
RLA
MOVP1,A
Exit:
popPSW
reti
;----------------------------------------
End
2.用MCS-51单片机的部定时器定时中断,编写一段电子秒表程序,在静态数码管上实现显示。
TCNTAEQU30H;
TCNTBEQU31H
SECEQU32H
KEYCNTEQU33H
SP1BITP3.5
ORG00H
LJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVKEYCNT,#00H
MOVSEC,#00H
MOVA,SEC
MOVB,#10
DIVAB
MOVDPTR,#TABLE
MOVCA,A+DPTR
MOVP0,A
MOVA,B
MOVDPTR,#TABLE
MOVCA,A+DPTR
MOVP2,A
MOVTMOD,#02H;
SETBET0
SETBEA
WT:
JBSP1,WT
LCALLDELY10MS
JBSP1,WT
INCKEYCNT
MOVA,KEYCNT
CJNEA,#01H,KN1
SETBTR0
MOVTH0,#06H
MOVTL0,#06H
MOVTCNTA,#00H
MOVTCNTB,#00H
LJMPDKN
KN1:
CJNEA,#02H,KN2
CLRTR0
LJMPDKN
KN2:
CJNEA,#03H
MOVSEC,#00H
MOVA,SEC
MOVB,#10
DIVAB
MOVDPTR,#TABLE
MOVCA,A+DPTR
MOVP0,A
MOVA,B
MOVDPTR,#TABLE
MOVCA,A+DPTR
MOVP2,A
MOVKEYCNT,#00H
DKN:
JNBSP1,$
LJMPWT
DELY10MS:
MOVR6,#20
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
INT_T0:
INCTCNTA
MOVA,TCNTA
CJNEA,#100,NEXT
MOVTCNTA,#00H
INCTCNTB
MOVA,TCNTB
CJNEA,#4,NEXT
MOVTCNTB,#00H
INCSEC
MOVA,SEC
CJNEA,#100,DONE
MOVSEC,#00H
DONE:
MOVA,SEC
MOVB,#10
DIVAB
MOVDPTR,#TABLEMOVCA,A+DPTR
MOVP0,A
MOVA,B
MOVDPTR,#TABLEMOVCA,A+DPTR
MOVP2,A
NEXT:
RETI
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
实验四动态显示实验
一、实验目的
1、掌握七段LED数码管显示器工作原理,以及用动态扫描方法编程实现8位LED数码管显示的方法;
2、进一步了解和熟悉MCS-51单片机实验板的功能。
二、实验容及步骤(完成分值:
60分/单个程序)
本实验需要用到单片机最小应用系统(F1区)和动态扫描显示模块(I2区)。
1.用8P排线将单片机最小应用系统(F1区)的P2口和动态扫描显示的位选JD1I相连,用8P排线将单片机最小应用系统(F1区)的P0口和动态扫描显示模块的段码JD0I相连。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:
缺口朝上。
3.打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加源程序,进行编译,直到编译无误。
4.全速运行程序,直至显示效果为稳定的“123456”。
四、参考流程图、电路图、实验程序
电路接线图
程序:
ORG0000H
AJMPMAIN
ORG0080H
MAIN:
MOVP2,#0FFH
MOVP0,#7DH;显示6
CLRP2.0;选中第一个数码管
LCALLDELAY;调用延时
;MOVP0,#0FFH;关显示
SETBP2.0
MOVP0,#6DH;显示5
CLRP2.1;选中第二个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.1
MOVP0,#066H;显示4
CLRP2.2;选中第三个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.2
MOVP0,#4FH;显示3
CLRP2.3;选中第四个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.3
MOVP0,#5BH;显示2
CLRP2.4;选中第五个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.4
MOVP0,#06H;显示1
CLRP2.5;选中第六个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.5
;CLRP2.6;选中第七个数码管
;MOVP0,#21H;显示6
;LCALLDELAY
;MOVP0,#0FFH
;SETBP2.6
;CLRP2.7;选中第八个数码管
;MOVP0,#7AH;显示7
;LCALLDELAY
;SETBP2.7
;MOVP0,#0FFH
AJMPMAIN;重新开始
DELAY:
;延时子程序
MOVR7,#20H
D1:
MOVR6,#30H
D2:
DJNZR6,D2
DJNZR7,D1
RET
;DISTAB:
DB3FH,06H,5BH,4FH
;DB66H,6DH,7DH,07H
;DB7FH,6FH,77H,7CH
;DB39H,5EH,79H,71H
END
五、附加题(完成分值:
20分/单个附加题,附加题要求当场给指导老师检查结果,否则无效。
)
1.修改程序,稳定循环显示“GOOD”、“HELLO”、“CSU”、“D510”,程序如何修改?
ORG0000H
AJMPMAIN
ORG0080H
MAIN:
MOVR1,#7FH
MOVR2,#7FH
MOVR3,#7FH
MOVR4,#7FH
LOOP1:
MOVP2,#0FFH
MOVP0,#3FH
CLRP2.0
LCALLDELAY
;MOVP0,#0FFH
SETBP2.0
MOVP0,#3FH
CLRP2.1;选中第二个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.1
MOVP0,#03FH
CLRP2.2;选中第三个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.2
MOVP0,#7DH
CLRP2.3;选中第四个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.3
DJNZR1,LOOP1
LOOP2:
MOVP2,#0FFH
MOVP0,#3FH
CLRP2.0;选中第一个数码管
LCALLDELAY;调用延时
;MOVP0,#0FFH;关显示
SETBP2.0
MOVP0,#38H
CLRP2.1;选中第二个数码管
LCALLDELAY
;MOVP0,#0FFH
SETBP2.1
MOVP0,#038H
CLRP2.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 实验 报告