欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    键盘与显示接口技术.ppt

    • 资源ID:6148065       资源大小:1,011KB        全文页数:45页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    键盘与显示接口技术.ppt

    单片机原理及接口技术,第9章键盘与显示接口技术,本章学习要求:,1.掌握数码管显示原理、电路连接及编程;2.掌握键盘工作原理、电路连接及编程。,9.1 LED显示接口技术,9.1 LED显示接口技术,由LED构成的3种显示部件,指示灯,数码管,点阵屏,LED:Light Emiting Diode,电路符号:,9.1 LED显示接口技术,9.1.1 数码管结构及显示原理,数码管由8个发光二极管(以下简称段)构成,通过不同的组合可用来显示数字0 9、部分字符、符号“”及小数点“”。数码管的外形结构如图所示。数码管又分为共阴极和共阳极两种结构。,9.1 LED显示接口技术,将公共阴极接地,在ag各段的阳极上加不同的电压,就会使各段的发光情况不同,形成不同的发光字符。,段选码的位定义,段码表:段选码的值与显示字符的对应关系.,“8”:共阴极段选码的值为7FH;共阳极段选码的值为80H.,9.1 LED显示接口技术,共阴极和共阳极的段选码互为反码。,9.1 LED显示接口技术,9.1.2 数码管的静态显示方式,将公共阴极接地或公共阳极接电源,段码接一8位并行输出口。需要占用大量的输出端口。,9.1 LED显示接口技术,D0,D7,9.1 LED显示接口技术,例5.1 按照前页电路,编写显示子程序,将33H30H单元存储的字符由高到低显示在四只数码管上。,分析:1.设置串口工作方式0,SCON初值为00H。2.先发送高位数码管的段选码,后发送低位数码管的段选码。3.段选码采用查表的方式获得。,DXM:MOVDPTR,#TAB;取段选码表首地址MOVC A,A+DPTR;取段选码,变址寻址RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4DB92H,82H,0F8H,80H,90H;5,6,7,8,9DB88H,83H,0C6H,0A1H,86H,8EH;A,b,C,d,E,F,查段选码子程序:入口条件:待显示字符存于A中;出口条件:待显示字符的段选码存于A中;占用资源:DPRT,A。,9.1 LED显示接口技术,DISP:MOV SCON,#00H;串口初始化方式0 SETB P1.0;74HC164处于正常工作状态MOV R0,#33H;首地址赋指针MOVR1,#04H;显示4个数LP1:MOV A,R0;取待显示字符LCALL DXM;查段选码 MOV SBUF,A;启动串行发送命令,输出段位码JNB TI,$;等待发送完毕CLRTI;清发送完毕标志位DECR0;指针减1DJNZ R1,LP1;判断4位段选码是否全部输出RET;,显示子程序:入口条件:待显示字符存于33H-30H单元中;出口条件:占用资源:R0,R1,A。,9.1 LED显示接口技术,9.1.3 数码管的动态显示方式,将所有显示位的段选码接在一起;通过位选线选择某一时刻显示的位,时间单位一般取15ms;采用循环扫描的方法,实现多位显示。,9.1 LED显示接口技术,位选线的驱动位选线为什么需要驱动?位选线如何驱动?ULN20037位达林顿驱动器,ULN2003反相输出单路驱动能力(吸入电流)达500mA,9.1 LED显示接口技术,9.1 LED显示接口技术,1.分析8155口地址命令寄存器口地址:EF00H;PA口寄存器口地址:EF01H;PB口寄存器口地址:EF02H;PC口寄存器口地址:EF03H;,2.分析8155 命令字PA口、PB口为输出口;PC口未使用,假设为输入口;命令字为03H。,INIT8155:MOV DPTR,#0EF00H MOV A,#03H MOVXDPTR,A RET,3.8155 初始化程序,9.1 LED显示接口技术,DXM:MOVDPTR,#TAB;取段选码表首地址MOVC A,A+DPTR;取段选码,变址寻址RETTAB:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h;0,1,2,3,4,5,6,7 DB 7fh,6fh,77h,7ch,39h,5eh,79h,71h,0;8,9,A,b,C,d,E,F,灭,4.查段选码子程序:入口条件:待显示字符存于A中;出口条件:待显示字符的段选码存于A中;占用资源:DPRT,A。,SCD:MOVDPTR,#0EF02H;指针指向8155的PB口MOVX DPTR,A;输出段选码到PB口RET,5.输出段选码子程序:入口条件:待输出段选码存于A中;占用资源:DPTR,9.1 LED显示接口技术,6.扫描一次,方法分析:扫描1次,每位数码管显示一次。以1ms为间隔,顺序将PA0到PA5输出高电平。在某位输出高电平期间,相应输出该位的段选码。,入口条件:待显示字符存于35H30H单元中占用资源:A,R0,R1,R2,SCW:MOVDPTR,#0EF01H;8155的PA口MOVX DPTR,A;输出位选码RET,5.输出位选码子程序:入口条件:待输出位选码存于A中;占用资源:DPTR注意:位选码的值总是只有1个位为1。,9.1 LED显示接口技术,DISP:MOV R0,#30H;地址指针MOV R1,#01H;位选码,从低位开始显示MOV R2,#06H;长度指针DP1:MOV A,#00HLCALL SCW;关显示MOV A,R0;取待显示字符LCALL DXM;查表段选码LCALL SCD;输出段选码MOV A,R1LCALL SCW;输出位选码INC R0;地址指针指向下一单元RL A;位选码指向高一位MOV R1,A;保存位选码LCALL DELY1;延时1msDJNZ R2,DP1RET,9.1 LED显示接口技术,ORG0000HLJMP MAINORG0030HMAIN:MOV SP,#6FH;设置堆栈LCALLINIT8155;初始化8155MN1:LCALLDISP;输出显示字符SJMPMN1;循环输出,7.主程序(反复调用扫描显示程序),6.延时1ms子程序,子程序2:延时1ms程序(12M晶体)占用资源:R6,R7DELY1:MOVR7,#02HDL1:MOVR6,#0FFHDJNZR6,$DJNZR7,DL1RET,程序中哪些地方需要用堆栈?,9.1 LED显示接口技术,程序清单:1 主程序2 子程序18155初始化程序3 子程序2延时1ms程序4 子程序3查表段选码5 子程序4输出段选码6 子程序5输出位选码7 子程序6输出6位字符(扫描一次),9.2 键盘接口技术,9.2 键盘接口技术,9.2.1 键盘结构与工作原理,键盘中每个按键都是一个常开开关按下键S3,P1.7口为低电平放开键S3,P1.7口为高电平,9.2 键盘接口技术,由于机械触点的弹性作用,在闭合和断开按键的瞬间,触点会产生机械抖动,表现为P1.7口出现一系列的脉冲信号。如右图所示。抖动时间的长短,由按键的机械特性决定,一般在5ms10ms间。按键抖动的危害按键抖动的消除 硬件消除;如:R-S双稳态触发器电路 RC阻容滤波电路 软件消除,实际应用多。,在CPU检测到有按键按下时,执行一个10ms的延时程序后,再次判断该键电平是否保持闭合状态电平,如保持闭合状态电平则确认为真正有键按下,从而消除抖动的影响。当CPU检测到按键释放后,也要给一个10ms的延时,待后沿抖动消失后才去执行该键的处理程序。,9.2 键盘接口技术,9.2.2 独立式键盘接口设计,独立式按键是指各按键相互独立,每个按键各接一个输入口。通过检测输入口上的电平状态判断哪个键被按下。接上拉电阻的目的是为了保证在按键断开时,各个输入口有确定的高电平。每个按键需要占用一个输入口,不适合用于需要很多按键的场合。,9.2 键盘接口技术,KEY_START:MOV 30H,P1;读键盘状态并保存30H单元ANL 30H,#1FH;屏蔽高3位CJNE 30H,#1FH,NEXT;判断是否有键按下SJMPKEY_STARTNEXT:LCALL D_10ms;软件延时10ms,消除抖动 MOV A,P1;再次读键盘状态ANL A,#1FH;屏蔽高3位CJNE A,30H,KEY_START JNB ACC.0,KEY0JNB ACC.1,KEY1 JNB ACC.2,KEY2 JNB ACC.3,KEY3 JNB ACC.4,KEY4SJMP KEY_START KEY0:LJMP KP0;KEY1:LJMP KP1;KEY2:LJMP KP2;KEY3:LJMP KP3;KEY4:LJMP KP4,为什么不直接跳到KP0,;延时10ms程序D_10ms:MOVR6,#14HDL:MOVR7,#0FFHDJNZR7,$DJNZ R6,DLRET,9.2 键盘接口技术,KP0:;KEY0键按下的处理程序 LJMP KEY_STARTKP1:;KEY1键按下的处理程序LJMP KEY_START;KP2:;KEY2键按下的处理程序LJMP KEY_START;KP3:;KEY3键按下的处理程序LJMP KEY_START;KP4:;KEY4键按下的处理程序LJMP KEY_START;,9.2 键盘接口技术,9.2.3 矩阵式键盘接口设计,矩阵式键盘结构矩阵式键盘由行线和列线构成列线通过上拉电阻接到+5V列线接到输入口上行线接到输出口上按键位于行、列的交叉点上适用于需要按键较多的场合,矩阵式键盘工作原理无按键按下时,列线输入高电平;有按键按下时,列线输入电平由与此列线相连的行线电平决定.如果行线输出低电平,则列线电平为低如果行线输出高电平,则列线电平为高为了确认按键位置,必须将行、列线配合使用。,按键的识别方法(键扫描)首先行线全输出0,判断是否有键按下。如果列线为全1,无按键按下如果列线非全1,有按键按下然后,让行线P10输出0,其它三条行线输出1,读列线状态。如果列线为全1,第一行无按键按下,继续扫描。,如果列线非全1,可以判断按键在第一行,再根据为0的列线序号,可以确定按键具体的列号,停止扫描。如果第一行无按键按下,让行线P11口输出0,其它三条行线输出1,读列线状态,判断按键是否在第二行。如果第二行仍无按键按下,让行线P12口输出0,其他三条行线输出1,读列线状态,判断按键是否在第三行。如果第三行仍无按键按下,让行线P13口输出0,其它三条行线输出1,读列线状态,判断按键是否在第四行。,9.2 键盘接口技术,9.2 键盘接口技术,;判断是否有按键按下KAP:MOVP1,#0F0HMOVA,P1ORLA,#0FHCPLARET,;延时10ms程序DELY:MOVR6,#14HDL:MOVR7,#0FFHDJNZR7,$DJNZ R6,DLRET,编程举例,键值=行首键值+列号,9.2 键盘接口技术,KINP:LCALLKAP;调用键盘查询程序JZKINP;无键按下,继续查询KP1:LCALLDELY;延时10ms,消除抖动LCALLKAP;再次调用键盘查询程序JZKINP;无键按下,继续查询MOVR2,#0FEH;从第0行开始扫描MOVR4,#00H;置第0行行首键值KP4:MOVP1,R2;置扫描行为0MOVA,P1;读P1状态JBACC.4,L1;第0列不为0,转测第1列MOVA,#00H;列号存入A中AJMPKP5;停止扫描L1:JBACC.5,L2;第1列不为0,转测第2列MOVA,#01H;列号存入A中AJMPKP5;停止扫描L2:JBACC.6,L3;第2列不为0,转测第3列MOVA,#02H;列号存入A中AJMPKP5;停止扫描L3:JBACC.7,NEXT;第3列不为0,转测下一行MOVA,#03H;列号存入A中KP5:ADDA,R4;停止扫描,计算键值,键值=行首键值+列号,9.2 键盘接口技术,PUSHA;保存键值KP3:LCALLKAP;查询键是否释放JNZKP3;未释放,继续查询LCALL DELYLCALLKAP;再次查询键是否释放JNZKP3POPA;弹出键值RETNEXT:MOVA,R2;扫描行指针赋给AJNBACC.3,KINP;扫描结束,未发现按键RLA;准备扫描下一行MOVR2,AADDR4,#04H;置下一行行首键值MOVA,R4ADDA,#04HMOVR4,AAJMPKP4;转开始下一行扫描,执行完以上程序后,键值存放于累加器A中。,9.3 键盘显示接口专用芯片,82798位并行接口ZLG7289BI2C接口ZLG7290CI2C接口BC7281二线串口BC7281A二线串口BC7281B二线串口MAX7219 三线串口MAX7221三线串口,9.4 键盘显示接口专用芯片,实验箱显示电路,74HC138,1.分析8155口地址命令寄存器口地址:1110_xxx1_xxxx_xx00B E100H;PA口寄存器口地址:1110_xxx1_xxxx_xx01B E101H;PB口寄存器口地址:1110_xxx1_xxxx_xx10B E102H;PC口寄存器口地址:1110_xxx1_xxxx_xx11B E103H;,2.分析8155 命令字PA口、PB口为输出口;PC口未使用,假设为输入口;命令字为03H。,INIT8155:MOV DPTR,#0E100H MOV A,#03H MOVXDPTR,A RET,3.8155 初始化程序,实验箱显示电路,DXM:MOVDPTR,#TAB;取段选码表首地址MOVC A,A+DPTR;取段选码,变址寻址RETTAB:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h;0,1,2,3,4,5,6,7 DB 7fh,6fh,77h,7ch,39h,5eh,79h,71h,0;8,9,A,b,C,d,E,F,灭,4.查段选码子程序:入口条件:待显示字符存于A中;出口条件:待显示字符的段选码存于A中;占用资源:DPRT,A。,实验箱显示电路,SHIFT:MOVR6,#08H;循环次数MOVDPTR,#E102H;指针指向8155的PB口寄存器LP1:RLCAMOVR7,A;备份A中段选码MOVACC.0,CCLRACC.1MOVXDPTR,A;输出DAT,输出CLK为0,SETBACC.1MOVX DPTR,A;DAT不变,输出CLK为1CLRACC.1MOVX DPTR,A;DAT不变,输出CLK为0MOVA,R7;恢复A中内容DJNZ R6,LP1;判断8位是否移位完毕RET;,5.输出一个字符的段选码 方法分析:PB0逐位输出数据,PB1输出移位时钟;入口条件:待显示字符的段选码存放在A中;占用资源:A,R6,R7。,实验箱显示电路,7.输出6位字符(扫描一次),方法分析:扫描1次,每位数码管显示一次。以1ms为间隔,顺序将PA0到PA5输出高电平。在某位输出高电平期间,相应输出该位的段选码。,入口条件:待显示字符存于35H30H单元中占用资源:A,R0,R1,实验箱显示电路,SCW:MOVDPTR,#0EF01H;8155的PA口MOVX DPTR,A;输出位选码RET,5.输出位选码子程序:入口条件:待输出位选码存于A中;占用资源:DPTR注意:位选码的值总是只有1个位为1。,DISP:MOVR0,#30H;地址指针MOVR1,#01H;位选码,从低位开始显示DP1:MOVA,#00HLCALLSCW;关显示MOVA,R0;取待显示字符LCALLDXM;查表段选码LCALL SHIFT;移位输出段选码MOVA,R1LCALLSCW;输出位选码INCR0;地址指针指向下一单元RLA;位选码指向高一位MOVR1,A;保存位选码LCALLDELY1;延时1msJNBACC.6,DP1RET,实验箱显示电路,ORG0000HLJMP MAINORG0030HMAIN:MOV SP,#6FH;设置堆栈LCALLINIT8155;初始化8155MN1:LCALLDISP;输出显示字符SJMPMN1;循环输出,9.主程序(反复调用扫描显示程序),8.延时1ms子程序,子程序2:延时1ms程序(12M晶体)占用资源:R6,R7DELY1:MOVR7,#02HDL1:MOVR6,#0FFHDJNZR6,$DJNZR7,DL1RET,程序中哪些地方需要用堆栈?,实验箱显示电路,程序清单:1 主程序2 子程序18155初始化程序3 子程序2延时1ms程序4 子程序3查表段选码5 子程序4输出一个字符的段选码6 子程序5输出6位字符(扫描一次),实验箱显示电路,实验箱键盘与显示接口应用举例,列,行,键码由键值查表得到,键值=行首键值+列号,列0,端口地址译码电路,命令寄存器口地址:E100HPA口寄存器口地址:E101HPB口寄存器口地址:E102HPC口寄存器口地址:E103H,例:编写键盘扫描程序,并利用.1节的数码管动态显示程序,将被按下键的键码显示到个位数码管上。,实验箱键盘与显示接口应用举例,键盘显示扫描程序编写,程序清单:1 子程序6判断是否有键按下2 子程序7键盘扫描程序,确认按下的键3 主程序 将按键码显示在数码管上,子程序6:判断是否有键按下占用资源:AKeyTest:MOVDPTR,#0E101H;指向8155的PA口寄存器MOVA,#00HMOVXDPTR,A;列输出全0MOVDPTR,#0E103H;指向8155的PC口寄存器MOVX A,DPTR;读键值ORLA,#0F0H;屏蔽高四位CPLA;全0无按键RET,实验箱键盘与显示接口应用举例,子程序7:键盘扫描程序,确认按下的键 占用资源:A,R2,R4KeyGet:MOVR2,#11111110B;行扫描码MOVR4,#00H;置第0行首键值KG1:MOVDPTR,#0E101H;指向8155的PA口寄存器MOVA,R2MOVXDPTR,A;一行输出0,其它行输出1MOVDPTR,#0E103H;指向8155的PC口寄存器MOVXA,DPTR;读键值JBACC.0,L1;第0列无按键,跳到L1MOVA,#00H;保存列号,准备计算键值LJMPKG2L1:JBACC.1,L2;第1列无按键,跳到L2MOVA,#01H;保存列号,准备计算键值LJMPKG2L2:JBACC.2,L3;第2列无按键,跳到L3MOVA,#02H;保存列号,准备计算键值LJMPKG2L3:JBACC.3,NEXT;第3列无按键,跳到扫描下一行MOVA,#03H;保存列号,准备计算键值KG2:ADDA,R4;停止扫描,计算键值,实验箱键盘与显示接口应用举例,MOVDPTR,#TAB1MOVC A,A+DPTR;按照键值查表得到键码PUSH ACC;保存键码WaitRelease:LCALLDISPLCALLKeyTest;判断是否有键按下JNZ WaitReleaseLCALL DISP;调用显示程序,延时6ms,消除抖动LCALLKeyTest;再次判断是否有键按下JNZ WaitReleasePOPACCKeyGetEND:RETNEXT:MOVA,R2;扫描行指针JNBACC.5,NEXT1;判断6行是否全部扫描完RLA;行扫描码左移MOVR2,AMOVA,R4ADDA,#04;置下一行首键值MOVR4,ALJMPKG1;开始扫描下一行NEXT1:MOVA,#24;未扫描到按键返回键码24LJMP KeyGetENDTAB1:DB0,1,4,7,0FH,2,5,8,0EH,3,6,9,0DH,0CH,0BH,0AH;键码表DB16,17,18,19,20,21,22,实验箱键盘与显示接口应用举例,按键显示主程序MAIN:MOVSP,#6FHLCALLINIT8155;8155初始化MOV30H,#0FFH;初始化缓冲区,显示00008.MOV31H,#00HMOV32H,#00HMOV33H,#00HMOV34H,#00HMOV35H,#00HMAIN1:LCALLDISP;显示LCALLKeyTest;判断是否有键按下JZ MAIN1;无键按下,继续循环LCALLDISP;显示,延时6msLCALLKeyTest;再次判断是否有键按下JZ MAIN1;无键按下,继续循环LCALLKeyGet;扫描键盘,得到键码PUSHACC;保存键码CLRCSUBBA,#16;显示小于15的键码JNCMAIN1POPACC弹出键码MOV30H,A;键码写入显示缓冲区LJMPMAIN1,实验箱键盘与显示接口应用举例,作业,1 假定AT89C51单片机的P1口静态驱动一只数码管,如下图所示,试编写程序,实现0到9数字依次循环显示,显示间隔为2S.,

    注意事项

    本文(键盘与显示接口技术.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开