北京交通大学单片机实验参考答案.docx
《北京交通大学单片机实验参考答案.docx》由会员分享,可在线阅读,更多相关《北京交通大学单片机实验参考答案.docx(10页珍藏版)》请在冰豆网上搜索。
![北京交通大学单片机实验参考答案.docx](https://file1.bdocx.com/fileroot1/2022-11/30/aea65b66-46b4-4648-9cad-d858c797f5bb/aea65b66-46b4-4648-9cad-d858c797f5bb1.gif)
北京交通大学单片机实验参考答案
MCS–51单片机原理及接口技术
北交机电学院
实验参考答案
实验二、运算处理程序设计与调试
一、实验内容及要求:
将30H~39H中10个无符号数,剔除最大值和最小值,求平均数,并转换成BCD码,存入50H和51H中。
二、实验程序
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR0,#30H
MOVR2,#10
MOV41H,@R0
MOV40H,@R0
LOOP:
MOVA,@R0
CJNEA,40H,LOOP1
SJMPLOOP5
LOOP1:
JCLOOP4
MOV40H,A
LOOP4:
CJNEA,41H,LOOP2
SJMPLOOP5
LOOP2:
JNCLOOP5
MOV41H,A
LOOP5:
INCR0
DJNZR2,LOOP
CLRA
MOVR0,#30H
MOVR2,#10
LOOP6:
ADDA,@R0
INCR0
DJNZR2,LOOP6
SUBBA,41H
SUBBA,40H
MOV42H,A
MOVB,#08H
DIVAB
MOV43H,A
MOVA,42H
MOVB,#100
DIVAB
MOV50H,A
MOVA,#0AH
XCHA,B
DIVAB
SWAPA
ADDA,B
MOV51H,A
SJMP$
END
实验三、数据存储器扩展实验
一、实验内容:
1、MCS-51单片机应用板上已有8K的数据存储空间,其地址为0000H~1FFFH。
本实验要求另外再扩展一片RAM6264,地址安排在C000H~DFFFH。
为此,首先应该设计一个CPU与RAM芯片之间的接口电路,这个接口电路与8031单片机各种总线相接,使8031能够按照要求的地址范围对RAM6264进行读写操作。
MCS-51单片机应用板已将数据线D0~D7、地址线A0~A12、RD、WR等信号接到接线端子上了(见接线端子序号定义表)。
首先应该熟悉RAM6264芯片的各管脚定义及逻辑要求,然后确定译码电路。
将应用板上的74LS138译码输出脚Y6接到RAM6264的片选脚,。
译码确定之后,按照6264的接线要求,画出6264与8031、74LS373、74LS138译码器连接的详细电路图,并画出接线端子与6264芯片的连线图(注明端子号和6264的管脚号),实验时,将系统提供的地址线、数据线和控制线分别接到RAM6264的对应脚,确认连接无误后,方可调试。
2、编一测试程序,将立即数35H送入RAM6264的C000H~DFFFH各单元,送后检查,若都对,将立即数09H送入CPU的50H,若有不对的,将其地址的DPH值送入50H,DPL值送入51H。
二、实验程序:
ORG0000H
LJMPMAIN
ORG1000H
MAIN:
MOVDPTR,#0C00H
LCALLFILL
LOOP:
MOVXA,@DPTR
CJNEA,#35H,LOOP1
INCDPTR
MOVA,DPH
CJNEA,#0E0H,LOOP
MOV50H,#09H
SJMPOVER
LOOP1:
MOV50H,DPH
MOV51H,DPL
OVER:
SJMP$
FILL:
MOVA,#35H
MOVX@DPTR,A
INCDPTR
MOVA,DPH
CJNEA,#0E0H,FILL
RETI
END
实验四、LED显示器实验
一、实验内容及要求:
1、利用所学过的知识,编写加法运算处理程序,将30H中的数与31H中的数相加,和放入32H。
2、编写动态显示程序,将被加数显示在数码管的左边两位上,加数显示在中间两位上,和显示在右边两位上。
8155PB口控制各位显示器的字形,PC口控制各位显的阴极电位,使用六位共阴极显示器,显示缓冲区为79H~7EH。
(动态显示参考程序,见附录。
)
二、实验程序:
ORG0000H
AJMPMAIN
ORG0100H
MAIN:
MOVA,30H
ADDA,31H
MOV32H,A
MOVSP,#60H
MOVDPTR,#2100H
MOVA,#0EH
MOVX@DPTR,A
ACALLFB
LOOP:
ACALLDIR
AJMPLOOP
FB:
MOVR0,#30H
MOVR1,#79H
MOVR3,#03H
LP2:
MOVA,@R0
MOVR2,A
SWAPP
ANLA,#0FH
MOV@R1,A
INCR1
MOVA,R2
ANLA,#0FH
MOV@R1,A
INCR1
INCR0
DJNZR3,LP2
RET
DIR:
MOVR0,#79H
MOVR2,#01H
MOVA,R2
RET
LP0:
MOVDPTR,#2103H
MOVX@DPTR,A
MOVDPTR,#2102H
MOVA,@R0
ADDA,#0FH
MOVCA,@A+PC
DIR1:
MOVX@DPTR,A
MOVR7,#02H
ACALLDL
INCR0
MOVA,R2
JBACC.5,LD1
RLA
MOVR2,A
AJMPLP0
LD1:
RET
DSEG0:
DB3FH,06H,5BH,4FH,66H,6DHDSEG1:
DB7DH,07H,7FH,6FH,77H,7CHDSEG2:
DB39H,5EH,79H,71H,73H,21HDSEG3:
DB31H,6EH,40H,3EH,00H,00HDL:
MOVR6,#0FFH
DL6:
DJNZR6,DL6
DJNZR7,DL
RET
END
实验五、8031单片机定时/计数器应用实验
一、实验内容及要求:
将T1设定为计数器方式工作,将按钮开关J按下(接通)抬起(断开)次数作为外部事件脉冲从T1输入,将T0设定为定时功能,每按一次按钮开关J键,实现每隔一秒钟使P1.0、P1.1、P1.2……P1.7依次输出高电平送到发光二极管上显示出来。
二、实验程序:
ORG0000H
AJMPMAIN
AJMP000BH
AJMPT0INT
ORG001BH
AJMPT1INT
ORG0100H
MAIN:
MOVSP,#60H
MOVTMOD,#51H
MOVTH1,0FFH
MOVTL1,0FFH
MOVTH0,#3CH
MOVTL0,#0B0H
MOVIE,#8AH
SETBTR1
HERE:
SJMPHERE
T1INT:
MOVTH1,#0FFH
MOVTL1,#0FFH
MOVR3,#20
MOVA,#01H
MOVP1,A
SETBTR0
RETI
T0INT:
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZR3,OUT
MOVR3,#20
RLA
MOVP1,A
JNBP1.7,OUT
CLRTR0
OUT:
RETI
实验六、模/数与数/模转换实验
一、实验内容及要求
1、编写程序,当调节应用板上电位器W1时,即改变了0809输入端IN0的输入电压信号,记录下该模拟量转换成数字量值的大小,放入30H单元。
2、利用板上给定的DAC0832转换器,产生不同频率的波形,如锯齿波,三角波,方波,矩形波等,周期自定,波形在示波器上输出显示。
锯齿波产生的原理是:
每隔一定的时间往D/A转换器送一数值,且该数值逐渐提高,达到一定值后,又回到最小值重复上述过程,因为转换器输出的模拟信号与输入的数字信号成正比,所以输出的波形类似于锯齿形状,所以称为锯齿波。
编程过程中需要注意的是每送完一个数需要一段软件延时,延时的长短决定了周期的大小。
3、编写程序,将A/D转换的数字量作为D/A转换的延时常数,当调节单片机应用板上的电位器W1时,D/A转换的锯齿波的频率也随之变化。
二、实验程序:
A/D转换
ORG0000H
AJMPMA
ORG0100H
MA:
MOVDPTR,#6000H
MOVX@DPTR,A
MOVR2,#20H
DL:
DJNZR2,DL
HE:
JBP3.3,HE
MOVXA,@DPTR
MOV30H,A
HD:
SJMPHD
END
D/A转换
ORG0000H
AJMPMN
ORG0100H
MN:
MOVSP,#60H
MOVA,#00H
MOVDPTR,#4000H
LOOP:
MOVX@DPTR,A
INCA
MOVR1,#10H
DJNZR1,$
CJNEA,#0FFH,LOOP
SJMPMN
A/D+D/A转换
ORG0000HMAIN:
MOVDPTR,#6000H
MOVR0,#30HLOOP:
MOVX@DPTR,A
MOVR2,#05H
DL:
DJNZR2,DLWAIT:
JBP3.3,WAIT
MOVXA,@DPTR
MOV@R0,ASAN:
MOVA,#00H
MOVDPTR,#4000HUP:
MOVX@DPTR,A
INCA
ACALLDELAY
CJNEA,#0FEH,UP
SJMPMAINDELAY:
MOVR4,#30HDEL:
DJNZR4,DEL
RET
周期可调三角波
ORG0000HMAIN:
MOVDPTR,#6000H
MOVR0,#30HLOOP:
MOVX@DPTR,A
MOVR2,#05H
DL:
DJNZR2,DLWAIT:
JBP3.3,WAIT
MOVXA,@DPTR
MOV@R0,ASAN:
MOVA,#00H
MOVDPTR,#4000HUP:
MOVX@DPTR,A
INCA
ACALLDELAY
JNZUP
MOVA,#OFEHDOWN:
MOVX@DPTR,A
DECA
ACALLDELAY
JNZDOWN
SJMPMAINDELAY:
MOVR4,#30HDEL:
DJNZR4,DEL
RET
周期可调台阶波
ORG0000HMAIN:
MOVDPTR,#6000H
MOVR0,#30HLOOP:
MOVX@DPTR,A
MOVR2,#05H
DL:
DJNZR2,DLWAIT:
JBP3.3,WAIT
MOVXA,@DPTR
MOV@R0,ASAN:
MOVA,#00H
MOVDPTR,#4000H
MOVR3,#0AHUP:
MOVX@DPTR,A
ACALLDELAY
DJNZR3,DOWN
MOVA,#OFEH
SJMPUP
DOWN:
ADDA,#OAH
SJMPUPDELAY:
MOVR4,#30HDEL1:
MOVR5,#OCHDEL2:
DJNZR5,DEL2
DJNZR4,DEL1
RET
END