基于8051键盘显示.doc
目 录
摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„2 一、主要元器件介绍„„„„„„„„„„„„„„„„„„„„3 1、80C51单机„„„„„„„„„„„„„„„„„„„„„„„3 2、74LS138„„„„„„„„„„„„„„„„„„„„„„„„4 3、74LS47„„„„„„„„„„„„„„„„„„„„„„„„„5 4、数码管„„„„„„„„„„„„„„„„„„„„„„„„„6 二、系统功能介绍及原理„„„„„„„„„„„„„„„„„„7 三、系统调试„„„„„„„„„„„„„„„„„„„„„„„9 四、程序代码„„„„„„„„„„„„„„„„„„„„„„„10 五、心得体会„„„„„„„„„„„„„„„„„„„„„„„12 六、参考文献„„„„„„„„„„„„„„„„„„„„„„„13
基于8051的单片机键盘显示设计
摘 要
随着计算机科技的发展,单片机在各个领域的应用日趋广泛。本设计就是利用单片机的知识设计键盘的显示功能。设计中主要以80C51为核心,配合REPACK-8、74HC138、74LS47的协同工作来完成设计要求。设计目的是当按下一个键时,数码管上要显示相应的数字。可以用于电子密码锁等。
关键词:数码管 键盘 排阻
1
一、主要元器件介绍
1、80C51单片机
(1)结构图如下:
U111939XTAL1P0.0/AD038P0.1/AD137P0.2/AD21836XTAL2P0.3/AD335P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD7
21P2.0/A822P2.1/A923P2.2/A102924PSENP2.3/A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A15
110P1.0P3.0/RXD211P1.1P3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RD
80C51
(2)功能介绍
Vss(20脚):接地
VCC(40脚): 主电源+5V
XTAL1(19脚):接外部晶体的一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚): 接外部晶体的另一端。在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。 RST(9脚): 单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)
2
PSEN(29脚): 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
ALE/PROG(30脚):在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
EA/VPP(31脚): 当EA端输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。
输入/输出引脚:
(1)P0.0—P0.7 (39脚—32脚)
(2)P1.0—P1.7 (1脚—8脚)
(3)P2.0—P2.7 (26脚—21脚)
(4)P3.0—P3.7 (10脚—17脚)
2、74HC138
(1)结构如下图:
3
BCDEFG
115AY0214BY1313CY212Y3U1011Y4610E1Y549P0.0P0.1P0.3E2Y657E3Y7
74HC138
(2)功能介绍
74HC138是用TTL与非门组成的3线—8线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式。其工作原理如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平
、B、C)的二进制编码在一个对应的输出端以低电平译出。时,可将地址端(A
G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反相器还可利用
级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
3、74LS47
(1)结构如下所示:
U3
G314LTQGF515RBIQFE49BI/RBOQEP0.3D610DQDC211CQCP0.1B112BQBP0.0A713AQA
74LS47
(2)功能介绍
74LS47即为一译码器,译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,下表列出了74LS47的真值表,表示出了它与数码管之间的关系。
输 入 输 出 显示数字符号
LT(——) RBI(——-) A3 A2 A1 A0 BI(—)/RBO(———)
a(—) b(—) c(—) d(—) e(—) f(—) g(—)
4
A
1 1 0 0 0 0 1 0 0 0 0 0 0 1 0
1 X 0 0 0 1 1 1 0 0 1 1 1 1 1
1 X 0 0 1 0 1 0 0 1 0 0 1 0 2
1 X 0 0 1 1 1 0 0 0 0 1 1 0 3
1 X 0 1 0 0 1 1 0 0 1 1 0 0 4
1 X 0 1 0 1 1 0 1 0 0 1 0 0 5
1 X 0 1 1 0 1 1 1 0 0 0 0 0 6
1 X 0 1 1 1 1 0 0 0 1 1 1 1 7
1 X 1 0 0 0 1 0 0 0 0 0 0 0 8
1 X 1 0 0 1 1 0 0 0 1 1 0 0 9
X X X X X X 0 1 1 1 1 1 1 1 熄灭
1 0 0 0 0 0 0 1 1 1 1 1 1 1 熄灭
0 X X X X X 1 0 0 0 0 0 0 0 8
(1) LT(——):试灯输入,是为了检查数码管各段是否能正常发光而设置的。
当LT(——)=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为
低电平,若驱动的数码管正常,是显示8。
BI(—):灭灯输入,是为控制多位数码显示的灭灯所设置的。BI(—)=0时。(2)
不论LT(——)和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,
使共阳极数码管熄灭。
RBI(——-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每(3)
一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(——-)=0作用下,使译码
器输出全为高电平。其结果和加入灭灯信号的结果一样,将0熄灭。
(4) RBO(———):灭零输出,它和灭灯输入BI(—)共用一端,两者配合使用,
可以实现多位数码显示的灭零控制。
4、数码管
(1)结构如下:
(2)功能介绍
六位数码管为了简化电路、降低成本,将所有位的段选线并联在一起,由一
个8位的I/O口控制。
由于所有6位段选线皆由一个I/O口控制,因此,在每一瞬间,6位数码管
5
会显示相同的字符。要想每位显示不同的字符,就必须采用扫描方法轮流点亮各位LED,即在每一瞬间只使某一位显示字符。在此瞬间,段选控制I/O口输出相应字符段选码,而每位选择控制I/O口在该显示位送入选通电平,以保证该位显示相的字符。如此轮流,是每位分时显示该位该显示字符。
二、系统的功能介绍及原理
1、键盘
键盘是一种常开型按钮开关,常态时,键盘的两个触点处于断开状态;按下时,两个触点闭合。通过按键在常态与被按下时的通断,操作人员就可以通过键盘向微控制系统输入数据或者控制命令等,从而实现简单的人机通信。
键盘可分为编码键盘和非编码键盘。其中,靠软件来识别按键的闭合及键值的键盘称为非编码键盘,即为本设计的设计目标。
单片机系统的数码管显示驱动和键盘扫描
以单片机为核心的很多仪器都需要数码管显示驱动和键盘扫描,三种具体
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
如下供参考:
芯片 一、经典方案:使用8279
8279 是由Intel 于80 年代首先推出的,参考资料较多,应用比较成熟。 优点:最通用。缺点:元器件多,面积大,电路复杂,综合成本高。 ? 8279 的驱动电流较小,所以需要加上驱动电路ULN2003,或者使用8 个三级管及相应的基极限
流电阻。一般情况下的8279 外围电路中,需要16 个电阻、一个74LS138 芯片、一个ULN2003
芯片、8 个PNP 三极管。元器件较多,占用较大的PCB 面积。 ? 8279 需要外部为其提供上电复位信号和时钟信号,所以电路比较复杂。 ? 8279 在显示驱动方面的功能较少。
二、自由方案:使用辅助单片机
也就是在仪器的主控单片机之外,另外使用一个辅助的单片机专门做显示驱动和键盘扫描,最近
市面上出现的一些产品就是以PIC 系列等单片机实现的,查看其引脚定义尤其是CLK/RTCC/RST引
脚都与PIC16C57 或PIC16C54 相似,另外,这些产品的说明
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
中都没有标明电流驱动能力。
优点:最灵活。缺点:元器件多,速度慢,易受干扰,综合成本高。 ? 由于辅助单片机的驱动电流比较小,按单片机厂商的说明,通常每个引脚不大于20mA,如果长
时间驱动大电流则容易损坏。如果将辅助单片机的引脚直接用作字驱动,则20mA 平均到数码管
的8 个段上,每个段的电流只能分配到3mA,所以只能驱动较小的数码管。而如果外接驱动电路,
6
例如595 芯片或者8 个三极管及相应的基级电阻,则电路面积增大,总体成本增加。
? 如果辅助单片机采用定时中断方式进行显示驱动和键盘扫描,则在进入中断后有可能来不及响
应G____外部的操作请求,所以辅助单片机一般采用查询方式进行显示驱动和键盘扫描,而采用中断
方式接收外部的主控单片机的操作请求。如果主控单片机频繁访问辅助单片机,则因为辅助单
片机分身无术,所以显示驱动和键盘扫描就可能无法顾及,出现亮度不均和键盘失灵。
? 为了提高串行接口的速度,辅助单片机需要尽可能高的系统时钟,而参考单片机厂商的说明,
采用低成本的外部阻容振荡是很难稳定地工作在10MHz 以上的。所以在工业现场,辅助单片机
很有可能因为阻容振荡频率太高而受到干扰,甚至内部程序跑飞或者意外死锁。
三、新方案:使用CH451 芯片(或CH452 芯片)
CH451 和CH452 是以硬件实现的多功能外围芯片,使用串行接口,支持显示驱动和键盘扫描以及
μP 监控,外围元器件极少,非常适合作为单片机的外围辅助芯片。 优点:电路简洁,性能稳定,多功能。
CH451 具有大电流驱动能力,段电流不小于25mA,字电流不小于150mA,平均?
段电流是辅助单
片机方案的8 倍,而且非连续的电流驱动能力更高。
? CH451 的串行接口以硬件实现,不需要时钟;而显示驱动和键盘扫描使用约0.75MHz 的全内置
主时钟多次分频后的扫描时钟,所以在工业现场不易受到干扰。即使受到强干扰,也能够在干
扰后立即正常工作,不会影响串行接口、显示驱动和键盘扫描的后续操作。 ? CH451 内置振荡和上电复位以及看门狗,不但不需要外部提供时钟和外部复位输入,还能够向
外部的主控单片机提供上电复位和看门狗,进一步降低产品的成本,提供产品的可靠性。
7
2、设计电路连接图
Q1R7P2.0PNP4.7k
BCDEFGD1LED-GREENU2U4P0.4115AY0P0.5214Y1Y5BY1P0.6313Y2CY212Y3NOTY3U511Y4Y4610Y5E1Y5Y649Y4E2Y6Y757E3Y7NOT74HC138U6Y3NOTU7Y2NOTP0.0P0.1P0.3P0.4P0.5P0.6U8P0.7RP1Y11U1NOT1939XTAL1P0.0/AD02U938P0.1/AD1337P0.2/AD241836XTAL2P0.3/AD3535P0.4/AD46NOT34P0.5/AD5733P0.6/AD68123C932RSTP0.7/AD7921P2.0P2.0/A8RESPACK-8456D22P2.1/A923P2.2/A102924PSENP2.3/A11789E3025ALEP2.4/A123126EAP2.5/A1327P2.6/A14A0BF28P2.7/A15U3110314P1.0P3.0/RXDP1.0GLTQG211515P1.1P3.1/TXDP1.1FRBIQF31249P1.2P3.2/INT0P1.2EBI/RBOQE413610P1.3P3.3/INT1P1.3P0.3DDQD514211P1.4P3.4/T0P1.4CCQC615112P1.5P3.5/T1P1.5P0.1BBQB716P0.0713P1.6P3.6/WRP1.6AAQA817P1.7P3.7/RDP1.774LS47P1.480C51P1.5P1.6P1.7
P1.0P1.1P1.2P1.3
A
三、系统调试
本文电路主要在Proteus中完成,选好所用元器件后先从最小
GNDC1C222pF22pF系统开始一步步接电路: X1
)单片机外部时钟在单片机系统中,一般在但片机的引脚XTAL1(112MHz和XTAL2之间接一个晶振和两个电容,这样就构成了内部振荡方式由于在单片机有一个高增益反向大器,外接一个晶振后构成自 荡器并产生自己震荡脉冲,电路如上图所示。
+5V(2)复位电路在单片机系统中需要一个硬件复位电路,用于用户的手动复位,有与52系列单片机和51系列一样是高电平复位有效,C3
20uF1k最简单的复位电路由一个电阻、一个电解电容、一个按钮形成,电GNDR1路如左图所示。
8
(3)系统调试,按电路图所示接好电路,并双击52单片机烧程序,烧如程序后调试,到显示出结果为止。
四、程序代码
#include
#include"timer.h"
#include"keyboard.h"
bit FLAG0;
unsigned char ptr,m;
extern unsigned char dispcode[6]; //-------------------------------------------------------------------
---------------
//键盘码数组
unsigned char tab[16]= {0x00,0x01,0x02,0x03,
0x04,0x05,0x06,0x07,
0x08,0x09,0x0a,0x0b,
0x0c,0x0d,0x0e,0x0f
};
/*------------------------------------------------------------------
功能:键盘扫描程序
名称:Scan_Key
输入:无
输出:无
返回:无
-------------------------------------------------------------------*/
void Scan_Key(void)
{
char a1,i;
FLAG0=0;
a1=0xf7; //列扫描初值
ptr=0;
for(i=0;i<4;i++) //键盘4个扫描列
{
P1=a1;
Delay(10);
9
m=P1;
switch( m & 0xf0 ) //取行的高4位,侦测那一行被按
{
case 0x70:
ptr=i*4; //第一行被按否? 如有则是tab[i*4]键
FLAG0=1; //表示有按键
break;
case 0xb0:
ptr=i*4+1; //第二行被按否? 如有则是tab[i*4+1]
FLAG0=1;
break;
case 0xd0:
ptr=i*4+2; //第三行被按否? 如有则是tab[i*4+2]
FLAG0=1;
break;
case 0xe0:
ptr=i*4+3; //第四行被按否?如有则是tab[i*4+3]键
FLAG0=1;
break;
default:
break;
}
if( FLAG0 )
{
//-------------------------------------------------------------------
////将键盘编码转换成显示编码
dispcode[0]=tab[ptr] % 10; //个数
dispcode[1]=tab[ptr] / 10; //十数
BEEP(200);
break; //有按键,则退出扫描
}
a1=a1>>1 | 0x80; //高位补1,由于P1.7~4末接+5V,而是由指令加载高电平
}
}
10
五、课程设计心得体会
在课程设计面前,自己的专业知识总是显得那么匮乏,那种面对一个个专业名词时的茫然与困惑与在解决疑难问题时的手足无措,无不让我感觉到大学学习的重要性。通过此次设计,我
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
以下几点:
1.在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知
道该单片机片内有哪些资源.
2.设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图.
3.在设计程序时,不能妄想一次就将整个程序设计好,"反复修改,不断改进"是程序设计的必经之路.
4.要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便.
5.在设计程序过程中遇到问题是很正常的,但我们应该将每次遇到的问题
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
下来,并分析清楚,以免下次再碰到同样的问题.
6.认真审题,看懂题目的要求~选择适当的课题,不益太简单或者太难。做到能把课题完成又能锻炼自己的能力~
程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在 7.
程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。
8.这次的单片机课程设计重点是理论与实际的相结合。不再只读书了。
9.该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。
六、参考文献
11
【1】李华. 单片机原理及应用.兰州大学出版社.2001.5
【2】张靖武. 单片机系统的Proteus设计与仿真.电子工业出版社.2007.4 【3】张萌. 单片机应用系统开发综合实例.清华大学出版社.2007.7 【4】戴仙金.51单片机及其C语言程序开发实例. 清华大学出版社.2008.2 【5】谭浩强. C语言程序设计(第三版).清华大学出版社.2005.7
12