单片机键盘显示接口电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学
单片机及其接口技术
课程设计说明书
学生姓名:苏瑞学号:0805054218
学院:信息与通信工程学院
专业:自动化
题目:单片机键盘显示接口电路设计
指导教师:沈小林职称: 副教授
2011年6月19日
中北大学
单片机及其接口技术
课程设计任务书
10/11 学年第二学期
学院:信息商务学院
专业:自动化
学生姓名:苏瑞学号:0805054218 课程设计题目:单片机键盘显示接口电路设计
起迄日期:6月13日~6月19日
课程设计地点:中北大学
指导教师:沈小林
系主任:王忠庆
下达任务书日期: 2011年06月13日
第一章、绪论
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。在本次课程设计中,便采用89C51单片机。
第二章、设计内容
一、4×4键盘
原理:4×4
行
行
行
行
图1
电路原理图见附图一
本次设计为4×4的矩阵键盘,这样的设计可以有效的减少键盘与单片机接口时所占用的I/O接口。在这种非编码键盘的单片机系统中,键盘处理程序首先执行有无按键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下,对键的识别常采用逐行(逐列)扫描的方法。
首先判断有无按键按下。方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入到累加器A中,如果有按键按下,会使列线电平被拉至低电平,是列输入不全为1。
判断键盘哪一个键被按下。方法是:一次给行线送低电平,然后查所有列线状态,称为行扫描,如果全为1,则所按下键不在此行,如果不全为1,则所按下键必在此行,而且是在与零电平列线相交的交点上的那个键。
在此,按键的位置码并不等于按键的实际定义键值,因此还必须进行转换,即键值译码,本次设计中采用软件实现键值的译码,译码方式如下:
第0行键值为:0行×4+列号(0~3)为0、1、2、3;
第1行键值为:1行×4+列号(0~3)为4、5、6、7;
第2行键值为:2行×4+列号(0~3)为8、9、A、B;
第3行键值为:3行×4+列号(0~3)为C、D、E、F;
译码程序如下:
MOV A,R0 ;取行号送A
MOV B,#04 ;每一行按键个数
MUL AB ;行号×按键数
ADD A,R2 ;R2中存放列号,行号×按键数+列好=键值,在A中键盘行扫描流程图如下:
图2
二、8位LED七段数码管显示
原理:
在显示电路中,需要使用到74LS48与74LS138两块集成芯片。74LS48用作七段数码管数值显示译码器,将P0.0-P0.3输出的数值BCD码译码后得到的段选码送给七段数码管,使得数码管能够正确显示数值。74LS138做选位段译码器,将P0.4-P0.6输出的位选BCD码转化为二进制反码,进行选位。
在本次设计中,8为LED七段数码管均采用共阳极接法。通过八个非门对74LS138输出的电平进行取反,与74LS48共同实现共阳极接法对七段LED数码管的显示驱动。具体电路原理见附图二。
74LS48芯片的电路结构原理及引脚图:引脚图中的大写字母A、B、C、D为BCD码输入端,小写字母a、b、c、d、e、f、g为字型码输出端,LT为灯测试输入端,RBI为消隐输入,RBO为消隐输出。表1为74LS48 BCD-7段锁存/译码/驱动器作为段驱动器的输入输出信号的对应关系。在使用时,将芯片的输入端引脚A、B、C、D与单片机的P0口相连接,该芯片的输出端七个管脚,与LED显示器的七个段码引脚相连接。74LS48的作用是接受来自单片机的BCD码型的输入信号,经锁存、译码和放大后,输出七段字型码到LED显示器,完成对BCD码到七段字型码的锁存、译码和驱动的功能。
74LS48 BCD-7段译码器输入/输出端信号对照表
表1
74LS138 为3 线-8 线译码器工作原理如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。其输入输出真值表如表2.
表2
此电路可以实现静态与动态显示两种方:。
1、静态显示可实现一位显示。既选位段选中一位,数据段输出数值,使得数码管显示数值。静态显示器的亮度较高。这种显示方式
编程容易,管理也较简单,但占用I/O口线资源较多。在显示位数较多的情况下,一般都采用动态显示方式。
2、动态显示可以实现八位同时显示不同数值。段选码与位选码没送入一次后延时1ms,因为人眼的视觉暂留时间为100ms,所以,每次每次显示的时间不超过20ms,并保持一段时间,易造成视觉暂留效果,给人看上去每个数码管总在亮。这种方式称作软件扫描显示。例如要显示“0123”,必须对P0口进行如下编辑:
MOV P0,#80H
LCALL DYI
MOV P1,#41H
LCALL DYI
MOV P1,#22H
LCALL DYI
MOV P1,#13H
LCALL DYI