单片机实验讲义文档格式.docx
- 文档编号:21025126
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:29
- 大小:2.07MB
单片机实验讲义文档格式.docx
《单片机实验讲义文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实验讲义文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
掌握常用算术运算程序的编写方法;
产生常用算术运算子程序备用。
编写下列算术运算子程序,并用“软件模拟仿真”调试通过。
⑴双字节无符号加法运算子程序;
⑵双字节无符号减法运算子程序;
⑶双字节无符号乘法运算子程序;
⑷双字节无符号除法运算子程序。
3、思考题
如何将无符号算术运算程序用于有符号算术运算?
熟习MCS-51逻辑运算类指令的功能特点;
掌握逻辑控制
程序的编写方法。
⑴在实验台上,按下图连接实验线路。
⑵编写程序,模拟下列逻辑表达式的功能:
①P1.2=P1.0∧P1.1
②P1.3=P1.0∨P1.1
③P1.4=P1.0⊕P1.1
⑶将程序在仿真器上调试通过,验证逻辑功能是否正确。
如何用上述电路模拟二-四译码器的逻辑功能?
实验五RAM扩展
掌握外部RAM的扩展方法;
初步学会硬件仿真调试方法;
学会RAM芯片质量检测方法。
⑴在单片机实验台上,按下图连线;
⑴编写6264的质量检测程序,在仿真器上调试通过。
⑵执行程序,验证程序结果是否正确。
如何检查外部RAM的容量?
实验六8279显示器和键盘接口
掌握8279与8031的接口方法;
掌握8279的工作原理和编程方法;
产生通用键盘和显示子程序备用。
⑴熟习8279键盘和显示器电路图。
⑵按下图编写实验程序。
⑶将程序在仿真器上联机调试通过。
执行程序,验证按键功能是否正常?
⑷将键盘和显示程序段,分别保存为子程序备用。
实验七定时/计数器应用
掌握8031片内定时/计数器的使用方法;
学会中断服务程序的编写方法;
产生时钟程序备用。
⑴利用T0产生10ms定时中断,编写一个24小时制数字钟程序。
要求:
从键盘输入时钟初值,并进行初值佥法性检查,如果初值正确,则自动启动时钟计时,否则重新输入初值。
⑵将程序在仿真器上调试通过。
执行程序,用自己的手表作为标准,观察10分钟,修正数字钟的定时器初值。
⑶参照下图连线,将数字钟的定时器初始化为计数器方式,
并修改计时参数,使时钟走时准确。
(选作)
实验八A/D转换器接口
掌握A/D0809与8031的接口方法;
了解0809转换器性能及编程方法;
了解用单片机进行数据采集和显示的方法。
⑴在实验台上,按下图连线。
⑵编写程序,将A/D转换结果按0.00-5.00格式显示。
⑶将程序在仿真器上调试通过。
执行程序,调节模拟电压输出,观察数字电压值是否符合要求。
如何修改程序实现多路数据采集、存储和显示?
A/D0809实验连线图
实验九D/A转换器接口
掌握D/A0832与8031的接口方法;
了解0832转换器性能及编程方法;
了解用单片机产生常用波形的方法。
⑵编写程序产生下列波形:
①锯齿波
②方波
③阶梯波
④三角波
⑤正弦波(选作)
⑶将程序在仿真器上调试通过,并用示波器观察对应波形。
①如何改变输出波形的频率和幅度?
②如何产生任意波形?
实验十串行接口通信
熟习8031片内串行口的性能,掌握串行通信程序的编写方法和调试方法。
⑴相邻两组同学按下图连接通信电缆。
⑵编写双机通信程序,将键盘输入的字符在本机显示,
同时发向对方;
接收方将收到的信息显示在LED显示器上。
⑶将程序在仿真器上调试通过,检查接收和发送的数据是
否一致。
①如何提高通信速率?
②如何实现多机通信?
附录
1Wave单片机实验平台
1.6键值表
键号
键值
01
7
0A
E
13
1
08
8
11
F
1B
2
09
9
19
-
23
3
10
A
1A
+
22
4
18
B
03
GO
21
5
00
C
0B
6
02
D
12
扩展模块
资源分配
27C256
0000H—7FFFH
6264
8000H—9FFFH
8279
0A000H—0AFFFH
备用
0B000H—0BFFFH
0C000H—0CFFFH
0D000H—0DFFFH
0E000H—0EFFFH
1.7硬件空间分配
2实验参考程序
2.16264质量检测程序
程序执行后,如果6264有质量问题,则片内RAM30H,31H单元保存第一个出错单元的地址,32H单元保存该单元的值;
如果6264没有质量问题,则片内RAM30H,31H单元的内容为6264末地址+1(即A000H),32H单元的内容为AAH。
org0000h
sjmpmain
org0030h
main:
movdptr,#8000h;
6264首地址
clra
mov30h,a
mov31h,a
mov32h,a
rp:
mova,#55h
movx@dptr,a
nop
movxa,@dptr
cjnea,#55h,er
incdptr
mova,dph
cjnea,#0a0h,rp
movdptr,#8000h
rp1:
mova,#0aah
cjnea,#0aah,er
incdptr
mova,dph
cjnea,#0a0h,rp1
er:
mov30h,dph
mov31h,dpl
sjmp$
end
2.28279显示器和键盘接口参考程序
⑴在数码管上显示键盘值
ORG0000H
sjmpMAIN
org0030h
MAIN:
MOVSP,#60H
MOVP2,#0A0H
MOVR6,#0FFH
NOP
L0014:
DJNZR6,L0014
MOVR0,#01H
MOVA,#00H;
8279初始化
MOVX@R0,A
MOVA,#32H
MOVX@R0,A
MOVA,#0DFH
MOVX@R0,A
L013A:
MOVXA,@R0
JBACC.7,L013A
MOVR0,#00H
MOVA,#0CH;
显示“P.“
INCR0
MOVA,#80H
L0027:
MOV30H,#80H
MOV31H,#40H
L002D:
ANLA,#07H
CJNEA,#00H,L0037;
有键按下吗?
AJMPL002D
L0037:
MOVR0,#00H
MOVXA,@R0
MOVR1,#00H
MOVDPTR,#JIAN;
查键位
L0041:
MOVA,#00H
MOVCA,@A+DPTR
CJNEA,B,L0049
AJMPL0066
L0049:
INCDPTR
INCR1
MOVA,R1
JBACC.4,L0027
AJMPL0041
L0066:
MOVA,30H
MOVA,R1
MOVR0,31H
MOV@R0,A
INC31H
MOVDPTR,#ZHI
MOVCA,@A+DPTR;
查字形
INC30H
CJNEA,#86H,L0081
AJMPL0027
L0081:
ZHI:
DB0C0H,0F9H,0A4H,0B0H,99H,92H
DB82H,0F8H,80H,90H,88H,83H
DB0C6H,0A1H,86H,8EH,0CH,0BFH
JIAN:
DB01H,08H,09H,10H,18H,00H
DB02H,0AH,11H,19H,1AH,03H,0BH
DB12H,13H,1BH,23H,22H,21H
⑵键盘子程序
KEYSUB:
MOVDPTR,#0A000H;
键盘子程序
MOVXA,@DPTR
MOVB,A
MOVR5,#00H
KEY1:
MOVA,#00H
MOVCA,@A+DPTR
CJNEA,B,KEY2
CLRPSW.5
AJMPKEYRET
KEY2:
INCR5
MOVA,R5
JNBACC.4,KEY1
MOVR5,#00H
SETBPSW.5
KEYRET:
RET
DB01H,08H,09H,10H,18H,00H
DB02H,0AH,11H,19H,1AH,03H
DB0BH,12H,13H,1BH,23H,22H,21H
⑶显示子程序
Display:
mov30h,#80h
mov31h,#40h
movr7,#06h
loop4:
movdptr,#0A001h
mova,30h
movr0,31h
mova,@r0
movdptr,#sedz
movca,@a+dptr
movdptr,#0A000h
movx@dptr,a
inc31h
inc30h
djnzr7,loop4
ret
sedz:
DB0c0h,0f9h,0a4h,0b0h,99h,92h
;
显示字符012345
DB82h,0f8h,80h,90h,88h,83h
;
6789AB
DB0c6h,0a1h,86h,8eh,40H,79H
CDEF0.1.
DB24H,30H,19H,12H,02H,78H
2.3.4.5.6.7.
DB00H,10H,0FFH
8.9.不显示
2.3定时/计数器应用参考程序
24小时制时钟
org0000h
ajmpmain
org000bh
ljmpt0int
ORG0030H
main:
movsp,#60h
movdptr,#0A001h;
mova,#00h
mova,#0dfh
mova,#22h
rest:
mova,#00h;
显示缓冲区初值
movr0,#40h
clr00:
mov@r0,a
incr0
cjner0,#46h,clr00
movtmod,#02h
movth0,#06h
movtl0,#06h
mov57h,#20
mov58h,#100
mov59h,#40h
jmpx:
acalldisplay;
显示
Keyin:
movdptr,#0a001h
anla,#07h
cjnea,#00h,daini1
sjmpjmpx
daini1:
lcallkeysub
mova,r5;
键号在r5中
cjnea,#0ah,ccon
ccon:
jncjmpx
movr0,59h
mov@r0,a
inc59h
cjner0,#45h,jmpx
mov59h,#40h
acallchktime
jbpsw.5,rest;
时间初值不合法(f0=1),重新输入
setb8ch
setb0afh
nop
setb0a9h
dir:
acalldisplay;
sjmpdir
chktime:
movr1,#40h;
检查时钟初值
acallhb
subba,#24h
jncchker
subba,#60h
acallhb
subba,#60h
jncchker
clrpsw.5
ret
chker:
setbpsw.5
hb:
mova,@r1
swapa
incr1
orla,@r1
clrc
toint:
pushpsw
pushacc
pushdph
pushdpl
setbpsw.4
mova,58h
deca
mov58h,a
jnzret0
mov58h,#100
mova,57h
mov57h,a
movr0,#44h
acalldaad1
mova,r2
xrla,#60h
acallclr0
movr0,#42h
acalldaad1
acalldaad1
xrla,#24h
jnzret0
ret0:
popdpl
popdph
popacc
poppsw
reti
daad1:
mova,@r0
incr0
swapa
orla,@r0
adda,#01h
daa
movr2,a
anla,#0fh
mov@r0,a
mova,r2
decr0
anla,#0f0h
clr0:
2.4A/D转换器接口参考程序
把ADC0809通道0输入的模拟电压,转换后送8279显示
sjmpmain
Main:
movdptr,#0a001h;
mova,#00h
mova,#0dfh
mova,#22h
loop0:
movxa,@dptr
jbacc.7,loop0
mov40h,#0Ah;
显示缓冲器初始化
mov41h,#0Dh
mov42h,#1Ah
loop1:
lcalldisplay;
调显示子程序
movdptr,#0B000h;
0809AD开始转换
movr7,#0fh
loop2:
djnzr7,loop2
lcallBRY_5V
SJMLOOP1
BRY_5V:
MOVB,#51
DIVAB
ADDA,#10H;
加小数点
MOV43H,A
MOVA,B
MOVB,#5
DIVAB
CJNEA,#0AH,BRY
MOVA,#09H
MOVB,#04H
BRY:
MOV44H,A
MOVA,B
RLA
MOV45H,A
RET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 讲义