12~13年度阶段2第4次课 - 1显示与键盘控制电路

上传人:无*** 文档编号:244018764 上传时间:2024-10-02 格式:PPT 页数:57 大小:4.17MB
收藏 版权申诉 举报 下载
12~13年度阶段2第4次课 - 1显示与键盘控制电路_第1页
第1页 / 共57页
12~13年度阶段2第4次课 - 1显示与键盘控制电路_第2页
第2页 / 共57页
12~13年度阶段2第4次课 - 1显示与键盘控制电路_第3页
第3页 / 共57页
资源描述:

《12~13年度阶段2第4次课 - 1显示与键盘控制电路》由会员分享,可在线阅读,更多相关《12~13年度阶段2第4次课 - 1显示与键盘控制电路(57页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,,*,电子工程设计,I-2,,显示与键盘控制电路设计与实现,显示与键盘控制电路设计与实现,一,.,基本要求,1. 4,位,7,段数码显示,前,3,位含小数点,2. 0 ~ 9,数字输入键及若干功能设置按键控制,3.,独立电路板安装结构,2.1 LED,数码显示器内部电路,a,b,c,d,e,f,g,dp,1,2,3,4,5,10,9,8,7,6,e,d,Vcc,c,dp,g,f,Vcc,a,b,1,2,3,、,8,4,5,10,9,7,6,e,d,c,dp,b,a,f,g,1,2,4,5,10,9

2、,7,6,e,d,c,dp,b,a,f,g,3,、,8,共阳,共阴,二,.,显示电路基本原理,本实验中用到,2,位数码管,2.2,用,74LS273,设计显示数据输出电路,显示数据输出,74LS273,输出,P2.0,(,A8,),D0~D7,显示内容刷新,Q1~Q8,Q1~Q8,74LS273,C8051F023,74LS32,数码管,“静态”缺陷,:,芯片较多、影响总线驱动,2.3.1.,静态,扫描显示控制电路,2.3,基本显示控制电路,,二次译码,,单片机板,AT89C51,(,PDF,:,Rev. 0265G–02/00,,第,13,页,),CS,2.3.2.,动态,扫描显示控制电路,

3、驱动,驱动,驱动,驱动,C8051,,F023,74LS32,74LS273,原理图,Q1~Q8,LED1,LED2,LED3,LED4,LED1,LED2,LED3,LED4,P30,P31,P32,P33,<20mS,时序图,“动态”缺陷,:,需外加驱动、程序控制麻烦(必须,20ms,以内写,4,次数)、瞬间点亮,LED,(,LED,的频繁开关影响电源,造成冲激,对模拟电路不利),,,,,,,,,,,,,,,,,显示控制电路方案,对比,,静态显示电路方案,:使用的元件多,成本相对较高。每位独立控制,程序设计比较简单,适用于显示位数较少的场合。采用此方案。,,动态显示电路方案,:电路简单,成

4、本低,控制程序复杂,适用于显示位数较多的场合。,三,.,按键控制电路基本原理,3.1,轻触按键内部电路,,实物外形示意,,内部电路,电路符号,3.2,用,74LS244,设计键盘状态读入电路,键盘状态,74LS244,输出,P2.0,(,A8,),键盘状态读入,74LS244,C8051F023,74LS32,AT89C51,(,PDF,:,Rev. 0265G–02/00,,第,12,页,),最大值:,252ns,,最小值:,0ns,,最大值:,97ns,12 MHz Oscillator,3.3,基本键盘状态读取方式,3.3.1,按键状态,直接读取,电路,,单片机板,,二次译码,3.3.2

5、,阵列式键盘及其状态读取电路,·,,阵列式键盘电路工作原理,S1,S2,S3,S4,R1,R2,R3,R4,K0,K1,K2,K3,K7,K11,K15,K14,K13,K12,K8,K9,K10,K6,K5,K4,原理图,R1,R2,R3,R4,S1~S4,时序图,,,,,D0~D7,D0~D7,P2.0,P2.0,D0~D7,R1~R4,S1~S4,1Y1~1Y4,74LS244,74LS273,原理图,时序图,74LS32,·,,阵列式键盘电路设计参考,键盘实现方案一:,先写后读,键盘实现方案二:,仅读操作,R1,,R2,,R3,,R4,调试代码,,直读键盘电路方案,:按键较多时,成本高

6、,控制程序较简单,适用于按键较少的场合。,,矩阵键盘电路方案,:按键较多时,成本低,控制程序较直读电路复杂,适用于显示位数较多的场合。采用此方案。,按键状态读取方案,对比,四,.,显示控制与按键状态读取集成电路方案,显示控制电路,键盘控制电路,译码电路,4.1.,电路方案方框图,4.2.,安装结构,+5V,+5V,,ALE,RST,WR,D0,RD,D1,A4,D2,A3,D3,A2,D4,A1,D5,C4,D6,C3,D7,C2,,C1,GND,GND,,,显示键盘电路,,,,,ROW5,ROW5,ROW4,ROW4,LINE1,LINE1,LINE2,LINE2,ROW3,ROW3,ROW

7、2,ROW2,LINE3,LINE3,ROW1,ROW1,LINE4,LINE4,,,,,,显示,键盘,板,电路板母版,图,显示板焊接参考图,1.,显示电路模块调试,汇编程序,$include (C8051F020.inc),,DP_DATA1 EQU 000H,,DP_DATA2 EQU 100H,,DP_DATA3 EQU 200H,,DP_DATA4 EQU 300H,,,清除显示;,,MAIN: LCALL Init_Device,,CLR A,,MOV DP

8、TR,#DP_DATA1,,MOVX @DPTR,A,,MOV DPTR,#DP_DATA2,,MOVX @DPTR,A,,,七,.,使用集成调试环境调试显示电路模块,MOV DPTR,#DP_DATA3,,MOVX @DPTR,A,,MOV DPTR,#DP_DATA4,,MOVX @DPTR,A,,显示数据寄存器,R7,清,0,;,,MOV R7,#0H,,,显示数据加,1,;,,LOOP: INC R7,,,数据合理性检查(应该小于,10,);,,MOV A,R7,,,小

9、于,10,继续处理;,,CJNE A,#10,L1,,,否则,显示数据寄存器清,0,;,,MOV R7,#0H,,CLR A,二进制数值转换为显示段码(换码);,,L1: CALL DECODE,,,显示段码数据送第一位数码管显示数据所存器;,,MOV DPTR,#DP_DATA1,,MOVX @DPTR,A,,延时等待;,,CALL DELAY,,,显示数据加,1,;,,INC R7,,,数据合理性检查(应该小于,10,);,,,MOV A,R7,,,小于,10,继续处理;,,,CJNE

10、 A,#10,L2,,,否则,显示数据寄存器清,0,;,,,MOV R7,#0H,,CLR A,,,二进制数值转换为显示段码(换码);,,L2: CALL DECODE,,,显示段码数据送第二位数码管显示数据所存器;,,,MOV DPTR,#DP_DATA2,,MOVX @DPTR,A,,,延时等待;,,CALL DELAY,,,显示数据加,1,;,,INC R7,,,数据合理性检查(应该小于,10,);,,MOV A,R7,,,小于,10,继续处理;,,,CJNE A,#10,L3,,,否则,

11、显示数据寄存器清,0,;,,,MOV R7,#0H,,CLR A,二进制数值转换为显示段码(换码);,,L3: CALL DECODE,,,显示段码数据送第三位数码管显示数据所存器;,,,MOV DPTR,#DP_DATA3,,MOVX @DPTR,A,,延时等待;,,,CALL DELAY,,,显示数据加,1,;,,INC R7,,,数据合理性检查(应该小于,10,);,,MOV A,R7,,,小于,10,继续处理;,,,CJNE A,#10,L4,,,否则,显示数据寄存器清,0,;,,,MOV

12、 R7,#0H,,CLR A,二进制数值转换为显示段码(换码);,,L4: CALL DECODE,,,显示段码数据送第四位数码管显示数据所存器;,,,MOV DPTR,#DP_DATA4,,MOVX @DPTR,A,,,延时等待;,,,CALL DELAY,,,返回;,,JMP LOOP,,二进制数值转换为显示段码(换码);,,,段码表头(,#TAB,)送数据指针,DPTR;,,DECODE: MOV DPTR,#TAB,,,以显示数据作变址以段码表头作基址取段码;,,MOVC A,@A+DPTR,,RE

13、T,延时等待;,,DELAY: MOV R5,#00H,,D1: MOV R6,#0H,,DJNZ R6,$,,DJNZ R5,D1,,RET,,,,显示段码表;,,TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,,DB 092H,082H,0F8H,080H,090H,,$include (Init_Device.inc),,END,LOOP,L1,L2,,N,N,Y,Y,2.,显示电路模块汇编调试程序流程图,L3,L4,LOOP,N,N,Y,Y,3.,显示电路模块调试,C,程序,#include "C8051F020.h",

14、,#include ",absacc.h,",,#include ",data_define.c,",,,#define DP1 XBYTE[0x0000],,#define DP2 XBYTE[0x0001],,#define DP3 XBYTE[0x0002],,#define DP4 XBYTE[0x0003],,#define TIMER 0x8000,,,#include ",Init_Device.c,",,,unsigned char table[] = {0xC0,0xF9,0xA4,0xB0,0x99,,,0x92,0x82,0x

15、F8,0x80,0x90};,,,void,delay(void,);,,void,display(unsigned,char x, y);,void,main(void,),,{,,unsigned char i = 0, num = 0;,,,Init_Device,();,,DP1 = DP2 = DP3 = DP4 = !i;,,,while( 1 ) {,,for( num=0; num<9; ++num ) {,,i++;,,if( i <= 4 ),,,display(i,, num);,,else {,,i = 1;,,,display(i,, num);,,},,delay(

16、);,,},,},,},void,display(unsigned,char x, y),,{,,if( x == 1 ),,DP1 =,table[y,];,,else if( x == 2 ),,DP2 =,table[y,];,,else if( x == 3),,DP3 =,table[y,];,,else,,DP4 =,table[y,];,,},,,,void,delay(void,),,{,,unsigned,int,i;,,for( i=0; i

17、显示板,5.,显示模块故障检测方法,,运行显示模块测试程序,如果电路工作正常,在,4,个数码管上应有,数字,0-9,滚动显示。否则,说明电路存在故障,可以根据故障现象,按照下面的方法进行检查。,·,全黑,---,数码管,未接电源,---,74LS237,未接电源或地,---,74LS237,触发控制信号,(,CK,),不正常,---,数据线全部漏接,·,全亮,---,74LS237,的,CLR,引脚未接高电平,·,乱显示且无规律、无变化,---,74LS237,触发控制信号,(,CK,),不正常,·,显示不正确,但有变化,---,数据线顺序接错,·,,74LS237,触发控制信号,(,CK,)

18、,故障,---,信号线漏接,---,无信号,·,,74LS237,触发控制信号线上无信号,---,WR,信号线漏接或信号线无信号,---,二次译码信号线漏接或信号线无信号,·,,WR,信号线上无信号,---,逆向检查至单片机板,WR,引脚,·,,二次译码信号线上无信号,---,一次译码信号线漏接或信号线上无信号,---,二次译码电路,74LS138,的,E2,、,E3,连接错误,---,二次译码电路,74LS138,漏接电源或地线,---,地址信号(,,74LS138,,的,A,、,B,、,C,输入)不正常,·,,一次译码信号线上无信号,---,逆向检查至一次译码,74LS138,相应引脚,·

19、,,地址信号不正常,---,逆向检查至单片机,,P2,,口,---,访问地址错误,---,访问地址错误,---,访问地址错误,1.,键盘控制模块,调试,汇编程序,$include (C8051F020.inc),,KEY_WRITE EQU 400H,,KEY_READ EQU 500H,,DP_DATA1 EQU 000H,,DP_DATA2 EQU 100H,,,L_BUF EQU 30H,,R_BUF EQU 31H,,,清除显示;,,LCALL Init_Device,,,MOV

20、 A,#0FFH,,MOV DPTR,#DP_DATA1,,MOVX @DPTR,A,,MOV DPTR,#DP_DATA2,,MOVX @DPTR,A,八,.,使用集成调试环境调试显示键盘模块,,R7,作为行键值计数器,并且清,0,;,,LOOP: MOV R7,#0,,INC R7,,,当前行键值为,1,,第一行线送低电平 ;,,,,MOV A,#0FEH,,MOV DPTR,#KEY_WRITE,,MOVX @DPTR,A,,,读列键值;,,,MOV DPTR,#K

21、EY_READ,,MOVX A,@DPTR,,,屏蔽列键值数据高,3,位,并更改为正逻辑;,,,ORL A,#0E0H,,CPL A,,,没有键按下转第二行按键检查;,,,JZ JP3,,列键值数据处理计数器,R5,送数据处理次数,5,;,,,MOV R5,#5,,,列键值数据寄存器,R6,清,0,;,,,MOV R6,#0,,,列键值数据处理,—,列键值寄存器加,1,;,,JP1: INC R6,,,列键值数据右移,1,位;,,,RRC A,,,移出位为,1,转键值显示处理;,,,J

22、C JP2,,,否则,检查是否处理的是最后,1,位数据(,R5=0,),;,,,否,继续处理后面的数据位;,,,DJNZ R5,JP1,,,是,转第二行按键检查;,,,JMP JP3,,键值显示处理;,,行键值(,R7,)送行键值数据缓冲器,L_BUF,,JP2: MOV L_BUF,R7,,,列键值(,R6,)送列键值数据缓冲器,R_BUF,,MOV R_BUF,R6,,,行列键值显示;,,,CALL DISPLAY,,CALL DELAY,,,,,第二行按键检查;,,JP3: INC R7,,,当前行键值为,2,,第

23、二行线送低电平 ;,,,,MOV A,#0FDH,,MOV DPTR,#KEY_WRITE,,MOVX @DPTR,A,,读列键值;,,,MOV DPTR,#KEY_READ,,MOVX A,@DPTR,,,屏蔽列键值数据高,3,位,并更改为正逻辑;,,,ORL A,#0E0H,,CPL A,,,没有键按下转第三行按键检查;,,,JZ JP6,,,列键值数据处理计数器,R5,送数据处理次数,5,;,,,MOV R5,#5,,,列键值数据寄存器,R6,清,0,;,,,MOV R6,#0,,,列键值数据处理,—,列键值寄存器加,1,;,,JP4: INC R6

24、,,,列键值数据右移,1,位;,,,RRC A,,移出位为,1,转键值显示处理;,,,JC JP5,,,否则,检查是否处理的是最后,1,位数据(,R5=0,),;,,,否,继续处理后面的数据位;,,,DJNZ R5,JP4,,,是,转第三行按键检查;,,,JMP JP6,,,,,键值显示处理;,,行键值(,R7,)送行键值数据缓冲器,L_BUF,,,JP5: MOV L_BUF,R7,,,列键值(,R6,)送列键值数据缓冲器,R_BUF,,MOV R_BUF,R6,,,行列键值显示;,,,CALL DISPLAY,,CALL DELAY,,第三行按键检查;,,JP6:

25、 INC R7,,,当前行键值为,3,,第三行线送低电平 ;,,,,MOV A,#0FBH,,MOV DPTR,#KEY_WRITE,,MOVX @DPTR,A,,,读列键值;,,,MOV DPTR,#KEY_READ,,MOVX A,@DPTR,,,屏蔽列键值数据高,3,位,并更改为正逻辑;,,,ORL ACC,#0E0H,,CPL A,,,没有键按下转第四行按键检查;,,,JZ JP9,,,列键值数据处理计数器,R5,送数据处理次数,5,;,,,MOV R5,#5,,列键值数据寄存器,R6,清,0,;,,,,,MOV R6,#0,,,列键值数据处理,—

26、,列键值寄存器加,1,;,,JP7: INC R6,,,列键值数据右移,1,位;,,,RRC A,,,移出位为,1,转键值显示处理;,,,JC JP8,,,否则,检查是否处理的是最后,1,位数据(,R5=0,),;,,,否,继续处理后面的数据位;,,,DJNZ R5,JP7,,,是,转第四行按键检查;,,,JMP JP9,,,键值显示处理;,,行键值(,R7,)送行键值数据缓冲器,L_BUF,,JP8: MOV L_BUF,R7,,,列键值(,R6,)送列键值数据缓冲器,R_BUF,,MOV R_BUF,R6,,,行列键值显示;,,,CALL DISPLAY,

27、,CALL DELAY,,,,第四行按键检查;,,,JP9: INC R7,,,当前行键值为,4,,第四行线送低电平 ;,,,,MOV A,#0F7H,,MOV DPTR,#KEY_WRITE,,MOVX @DPTR,A,,读列键值;,,,MOV DPTR,#KEY_READ,,,MOVX A,@DPTR,,,屏蔽列键值数据高,3,位,并更改为正逻辑;,,,ORL A,#0E0H,,CPL A,,,没有键按下返回;,,,JZ JP12,,,列键值数据处理计数器,R5,送数据处理次数,5,;,,,MOV R5,#5,,,列键值数据寄存器,R6,清,0,;,,,,MOV

28、R6,#0,,,列键值数据处理,—,列键值寄存器加,1,;,,JP10: INC R6,,,列键值数据右移,1,位;,,,RRC A,,移出位为,1,转键值显示处理;,,,JC JP11,,,否则,检查是否处理的是最后,1,位数据(,R5=0,),;,,,否,继续处理后面的数据位;,,,DJNZ R5,JP10,,,返回;,,,JMP JP12,,,,键值显示处理;,,行键值(,R7,)送行键值数据缓冲器,L_BUF,,JP11: MOV L_BUF,R7,,,列键值(,R6,)送列键值数据缓冲器,R_BUF,,MOV R_BUF,R6,,,行列键值显示;,

29、,,CALL DISPLAY,,CALL DELAY,,返回;,,JP12: JMP LOOP,,,,行键值显示;,,DISPLAY: MOV A,L_BUF,,,行键值换码;,,L1: CALL DECODE,,,行键值段码送显示;,,MOV DPTR,#DP_DATA1,,MOVX @DPTR,A,,,列键值显示;,,MOV A,R_BUF,,,列键值换码;,,L2: CALL DECODE,,列键值段码送显示;,,,MOV DPTR,#DP_DATA2,,MOVX @DPTR,A,,RET,,,,,行列键值换码程序

30、;,,DECODE: MOV DPTR,#TAB,,MOVC A,@A+DPTR,,RET,,$include (Init_Device.inc),,END,2.,键盘控制模块汇编调试程序流程图,3.,键盘控制模块调试,C,程序,#include "C8051F020.h",,#include ",absacc.h,",,#include ",data_define.c,",,#include ",Init_Device.c,”,,#define DP1 XBYTE[0x0000],,#define DP2 XBYTE[0x0001],,#def

31、ine KEY_WR XBYTE[0x0002],,#define KEY_RD XBYTE[0x0003],,#define linescan1 0xfe,,#define linescan2 0xfd,,#define linescan3 0xfb,,#define linescan4 0xf7,,#define TIMER 0x8000,,,unsigned char table[] = {0xC0,0xF9,0xA4,0xB0,0x99,,,0x92,0x82,0xF8,0x80,0x90};,,,void,display(unsigne

32、d,char x, y){,,DP1 =,table[x,];,,DP2 =,table[y,];,,},键盘实现方案一,,,,写,读,,void,main(void,) {,,unsigned char,l_val,,,r_val,,,r_state,, temp,,conter,;,,DP1 = DP2 = 0xff;,,,Init_Device,();,,while( 1 ) {,,for(,l_val,= 1;,l_val,< 5; ++,l_val,) {,,switch(,l_val,) {,,case 1: KEY_WR = linescan1; break;,,case 2:

33、 KEY_WR = linescan2; break;,,case 3: KEY_WR = linescan3; break;,,default: KEY_WR = linescan4;,,},,,r_state,= ~KEY_RD ,,if(,r_state,!= 0 ) {,,for(,conter,=1,,r_val,=1, temp=1;,,,conter,<6;,,++,conter,, ++,r_val,, temp=,temp,<<1 ) {,,if( (,r_state&temp,) != 0 ),,,display(l_val,,,r_val,);,,},,},,},,},,},判定,4.,键盘控制电路模块调试电路组成,JTAG,适配器,单片机板,C8051F,电路模块,电源板,键盘及显示板,键盘,5.,键盘控制电路模块故障检测方法,,运行键盘控制电路的测试程序,如果电路工作正常,在键盘上每按,1,个键,都会通过,2,位数码显示管,显示相应的行编码和列编码。否则,说明电路存在故障,有下面多种原因。,·,扫描数据锁存电路和状态读入电路,---,选通信号工作不正常,---,数据线漏接或错接,---,电源及地线漏接或错接,---,上拉电阻漏接或错接,·,键盘电路,---L,线和,R,线漏接或错接,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!