实验三按键与显示实验Word文档下载推荐.docx
《实验三按键与显示实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验三按键与显示实验Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
![实验三按键与显示实验Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/4f93cfa7-1bb9-40d9-882c-771e2f0390a0/4f93cfa7-1bb9-40d9-882c-771e2f0390a01.gif)
4.基础型实验内容
1查询式键盘和静态显示实验
8个独立式键盘的电路如图2-1所示,串口扩展的6个静态数码管电路如图2-2所示。
设将P0口连接到键盘接口,则如果有键按下,相应的口线输出为低,否则输出为高。
单片机通过读取接口的状态,判断按下什么键。
有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。
8个按键的键值从右至左为0~7。
实验例程是查询按键操作,并将按下的键值在6个静态数码管上显示出来。
6个静态数码管与6片74LS164(串变并移位寄存器)连接,与单片机通过IO口连接,实现串行静态显示的控制。
电路图:
图2-18个独立式按键电路
图2-26位静态数码管显示接口电路
DBUFEQU30H
DATEQUP3.0
CLKEQUP3.1
ORG0000H
L0:
MOVP1,#0FFH
L1:
MOVA,P1
CJNEA,#0FFH,KEYPUT
SJMPL1
KEYPUT:
CJNEA,#0FEH,NEXT1
SJMPK0
NEXT1:
CJNEA,#0FDH,NEXT2
SJMPK1
……
K0:
MOVB,#00H
LCALLDISP
LJMPL0
K1:
MOVB,#01H
DISP:
MOVDBUF,B
MOVDBUF+1,B
MOVDBUF+2,B
MOVDBUF+3,B
MOVDBUF+4,B
MOVDBUF+5,B
MOVR0,#DBUF
MOVDPTR,#TAB
MOVR2,#06H
DP0:
MOVA,@R0
MOVCA,@A+DPTR
MOVR3,#08H
DP1:
RLCA
MOVDAT,C
CLRCLK
SETBCLK
DJNZR3,DP1
INCR0
DJNZR2,DP0
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,00H,40H;
C,D,E,F,,-
END
2动态显示实验
6位动态数码管显示的接口电路设计如图2-3所示,假设P0口输出显示的段码,P2口输出位码,用8P数据线将80C51/C8051F020MCU模块的JD0(P0口)、JD2(P2口)分别与A7区的JD1A7、JD2A7相连;
A7区的电源短路帽JD5A7打到右端。
在Keil环境连续运行该程序,观察实验结果。
图2-36位动态数码管显示接口电路
流程图如下:
在动态数码管上显示168168的源程序:
TEMPEQU40H
ORG0000H
LJMPdisp
ORG0100H
disp:
MOV30h,#8
MOV31h,#6
MOV32h,#1
MOV33h,#8
MOV34h,#6
MOV35h,#1
MOVR0,#DBUF
MOVR1,#TEMP
MOVR2,#6
MOVDPTR,#SEGTAB
DP00:
MOVCA,@A+DPTR
MOV@R1,A
INCR1
INCR0
DJNZR2,DP00
DISP0:
MOVR0,#TEMP
MOVR1,#6
MOVR2,#1
DP01:
MOVP0,A
MOVA,R2
MOVP2,A
ACALLDELAY
RLA
MOVR2,A
DJNZR1,DP01
SJMPDISP0
SEGTAB:
DB3FH,06H,5BH;
0,1,2
DB4FH,66H,6DH;
3,4,5
DB7DH,07H,7FH,;
6,7,8,
DB6FH,77H,7CH;
9,A,B
DB58H,5EH,7BH,;
C,D,E
DB71H,00H,40H;
F,,-
DELAY:
MOVR4,#03H
AA1:
MOVR5,#0FFH
AA:
NOP
DJNZR5,AA
DJNZR4,AA1
RET
5.设计型实验内容
1在最后一个数码管上依次显示a、b、….f各段,每段显示时间为100ms,用T0定时器实现;
MOVR0,#01H
MOVR1,#01H
MOVR2,#06H
DP01:
MOVA,R0
MOVA,R1
RLA
MOVR0,A
DJNZR2,DP01
LJMPDISP0
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#3CH
SETBTR0
JNBTF0,$
CLRTF0
2分别指定IO控制动态扫描显示模块、静态显示模块电路,画出流程并设计程序实现数码管显示自己的学号后六位号码;
静态:
DBUFEQU30H
DATEQUP3.0
CLKEQUP3.1
MOVDBUF,#1
MOVDBUF+1,#0
MOVDBUF+2,#2
MOVDBUF+3,#7
MOVDBUF+4,#1
MOVDBUF+5,#9
MOVDPTR,#TAB
MOVR3,#08H
RLCA
MOVDAT,C
CLRCLK
SETBCLK
DJNZR3,DP1
DJNZR2,DP0
SJMP$
DB3FH,06H,5BH,4FH,66H,6DH
DB7DH,07H,7FH,6FH,77H,7CH
DB58H,5EH,79H,71H,00H,40H
动态:
LJMPDISP
MOV30H,#9
MOV31H,#1
MOV32H,#7
MOV33H,#2
MOV34H,#0
MOV35H,#1
MOVR0,#TEMP
MOVR1,#06H
MOVR2,#01H
MOVR4,#03H
RET
3用按键输入自己的学号,并在静态或动态数码管上显示出来。
MOVP1,#0FFH
MOVA,P1
CJNEA,#0FFH,KEYPUT
LJMPL1
LJMPK0
LJMPK1
NEXT2:
CJNEA,#0FBH,NEXT3
LJMPK2
NEXT3:
CJNEA,#0F7H,NEXT4
LJMPK3
NEXT4:
CJNEA,#0EFH,NEXT5
LJMPK4
NEXT5:
CJNEA,#0DFH,NEXT6
LJMPK5
NEXT6:
CJNEA,#0BFH,NEXT7
LJMPK6
NEXT7:
CJNEA,#7FH,L0
LJMPK7
MOVB,#00H
LCALLDISP
LJMPL0
MOVB,#01H
K2:
MOVB,#02H
K3:
MOVB,#03H
K4:
MOVB,#04H
K5:
MOVB,#05H
K6:
MOVB,#06H
K7:
MOVB,#07H
MOVDBUF,B
MOVR0,#DBUF
MOVR3,#08H
6.扩展实验及思考
1循环显示6个数码管的边缘各段,形成一个运动着的大边框。
2按键连击的消除和利用。
利用连击现象,当按键时间长于2秒时,每0.5秒在个位上加1,连续累加,直到按键释放。
3分别基于动态扫描显示模块、静态显示模块电路,画出流程并设计程序实现数码管从右到左滚动显示自己的学号的所有位数;
4利用单片机的定时器资源,实现定时对6位动态显示管输出的刷新,画出流程并设计程序实现设计型实验内容的步骤①、②。