第五章MCS-51系列单片机的键盘和显示的汇编编程ppt课件.ppt
《第五章MCS-51系列单片机的键盘和显示的汇编编程ppt课件.ppt》由会员分享,可在线阅读,更多相关《第五章MCS-51系列单片机的键盘和显示的汇编编程ppt课件.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在此输入您的封面副标题第五章第五章MCS-51系列单片机的键盘和显系列单片机的键盘和显示的汇编编程示的汇编编程MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程5.1 项目引入项目引入1:独立键盘与静态数码管显示:独立键盘与静态数码管显示项目说明项目说明 很多电子产品的控制界面或遥控器上都有功能选择键、增键和减键,因此操作功能选择键、增键和减键实现显示和控制是电子产品的基本要求。 由于MCS-51系列单片机有4个I/O端口,因此独立键盘、静态数码管与单片机的实际连接方式有多种,可根据需要连接不同的独立键盘
2、和不同数量的静态数码管。本项目就是一个使用单片机应用系统实现功能选择键、增键和减键控制并通过数码管显示出来的项目,图所示的电路就是项目的一种电路连接。图中独立键盘有3个键K0K2,分别接单片机P1口的P1.2、P1.3、P1.4,静态数码管有4个,每个静态数码管由1个74LS164移位寄存器驱动,一起组成串联式的静态数码管显示,传输线和控制线只使用P1口的P1.0和P1.1。 实现功能如下:2个独立键分别为增键和减键,4个静态数码管组成2组显示。当按增键时,其中一组数码管数字增加,变化范围为0FF;当按减键时,数字减少,变化范围为FF0;剩下的一个键为功能选择键,按下功能选择键,则选择另一组数
3、码管显示,按增键这组数码管数字增加,变化范围为0FF,当按减键,数码管数字减少,变化范围为FF0;要求用独立键盘与静态数码管显示来实现。本项目源程序可参考课本附录A中相应程序。MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程5.2 项目引入项目引入2:矩阵键盘加独立键盘与液晶显示:矩阵键盘加独立键盘与液晶显示项目说明项目说明 目前电子产品除了有独立键盘和静态数码管显示外,还有矩阵键盘和液晶显示。本项目在前一项目的基础上增加矩阵键盘,并使用液晶芯片LCD1602替换静态数码管,目标是让学生学习在编程上如何
4、去掉一个电子器件和插入一个新的电子器件。 实现功能如下:给定10键矩阵键盘和3个独立键及液晶芯片(LCD1602)。液晶芯片显示两组数据,其中一组数据表示当前值,另一组数据表示预设值;3个独立键中,其中2键分别为增键和减键,剩下的键为功能选择键;在开机不按功能选择键的情况下,当前值的改变只能靠增键和减键来进行;按功能选择键1次(或单数次),则所有的按键可对预设值进行操作,其中增键和减键可进行加1或减1操作,矩阵键盘则可直接置数;按选择键2次(或偶数次),则当前值变成对应的预置数。所有的数值变化为09。 本项目给出参考电路原理图如左图所示,源程可参考课本附录A中相应程序。MCS-51系列单片机及
5、汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程5.3 键盘和显示的相关知识键盘和显示的相关知识 5.3.1 独立键盘与静态数码管显示的相关知识 1键盘接口技术 (1)键的特性 由于键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动过程,所以键的按下与释放会产生如左图所示的电压波形,抖动时间一般在510 ms之间。这个抖动会引起误判,因此必须消除键的抖动,只有这样,才能可靠地判断键的状态。 MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机
6、的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程 (2)接口技术 常用的键盘接口技术有两种:一种是独立键盘接口技术,另一种是矩阵键盘接口技术。下面介绍独立键盘接口技术。 独立键盘结构。如下图所示,每个按键的电路是独立的,占用1条数据线,当按下其中任意一键时,它所对应的数据线的电平就变成低电平;若无键按下,则所有的数据线的电平都是高电平。因此,将数据线与单片机相连,测得数据线为低电平,则可识别出与该数据线相连的按键被按下。图5-9 独立键盘结构MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程 独立键
7、盘与单片机连接。在单片机应用中,应遵循尽可能不扩展的原则,因此单片机4个基本口在使用时都可与独立键盘相连。下面就以一个例子说明独立键盘的汇编编程。 例5-1 设K0为选择键,K1为加1键,K2为减1键。当K1按下将60H单元内容加1,K2按下将60H内容减1;K0按下1次,选中61H,按下K1和K2,则对61H加1或减1,再按1次K0则重新对60H加1或减1。设置单片机电路如下图所示。图5-9 独立键盘结构MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程解:程序设计思路: 程序结构图如下图所示。主程序结
8、构图子程序结构图MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程程序清单如下:;-;程序定义部分;-;SIXTY EQU 60H ;存放第1组显示数据SIXTY_ONE EQU 61H ;存放第2组显示数据XZ_K0BITP1.0 ;独立键盘选择键ZY_K1BITP1.1 ;独立键盘加1键JY_K2BITP1.2 ;独立键盘减1键K0_FLAGBIT38H ;选择键标志K1_FLAGBIT39H ;加1键标志K2_FLAGBIT3AH ;减1键标志SIXTY_ONE_FLAGBIT 3CH ;61单元标
9、志,用于第2组显示数据的操作标识PUSHDATA EQU42H ;记忆选择键按下次数的寄存单元;-; 程序开始及主程序跳转;- ORG 0000H;-; 程序初始化部分;-START:CLREA MOVSP,#70HMOV SIXTY,#00MOV SIXTY_ONE,#00HMOV PUSHDATA,#00H;-; 主程序循环体部分;- WAIT:LCALLSINGLE _KEY ;调用独立键盘主子程序LJMP WAIT MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程;-; 子程序群;- ;独立键盘
10、主子程序;输入子程序1:KEY_TEST,输入子程序2= KEY-SCAN;输入:无;输出子程序1= SELECT1, ;输出子程序2= ADD1,输出子程序3= SUB1;输出:无;中间变量:R1=Cy位,R2=K0-FLAG位,R3=K1-FLAG位,R4=K2-FLAG位;- ;键盘子程序开始SINGLE_KEY:LCALL KEY_TEST ;判断有无键被按下的判断子程序JC RETESTLJMP RETURE1RETEST:LCALL KEY_SCAN;设置对应键被按下的标志JB K0_FLAG,PRO_K0JB K1_FLAG,PRO_K1JB K2_FLAG,PRO_K2LJMP
11、 RETURE1PRO_K0:LCALL SELECT1 ;选择子程序SJMP RETURE1PRO_K1:LCALL ADD1 ;加1子程序LJMP RETURE1PRO_K2:LCALL SUB1 ;减1子程序SJMP RETURE1RETURE1:RETMCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程;-;测键入子程序;输入:X1= XZ-K0,X2= ZY-K1,X2= JY-K2;;输出:Y1=(C);中间变量:无 ;-KEY_TEST:JNBJY_K2,KEY_TEST_OKJNBZY_K1
12、,KEY_TEST_OKJNBXZ_K0,KEY_TEST_OKCLRCRETKEY_TEST_OK:SETBCRET-;键盘扫描程序,每扫描一次,重新设置;对应键按下标志;输入X1= XZ_K0,X2= ZY_K1,X2= JY_K2,输出Y1= K0_FLAG,Y2= K1_FLAG,Y3= K2_FLAG;中间变量:无;-KEY_SCAN:CLR K0_FLAGCLR K1_FLAGCLR K2_FLAGJNB XZ_K0,KEY_SCAN_K0JNB ZY_K1,KEY_SCAN_K1JNB JY_K2,KEY_SCAN_K2SJMP KEY_SCAN_ENDKEY_SCAN_K0:S
13、ETB K0_FLAGSJMP KEY_SCAN_ENDKEY_SCAN_K1:SETB K1_FLAGSJMP KEY_SCAN_ENDKEY_SCAN_K2:SETB K2_FLAGSJMP KEY_SCAN_ENDKEY_SCAN_END:RETMCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程;- ;选择子程序;输入X= PUSHDATA;输出Y= SIXTY_ONE_FLAG;-SELECT1:CLR SIXTY_ONE_FLAG ;清除61H单元标志INC PUSHDATA ;PUSHDATA
14、增1,表示按下第1次按下功能选择键K0,PUSHDATA增2 ;则表示第2次按下功能选择键MOV A,PUSHDATACJNE A,#01H,ONESETB SIXTY_ONE_FLAG ;61H单元标志置1SJMP BACK_BONE: CJNE A,#02H,BACK_BMOV PUSHDATA,#00HBACK_B:JNB XZ_K0,$ ;等待选择键K0恢复,确保一次有效的按键为一按一放RET;-;加1键修改子程序输入:X1= SIXTY-ONE-FLAG; 输出:Y1= SIXTY,Y2= SIXTY-ONE;中间变量:R1=A;-ADD1:JB SIXTY_ONE_FLAG,ADD
15、1_1;61H单元标志为1,接下来给61H单元加1;61H单元标志为0,接下来给60H单元加1MOV A,SIXTYINC AMOV SIXTY,ALJMP ADD1_ENDADD1_1:MOV A,SIXTY_ONEINC AMOV SIXTY_ONE,AADD1_END:RETMCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程;-;减1修改子程序;输入:X1= SIXTY-ONE-FLAG; 输出:Y1= SIXTY,Y2= SIXTY -ONE;中间变量:R1=A;-SUB1:JB SIXTY_ON
16、E_FLAG,SUB1_1 ;61H单元标志为1,接下来给61H单元减1;61H单元标志为0,接下来给60H单元减1。 MOV A,SIXTY DEC A MOV SIXTY,A LJMP SUB1_ENDSUB1_1: MOV A,SIXTY_ONE DEC A MOV SIXTY_ONE,A LJMP SUB1_ENDSUB1_END: RET ENDMCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程键扫描子程序流程图键扫描子程序流程图判断哪两位需要改变的子程序流程图判断哪两位需要改变的子程序流程图M
17、CS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程加加1键修改子程序流程图键修改子程序流程图减减1键修改子程序流程图键修改子程序流程图MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程 2数码管显示接口技术数码管显示接口技术(1 1)LEDLED数码显示器的结构和原理数码显示器的结构和原理LED数码显示器是由若干个发光二极管组成的,当发光二极管导通时,相应的点或线段发光,将这些发光二极管排成一定图形,控制不同组合的二极
18、管导通,就可以显示出不同的字形。单片机应用系统中常用的LED数码显示器为七段数码显示器,其实物外形如左下图所示。七段数码显示器的结构图如中下图所示,它由七段发光二极管组成(加上小数点位则为八段),利用字段的不同组合,可以分别显示09这10个数字,如右下图所示。MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程 发光二极管的内部有两种接法,左下图所示为共阴极接法,当ah端接高电平时,相应发光二极管段发光;右下图所示为共阳极接法,当ah端接低电平时,相应发光二极管段发光。(2)数码管的显示控制 为了在LED数
19、码显示器上显示某个字符,除了在公共端上加高低电平外(共阳极加高电平,共阴极加低电平),还必须在它的8位段选码上加上相应的电平组合,这个数据就称为该字符的段选码。常用段选码的编码规则如图所示。七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 0 0 0 0 1 1 0 显示数字: 1七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 0 1 1 0 1 1 显示数字: 2七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 0 1 1 1 1 1 1 显示数字:
20、 3七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 0 0 1 1 0 显示数字: 4七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 0 1 1 0 1 显示数字: 5七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 1 1 1 0 1 显示数字: 6七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 0 0 0 0 1 1 1 显示数字: 7七段数码管的段位控制七段数码管的段位控制ag
21、dbcefdpdp g f e d c b a 0 1 1 1 1 1 1 1 显示数字: 8七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 0 0 1 1 1 显示数字: 9七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 1 0 1 1 1 显示字母: A七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 1 1 1 0 0 显示字母: b七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a
22、0 0 1 1 1 0 0 1 显示字母显示字母: c七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 0 1 1 1 1 0 显示字母显示字母: d七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 1 1 0 0 1 显示字母显示字母: E七段数码管的段位控制七段数码管的段位控制agdbcefdpdp g f e d c b a 0 1 1 1 0 0 0 1 显示字母显示字母: F七段数码管与段位控制代码七段数码管与段位控制代码03FH106H25BH34FH466H56DH67DH70
23、7H87FH96FHA77Hb7CHC39Hd5EHE79HF71HabcdefgMCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程(3 3)数码管的显示方式)数码管的显示方式图5-20 并联方式静态数码管显示MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程例5-2 如图5-21所示,将RAM 60H单元的内容用此电路显示出来,如何编程?(图5-21中使用的数码管是Proteus仿真软件中的共阳极数码管套件,共有两
24、组,每组又有两个数码管,从图上可看出每组数码管使用的是最靠右的数码管。)图5-21 例5-2电路图MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程 解:在例5-1中学习的是如何在RAM存储单元60H和61H中加1或减1,本例则是学习如何将存储单元的内容显示出来。程序设计思路: 程序结构图如下图所示。主程序结构图子程序结构图MCS-51系列单片机及汇编编程系列单片机及汇编编程第五章第五章MCS-51系列单片机的键盘和显示的汇编编程系列单片机的键盘和显示的汇编编程程序清单如下:;-;程序定义部分;-;BAN
25、K0_REGEQU00H;选择第0组寄存器定义BANK1_REGEQU08H;选择第1组寄存器定义BANK2_REGEQU10H;选择第2组寄存器定义BANK3_REGEQU18H;选择第3组寄存器定义LED_MAX_BITS EQU 02H ;LED最大位数(程序按2个数码管显示1个单元的数据进行编程,本例LED最大位数 ;就为2,如要显示2个单元的数据,LED 最大位数就为4,依此类推)LED_DIS_BUF EQU60H ;显示单元的首地址(本子程序已经保留了显示多个单元的程序编 ;辑,目前要显示的单元只有一个60H,所以60H单元也是显示单元的首地址)LED_SCLEQUP1.0 ;发
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 MCS 51 系列 单片机 键盘 显示 汇编 编程 ppt 课件
限制150内