单片机原理实验指导书.docx
- 文档编号:29114174
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:35
- 大小:262.82KB
单片机原理实验指导书.docx
《单片机原理实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机原理实验指导书.docx(35页珍藏版)》请在冰豆网上搜索。
单片机原理实验指导书
单片机原理实验指导书
实验一系统认识实验
一、实验目的:
学习并掌握本系统的基本操作。
二、实验设备:
TDN86/51教学实验系统一台。
三、实验内容及步骤:
计算N个数据的和,即:
其中XK分别放在片内RAM区50H~55H单元中,N=6,求和的结果Y放在片内RAM区03(高位),04H(低位)单元中。
题目:
(1)32H+41H+01H+56H+11H+03H=00DEH
(2)95H+01H+02H+44H+48H+12H=0136H
(3)54H+F6H+1BH+20H+04H+C1H=024AH
实验步骤:
1、使用串行通讯电缆将实验系统与计算机相连。
2、请将系统状态选择开关拨至51(此开关位于线路板右下脚),开启实验系统。
3、开启计算机电源,在软件所在目录键入MD51↙,选择对应串口号,进入集成操作软件环境,如果光标不响应回车命令,按复位键即可。
若“>”提示符,系统仍为86状态,键入5↙,即可转至51状态,若出现“—”提示符,表示已进入51状态。
按下F1功能键,进入全屏幕编辑界面,按ALT+F建立新文件(NEW),即可开始输入源程序。
实验程序如下:
ORG0000H
000021000LJMPMAIN
ORG1000H
10007A06MAIN:
MOVR2,#06H
10027B00MOVR3,#00H
10047C00MOVR4,#00H
10067850MOVR0,#50H
1008ECL1:
MOVA,R4
100926ADDA,@R0
100AFCMOVR4,A
100B08INCR0
100CE4CLRA
100D3BADDCA,R3
100EFBMOVR3,A
100FDAF7DJNAR2,L1
101180FEL2:
SJMPL2
END
4、输入程序后,按F2保存程序(规定扩展名为*.ASM),使用ALT+X返回集成软件环境。
5、按F2,输入源程序名↙(省略扩展名,系统默认为.ASM),对源程序进行汇编生成浮动目标文件(*.r03)及错误信息文件(*.M)。
汇编无误后,自动生成相应*.LST文件。
6、汇编完成后,按F3输入文件名↙对汇编生成的*.r03文件进行连接,连接信息显示于屏幕上,生成相应*.HEX可执行文件及连接信息报告(*.L)。
7、按F5,输入*.HEX可执行文件名↙,计算机开始将程序从磁盘装入到教学系统内存,提示装载完毕后使用U1000↙命令进行反汇编,检查程序是否正确装入。
当程序输入错误或需调整时,使用A命令完成。
显示信息
键入信息
—
U1000↙
1000MOVR2,#06H
—
↓
1002MOVR3,#00H
↓
·
·
·
·
·
·
1011SJMP2011
↙
—
8、用R07××↙格式命令来将题目
(1)中的六个数放入片内RAM区50H~55H单元中,即:
显示信息
键入信息
—
R0750↙
0750=××
32(空格)
0751=××
41(空格)
0752=××
·
·
·
0755=××
03↙
—
9、用T命令单步方式运行程序(将运行状态开关拨至STEP)
显示
键入
注释
—
T=0000↙
寄存器状态在屏幕上显示
10007A06MOVR2,#06H
T↙(orF4)
即将执行的指令
10027B00MOVR3,#00H
T↙(orF4)
即将执行的指令
……
……
10、用R07××格式命令来检查单片机内03H~04H单元,此即程序运行的结果。
11、用B命令在1011处设一个断点,即:
显示
键入
-
B↙
0:
1001↙
1:
↙
—
12、用R07××↙格式命令再将
(2)题目中的六个数填入到50H~55H中。
13、用GB命令来连续运行程序,即:
显示
键入
-
GB=1000↙
-
稍过一会,就会显示当前单片机的状态,你可用R07××↙格式命令来检查运行结果(03~04H)单元内容)
14、重复11-13将题目(3)的结果计算出来。
15、按RESET复位键可清除断点。
实验二数码转换程序实验
一、实验目的:
1、掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。
2、进一步熟悉键盘的使用方法。
3、进一步熟悉调试程序的方法。
二、实验设备:
TDN86/51教学实验系统一台。
三、实验内容及步骤:
1、将累加器A中的8位二进制转换成3位BCD码格式的十进制数。
其中,百位数的BCD码放在21H单元中,十位和个位数放在22H单元中,程序如下:
ORG0000H
0000021000LJMPMAIN
ORG1000H
100074FFMAIN:
MOVA,#0FFH;给A中放入要转换的数据FFH,
100275F064MOVB,#64H也可按需要改变为其他数据。
100584DIVAB
1006F521MOV21H,A
1008740AMOVA,#0AH
100AC5F0XCHA,B
100C84DIVAB
100DC4SWAPA
100E25F0ADDA,B
1010F522MOV22H,A
101280FEL1:
SJMPL1
END
实验步骤:
(1)输入程序检查无误,经汇编、连接后装入系统。
(2)在1012处设断点。
(3)GB=0000↙,运行程序。
(4)用R0721↙查看21单元,应为02,用R0722查看22H单元,应为55。
(5)改变A中的数,考查程序的正确性。
2、将累加器A中丰存放的两个BCD码拆开,求它们的乘积,并把乘积以压缩的BCD码形式送回A中。
ORG0000H
0000021000LJMPMAIH
ORG1000H
10007423MAIN:
MOVA,#23H
100275F010MOVB,#10H;除以16,分离压缩BCD码
100584DIVAB
1006A4MULAB;二进制形式的积存放在A中
100775F00AMOVB,#0AH;除以10,求10位数
100A84DIVAB;A中为10位数,B中为个位数
100BC4SWAPA
100C45F0ORLA,B;拼装压缩BCD码
100E80FEL1:
SJMPL1
END
实验步骤:
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)在100E处设断点。
(3)GB=0000↙,运行程序。
(4)用R↙命令查看A中的数应为06(2×3)。
(5)改变A中的数,检查程序的正确性。
实验三、运算类实验
一、实验目的:
1、掌握使用运算类指令编程及调试的方法。
2、掌握运算类指令对各状态标志位的影响及其测试方法。
二、实验设备:
TCN86/51教学实验系统生台。
三、实验内容及步骤:
1、多字节十进制加法。
(1)了解DAA指令的使用方法。
(2)掌握子程序的使用方法。
实验程序如下:
ORG0000H
0000021000LJMPMAIN
ORG1000H
1000758150MAIN:
MOV81H,#50H
10037820MOVR0,#20H
10057645MOV@R0,#45H
100708INCR0
10087674MOV@R0,#74H
100A7930MOVR1,#30H
100C7767MOV@R1,#67H
100E09INCR1
100F7728MOV@R1,#28H
1011C3CLRC
10127A02MOVR2,#02H
10141122L2:
ACALLL1
101618DECR0
101719DECR1
1018DAFADJNZR2,L2
101AE4CLRA
101B92E0MOVACC.0,C
101D00NOP
101EF6MOV@R0,A
101F80FEL3:
SJMPL3
102100NOP
1022E6L1:
MOVA,@R0
102337ADDCA,@R1
1024D4DAA
1025F6MOV@R0,A
102622RET
END
上述程序实现:
4574+6728=?
其中20H、21H为被加数;30H、31H为加数,两数之和放在内部RAM的1FH、20H和21H单元。
实验步骤:
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)在101F处设置断点,用GB=0000↙运行程序。
用R071F↙顺序检查1FH、20H和21H单元中内容,结果应为01、13、02
2、字节乘法:
(1)了解MULAB指令的使用方法。
(2)了解双字节乘法的程序设计方法。
对于双字节乘法首先将双字节分解为(aX256+d)的形式进行计算,其积依次存放在片内RAM20H开始的连续四个单元,(R2R3)=乘数,(R4R5)=被乘数。
运算算法为:
achacL
adHadL
bcHbcL
bdHbdL
其中H、L分别表示积的高8位和低8位,实验程序如下:
ORG0000H
0000021000LJMPMAIN
ORG1000H
10007A0FMAIN:
MOVR2,#0FH
10027BFFMOVR3,#0FFFH
10047C0FMOVR4,#0FH
10067DFFMOVR5,#FFH
10087823MOVR0,#23H
100AEBMOVA,R3
100B8D23MOVB,R5
100DA4MULAB
100EF6MOV@R0,A
100FE5F0MOVA,B
101118DECR0
1012F6MOV@R0,A
1013EAMOVA,R2
10148DF0MOVB,R5
1016A4MULAB
101726ADDA,@R0
1018F6MOV@R0,A
101918DECR0
101AE5F0MOVA,B
101C3400ADDCA,#00H
101EF6MOV@R0,A
101F08INCR0
1020EBMOVA,R3
10218CF0MOVB,R4
1023A4MULAB
102426ADDA,@R0
1025F6MOV@R0,A
1026E5F0MOVA,B
102818DECR0
102936ADDCA,@R0
102AF6MOV@R0,A
102B18DECR0
102CE4CLRA
102D3400ADDCA,#00H
102FF6MOV@R0,A
1030EAMOVA,R2
10318CF0MOVB,R4
1033A4MULAB
103408INCR0
103526ADDA,@R0
1036F6MOV@R0,A
1037E5F0MOVA,B
103918DECR0
103A36ADDCA,@R0
103BF6MOV@R0,A
103C80FEL1:
SJMPL1
END
实验步骤:
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)在103CH处设置断点,运行程序(GB=0000↙),在断点处检查结果。
(3)用R0720↙检查20H、21H、22H、23H单元中内容,结果应为00、FF、E0、01。
(4)自己送乘数与被乘数,通过键盘送入R2、R3、R4、R5中,从1008开始运行程序,检查运行结果。
3、双字节除法:
实验程序如下:
ORG0000H
0000021000LJMPMAIN
ORG1000H
10007C78MAIN:
MOVR4,#78H
10027D46MOVR5,#46H
10047E39MOVR6,#39H
10067F64MOVR7,#64H
1008110DACALLL1
100A80FEL2:
SJMPL2
100C00NOP
100DE4L1:
CLRA
100EFAMOVR2,A
100FFBMOVR3,A
10107910MOVR1,#10H
1012C3L5:
CLRC
1013EDMOVA,R5
101433RLCA
1015FDMOVR5,A
1016ECMOVA,R4
101733RLCA
1018FCR4,A
1019EBMOVA,R3
101A33RLCA
101BFBMOVR3,A
101CEAMOVA,R2
101D33RLCA
101EFAMOVR2,A
101FC3CLRC
10209ESUBBA,R6
10214019JCL3
1023C0E0PUSHACC.0
1025EBMOVA,R3
10269FSUBBA,R7
1027500EJNCL4
1029F5F0MOVB,A
102BD0E0POPACC.0
102D9400SUBBA,#00H
102F400BJCL3
1031FAMOVR2,A
1032ABF0MOVR3,B
10340D5INCR5
10358005SJMPL3
1037FBL4:
MOVR3,A
1038D0E0POPACC.0
103AFAMOVR2,A
103B0DINCR5
103CD9D4L3:
DJNZR1,L5
103E22RET
END
上述程序实现双字节除法,其中(R4R5)为被除数,(R6R7)为除数,商在(R4R5)中,余数在(R2R3)中。
其算法是首先将R2R3清零,然后将被除数逐位左移入R2R3,每移一位判断(R2R3)是否大于除数(R6R7),若大于,则用(R2R3)-(R6R7)代替(R2R3),即将差放到R2R3中,并置商为1,程序中是用INCR5实现的;若(R2R3)小于(R6R7)则置商为0,如此循环16次,即可完成16位除法运算。
实验步骤:
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)在100AH处设置断点。
(3)GB=0000↙运行程序后,在断点处检查运行结果。
寄存器栏中R4、R5的内容为00、02。
(4)用户可修改程序中的R4、R5、R6、R7赋初值的语句,即1000—1007,以便把除数与被除数改成用户自己喜欢的或在程序运行前从键盘上输入除数与被除数,而将程序从1008运行。
实验四数据类实验(数据排序)
一、实验目的:
1、熟悉51指令,了解编程方法。
2、掌握减法指令的使用方法。
二、实验设备:
TD86/51教学实验系统一台。
三、实验内容及步骤:
该程序将内部RAM70H到7FH中的16个数据按小到大顺序重新排序。
实验程序如下:
ORG0000H
0000O21000LJMPMAIN
ORG1000H
10007A70MAIN:
MOVR2,#70H
10027B71MOVR3,#71H
1004110EL2:
ACALLL1
10060AINCR2
1007OBINCR3
1008BB80F9CJNER3,#80H,L2
100B80FEL3:
SJMPL3
100D00NOP
100EEAL1:
MOVA,R2
100FF8MOVR0,A
1010EBMOVA,R3
1011F9MOVR1,A
1012E6MOVA,@R0
1013C3L5:
CLRC
101497SUBBA,@R1
1015E6MOVA,@R0
10164002JCL4
1018C7XCHA,@R1
1019F6MOV@R0,A
101A09L4:
INCR1
101BB980F5CJNER1,#80H,L5
101EF6MOV@R0,A
101F22RET
END
实验步骤:
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)用R0770↙将一组数据装入内部RAM70H—71H单元中。
(3)在100BH处设置断点,运行程序,并检查结果。
(4)被重新排序的数据仍放在70H—7FH中,用R0770↙查看即可。
实验五中断系统实验
一、实验目的:
掌握单片机中断的原理及使用方法。
二、实验设备:
TD86/51教学实验系统一台
三、实验内容及步骤:
1、实验原理及接线:
通过定时器1来定时产生中断控制P1.0线上的脉冲输出,并经三极管驱动扬声器,发出音调信号。
3、程序如下:
ORG0000H
0000021000LJMPMAIN
ORG001BH
001BB290CPLP1.0
001D32RETI
ORG1000H
10007900MAIN:
MOVR1,#00
10027823MOVR0,#23H
1004758920MOVTMOD,#20H
100775A888MOVIE,#88H
100A903FFFL1:
MOVDPTR,#3FFFH
100DE8MOVA,R0
100E08INCR0
100F83MOVCA,@A+PC
101060EEJZMAIN
1012FAMOVR2,A
101374FFMOVA,#0FFH
1015C3CLRC
10169ASUBBA,R2
101723RLA
1018F58DMOVTH1,A
101AD28ESETBA,R2
101CC3L2:
CLRC
101DE582MOVA,DPL
101F9401SUBBTR1
1021F582MOVDPL,A
10259400SUBBA,#00
1027F583MOVDPH,A
10294582ORLA,DPL
102B70EFJNZL2
102DC28ECLRTR1
102F80D9SJMPL1
END
输入以上程序后,使用E命令,从1031单元开始输入以下一组定时器的时间常数,该常数可产生歌曲“送别”的曲调。
33333D33262626262D2D262D3333333333334D453D3D454D454545454545454533333D33262626282D2D262633333333453D393939524D4D4D4D4D4D4D4D4D2D2D2626262626262628282D28262626262D28262D2D333D4D454545454545454533333D333D262626282D2D262D333333333333453D393939524D4D4D4D4D4D4D4D4D0000
4、实验步骤:
(1)按图接好线路,并检查无误。
(2)输入程序检查无误,经汇编、连接后装入系统。
(3)G=0000↙,运行程序,如果以上操作都正确的话,就可以听到悦耳的音乐了。
实验六定时器/计数器实验
一、实验目的:
1、掌握定时器/计数器的定时方法。
2、掌握定时器/计数器的计数方法。
二、实验设备:
TD86/51教学实验系统一台。
三、实验内容及步骤:
1、该程序将两个定时器/计数器都设定为模式0,运行该程序将分别从P1.1和P1.2发出一个方波,用示波器测量其周期。
实验程序如下:
ORG0000H
0000021000LJMPMAIN
ORG000BH
000BB291CPLP1.1
000D758CF8MOVTH0,#0F8H
0010758A06MOVTL0,#06H
001332RETI
ORG001BH
001BB292CPLP1.2
001D758DF8MOVTH1,#0F8H
0020758B06MOVTL1。
#06H
002332RETI
ORG1000H
1000758CF8MAIN:
MOVTH0,#0F8H
1003758A06MOVTL0,#06H
1006758DF8MOVTH1,#0F8H
1009758B06MOVTL1,#06H
100C758900MOVTMOD,#00H
100F758850MOVTCON,#50H
101275A88AMOVIE,#8AH
101580FEL1:
SJMPL1
END
实验步骤:
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)运行程序,并用示波器观察波形。
(3)按RESET键终止程序运行,返回监控。
2、将程序1中MOVTMOD,#00H改为MOVTMOD,#11H,则将两面个定时器/计数器设定为模式1,用示波器测量输出波形的周期。
实验程序如下:
ORG0000H
0000021000LJMPMAIN
ORG000BH
000BB291CPLP1.1
000D758CF8MOVTH0,#0F8H
0010758A06MOVTL0,#06H
001332RETI
ORG001BH
001BB292CPLP1.2
001D758DF8MOVTH1,#0F8H
0020758B06MOVTL1,#06H
002332RETI
ORG1000H
1000758CF8MAIN:
MOVTH0,#0F8H
1003758A06MOVTL0,#06H
1006758DF8MOVTH1,#0F8H
1009758B06MOVTL1,#06H
100C758911MOVTMOD,#11H
100F758850MOVTCON,#50H
101275A88AMOVIE,#8AH
101580FEL:
SJMPL1
EN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 实验 指导书