键盘控制数码管显示与流水灯Word文档下载推荐.docx
- 文档编号:22831215
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:1.34MB
键盘控制数码管显示与流水灯Word文档下载推荐.docx
《键盘控制数码管显示与流水灯Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《键盘控制数码管显示与流水灯Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
LED循环点亮:
一共八盏灯,一盏灯亮,另七盏灯灭,从左到右循环点亮,在其中运用定时器T0工作在MODEL1,对其点亮时间进行控制点亮1s,对其定时器溢出中断次数进行统计,当溢出中断次数达到10次后,返回主程序开始。
4、程序流程图
5、模块介绍
(1)8051CPU
P1.3~P1.0分别连接4×
4键盘的第一行到第四行;
P1.7~P1.4分别连接4×
4键盘的第一列到第四列;
P2口分别接8个LED灯;
P0口接1个共阴极数码管。
如图,MCS-51系列单片机的40只引脚按功能能可分为四类:
1电源引脚
电源引脚提供芯片的工作电源,MCS-51系列单片机采用单一的直流5V电源供电。
(1)Vcc(引脚40)——+5V。
(2)GND(引脚20)——地。
2晶体振荡器信号输入和输出引脚
晶体振荡器信号输入输出引脚外接振荡器或时钟源,为单片机提供时钟信号。
(1)XTAL1(引脚19)——振荡器信号输入。
(2)XTAL2(引脚18)——振荡器信号输出。
③I/O口线引脚
P0口(39~32脚):
P0.0~P0.7统称为P0口。
在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。
在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。
P1口(1~8脚):
P1.0~P1.7统称为P1口,可作为准双向I/O口使用。
对于52子系列,P1.0与P1.1还有第二功能:
P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。
P2口(21~28脚):
P2.0~P2.7统称为P2口,一般可作为准双向I/O口使用;
在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。
P3口(10~17脚):
P3.0~P3.7统称为P3口。
除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
P3口的第二功能如表1-1所示。
引脚
第二功能
P3.0
RxD
串行数据的输入端
P3.1
TxD
串行数据的输出端
P3.2
外部中断0的中断请求信号输入端
P3.3
外部中断1的中断请求信号输入端
P3.4
T0
定时器/计数器T0的外部计数信号输入端
P3.5
T1
定时器/计数器T1的外部计数信号输入端
P3.6
外部数据存储器和外部I/O口的写控制信号
P3.7
外部数据存储器和外部I/O口的读控制信号
表1-1
4控制信号线
ALE(引脚30)——地址锁存控信号,输出。
(引脚29)——外部程序存储器读选通信号,输出。
(引脚31)——内、外程序存储器选择控制端,输入。
RESET(引脚9)——复位信号。
(2)数码管显示
采用共阴极8位数码管来显示键盘输入的键值。
数码管字型编码表
(3)4×
4键盘输入
键盘输入有“1,2,3,4,5,6,7,8,9,A,B,C,D,E,F”这些键值,“A”键的功能是流水灯循环显示。
键盘所有键的特征码
按键
特征码
键值
77
00
8
7D
08
1
B7
01
9
BD
09
2
D7
02
A
DD
0A
3
E7
03
B
ED
0B
4
7B
04
C
7E
0C
5
BB
05
D
BE
0D
6
DB
06
E
DE
0E
7
EB
07
F
EE
0F
(4)流水灯显示
流水灯显示方式:
开始全部点亮,按下“LED---”键后,点亮第一个LED,然后从左向右依次循环点亮。
6、源程序
;
--------------键盘控制数码管显示及LED点亮程序---------
org0000h
ajmpmain
ORG0BH
JMPTIM0
main:
movdptr,#tab;
将表头位置送入DPT
mov30h,#0ffh;
将30显示单元清零
mov31h,#0ffh;
mov32h,#0ffh;
mov33h,#0ffh
mov34h,#0ffh;
mov35h,#0ffh
mov36h,#0ffh
mov37h,#0ffh
mov39h,#0ffh;
将30显示单元清零
loop:
jbf0,kk1;
f0若等于一则跳到KK1处
mov39h,#00h
kk2:
lcalldisplay;
调用显示程序
lcallkey;
调用键盘描程序
cpla;
将A的值取反
jzloop;
无键按下则返回
mova,38h;
有键按下将键值送入ACC
cjnea,#0ah,norp;
若A键未按下则返回到LOOP处
setbf0;
若A键按下则将F0值1
jmpLED
movp3,#00h
ljmploop;
返回LOOP处不断的循环
LED:
MOVTMOD,#00000001B
MOVTH0,#10000
MOVTL0,#10000
SETBTR0
MOVIE,#10000010B;
MOVR5,#10
MOVP3,#01H
jmploop
TIM0:
PUSHACC
PUSHPSW
MOVTL0,#10000
DJNZR5,LOOP1
MOVA,P3
RLA
MOVP3,A
LOOP1:
POPPSW
POPACC
RETI
kk1:
inc39h;
将39H向上加一
mova,39h;
将39H中的值送入ACC
cjnea,#10,kk2;
ACC中的值与10相等则跳转至KK2
mov39h,#00h;
若ACC等于零则将35H清零
cpl00h;
将00H位取反
ajmpkk2;
跳转至KK2处
norp:
mov37h,36h
mov36h,35h
mov35h,34h
mov34h,33h
mov33h,32h;
将32H显示单元的内容送入33H
mov32h,31h;
将31H显示单元的内容送入32H
mov31h,30h;
将30H单元的内容送入31H
mova,38h;
将键值送入ACC
mov30h,a;
将ACC的值送入30H
ljmploop;
返回主程序循环
display:
movp2,#0ffh;
将P2口置高电平
movr7,#100;
软件计数器赋值
dd1:
jnb00h,dd1d;
若00H等0跳至DD1D
ajmpdd1b;
若00H等于1则跳转至DD1B
dd1d:
mova,30h;
将显示缓冲区30H中的值送入ACC
movca,@a+dptr;
查表取要显示的数并把查表的结果送入ACC
movp0,a;
将要显示的数送入P0口
clrp2.7;
开个位显示单元
lcalldelay100us;
延时100US
setbp2.7;
关个位显示单
ajmpdd1c
dd1b:
mova,30h;
movca,@a+dptr;
movp0,a;
dd1c:
mova,31h;
将显示缓冲区别31H中的值送入A
movca,@a+dptr;
clrp2.6;
开十位显示单元
setbp2.6;
关十位显示单元
mova,32h;
将显示缓冲区32H中的值送入ACC
clrp2.5;
开百位显示单元
setbp2.5;
关百位显示单元
mova,33h;
将显示缓冲区33H中的值送入ACC
clrp2.4;
开千位显示单元
setbp2.4
mova,34h;
将显示缓冲区34H中的值送入ACC
clrp2.3;
开万位显示单元
setbp2.3
mova,35h;
将显示缓冲区35H中的值送入ACC
clrp2.2;
开十万位显示单元
setbp2.2
mova,36h;
将显示缓冲区36H中的值送入ACC
clrp2.1;
开百万位显示单元
setbp2.1
mova,37h;
将显示缓冲区37H中的值送入ACC
clrp2.0;
开千万显示单元
setbp2.0;
关千万位显示单元
djnzr7,dd1;
R7不等于0返回至DD1处
ret;
R7等于0子程序返回
KEY:
LCALLKS;
调用检测按键子程序
JNZK1;
有键按下继续
ljmpkey_exit;
无键按下退出KEY子程序
K1:
LCALLdelay4ms;
返回继续检测有无按键按下
LCALLdelay4ms
LCALLKS;
有键按下继续延时去抖动
JNZK2;
再一次调用检测按键程序
K2:
MOVR2,#0efH;
将扫描值送入R2暂存
MOVR4,#00H;
将第一列的列值00H送入R4暂存,R4用于存放列
K3:
MOVP1,R2;
将R2的值送入P1口
L6:
JBP1.0,L1;
P1.0等于1跳转到L1
MOVA,#00H;
将第一行的行值00H送入ACC
AJMPLK;
跳转到键值处理程序
L1:
JBP1.1,L2;
P1.1等于1跳转到L2
MOVA,#04H;
将第二行的行值04H送入ACC
跳转到键值理程序进行键值处理
L2:
JBP1.2,L3;
P1.2等于1跳转到L3
MOVA,#08H;
将第三行的行值08H送入ACC
L3:
JBP1.3,NEXT;
P1.3等于1跳转到NEXT处
MOVA,#0cH;
将第四行的行值0CH送入ACC
LK:
ADDA,R4;
行值与列值相加后的键值送入A
mov38h,a;
将A中的值送入34h暂存
K4:
lcalldisplay;
调用动态显示子程序
LCALLKS
JNZK4;
按键没有松开继续返回检测
RET;
按键松开返回
NEXT:
INCR4;
将列值加一
MOVA,R2;
将R2的值送入A
JNBACC.7,key_exit;
扫描完成跳至KEY处进行下一回合的扫描
RLA;
扫描未完成将A中的值右移一位进行下一列的扫描
MOVR2,A;
将ACC的值送入R2暂存
AJMPK3;
跳转到K3继续
key_exit:
mova,#0ffh;
无键按下则将A赋成0FFH
ret
KS:
MOVP1,#0FH;
将P1口高四位置0低四位值1
MOVA,P1;
读P1口
XRLA,#0FH;
将A中的值与A中的值相异或
子程序返回
delay4ms:
4ms延时
MOVR5,#08H
L7:
MOVR6,#0FAH
L8:
DJNZR6,L8
DJNZR5,L7
RET
delay100us:
100us延时
movr5,#50
djnzr5,$
ret
tab:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;
'
0,1,2,3,4,5,6,7'
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;
8,9,A,B,C,D,E,F'
DB3EH,50H,40H,08H,00H;
U,r,-,-,BLANK
END
程序执行结果
按键0按下显示结果
按键LED---按下结果(输入位闪烁)
按键D按下显示结果(d)
按键B按下显示结果(b)
7、主要元器件介绍
1)8051
51系列是基本型,包括8051、8751、8031、8951.这四个机种区别,仅在于片内程序储存器。
8051为4KBROM,8751为4KBEPROM,8031片内无程序储存器,8951为4KBEEPROM。
其他性能结构一样,有片内128BRAM,2个16位定时器/计数器,5个中断源。
其中,8031性价比较高,又易于开发,目前应用面广泛。
MCS-51单片机的内部组成。
MCS-51单片机的引脚和内部组成如图1.1所示。
通常采用DIP或PLLD封装,
其内核是8051CPU,CPU的内部集成有运算器和控制器,运算器完成运算操作(包括数据运算、逻辑运算等),控制器完成取指令、对指令译码以及执行指令。
MCS-51单片机的片内资源有:
图1.1MCS-51单片机的内部组成
·
中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM):
8051内部有128字节数据存储器(RAM)和21个专用寄存器单元,它们是统一编址的,专用寄存器有专门的用途,通常用于存放控制指令数据,不能用作用户数据的存放,用户能使用的RAM只有128个字节,可存放读写的数据,运算的中间结果或用户定义的字型表。
程序存储器(ROM):
8051共有4K字节程序存储器(ROM),用于存放用户程序和数据表格。
定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数,当定时/计数器产生溢出时,可用中断方式控制程序转向。
并行输入输出(I/O)口:
8051共有4个8位的并行I/O口(P0、P1、P2、P3),用于对外部数据的传输。
全双工串行口:
8051内置一个全双工异步串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
中断系统:
8051具备较完善的中断功能,有五个中断源(两个外中断、两个定时/计数器中断和一个串行中断),可基本满足不同的控制要求,并具有2级的优先级别选择。
时钟电路:
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的时序脉冲,但需外接晶体振荡器和振荡电容。
2)共阴极数码管
LED数码管(LEDSegmentDisplays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
led数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
下面将介绍常用LED数码管内部引脚图片
下面介绍数码管字型编码表
8、参考书籍
《单片机原理及接口技术》段晨东主编清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘 控制 数码管 显示 流水