硬件实验三按键与显示实验.docx
- 文档编号:15842164
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:24
- 大小:270.92KB
硬件实验三按键与显示实验.docx
《硬件实验三按键与显示实验.docx》由会员分享,可在线阅读,更多相关《硬件实验三按键与显示实验.docx(24页珍藏版)》请在冰点文库上搜索。
硬件实验三按键与显示实验
本科实验报告
课程名称:
微机原理与接口技术
姓名:
张开桓
学院:
信息学院
系:
控制系
专业:
自动化
学号:
3080104703
指导教师:
齐杭丽
2010年12月15H
专业:
自动化(控制系)
姓名:
张开桓
溯沪乂唆实验报告
学号:
3080104703日期:
2010/12/15地点:
东4-606
课程名称:
微机原理与接口技术指导老师:
齐杭丽成绩:
____
实脸名称:
按键与显示实验实验类型:
设汁型同组学生姓名:
一、实验目的和要求(必填)二、实验内容和原理(必填)
三、主要仪器设备(必填)四、操作方法和实验步骤
五、实验数据记录和处理六、实验结果与分析(必填)
七、讨论、心得
1.实验目的
1熟练运用keil环境对硬件接口进行调试。
2掌握IO扩展键盘的软硬件设计方法;
3掌握数字转换成显示段码的软件译码方法:
4掌握静态显示的原理和相关程序的编写。
5掌握动态显示的原理和相关程序的编写;
2.预习要求
1理解51单片机IO实现独立式键盘扩展的工作原理。
2理解8段数码管静态显示的电路工作原理,采用静态显示有何优缺点:
3理解8段数码管动态显示的电路工作原理,采用动态显示有何优缺点:
4理解8段数码管静态显示的10控制方式及同步串行口控制方式如何实现软件设计;
3.实验设备
计算机1台:
ZDGDTH-1型8OC51实验开发系统1套:
2号导线、8P数据线若干条。
4.基础型实验内容
①査询式键盘和静态显示实验
8个独立式键盘的电路如图2-1所示,串口扩展的6个静态数码管电路如图2-2所示。
设将P0口连接到键盘接口,则如果有键按下,相应的口线输岀为低,否则输出为髙。
单片机通过读取接口的状态,判断按下什么键。
有键按下后,要有一泄的延时,防止由于键盘抖动而引起误操作。
8个按键的键值从右至左分别为0〜7。
实验例程是查询按键操作,并将按下的键值在6个静态数码管上显示出来。
6个静态数码管与6片74LS164(串转井移位寄存器)连接,通过10口与单片机连接,实现串行静态显示的控制。
用8P数拯线将80C51/C8051F020MCU模块的JD1(P1口)与查询式键盘模块JD1C7相连。
在实验箱右上角的扩展区中插入静态串行显示模块,用二号导线将80C51/C8051F020MCU模块的P3.0(RXD)、P3.1(TXD)分别与静态数码显示模块的DIN、CLK相连:
将A7区的电源短路帽JD5A7打到右端。
在Keil环境连续运行该程序,观察实验结果。
电路图:
X
CC
a
6
O
二
5
仝
JD2B
£
d
d
d
d
d
d
d
vcc
R
RI6B
7
RI5B}
A
R口
RI3BJl
A
H12B!
RUB:
•>
RIOBJ
1
R9B【'
i
KO-7
CQ
工
Hri
H
ccs
101^8
4
UJ
益
N
N
N
2
N
N
■c
I<
I<
I<
Ic
■c
KOKIK2K3K4K5K6K7
图2-18个独立式按键电路
(a
源程序:
DBUFEQU
30H
DAT
EQU
P3.0
CLK
EQU
P3.1
ORG
OOOOH
LO:
MOV
Pl,#OFFH
LI:
MOV
A,Pl
CJNE
A,#OFFH,KEYPUT
SJMP
LI
KEYPUT:
CJNE
A,#OFEH,NEXT1
SJMP
KO
NEXT1:
CJNE
A,#OFDH,NEXT2
SJMP
KI
NEXT2:
CJNE
A,#OFBH,NEXT3
SJMP
K2
NEXT3:
CJNE
A,#0F7H,NEXT4
SJMP
K3
NEXT4:
CJNE
A,#OEFH,NEXT5
SJMP
K4
NEXT5:
CJNE
A,#ODFH,NEXT6
SJMP
K5
NEXT6:
CJNE
A,#OBFH,NEXT?
SJMP
K6
NEXT?
:
SJMP
K7
KO:
MOV
B,#OOH
LCALL
DISP
LJMP
LO
KI:
MOV
B,#O1H
LCALL
DISP
LJMP
LO
K2:
MOV
B,#02H
LCALL
DISP
LJMP
LO
K3:
MOV
B,#03H
LCALL
DISP
LJMP
LO
K4:
MOV
B,#O4H
LCALL
DISP
LJMP
LO
K5:
MOV
B,#05H
LCALL
DISP
LJMP
LO
K6:
MOV
B,#06H
LCALL
DISP
LJMP
LO
K7:
MOV
B,#07H
LCALL
DISP
LO
DBUF,B
DBUF+1,B
DBUF+2,B
DBUF+3,B
DBUF+4,B
DBUF+5,B
RO,#DBUF
DPTR,#TAB
R2,#06H
A,©RO
A,©A+DPTR
R3,#08H
A
DAT,C
CLK
CLK
R3,DPI
RO
R2,DPO
LJMP
DISP:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
DPO:
MOV
MOVC
MOV
DPI:
RLC
MOV
CLR
SETB
DJNZ
INC
DJNZ
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5
DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B
DB58H,5EH,79H,71H,OOH,40H;C,D,E,F,
END
结果:
按前述要求连接硬件电路,并在K“1上并运行该程序。
然后.按动独立键盘上的按键,按下KEY0-KEY7中的每个键时,即在六位静态数码管上显示该键键值,直到按下下一个键。
②动态显示实验
6位动态数码管显示的接口电路设计如图2-3所示,假设P0口输出显示的段码,
P2口输岀位码,用8P数据线将80C51/C8051F020MCU模块的JDO(P0口)、JD2(P2口)分别与A7区的JD1A7.JD2A7相连;A7区的电源短路帽JD5A7打到右端。
在Keil环境
连续运行该程序,
观察实验结果。
8劝询细
JMBLMIM
JD1A4
JD2A4
图2・36位动态数码管显示接口电路
流程图如下:
源程序:
DBUF
TEMP
ORG
LJMP
ORG
DISP:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
DPOO:
MOV
MOVC
MOV
INC
INC
DJNZ
EQU30H
EQU40H
0000H
DISP
0100H
30H,#8
31H,#6
32H,#1
33H,#8
34H,#6
35H,#1
RO,#DBUF
R1,#TEMP
R2,#6
DPTR,#SEGTAB
A,©RO
A,©A+DPTR
@R1,A
R1
RO
R2,DPOO
DISPO:
MOV
RO,#TEMP
MOV
Rl,#6
MOV
R2,#l
DP01:
MOV
A,©RO
MOVPO,A
MOVA,R2
MOVP2,A
ACALLDELAY
MOVA,R2
RLA
MOVR2,A
INCRO
DJNZRl,DPO1
SJMPDISPO
SEGTAB:
DB
3FH,06H,5BH
;0,1,2
DB
4FH,66H,6DH
;3,4,5
DB
7DH,07H,7FH
;6,7,&
DB
6FH,77H,7CH
;9,A,B
DB
58H,5EH,7BH
;C,D,E
DB
71H,OOH,40H
;F,,-
DELAY:
MOV
R4,#03H
AA1:
MOV
R5,#OFFH
AA:
NOP
NOP
DJNZ
R5,AA
DJNZ
R4,AA1
RET
END
结果:
按要求连接硬件电路并在Keil±运行上述源程序,此时,动态数码管上显示数字“168168”。
5.设计型实验内容
1在最后一个数码管上依次显示a、b、•…f各段,每段显示时间为100ms,用TO泄
时器实现;
源程序:
DBUF
EQU30H
ORG
0000H
LJMP
DISP
ORG
0100H
DISP:
MOV
DBUF,#01H
MOV
R1,#O1H
MOV
R2,#6
DP:
MOV
A,DBUF
MOV
PO,A
MOV
A,R1
MOV
P2,A
ACALL
DELAY
MOV
A,DBUF
RL
A
MOV
DBUF,A
DJNZ
R2,DP
SJMP
DISP
DELAY:
MOV
TMOD,#01H
MOV
R3,#2
LOOP:
MOV
THO,#3CH
MOV
TLO,#OBOH
SETB
TRO
JNB
TFO,$
CLR
TFO
DJNZ
R3,LOOP
RET
END硬件电路连接:
用8P数拯线将80C51/C8051F020MCU模块的JDO(P0口)、JD2(P2口)分别与A7区的JD1A7、JD2A7相连:
A7区的电源短路帽JD5A7打到右端。
结果:
连接好电路并在Ke订上运行程序,则最后一个动态数码管的边缘各段(即对应a.b、c、d.e、f各段)依顺时针方向依次点亮,在该数码管上形成了一个运动着的小边框。
与预期通过动态数码管显示所要实现的功能相符,实验成功。
2分别指左IO控制动态扫描显示模块或静态显示模块电路,画岀流程并设计程序实现数码管显示自己的学号后六位号码;
动态显示学号流程图:
动态数码管显示学号后六位流程图
HJJO#创AOK:
IW
H£O存诃AOK:
Avnaa
一'目:
HOP4H00'HHaa
ya。
:
H9Z“H匹'H89
aa
46-
H32卫収4HJ9
aa
az/9-
HJZ“HZOW
aa
*'£-
Hd9'H99“Hdb
aa
乙ro:
H99'H90'H范
9Q
:
9vioas
odsiadKfs
ioda“Qzxfa
DNI
AOK
TH
AA:
NOP
NOP
DJNZR5,AA
DJNZR4,AA1
RET
END
硬件电路连接:
用8P数据线将80C51/C8051F020MCU模块的JDO(P0口)、JD2(P2口)分别与A7区的JD1A7、JD2A7相连;A7区的电源短路帽JD5A7打到右端。
其中P0口输岀段码,P2口输出位码。
结果:
按要求连接硬件电路并在Keil上运行上述源程序,此时,动态数码管上显示自己学号的后六位,即104703c
3用按键输入自己的学号,并在静态或动态数码管上显示出来。
源程序:
DBUF
DAT
CLK
ORG
EQU30H
EQUP3.0
EQUP3.1
0000H
L0:
MOV
Pl,#OFFH
L1:
MOV
A,Pl
CJNE
A,#OFFH,KEYPUT
SJMP
LI
KEYPUT:
CJNE
A,#OFEH,NEXT1
SJMP
KO
NEXT1:
CJNE
A,#OFDH,NEXT2
SJMP
KI
NEXT2:
CJNE
A,#OFBH,NEXT3
SJMP
K2
NEXT3:
CJNE
A,#0F7H,NEXT4
SJMP
K3
NEXT4:
CJNE
A,#OEFH,NEXT5
SJMP
K4
NEXT5:
CJNE
A,#ODFH,NEXT6
SJMP
K5
NEXT6:
CJNE
A,#OBFH,NEXT?
SJMP
K6
NEXT7:
SJMP
K7
K0:
MOV
DBUF,#00H
LCALL
DISP
LJMP
LO
K1:
MOV
DBUF,#01H
LCALL
DISP
LJMP
LO
K2:
MOV
DBUF,#02H
LCALL
DISP
LJMP
LO
K3:
MOV
DBUF,#03H
LCALL
LJMP
DISP
L0
K4:
MOV
DBUF,#04H
LCALL
DISP
LJMP
L0
K5:
MOV
DBUF,#05H
LCALL
DISP
LJMP
L0
K6:
MOV
DBUF,#06H
LCALL
DISP
LJMP
L0
K7:
MOV
DBUF,#07H
LCALL
DISP
LJMP
L0
DISP:
MOV
DPTR,#TAB
DP0:
MOV
A,DBUF
MOVC
A,©A+DPTR
MOV
R3,#08H
DPI:
RLC
A
MOV
DAT,C
CLR
CLK
SETB
CLK
DJNZ
R3,DPI
CALL
DELAY
RET
DELAY:
MOV
R5,#5
DI:
MOV
R6,#200
D2:
MOV
R7,#248
DJNZ
R7,$
DJNZ
R6,D2
DJNZ
R5,D1
RET
TAB:
DB3FH,06H,5BH
;o,1,2
DB4FH,66H,6DH
;3,4,5
DB7DH,07H,7FH;
6,7,&
DB6FH,77H,7CH
;9,A,B
DB58H,5EH,7BH;
C,D,E
DB71H,OOH,40H
;F,
END
硬件电路连接:
用8P数据线将80C51/C8051F020MCU模块的JD1(P1口)与査询式键盘模块JD1C7相连。
在实验箱右上角的扩展区中插入静态串行显示模块,用二号导线将80C51/C8051F020MCU模块的P3.0(RXD).P3.1(TXD)分别与静态数码显示模块的DIN.CLK相连:
将A7区的电源短路帽JD5A7打到右端。
结果:
连接好电路并在Keil上运行以上程序,则每按一次键,先在静态数码管的最后一位显示该键键值,而后每按一次键,对应的新的键值就显示在静态数码管最后一位,原来显示的键值则平行左移。
最终,当按下的键依次为104703时,数码管上即显示104703,学
号的后六位。
若学号中含大于7的数字,则可以之代替不需要的数字,从而保证学号中的尽可能多的数字都被能显示出来。
6.综合型实验
1循环显示6个数码管的边缘各段,形成一个运动着的大边框。
源程序:
DBUF
EQU30H
ORG
0000H
LJMP
DISP
ORG
0100H
DISP:
CALL
DISPO
CALL
DISP1
CALL
DISP2
CALL
DISP3
SJMP
DISP
DISPO:
MOV
DBUF,#01H
MOV
Rl,#01H
MOV
R2,#6
DPO:
MOV
A,DBUF
MOV
PO,A
MOV
A,R1
MOV
P2,A
ACALL
DELAY
MOV
A,R1
RL
A
MOV
R1,A
DJNZ
RET
R2,DPO
DISP1:
MOV
DBUF,#20H
MOV
Rl,#20H
MOV
R2,#2
DPI:
MOV
A,DBUF
MOV
PO,A
MOV
A,R1
MOV
P2,A
ACALL
DELAY
MOV
A,DBUF
RR
A
MOV
DBUF,A
DJNZ
RET
R2,DPI
DISP2:
MOV
DBUF,#08H
MOV
Rl,#20H
MOV
R2,#6
DP2:
MOV
A,DBUF
MOV
PO,A
MOV
A,R1
MOV
P2,A
ACALL
DELAY
MOV
A,R1
RR
A
MOV
R1,A
DJNZ
R2,DP2
RET
DISP3:
MOV
DBUF,#04H
MOV
Rl,#01H
MOV
R2,#2
DP3:
MOV
A,DBUF
MOV
PO,A
MOV
A,R1
MOV
P2,A
ACALL
DELAY
MOV
A,DBUF
RR
A
MOV
DBUF,A
DJNZ
R2,DP3
RET
DELAY:
MOV
TMOD,#01H
MOV
R3,#2
LOOP:
MOV
THO,#3CH
MOV
TLO,t?
OBOH
SETB
TRO
JNB
TFO,$
CLR
TFO
DJNZ
R3,LOOP
RET
END
硬件电路连接:
用8P数据线将80C51/C8051F020MCU模块的JDO(P0口)、JD2(P2口)分別与A7区的JD1A7、JD2A7相连;A7区的电源短路帽JD5A7打到右端。
其中P0口输出段码,P2口输出位码。
结果:
按要求连接硬件电路并在Ke订环境下运行以上程序,则可在六位动态数码管上各管的边缘各段依次点亮,形成了一个运动着的大边框。
程序通过动态数码管显示的原理,使其段码与位码相互配合输出,从而实现了题述要求,结果与预期相符,程序设计成功。
7.讨论、心得
1首先,通过本次实验,进一步理解了理论课上所学的51单片机10实现独立式键盘扩展的工作原理,并且掌握了其相关的软硬件设计方法:
2通过实际的设讣应用.加深了对八段数码管静态和动态显示电路的工作原理及英
各自的优缺点、控制方式和软件设汁方法的理解,并通过亲自设汁编写程序更近一步掌握了显示这一块的内容;
3在实验过程中需注意结合实际的硬件电路调整自己程序中的显示顺序、控制方式以及延时子程序的调用等。
比如,实验箱中的数码管都是从右往左排的,所以输入显示值时应当先输前面的,而不需做调整,否则画蛇添足、适得北反:
再如,在用按键输入学号时,应在每次显示后加0.5s左右的延时子程序,若不加,则按键输入后六个数码管只能显示同一个数字,若延时过长则会在按键较快时反应不过来导致某些按键动作被忽略,输入出现错误:
4由于前面两次实验对运用Keil环境进行硬件接口调试方法及使用的不熟悉,致使两次实验都有内容未调试完。
这一次取鉴前车,在实验前作了更为充分的准备与学习,所以在很短的时间内即完成了要求实验内容,也肃淸了前而遗留的问题。
并在多余时间里现场成功设计、编写并完成了另外的综合实验内容,不可不谓收获颇丰,想是瑞雪兆丰之故吧!
阅1.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 实验 按键 显示