单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt

上传人:laozhun 文档编号:2277465 上传时间:2023-02-08 格式:PPT 页数:63 大小:2.35MB
返回 下载 相关 举报
单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt_第1页
第1页 / 共63页
单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt_第2页
第2页 / 共63页
单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt_第3页
第3页 / 共63页
单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt_第4页
第4页 / 共63页
单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用PPT教学课件第9章MCS51与键盘、显示器、拨盘、打印机的接口设计.ppt(63页珍藏版)》请在三一办公上搜索。

1、单片机原理及应用,第9章 MCS-51与键盘、显示器的接口设计,光华学院信息工程系王 超,PC机除了主机以外还需要哪些部分呢?,单片机电路有时候也需要键盘、显示等外设。,9.1 键盘接口,按键的特点及输入原理独立式按键矩阵式按键,按键的特点及输入原理,按键的分类:触点式:机械;无触点式:电气键输入原理:通过按键的接通与断开,产生两种相反的逻辑状态 低电平“0”与高电平“1”。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器A,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;

2、若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,键盘接口需要解决的问题,是否有键按下,按键识别:,键抖动及消除:,机械按键抖动时间在5ms10ms之间,硬件方案双稳态去抖电路软件方案延时10ms20ms后再次判断,消除方法:,求键号,独立式按键,接口电路:,特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。,例1:用P1口检测三个按键的状态并完成相应的功能,解:,资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。,流程图:,ORG 0000HKB:MOV P1,#0FFH;想从P1口取数时要先;将初始

3、值FF装入P1,再准备去取数!MOV A,P1;读出P1口内容到A中 CPL A;将A取反 ANL A,#07H;将A的内容与07相与 JZ KB;判断A是否是0,是0无键按下;跳转到KB LCALL D10MS;由按键按下延时10ms MOV A,P1;读出P1口内容到A中 CPL A;将A取反 ANL A,#07H;将A的内容与07相与 JZ KB;判断A是否是0,是0无键按下;跳转到KB CJNE A,#01H,KB01;是1按键按下吗?;不是跳转到KB01 LCALL PGM1;是,则调用PGM1 SJMP KB;返回KBKB01:CJNE A,#02H,KB02;是2按键按下吗?;不

4、是跳转到KB02 LCALL PGM2;是,则调用PGM2 SJMP KB;返回KBKB02:CJNE A,#04H,KB;是1按键按下吗?;不是跳转到KB01 LCALL PGM3;是,则调用PGM3 SJMP KB;返回KB END,编程:按三个按键中的任一键都对应一个特定功能。,矩阵式按键,关键:如何判断键号?,接口电路:,特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用,键盘扫描子程序一般包括以下内容:1.判别有无键按下;2.扫描获取闭合键的行、列值;3.用计算法或查表法得到键值;4.判断闭合键释放否,如没释放则继续等待;5.保存闭合键号。,键按下/释放判断

5、,KS:MOV A,#00H;将00放入A中 MOV P1,A;全扫描字#00H送P1口 MOV P1,#0FH;为保证取P1口低4位,先应将其置高电平 MOV A,P1;读入P1口状态 CPL A;变正逻辑,高电平表示有键按下 ANL A,#0FH;取低4位 RET;返回,A0表示有键按下 MAIN:LCALL KS JNZ xxx,如果按下“2”号键,那么P1.0-P1.7的值从原来的0000,1111(0F)变化为0000,0111(0E),因此,A的值变为0000,0111(0E)。取反,1111 1000(F8)再与0000,1111(0F)相与,则为0000,1000(08)不为0

6、,有按键按下。,有按下情况的进一步处理程序,按键识别扫描法,流程:当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。键号=行首键号(0、4、8、12)+列号(0、1、2、3),原理:在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。,例2:键盘扫描程序,SERCH:MOV R2,#0EFH;扫描初值1110 1111 MOV R3,#00H;列号为0 LINE0:MOV A,R2;将R

7、2,1110 1111送入A MOV P1,A;将A,1110 1111送入P1 MOV A,P1;读P1口内容到A JB ACC.3,LINE1;判断0行选中?MOV A,#00H;行首号送累加器A=00 AJMP TRYK;跳转到TRYKLINE1:JB ACC.2,LINE2;判断1行选中?MOV A,#04H;行首号送累加器A=04 AJMP TRYK;跳转到TRYKLINE2:JB ACC.1,LINE3;判断2行选中?MOV A,#08H;行首号送累加器A=08,AJMP TRYK;跳转到TRYKLINE3:JB ACC.0,LINE4;判断3行选中?MOV A,#0CH;行首号送

8、累加器A=12 AJMP TRYK;跳转到TRYKLINE4:INC R3;R3列号加1 MOV A,R2;将R2,1110 1111送入A RL A;循环左移1位1101 1111 JNB ACC.0,BACK;4列都没查到,应该重新开始 MOV R2,A;赋扫描初值 AJMP LINE0;跳转到LINE0TRYK:ADD A,R3;列号+行号=键号BACK:RET,例2:键盘扫描程序,定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该

9、键,再执行该键的功能程序。,;将100放入R1;定时器1方式2,;装入初值,定时100us;启动定时器,;判断TF1位是否为1,;直到1跳转到TM1,;R1减1不等0,则跳转到LK;调用KEY测试,出口为A;判断A是否为0?跳转到TM,;延时10MS;调用KEY测试,出口为A;判断A是否为0?跳转到TM;调用按键搜索程序,;开全局中断,开定时器1中断;设置定时中断循环次数为100;设置定时器1工作方式2;计算并装入初值,;启动定时器,;等待,;R1减1不等于0,则跳转到TM1,;关全局中断,关定时器1中断,;调用KEY测试,出口为A;判断A是否为0?跳转到TM1,;延时10MS;调用KEY测试

10、,出口为A;判断A是否为0?跳转到TM1;调用按键搜索程序,MCS-51的中断系统结构图,中断标志位,中断源允许,总允许,中断优先级,中断扫描方式,为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。,;向P1口写入F0;开全局中断,开外部中断0中断;等待,;调用KEY测试,出口为A;判断A是否为0?跳转到TM1,;延时10MS;调用KEY测试,出口为A;判断A是否为0?跳转到TM1;调用按键搜索程序,1H,9.2 显示器接口技术,LED的结构和显示原理静态显示方式动态显示方式动

11、态显示的实现,动态显示方式,问题引入:,LED显示器如何显示出指定数字/字符?,为使LED显示不同的符号或数字,要为LED提供段码(或称字型码)。提供给LED显示器的段码(字型码)正好是一个字节(8段)。各段与字节中各位对应关系如下:,表1只列出了部分段码,可根据实际情况选用。另外,段码是相对的,它由各字段在字节中所处的位决定。例如表中8段LED段码是按格式:,而形成的,“0”的段码为3FH(共阴)。,8段LED的段码如表所示:,例:模拟产品计数显示电路,要想显示“2”,怎么办?,编程,ORG1000HSTAR:MOVTMOD,#60H;T1计数方式2模式 MOVTH1,#00H;T1置初值0

12、0 MOVTL1,#00HMAIN:MOVP1,#0C0H;数码管显示0 DISP:JB P3.3,DISP;监测按键信号 ACALLDELAY;消抖延时 JB P3.3,DISP;确认低电平信号DISP1:JNB P3.3,DISP1;监测按键信号松手?ACALL DELAY;消抖延时 JNBP3.3,DISP1;确认高电平信号 SETB TR1;启动计数器DISP2:MOV A,TL1;TL1值放入A中 MOVC A,A+DPTR;查表获取数码管显示值 MOVP1,A;数码管显示计数值 CJNE A,#8E,DISP2;显示的数到没到F LJMPSTAR;跳转到ATAR TAB:0C0H,

13、0F9H,0A4H;表 DELAY:MOV R2,#14H;延时DELAY1:MOV R3,#10H;延时 DJNZ R3,$DJNZ R2,DELAY1 RET END,静态显示方式,连接 所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。特点 原理简单;显示亮度强,无闪烁;占用I/O资源较多。,动态显示方式,连接 所有LED的段选线共同连接在一起共用一个 8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,每一个时刻只选通其中一个LED,同时在段选口送出该位LED

14、的字型码。,动态显示基本原理,电路的接法决定了必须采用逐位扫描显示方式。即从段选口送出某位LED的字型码,然后选通该位LED,并保持一段延时时间。然后选通下一位,直到所有位扫 描完。,要注意的两个问题:,1.字型码通常通过查表指令MOVC来求得.,2.换位显示时通常要加一段程序使所有的LED全灭.,动态显示程序流程图,采用动态扫描方式依次循环点亮各位数码管,构成多位动态数码管显示电路。,开 始,显示缓冲区首地址送R0显示位数送R2,起始显示位送R3,禁止所有位(关显示),从缓冲区取要显示的数,查表得字型码,指向段选口,送字型码,指向位选口,送位选码,延时,指向显示缓冲区下一个单元,位选码左移,

15、结束,1,1,扫描完一遍吗?,Y,N,单片机与LCD 接 口 设 计,任务1:如何在LCD的指定位置显示出 指定的字符。,2行16列,A,b,任务2:如何在LCD的指定位置显示字 符串。,2行16列,guanghua xueyuan,基本内容,LCD接口程序设计*,字符型LCD模块的使用方法,单片机与字符型LCD模块接口电路,NOTICELCD:Liquid Crystal Display,一、字符型LCD模块,guanghua xueyuan,LCD实验模块的连接管脚,1 2 3 4 5 6 7 8 9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11

16、,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,Vss:+5V电源管脚(Vcc)VDD:地管脚(GND)Vo:液晶显示驱动电源(0V5V),1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,DB0DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源,一般采用的是八位连接方法。,1,2,3,4,5,6,7,8,9,10,11

17、,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,A:背光控制正电源K:背光控制地,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,单片机与LCD模块之间有四种基本操作:写命令 读状态 写显示数据 读显示数据,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB

18、1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,数据命令选择端,读写控制端,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,RS:数据和指令选择控制端,RS=0:命令/状态;RS=1:数据R/W:读写控制线,R/W=0:写操作;R/W=1:读操作E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机之间将进行一次数据交换,二、单片机与字符型LCD模块接口,数据线:DB7DB0接单片机的P1.7 P1.

19、0,控制端:RS P3.0 R/W P3.1 E P3.2,单片机与LCD模块硬件连接,实验模块:1602,51单片机 连线表:,动手做,三、LCD接口程序设计,程序设计功能设置 写命令子程序 LCD初始化:按一定顺序写命令字 如:写清屏命令字、写DDRAM光标定位地址命令字显示数据 写数据子程序读入状态字读状态子程序,1.读状态字,RS(P3.0)=0;R/W(P3.1)=1;,RSEQUP3.0RWEQUP3.1EEQUP3.2,E(P3.2):,R/W(P3.1)=1;RS(P3.0)=0;,SETB RW;RW=1NOP;3条CLR RS;RS=0NOP;3条SETB E;E=1NOP

20、;3条MOV A,P1;读入状态字 NOP;3条CLR E;E=0NOP;3条 CLR RW;RW=0,STAT:,RET,2.写命令字,E:,RS=0;R/W=0;,采用查询方式:读入状态字,再判断忙标志ACC.7。,动手做,假定显示数据已存放到内部RAM的 21H单元,3.命令字,清除屏幕,置AC为零01H,设光标移动方向并指定整体显示是否移动。I/D=1:增量方式I/D=0:减量方式S=1:移位S=0:不移位0000011006H,设整体显示开关(D),光标显示开关(C),光标位的字符闪耀(B)D=1;C=0;B=0000011000cH,设接口数据位数(DL),显示行数(L),及字型(

21、F)DL=1,8位=0:4位N=1:2行=0:1行F=1:510=0:570011100038H,设置DDRAM地址,为显示定位,4.初始化LCD,上电,延时20ms,功能设置,延时37us,显示状态设置,延时37us,清屏,延时1.52ms,输入方式设置,初始化结束,动手做,5.定位光标位置,把显示数据显示在某个位置,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。Set DDRAM address命令如下:,NOTICE光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式字设置;第1行DDRAM地址与第2行DDRAM地址并不连续。,80H,81H,

22、82H,83H,84H,8dH,8eH,8fH,0c0H,0c1H,0c2H,0c3H,0c4H,0cdH,0ceH,0cfH,6.LCD显示程序设计,main,LCD初始化,光标定位,显示字符,动手做,SJMP$,7.显示数据,对于常用数字、字母等显示数据为其ASCII码,Thank You!,END,MajpjMVcyzj21HLfrvy96dv02lPPfYgxUS7IYmZkyEmZ0kGeYZS3bpLCkYH1lt4EK7CxmUX3ijoYSOer7ZuaVWYgz4EpZrUirVpMzzvNtf1XZw5oswSXOtFaejnOcmfE1lZgnN1RSXg8wLCG8CV

23、Q3XPJMvodPFWcpiYJgZazNSEPNIaklYSu7qSd1UpaxmZDlpN9zW7kljfsLCLi26Yv109ffbnDH8LbUN1G6ACURQ39eG12KHL9tXsZ1jzgoCK8g1kuNOh5eFvcmVT5ZYVQt9zk3rp3qLnf02FovEXxVRxjCcFRNppiJljNiOuk6fONnyX7fyGg7sXZ49BmCN5oy9VesHpKzdjTKwjrkCEQCFDehVmGax3lrOEbw63VscA3YSijtUKoCyiLzAlVRp7l4QgPNHxvJFFDyjUVN3oHlMah0XBd4uTbkfPIhHtw0ev

24、PmYOrdhEDoPwvYhzlGplU1AU9mpyiCXH8gpPCBRYjq77VcnbXumNE1yGfyTsbSj89J63kRTKDkKUg3mdS5sJ4X5cQ8dK7oW9IkScssECQdz2O9UTlpRjAFPChjhLdzopQzwxQf8ozdzOhogwAooXpUF83BX4C3jRgjDJiiXEUDMaNz4vQ4n164vspddHvOIVuBBdMA4xp1YhiHk0vOJ8TL1BxogzVlMpmod6ianYGmksQq6NWCEd56hZF4wfaNyZcrGfNxnPiG6ZAxSkfmhJAKtNmCqbRmppeXp8inz4eq3HkWCMSORyMMX522xpHG6basNr6KQfbZsFbHjzyNlJrruLolKFcC84dqfijBO5Dy2NaBcNEBPgQrT12PgpcKx2or2YChN5DPjs80zzdtdAdTKuW4uVv9bbZu3K2SZ2aEhTlIC1UqrIWibkzwHh6p8gLv26zr01mJybfOzFc4T7kQH1IpPwOzMDnAKPLsLrznXGjFNIA9bSWWms6ibKZwQIKrMzalwbFrQJvOP1rPH8rx2KkyYqrtQk5VRwM1HSX,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号