单片机实验指导书.docx
- 文档编号:4179236
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:19
- 大小:30.75KB
单片机实验指导书.docx
《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(19页珍藏版)》请在冰豆网上搜索。
单片机实验指导书
《单片机原理与应用》实验指导书
睢丙东马洪涛孟志永
2004年12月
实验一数制转换实验
一、实验目的:
(1)、熟悉单片机实验系统板、稳压电源及示波器的使用方法。
(2)、培养程序编制及调试的方法。
(3)、输入自己编写的程序(机器码),并通过实验板和示波器观察程序运行结果。
二、实验要求:
(1)、给出程序设计流程图。
(2)、设计数制转换实验程序。
(3)、记录单片机实验板晶体振荡器的波形图。
(4)、记录单片机实验板上电复位电路的波形图。
三、实验原理:
以下是把16进制数转换为10进制数的参考程序清单及机器码表:
程序清单
程序地址
机器码
BINBCD:
MOV
B,
#100
0100H:
75H
F0H
64H
DIV
AB
0103H:
84H
MOV
30H,
A
0104H:
F5H
30H
MOV
A
B
0106H:
E5H
F0H
MOV
B,
#0AH
0108H:
75H
F0H
0AH
DIV
AB
010BH:
84H
SWAP
A
010CH:
C4H
ADD
A,
B
010DH:
25H
F0H
MOV
31H,
A
010FH:
F5H
31H
RET
0111H:
22H
测试程序:
程序清单
程序地址
机器码
TEST:
MOV
A,
#10H
0150H:
LCALL
BINBCD
SJMP
$
四、实验仪器:
稳压电源一台
HB-51教学实验系统一套
五、实验步骤:
1、HB-51教学实验系统简介:
(1)、+5V电源,+12V电源,-12V电源
(2)、CPU、程序存储器、数据存储器、晶体振荡器、手动复位、LED发光管、键盘、显示器(LED数码管)。
(3)、显示器介绍
该系统共有6个数码管,分为两组,左边4个为一组,右边2个为一组。
在大部分情况下,左边4个数码管作为地址显示器,右边2个数码管作为内容显示器。
(4)、键盘介绍
0~F
为数字键,用来输入0~F的数字,并且系统默认十六进制输入
MEM
为程序存储器内容检查/修改键
REG
为寄存器/内部RAM内容检查/修改键
LAST
用来向上跳一个地址单元
NEXT
用来向下跳一个地址单元
EXEC
为连续执行键
SCAL
为单步调用键
STEP
为单步执行键
MON
为返回系统监控状态,相当于让系统回到刚刚上电时的状态。
也是其他功能键的前导按键
2、HB-51教学实验系统与稳压电源的连接。
实验系统上的+5V电源与稳压电源正确相连,接好以后,给稳压电源上电。
此时,如果系统工
作正常,会在显示器上显示“HB--51”。
如果显示内容不是“HB--51”,则说明系统上电复位过程不正常。
此时按一下红色的手动复位按钮,系统就应当正常工作了。
如果系统还是有问题,甚至,显示器什么都不显示,处于黑屏状态,则立刻关掉稳压电源,然后请实验室老师来解决问题。
3、HB-51教学实验系统程序输入方法
(1)、程序输入方法
MON→0100→MEM→75→NEXT→F5→NEXT→64。
。
。
。
NEXT→22。
程序输入完毕。
其中,MON,MEM,NEXT为对应的功能键,0100H为本次输入程序的首地址。
75,F5,64,22等为程序的机器码。
(2)、已输入程序的检查方法:
MON→0102→MEM→NEXT→NEXT→。
。
。
。
。
。
其中,0102H为所要检查单元的地址,按NEXT键可以查看下一单元0103H的内容。
(3)、已输入程序的修改方法:
MON→0102→MEM→输入要修改的内容→NEXT→。
。
。
。
。
。
其中,0102H为所要修改单元的地址。
(4)、寄存器/内部RAM内容检查和修改方法:
内容检查:
MON→6(AB)→REG
表示查看寄存器A和寄存器B的内容,内容会在最右边的4个数码管上显示,其中左边的2个是A的内容,右边的2个是B的内容,且以16进制的方式表示。
例如,如果看到右边4个数码管显示的内容为5566,则表示A的内容为55H,B的内容为66H。
内容修改:
MON→6(AB)→REG→10→20
其中6(AB)代表按键,此时最左边的数码管显示6,右边4个数码管2个一组,从左到右代表寄存器A和寄存器B的内容,此时输入10和20则表示给A寄存器传送了一个数值10H,给B寄存器传送了一个数值20H。
相当于执行了MOVA,#10HMOVB,#20H。
同样,MON→30→REG→10,这个步骤表示给内部RAM30H输入了一个数值10H,相当于执行MOV30H,#10H的语句。
4、HB-51教学实验系统程序运行方法:
(1)、单步运行(STEP)
MON→0102(表示从0102H单元开始执行程序,下同)→MEM→STEP→观察结果→STEP。
。
。
每按一次STEP键,程序就会执行一条指令,显示器左边的4个数码管会显示下一条要执行指令的地址,左边2个数码管会显示寄存器A当前的内容。
(2)、全速运行(EXEC)
MON→0102(表示从0102H单元开始执行程序)→MEM→EXEC
程序将连续执行,可以用MON键打断程序执行,回到系统监控状态。
(3)、单步调用(SCAL)
MON→0102(代表从0102H单元开始执行程序)→MEM→SCAL
每按一下SCAL键,程序就会执行一条,如果当前指令遇到的是子程序调用,则当前子程序会被当作一条指令来执行。
5、参照实验原理给出的程序,手工汇编测试程序的机器码,并按照给定的地址输入到实验板中,分别用单步运行、全速运行和单步调用3种方法执行程序,执行完成后,用寄存器检查功能查看30H和31H单元的内容,并记录下来。
修改测试程序中的第一句MOVA,#XX,修改给A传递的数值,然后重新执行程序,并观察和记录30H和31H寄存器的内容,验证程序的正确性。
A的内容
31H的内容
30H的内容
A的内容
31H的内容
30H的内容
六、实验注意事项:
(1)、注意稳压电源的使用,极性不得接反,电压不得超过5V。
(2)、程序输入时要注意把输入的代码和自己的程序代码对照,防止输入错误。
(3)、执行程序时,注意观察结果,记录实验现象。
七、实验报告要求:
写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。
实验二模拟交通灯实验
一、实验目的:
(1)、熟悉实验板,稳压电源,示波器的用法。
(2)、掌握单片机P1口作为基本的I/O口的用法。
(3)、培养程序编制以及调试的方法。
(4)、输入自己编写的程序,并通过实验板和示波器观察程序运行结果。
二、实验要求:
(1)、给出程序设计流程图。
(2)、设计交通灯实验程序。
(3)、记录P1口输出的波形。
三、实验原理:
(1)、设计交通灯模拟驱动电路,并与系统电路作比较。
(2)、画出交通灯控制程序流程图。
(3)、编写交通灯模拟程序。
(4)、把编写的程序进行手工汇编,翻译成机器码。
四、实验仪器:
稳压电源一台
HB-51教学实验系统一套
示波器一台
五、实验步骤:
(1)、参照实验一实验步骤部分的内容,将翻译好的机器码录入系统板。
(2)、通过按单步运行键,观察程序执行过程,检查程序执行结果。
(3)、通过按连续执行键,观察程序执行结果,与实际的交通灯控制过程进行比对,验证程序。
(4)、通过实验结果修改程序,以达到用最小代码实现最大的功能。
六、实验注意事项:
(1)、稳压电源的使用,不得将电源接反,或者使用过高电压。
(2)、录入程序时注意检查录入的程序代码和自己翻译的是否一致,防止输入错误。
(3)、观察程序运行结果,并仔细检查思考程序的正确性,明确程序执行的过程。
七、实验报告要求:
写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。
八、附参考电路
由电路图可知当P1.4输出为低电平时,LED发光管L5亮,当P1.4输出高电平时,LED发光管L5灭。
在系统板中从P1.0到P1.5接了6个LED发光管,颜色依次为红黄绿、红黄绿,同学们可以根据实际路口的交通灯变化情况编写程序,下面给出单个指示灯闪烁的例子:
单个LED指示灯闪烁的程序清单
程序地址
机器码
LED_Shine:
CLR
P1.4
;指示灯亮
0100H
LCALL
Delay1s
;延时1秒
SETB
P1.4
;指示灯灭
LCALL
Delay1s
;延时1秒
SJMP
LED_Shine
;循环
RET
延时100ms的子程序
Delay100ms:
MOV
R7,
#100
0300H
Loop1:
MOV
R6,
#250
DJNZ
R6,
$
DJNZ
R7,
Loop1
RET
延时1秒的子程序
Delay1s:
MOV
R5,
#10
0400H
Loop2
LCALL
Delay100ms
DJNZ
R5,
Loop2
RET
实验三显示实验
一、实验目的:
(1)、熟悉实验板,稳压电源,示波器的用法。
(2)、掌握LED数码管动态扫描的方法,掌握单片机总线控制方法。
(3)、培养程序编制以及调试的方法。
(4)、输入自己编写的程序,并通过实验板和示波器观察程序运行结果。
二、实验要求:
(1)、给出程序设计流程图。
(2)、设计LED数码管动态扫描程序。
(3)、记录LED数码管动态扫描信号的波形。
(4)、在参考程序的基础上编写一个让“123456”闪烁显示的子程序,手工汇编自己编写的程序,并在实验板上验证,程序清单上应有详细的中文注释。
(5)、在参考程序的基础上编写一个让“123456”依次向左循环显示的子程序,手工汇编自己编写的程序,并在实验板上验证,程序清单上应有详细的中文注释。
三、实验原理:
(1)、自己设计动态扫描显示电路的电路图,并与系统实验板电路做比较。
(2)、画出动态扫描显示电路的流程图。
(3)、编写动态扫描显示程序。
(4)、把编写的动态扫描显示程序,进行手工汇编,翻译成机器码。
四、实验仪器:
稳压电源一台
HB-51教学实验系统一套
示波器一台
五、实验步骤:
(1)、参照实验一实验步骤部分的内容,将翻译好的机器码录入系统板。
(2)、通过按单步运行键,观察程序执行过程,检查程序执行结果。
(3)、通过按连续执行键,观察程序执行结果,注意与单步运行时的不同。
(4)、修改程序中显示的参数,观察显示结果。
(5)、修改程序中显示的时间,观察显示结果,进一步深入体会动态扫描。
(6)、用示波器观察并记录动态扫描时各位扫描信号的逻辑关系。
六、实验注意事项:
(1)、稳压电源的使用,不得将电源接反,或者使用过高电压。
(2)、录入程序时注意检查录入的程序代码和自己翻译的是否一致,防止错误输入。
(3)、观察程序运行结果,并仔细检查思考程序的正确性,明确程序执行的过程。
七、实验报告要求:
写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。
阐述动态扫描的原理,动态扫描时各个位的位扫描信号的逻辑关系。
八、附参考电路
参考电路图见附录I。
下面给出动态扫描显示子程序的程序清单:
ORG80E0H;显示子程序
程序地址
机器码
DISP:
MOV
R1,
#75H
;首位地址
MOV
R2,
#20H
;位指针
MOV
A,
R2
DISP1:
MOV
DPTR,
#0E400H
MOVX
@DPTR,
A
;输出字位
MOV
A,
@R1
;取显示缓冲区内容
ADD
A,
#11H
MOVC
A,
@A+PC
;取字型
DISP2:
MOV
DPTR,
#0E000H
MOVX
@DPTR,
A
;输出字型
MOV
R3,
#00H
;延时时间常数
DJNZ
R3,
$
CLR
A
MOVX
@DPTR,
A
;关显示
DEC
R1
;修改缓冲区地址
MOV
A,
R2
RRC
A
;修改位指针
MOV
R2,
A
JNC
DISP1
;未完继续
RET
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;字型表
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;
DB00H,76H,40H,73H,3EH,3DH,5CH,38H,50H;
数码管上面显示“123456”的子程序的程序清单:
显示“123456”子程序的程序清单
程序地址
机器码
Start:
MOV
75H,
#01H
;给显示缓冲区赋值
0100H
MOV
74H,
#02H
MOV
73H,
#03H
MOV
72H,
#04H
MOV
71H,
#05H
MOV
70H,
#06H
Disp_Loop:
LCALL
DISP
;调用显示子程序
SJMP
Disp_Loop
;循环调用
RET
实验四键盘实验
一、实验目的:
(1)、熟悉实验板,稳压电源,示波器的用法。
(2)、掌握矩阵键盘的原理,掌握单片机总线控制的方法。
(3)、设计矩阵键盘扫描实验程序。
(4)、培养程序编制以及调试的方法。
(5)、输入自己编写的程序,并通过实验板和示波器观察程序运行结果。
二、实验要求:
(1)、给出程序设计流程图。
(2)、设计矩阵键盘扫描实验程序。
(3)、记录矩阵键盘扫描信号的波形。
(4)、在参考程序的基础上,编写子程序实现每按一个键,键值就在数码管上依次向左滚动显示,对自己的程序进行手动汇编,并在实验板上进行验证,程序清单上应有详细的中文注释。
三、实验原理:
(1)、自己设计矩阵键盘电路的电路图,并与系统实验板电路做比较。
(2)、画出矩阵键盘电路驱动的程序流程图。
(3)、编写矩阵键盘的驱动程序。
(4)、把编写的矩阵键盘程序,进行手工汇编,翻译成机器码。
四、实验仪器:
稳压电源一台
HB-51教学实验系统一套
示波器一台
五、实验步骤:
(1)、参照实验一实验步骤部分的内容,将翻译好的机器码录入系统板。
(2)、通过按单步运行键,观察程序执行过程,检查程序执行结果。
(3)、通过按连续执行键,观察程序执行结果,注意与单步运行时的不同。
(4)、用示波器观察并记录矩阵键盘扫描时行列信号的逻辑关系。
六、实验注意事项:
(1)、稳压电源的使用,不得将电源接反,或者使用过高电压。
(2)、录入程序时注意检查录入的程序代码和自己翻译的是否一致,防止错误输入。
(3)、观察程序运行结果,并仔细检查思考程序的正确性,明确程序执行的过程。
七、实验报告要求:
写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。
阐述矩阵键盘的驱动原理,记录矩阵键盘扫描时行列信号的逻辑关系。
八、附参考电路
参考电路图见附录I。
矩阵键盘扫描子程序的程序清单
ORG8120H;键盘扫描子程序
程序地址
程序代码
KBS:
MOV
R2,
#0DFH
;行指针
MOV
R3,
#06H
;行数
KB1:
MOV
DPTR,
#0E400H
MOV
A,
R2
MOVX
@DPTR,
A
;输出一行
MOV
DPTR,
#0E800H
MOVX
A,
@DPTR
;读键盘
CPL
A
ANL
A,
#1FH
JNZ
KB2
;有键按下转出
MOV
A,
R2
RR
A
;修改行指针
MOV
R2,
A
DJNZ
R3,
KB1
;未完继续
CLR
A
KB2:
RL
A
;拼键值
RL
A
RL
A
ORL
A,
R3
MOV
R2,
A
MOV
DPTR,
#TAB
MOV
R3,
#1CH
KB3:
MOV
A,
R3
;查表
MOVC
A,
@A+DPTR
CJNE
A,
02H,KB4
;未找到转走
MOV
A,
R3
;键值->A
RET
KB4:
DJNZ
R3,
KB3
MOV
A,
R3
;键值为#00H
RET
TAB:
DB81H,82H,42H,22H,83H,43H,23H,84H;键值表
DB44H,24H,14H,13H,12H,11H,21H,41H;
DB00H,85H,45H,25H,15H,86H,46H,26H;
DB16H,0CH,0BH,0AH,09H;
每按下一个按键(仅限于0~F),把按键数值在数码管上显示的子程序的程序清单
子程序的程序清单
程序地址
程序代码
Start:
MOV
A
#10H
0100H
74
10
MOV
75H,
A
F5
75
MOV
74H,
A
F5
74
MOV
73H,
A
F5
73
MOV
72H,
A
F5
72
MOV
71H,
A
F5
71
MOV
70H,
A
;清空显缓区75~70
F5
70
Loop:
LCALL
KBS
;调用键盘扫描
010EH
12
81
20
CJNE
A,#10H,
Next
;如果有按键则转
0111H
B4
10
05
LCALL
DISP
;刷新显示
12
80
E0
SJMP
Loop
;无按键则重新判断
80
F5
Next:
LCALL
Delay10ms
;软件去抖动
0119H
12
03
00
LCALL
KBS
;调用键盘
12
81
20
CJNE
A,#10H,
Loop1
;有按键则送显示
B4
10
02
SJMP
Loop
;无按键则继续扫描
80
EA
Loop1:
MOV
75H,
A
;键值送显示缓冲区
0124H
F5
75
Wait:
LCALL
DISP
;调显示
0126H
12
80
E0
LCALL
KBS
;调用按键扫描
12
81
20
CJNE
A,#10H,
Wait
;等待按键抬起
B4
10
F7
SJMP
Loop
;重新开始检测按键
80
DD
RET
;
注:
程序中需要的Delay10ms子程序,需要同学们自己编写。
附录I:
键盘显示电路图
附录II:
系统译码电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书