按键与显示电路的设计与实现Word格式.docx
- 文档编号:6489134
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:20
- 大小:169.37KB
按键与显示电路的设计与实现Word格式.docx
《按键与显示电路的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《按键与显示电路的设计与实现Word格式.docx(20页珍藏版)》请在冰点文库上搜索。
共阳极字型码
3FH
C0H
A
77H
88H
1
06H
F9H
b
7CH
83H
2
5BH
A4H
C
39H
C6H
3
4FH
B0H
d
5EH
A1H
4
66H
99H
E
79H
86H
5
6DH
92H
F
71H
8EH
6
7DH
82H
P
73H
8CH
7
07H
F8H
—
40H
BFH
8
7FH
80H
全灭
00H
FFH
9
6FH
90H
问题:
单片机控制电路中,应如何选择LED显示器的结构?
4.3.2LED显示器的显示方式
在实际应用系统中,N片七段LED构成N位七段码显示器。
LED的公共端COM叫做显示器的位选线,a~g称为段选线,这样N位LED显示器有N根位选线,N8根段选线(包括小数点位)。
位选线控制LED的每一位是否显示,段选线控制每一位的显示字符。
根据位选线与段选线的接法,LED有两种显示方式:
静态显示方式和动态显示方式。
(1)静态显示方式
在静态显示方式,所有的位选线COM连接到一起接低电平(共阴极)或接高电平(共阳极),每一位LED的段选线连接到一个8位显示输出口上,这样N位显示器共需要8N根显示输出线,显示时位与位之间是相互独立的,彼此不产生影响。
图4-2为静态N位LED显示器原理图。
图4-2N位LED静态显示原理图
由于位选线接在一起,因此控制每一显示位的段选码即可控制每一位的显示字符,保持段选码不变,则显示的字符也不变,当需要改变显示内容时只需改变显示位的段码。
这种显示方式具有显示亮度高,显示稳定,控制方便等优点,但当显示的位数较多时,占用的I/O口线较多。
(2)动态显示方式
图4-3为N位动态显示硬件连接图。
图4-3N位动态LED显示原理图
与静态显示方式不同,动态显示方式是把段选线的对应位连接到一起,接到一个8位输出I/O口线上,每一位的位选线接到一根独立的I/O口线上,这样N位显示器共需要8+N根I/O口线(8根段选线,N根位选线)。
显示时段选码由同一8位I/O口输出,具体哪一位显示由位选码决定。
由于段选码并联接在一起,因此同一时刻只能有一位LED显示字符,其他位不显示,即只能有一位位选线有效。
为了能显示N位字符,必需N位LED数码管等间隔时间轮流发光显示,只要显示间隔时间比较短,利用人眼视觉暂留的特点可造成N位同时显示的效果。
动态显示与静态显示相比有需要I/O口线少、功耗小等优点,但控制程序较复杂,显示亮度低。
根据显示电路的要求,应如何选用数码管的显示控制方式?
4.3.3LED显示器与单片机接口
LED显示电路与单片机的接口分静态显示接口电路和动态显示接口电路两类,每一类中又可分为软件译码和硬件译码两种控制方式。
由于静态显示电路和静态显示控制程序比较简单,因此静态显示电路在此不作介绍。
软件译码方法是指将要显示的字符通过程序的方法译成七段LED显示字型码,通过I/O口直接输出LED的段选码;
硬件译码是指将要显示的字符直接输出给硬件译码电路,通过硬件译码电路再把BCD码或十六进制码转换成七段LED显示字型码。
(1)软件译码显示接口
图4-4为通过8255A并行可编程扩展接口构成的8位LED显示电路。
其中8255A的PA口用于段选码的输出,PB口用于位选码的输出,采用软件译码动态显示方式。
图4-4软件译码动态显示电路
在该硬件电路中,反相器为位驱动器,LED的段限流电阻未画出。
按图所示电路进行连接时所用8255A的各端口地址为:
PA口地址:
7FFCH
PB口地址:
7FFDH
控制口地址:
7FFFH
PA、PB口均设定为输出工作方式,其控制字为10000000B。
控制程序如下:
DISP:
MOVDPTR,#7FFFH;
选择8255A的控制口
MOVA,#80H;
PA、PB口控制字为80H
MOVX@DPTR,A;
8255A初始化
MOVR0,#TAB1;
指向显示字符表
MOVR7,#08H;
显示位数送R7
MOVB,#01H;
显示初始位位选线COM1有效
LOOP:
MOVDPTR,#7FFDH;
指向B口
MOVA,B
输出位选线
RLA
MOVB,A
MOVA,@R0;
取显示字符
INCR0;
指向下一个显示字符
MOVDPTR,#TAB2;
指向七段LED显示字型表
MOVCA,@A+DPTR;
取显示七段字型码
MOVDPTR,#7FFCH;
指向A口
输出段显码
LCALLDELAY;
调延时子程序
DJNZR7,LOOP;
8位未显示完继续
·
·
上述程序为一次显示8位字符程序,若要不断显示可重复上述程序。
(2)硬件译码电路
硬件译码是采用硬件译码电路的方法完成显示字符到显示七段码的转换。
硬件集成译码电路类型较多,有BCD-7段译码器、BCD-7段译码驱动器、BCD-7段锁存译码驱动器、十六进制-7段锁存译码驱动器等。
表4-2给出了常用的硬件译码集成电路及其性能。
表4-2常用的硬件译码集成电路
元件名称
功能
驱动能力
备注
74LS46、47
BCD-七段译码/输出驱动器
段驱动8mA
输出开路
74LS48
输出需上拉电阻
74LS49
OC输出
4511
CMOS器件,输出锁存
MC14558
BCD-七段译码
无驱动能力
MC14547
MC14513
段驱动12mA
输出锁存
ICM7212
可静态驱动四位共阳极LED
ICM7218
8位动态BCD-七段译码器
段驱动20mA位驱动170mA
可动态驱动8位共阳极LED
动态扫描频率250HZ
硬件译码驱动器与单片机及显示器的接口见图4-5。
在该图中硬件译码驱动电路采用BCD-七段码/输出锁存/驱动集成芯片MC14513,位选驱动采用同向驱动器7407。
BCD码与位选信号输出均通过P1口。
图4-5硬件译码驱动器与单片机及显示器的接口
(1)LED显示器与单片机接口,应选用哪种译码方式?
为什么?
4.3.4LED的驱动电路
LED是电流控制显示器件,若想使LED发光则必需保证有足够大的电流流过LED的各段。
流过LED的电流大时,LED发光亮度高;
流过LED的电流小时,LED发光亮度就低,为了LED能够长期可靠地工作应使流过LED的电流为其额定电流。
为LED显示器提供电流的电路称为LED的驱动电路。
由于显示分为静态显示和动态显示两种,因此驱动电路也分为静态驱动电路和动态驱动电路两种。
静态显示由于位选线接在一起,因此静态显示只有段码驱动电路,驱动电路比较简单。
图4-6为共阴极静态显示一段驱动电路原理图。
图4-6静态显示驱动电路
由于动态显示器驱动电路的位选线不再接在一起,且流过LED各段的电流也为非恒定的直流电流,因此动态显示器LED的驱动电路与静态显示器的驱动电路有很大的不同。
动态显示电路的驱动电路分为段驱动电路和位驱动电路两种。
段驱动电路与静态显示器的段驱动电路相同,考虑到所有的段电流均流过位选线,因此位驱动电路的驱动能力应为段驱动能力的8倍(最严重情况8段全亮)。
图4-7为动态显示时的驱动电路原理图,其中驱动采用了达林顿复合驱动电路。
驱动电路可采用分立元件电路,也可采用集成驱动电路,此外有些硬件译码电路本身包括驱动电路。
在实际应用系统中可根据实际情况选择显示驱动电路的类型。
图4-7动态驱动电路
在LED显示电路设计中,段码驱动和位码驱动应选用何种驱动方式?
有什么差别?
工作任务:
如何用74HC373芯片设计一种廉价的基于总线的LED显示电路?
4.3.5键盘抖动及其消除方法
键盘是单片机应用系统中不可缺少的输入设备。
通过键盘可向单片机应用系统输入数据和控制命令,键盘是操作人员控制干预单片机应用系统的主要手段。
根据键盘组成形式可分为独立式键盘、矩阵式键盘及拨码式键盘几种。
键盘可工作于循环扫描方式、定时扫描方式或中断方式。
键盘一般是由一组机械按键按照一定的规律组合而成,通过按键的通、断作用输入开关电压信号。
按键由断开到闭合及由闭合到断开时,由于机械触点的弹性作用,按键的动作不是立刻完成的,在闭合及打开的瞬间有机械抖动的发生,抖动时间一般为5~10ms,表现在输入电压信号上为输入信号是抖动的不稳定的电平信号,其信号波形见图4-8。
键被按下
闭合稳态
按下抖动释放抖动
图4-8按键抖动波形
按键闭合稳态时间由操作人员的按键时间决定,一般为零点几秒到几秒之间。
为了躲开键抖动的影响,保证在按键闭合稳定状态下读取键值,需要对键盘进行削抖处理。
常用的削抖措施有硬件削抖和软件削抖两种。
硬件削抖是采用硬件电路的方法对键盘的按下抖动及释放抖动进行削抖,经过削抖电路后使按键的电平信号只有两种稳定的状态。
常用的削抖电路有触发器削抖电路、滤波削抖电路两种。
硬件削抖电路见图4-9。
图4-9硬件削抖电路
硬件削抖电路解决了键抖动问题,但当应用系统所需按键比较多时,硬件削抖电路将变得复杂,成本也比较高,因此硬件削抖一般只适用于按键比较少的应用系统中。
当系统中需要键盘数量比较多时可采用软件削抖方法对键盘抖动进行消除。
软件削抖的基本原理是当第一次检测到有键按下时,根据键抖动时间的统计规律先采用软件延时的方法延时一段时间(一般可取10ms),然后再确认键是否仍保持闭合状态,如仍保持闭合状态则键真正被按下,此时可读取键值,否则可视为干扰,对其不予理睬。
采用软件削抖方法可省去硬件削抖电路,但键盘的工作速度将被降低。
4.3.6独立式键盘
图4-10是通过8031单片机P1口组成的具有8个按键的独立式键盘。
从图中可看出,独立式键盘的各个按键之间彼此是相互独立的,每一个按键连接一根I/O口线。
独立式键盘电路简单,软件设计也比较方便,但由于每一个按键均需要一根I/O口线,当键盘按键数量比较多时,需要的I/O口线也较多,因此独立式键盘只适合于按键较少的应用场合。
独立式键盘可工作在查询方式下,通过P1口读入键状态,当有键被按下时相应的I/O口线变为低电平,而未被按下的键对应的I/O口线保持为高电平,这样通过读I/O口状态可判断是否有键按下和哪一个键被按下。
4.3.7矩阵式键盘
矩阵式键盘由行线、列线及位于行列线交叉点上的按键等部分组成。
当应用系统需要的按键数量比较多时可采用矩阵式键盘。
(1)工作原理
图4-11为一4x4矩阵式键盘的基本结构。
图4-11矩阵式键盘工作原理
该键盘需要4根行线和4根列线共8根I/O口线,由于采用矩阵式结构,与独立式按键不同,一根I/O口线已经不能确定哪一个键被按下,需要通过联接到键上的两根I/O口线的状态确定键的状态,同时键的两端均接到I/O口线上不能一端接I/O口线一端接地,因此必需采用行线与列线信号状态分别处理综合考虑才能判断键闭合的位置。
常用的键位置判别方法有扫描法和线反转法两种。
(2)键识别方法
键识别方法是指当键被按下时如何确定是哪一个键被按下。
常用的键识别方法有扫描法和线反转法,下面我们以图4-11为例加以说明。
扫描法
设图4-11的行线H1~H4连接到51单片机P1口的P1.0~P1.3,列线L1~L4连接到P1口的P1.4~P1.7上,可通过如下程序判断哪一个键被按下。
KEY:
MOVP1,#0FH;
列输出低电平,行输出高电平
MOVA,P1;
读P1口状态
ANLA,#0FH;
保留行状态
CJNEA,#0FH,KEY0;
有键按下转KEY0
SJMPKEY;
无键按下等待,转键检测
KEY0:
LCALLDELAY10;
调10mS延时取抖
MOVA,P1
ANLA,#0FH
CJNEA,#0FH,KEY1;
不是抖动转键值判断
SJMPKEY;
是抖动到键检测
KEY1:
MOVP1,#11101111B;
第一列键被按下判断
CJNEA,#0FH,KEY11;
第一列键被按下转KEY11处理
MOVP1,#11011111B;
第二列键被按下判断
第二列键被按下转KEY11处理
MOVP1,#01111111B;
第四列键被按下判断
第四列键被按下转KEY11处理
LJMPKEY;
均不是转到键检测
KEY11:
MOVA,P1;
读键值
键值处理
从程序中我们可看出,键扫描法实际上是先使列(行)线全输出低电平,然后判断行(列)线状态,若行线全为高电平,表示无键被按下;
若行线不全为高电平表示有键被按下,然后依次使列线为低电平,再判断行线状态,当行线全为高电平时,表示被按下的键不在本列;
当行线不全为高电平时,表示被按下的键在本列,把此时的行线状态与列线状态和在一起即为被按下的键的位置。
线反转法
扫描法对键的识别采用逐行(列)扫描的方法获得键的位置,当被按下的键在最后一行时需要扫描N次(N为行数),当N比较大时键盘工作速度较慢,而线反转法则不论键盘有多少行和多少列只需经过两步即可获得键的位置。
我们仍以图4-11为例,线反转法的第一步与扫描法相同均是把列线置低电平,行置高电平然后读行状态;
第二步与第一步相反把行线置低电平,列线置高电平然后读列线状态,若有键按下则两次所读状态的结果即为键所在的位置。
这样通过两次输出和两次读入可完成键的识别,比扫描法要简单。
MOVP1,#0F0H;
行输出低电平,列输出高电平
ANLA,#0F0H
ORLA,B
键值处理
(3)键盘工作方式
在实际应用系统中,键盘只是系统的一部分,键的识别也只是CPU工作内容的一部分。
系统在工作中采取何种方式对键盘进行识别,读取键状态这就是键盘工作方式。
键盘工作方式主要有扫描方式和中断方式两种。
扫描方式
键盘的扫描方式又可分为编程扫描和定时扫描。
编程扫描是指在特定的程序位置段上安排键盘扫描程序读取键盘状态,此时用户可输入数据和控制命令。
定时扫描是指利用单片机内部或扩展的定时器产生定时中断,在中断中进行键盘扫描的工作方式。
不论哪一种扫描方式,键盘程序都应当完成:
键是否被按下判断,按键削抖处理;
求键位置等。
中断方式
中断方式是指,当无键按下时,CPU处理其他工作而不必进行键的扫描;
当有键被按下时,通过硬件电路向CPU申请键盘中断,在键盘中断服务程序中完成键盘处理。
该种方法可提高CPU的工作效率。
(1)如何用74HC245设计一组独立式按键,使其连接于单片机并行总线上?
4.4任务实施
4.4.1设计显示和按键电路的原理图
按照要求设计一组廉价的LED显示电路和独立式按键电路,并使其连接于单片机扩展的并行总线上,尽量设计多个方案,进入后面的工作步骤,对多个方案进行比较选择。
4.4.2对显示和按键电路进行软件仿真
对上面设计好的电路使用proteus软件进行仿真,验证其可行性,选择能够实现的方案进行下一步的成本核算。
4.4.3显示和按键电路的元件清单和成本核算
将设计好的原理图的元件清单整理好填入下表中,进行成本核算。
序号
编号
参数和封装
数量
单价(元)
合计(元)
10
11
12
总计
4.4.4焊接显示和按键电路的电路板
经过上面的软件仿真和成本核算,确定最终的方案,开始制作电路板。
按照接线图将元件焊到万能板上,完成电路板的制作。
在进行焊接之前一定要认真规划电路板上元件的分布,例如:
显示必须在电路板的上边,而按键必须在电路板的下边。
可以利用protel软件先进行原理图和PCB的制作,然后参照PCB电路,完成万用板电路的焊接。
注意:
此时不能完成本情景全部电路的焊接工作,需要按本情境中的功能模块先焊接一部分,例如:
可以首先完成显示电路的焊接,然后进入后面的工作过程,此部分电路通过程序调试后,再回到本步骤进行按键电路的焊接,然后再次进入后面的工作过程。
焊接完成后,对电路板的焊接工艺进行评价。
4.4.5对焊接完成的电路板进行测量
通电前测量:
接通电源之前,用万用表通断档测量电路板上电源VCC和GND之间是否短路,如果短路排除故障,再次进行测量。
同时组内各位成员分别检查电路的连接是否正确,检查完毕后进入后面的过程。
提示:
在接通电源之前,必须认真清理电路板上的导线头、剪下的元器件引脚以及焊锡屑等容易造成短路的杂物,同时清理电路板下面桌子上的杂物,切勿将焊接好的电路板放到导体上面,以免造成短路。
4.4.6编写程序调试显示和按键电路
将前面工作过程制作完成的按键和显示电路与单片机最小系统电路的并行总线对接,使用KeilC51为按键和显示电路编写控制程序。
写完程序后下载到单片机中使其工作。
观察按键和显示电路的现象是否和程序设计意图一致,如果现象不正确,记录并认真分析、查找错误的原因,修改程序或电路。
4.5总结评价
4.5.1中期评价
1.评价内容
以组为单位每人讲解:
1)在这个任务中,具体作了那些工作?
2)在整体任务中的作用是什么?
3)与哪些工作做了具体衔接?
4)对其他工作了解了什么?
讲解后由其他组同学提问,选出一位书记员记录问题及回答情况。
各组全部讲解、提问完毕后,指导教师总结出现频率较高的问题后,每个同学自我评分,其他同学打分。
2.修改、完善出现的问题,对出现的问题给予说明。
4.5.2后期评价
对出现的问题修改、完善后,除提交成果外,还需要提交以下资料:
1)对项目的掌握程度;
2)还有哪些地方需要改进;
3)项目中学到的知识在其他领域的应用等内容。
指导教师根据每个同学自我评分、其他同学打分、提交成果及提交资料给予总结评价。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 按键 显示 电路 设计 实现