最新单片机课件 第十章ppt课件.ppt
《最新单片机课件 第十章ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新单片机课件 第十章ppt课件.ppt(101页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图图10-410-4:4 4位位8 8段段LEDLED动态显示电路。其中段码线占用一动态显示电路。其中段码线占用一个个8 8位位I/OI/O口,而位选线占用一个口,而位选线占用一个4 4位位I/OI/O口。口。图图10-510-5为为8 8位位LEDLED动态显示动态显示2003.10.102003.10.10的过程的过程。图(图(a)a)是显示过程,是显示过程,某一时刻,只有一位某一时刻,只有一位LEDLED被选通被选通 显示,其余位则是熄灭的;显示,其余位则是熄灭的;图(图(b)b)是实际显示结果,是实际显示结果,人眼看到的是人眼看到的是8 8位稳定位稳定的的 同时显示同时显示的字符。的字
2、符。10.2 10.2 键盘接口原理键盘接口原理1. 1. 键盘输入的特点键盘输入的特点键盘:一组按键开关的集合键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合,行线电压信号通过键盘开关机械触点的断开、闭合,输出波形如图输出波形如图10-610-6。2. 2. 按键的确认按键的确认 检测检测行线行线电平电平 高电平:高电平:断开;断开;低电平低电平:闭合,:闭合,常用常用软件来消除按键抖动。软件来消除按键抖动。 基本思想基本思想:检测到有键按下,键对应的行线为低,软检测到有键按下,键对应的行线为低,软件延时件延时1010msms后,行线如仍为低,则确认该行有键按下。后,
3、行线如仍为低,则确认该行有键按下。3.3.如何消除按键的抖动如何消除按键的抖动 当键松开时当键松开时,行线变高,软件延时,行线变高,软件延时1010msms后,行线仍后,行线仍为为高,说明按键已松开。高,说明按键已松开。采取以上措施,采取以上措施,躲开了两个抖动期躲开了两个抖动期t1t1和和t3t3的影响的影响。10.2.2 10.2.2 键盘接口的工作原理键盘接口的工作原理独立式独立式按键接口和按键接口和行列式行列式键盘接口。键盘接口。1.1.独立式键盘接口独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过各键相互独立,每个按键各接一根输入线,通过检检测输入线的电平状态测输入线的电平
4、状态可很容易判断那个键被按下。可很容易判断那个键被按下。此种接口此种接口适于键数较少适于键数较少或或操作速度较高操作速度较高的场合。的场合。图图10-710-7(a a)为为中断方式的独立式中断方式的独立式键盘工作电路键盘工作电路图图10-710-7(b b)为为查询方式的独立式查询方式的独立式键盘工作电路键盘工作电路。图图10-810-8为为82558255A A扩展扩展I/OI/O口口的的独立式独立式按键接口电路。按键接口电路。图图10-910-9用用三态缓冲器三态缓冲器扩展的扩展的I/OI/O口的按键接口电口的按键接口电路路。 对图对图10-910-9独立式键盘编程,软件消抖,查询方式检
5、独立式键盘编程,软件消抖,查询方式检测键的状态。仅有一键按下时才有效才处理。测键的状态。仅有一键按下时才有效才处理。KEYIN:MOV DPTR,#0BFFFHKEYIN:MOV DPTR,#0BFFFH;键盘端口地址键盘端口地址BFFFHBFFFHMOVX A,DPTRMOVX A,DPTR;读键盘状态读键盘状态ANL A,#1FHANL A,#1FH;屏蔽高三位屏蔽高三位MOV R3,AMOV R3,A;保存键盘状态值保存键盘状态值LCALL DELAY10LCALL DELAY10;延时延时1010msms去键盘抖动去键盘抖动MOVX A,DPTRMOVX A,DPTR;再读键盘状态再读
6、键盘状态ANL A,#1FHANL A,#1FH;屏蔽高三位屏蔽高三位 CJNE A,R3,RETURN CJNE A,R3,RETURN ;两次不同,抖动引起转两次不同,抖动引起转RETURNRETURNCJNE A,#1EH,KEY2 CJNE A,#1EH,KEY2 ;相等,有键按下,不等转相等,有键按下,不等转KEY2KEY2LJMP PKEY1LJMP PKEY1; ;是是K1K1键按下,转键按下,转K1K1键处理键处理 ;子程序子程序PKEY1PKEY1KEY2: CJNE A,#1DH,KEY3 ;S2KEY2: CJNE A,#1DH,KEY3 ;S2键未按下,转键未按下,转K
7、EY3KEY3LJMP PKEY2LJMP PKEY2 ;S2 ;S2键按下,转键按下,转PKEY2PKEY2处理处理KEY3:KEY3: CJNE A,#1BH,KEY4CJNE A,#1BH,KEY4 ;S3;S3未按下,转未按下,转KEY4KEY4LJMP PKEY3 ;S3LJMP PKEY3 ;S3按下,转按下,转PKEY3PKEY3处理处理KEY4: CJNE A,#17H,KEY5 ;S4KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转键未按下,转KEY5KEY5LJMP PKEY4 ;S4LJMP PKEY4 ;S4按下,转按下,转PKEY4PKEY4处理处理K
8、EY5:KEY5: CJNE A,#0FH,PASS ;S5CJNE A,#0FH,PASS ;S5未按下,转未按下,转RETURNRETURNLJMP PKEY5 ;S5LJMP PKEY5 ;S5按下,转按下,转PKEY5PKEY5处理处理RETURN:RET ;RETURN:RET ;重键或无键按下,从子程序返回重键或无键按下,从子程序返回识别和编程简单,识别和编程简单,用在按键数较少的场合。用在按键数较少的场合。2. 行列式行列式(矩阵式矩阵式)键盘接口键盘接口 用于按键数目较多的场合,用于按键数目较多的场合,由由行线和列线组成行线和列线组成,按键位于行、列的交叉点上。如图按键位于行、
9、列的交叉点上。如图10-1010-10所示。所示。 按键数目较多的场合按键数目较多的场合,行列式键盘与独立式键盘,行列式键盘与独立式键盘相比,要相比,要节省很多的节省很多的I/OI/O口线口线。(1)行列式键盘工作原理)行列式键盘工作原理 无键按下,该行线为高电平,无键按下,该行线为高电平,当有键按下时,当有键按下时,行线电平由列线的电平来决定行线电平由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发由于行、列线为多键共用,各按键彼此将相互发生影响,必须生影响,必须将行、列线信号配合起来并作适当的处将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置理,才能确定闭合键的位置
10、。(2 2)按键的识别方法按键的识别方法a. a. 扫描法扫描法 图图10-1010-10(b b)中中3 3号键被按下为例,来说明此键号键被按下为例,来说明此键时如何被识别出来的。时如何被识别出来的。识别键盘有无键被按下的方法,分两步进行:识别键盘有无键被按下的方法,分两步进行:第第1 1步:步:识别键盘有无键按下;识别键盘有无键按下;第第2 2步:步:如有键被按下,识别出具体的按键。如有键被按下,识别出具体的按键。 把所有列线置把所有列线置0 0,检查各行线电平是否有变化,如,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。有变化,说明有键按下,如无变化,则无键按下
11、。 上述方法称为上述方法称为扫描法扫描法,即,即先把某一列置低电平,先把某一列置低电平,其余各列为高电平,检查各行线电平的变化其余各列为高电平,检查各行线电平的变化,如果某,如果某行线电平为低,可确定行线电平为低,可确定此行列交叉点此行列交叉点处的按键被按处的按键被按下。下。 b. b. 线反转法线反转法 只需两步便能获得此按键所在的行列值,线反转只需两步便能获得此按键所在的行列值,线反转法的原理如图法的原理如图10-1110-11。第第1 1步:步:列线输出为全低电平,则行线中电平由高变低列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。的所在行为按键所在行。第第2 2步:步:行
12、线输出为全低电平,则列线中电平由高变低行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。所在列为按键所在列。 结合上述两步,可确定按键所在行和列。结合上述两步,可确定按键所在行和列。(3 3)键盘的编码)键盘的编码 根据实际需要灵活编码。根据实际需要灵活编码。10.2.3 10.2.3 键盘的工作方式键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。入,取决于键盘的工作方式。原则:原则:即要保证能及时响应按键操作,又不要过多占即要保证能及时响应按键操作,又不要过多占用用CPUCPU的工作时间。的工作时间。
13、 通常,通常,键盘工作方式有键盘工作方式有3 3种种,即编程扫描、定时扫,即编程扫描、定时扫描和中断扫描。描和中断扫描。1. 1. 编程扫描方式编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。扫描键盘。工作过程:工作过程:(1 1)在键盘扫描子程序中,先判断有无键按下。)在键盘扫描子程序中,先判断有无键按下。方法:方法:PAPA口口8 8位位输出输出全全0 0,读读PCPC口口低低4 4位状态,若位状态,若PC0PC0PC3PC3为全为全1 1,则说明键盘无键按下;若不全为,则说明键盘无键按下;若不全为1 1,则说明,则说明键盘可能有
14、键按下。键盘可能有键按下。(2 2)用软件来消除按键抖动的影响。如有键按下,则)用软件来消除按键抖动的影响。如有键按下,则进行下一步。进行下一步。(3 3)求按下键的键号。)求按下键的键号。(4 4)等待按键释放后,再进行按键功能的处理操作。)等待按键释放后,再进行按键功能的处理操作。2. 2. 定时扫描工作方式定时扫描工作方式 利用单片机内的定时器,产生利用单片机内的定时器,产生1010msms的定时中断,对的定时中断,对键盘进行扫描。键盘进行扫描。3.3.中断工作方式中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理
15、睬键盘。无键按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次键盘所做的工作分为三个层次,如图,如图10-1310-13。第第1 1层:层:单片机如何来监视键盘的输入。三种工作方单片机如何来监视键盘的输入。三种工作方 式:编程扫描定时扫描中断扫描。式:编程扫描定时扫描中断扫描。第第2 2层:层:确定具体按键的键号。体现在按键的识别方确定具体按键的键号。体现在按键的识别方 法上就是:扫描法;线反转法。法上就是:扫描法;线反转法。第第3 3层:层:执行键处理程序。执行键处理程序。10.3 10.3 键盘键盘/ /显示器接口设计实例显示器接口设计实例 一般把键盘和显示器放在一起考虑。一般把键盘和
16、显示器放在一起考虑。10.3.1 10.3.1 利用并行利用并行I/OI/O芯片实现键盘芯片实现键盘/ /显示器接口显示器接口 图图10-1410-14:80318031用扩展用扩展I/OI/O接口芯片接口芯片81558155H H实现的实现的6 6位位LEDLED显示和显示和3232键的键盘键的键盘/ /显示器接口电路。图中显示器接口电路。图中81558155H H也可用也可用82558255A A来替代。来替代。 8031 8031外扩一片外扩一片81558155H H。RAMRAM地址:地址:7 7E00HE00H7EFFH7EFFH。I/OI/O口地址:口地址:7 7F00HF00H7
17、F05H7F05H。 PAPA口口为输出口为输出口,控制键盘控制键盘列线的扫描列线的扫描,同时又是,同时又是6 6位共阴极显示器的位共阴极显示器的位扫描口位扫描口。 PBPB口口作为显示器段码输出口,作为显示器段码输出口,PCPC口作为键盘的行口作为键盘的行线状态的输入口。线状态的输入口。 75452 75452:反相驱动器,反相驱动器,74077407:同相驱动器。同相驱动器。1 1动态显示程序设计动态显示程序设计内部内部RAM RAM 6 6个显示缓冲单元:个显示缓冲单元:7979H H7EH7EH,存放要显示的存放要显示的 6 6位数据。位数据。81558155H H的的PBPB口输出相
18、应位的段码,口输出相应位的段码,依次改变依次改变PAPA口输出为口输出为 高高的位的位使某一位显示某一字符,其它位为暗。使某一位显示某一字符,其它位为暗。动态地显示出由缓冲区中显示数据所确定的字符。程动态地显示出由缓冲区中显示数据所确定的字符。程 序流程如图序流程如图10-15 10-15 。参考程序参考程序:DIRDIR: MOV R0, MOV R0,79H79H;置缓冲器指针初值置缓冲器指针初值MOV R3,MOV R3,01H01H;位选码的初值送位选码的初值送R3R3MOV A,R3MOV A,R3LD0LD0: MOV DPTR, MOV DPTR,7F01H 7F01H ;位选码
19、位选码PAPA口(口(PA.0PA.0位)位);最左边最左边LEDLED亮亮MOVX DPTR,AMOVX DPTR,AINC DPTRINC DPTR ;数据指针指向数据指针指向PBPB口口MOV A,R0 MOV A,R0 ;显示数据显示数据A AADD A,ADD A,0DH 0DH ;加偏移量(下条指令到表首间加偏移量(下条指令到表首间 ;所有指令占的单元数);所有指令占的单元数)MOVC A,AMOVC A,APC PC ;根据显示数据来查表取段码根据显示数据来查表取段码DIR1DIR1: MOVX DPTR,AMOVX DPTR,A ;段码段码81558155H H PBPB口口A
20、CALL DL1ms ACALL DL1ms ;该位显示该位显示1 1msmsINC R0INC R0 ;指针指向下一个数据单元指针指向下一个数据单元MOV A,R3MOV A,R3 ;位选码送入位选码送入A A中中JB Acc.5,LD1 JB Acc.5,LD1 ;判断是否扫描到最右边的判断是否扫描到最右边的 ; LEDLED,如到最右边则返回如到最右边则返回RL A RL A ;位选码向左移一位,准备让位选码向左移一位,准备让 ; ; 右边的下一位右边的下一位LEDLED亮亮MOV R3,AMOV R3,A ;位选码位选码送送R3R3中保存中保存AJMP LD0 ;AJMP LD0 ;L
21、D1LD1: RET ; RET ;DSEGDSEG: DB 3FH,06H,5BH,4FH,66H,6DH DB 3FH,06H,5BH,4FH,66H,6DH ;共阴极段码表共阴极段码表 DB 7DH,07H,7FH,6FH,77H,7CH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH DB 39H,5EH,79H,71H,73H,3EHDB 31H,6EH,1CH,23H,40H,03HDB 31H,6EH,1CH,23H,40H,03HDB 18H,00HDB 18H,00HDL1msDL1ms: MOV R7,MOV R7
22、,02H02H;延时延时1 1msms子程序子程序DLDL: MOV R6,MOV R6,0FFH0FFHDL6DL6: DJNZ R6,DL6DJNZ R6,DL6DJNZ R7,DLDJNZ R7,DLRETRET2 2键盘程序设计键盘程序设计(1 1)判别键盘上有无键闭合)判别键盘上有无键闭合(2 2)去除键的机械抖动)去除键的机械抖动 (3 3)判别闭合键的键号)判别闭合键的键号(4 4)使)使CPUCPU对键的一次闭合仅作一次处理对键的一次闭合仅作一次处理 键盘程序的流程如图键盘程序的流程如图10-1610-16。键盘子程序如下:键盘子程序如下:KEYIKEYI:ACALL KS1A
23、CALL KS1 ;调用判有无键闭合子程序调用判有无键闭合子程序JNZ LK1 JNZ LK1 ;有键闭合,跳有键闭合,跳LK1LK1NINI: ACALL DIR ACALL DIR ;无键闭合,调用显示子程序无键闭合,调用显示子程序, ,延延 ;迟;迟6 6msms后,跳后,跳KEYIKEYIAJMP KEYIAJMP KEYILK1LK1: ACALL DIR ACALL DIR ;可能有键闭合,软件延迟可能有键闭合,软件延迟1212msms去抖去抖ACALL DIRACALL DIRACALL KS1 ACALL KS1 ;调用判有无键闭合子程序调用判有无键闭合子程序JNZ LK2JN
24、Z LK2 ;经去抖,判键确实闭合,跳经去抖,判键确实闭合,跳LK2LK2ACALL DIRACALL DIR;调用显示子程序延迟调用显示子程序延迟6 6msmsAJMP KEYIAJMP KEYI;抖动引起,跳抖动引起,跳KEYIKEYILK2LK2: MOV R2, MOV R2,0FEH0FEH ;列选码列选码R2R2MOV R4,MOV R4,00H00H;R4R4为列号计数器为列号计数器LK4LK4: MOV DPTR, MOV DPTR,7F01H 7F01H ;列选码列选码81558155H H的的PAPA口口MOV A,R2 ;MOV A,R2 ;MOVX DPTR,A ; M
25、OVX DPTR,A ; INC DPTRINC DPTR ;数据指针增数据指针增2 2,指向,指向PCPC口口INC DPTR ;INC DPTR ;MOVX A,DPTRMOVX A,DPTR ;读读81558155H PCH PC口口JB Acc.0,LONEJB Acc.0,LONE ;0 0行线为高,无键闭合,跳行线为高,无键闭合,跳 LONE LONE,转判转判1 1行行MOV A,MOV A,00H00H ;0 0行有键闭合行有键闭合, ,首键号首键号00A AAJMP LKPAJMP LKP ;跳跳LKPLKP,计算键号计算键号LONELONE:JB Acc.1,LTW0 JB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新单片机课件 第十章ppt课件 最新 单片机 课件 第十 ppt
限制150内