
【大学课件】单片机应用系统.ppt
29页人机接口人机接口人机接口人机接口键盘接口键盘接口显示器接口显示器接口第第十十章章单单片片机机应应用用系系统统 本章内容本章内容Single Chip MicrocomputerPC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设单片机电路有时候也需要键盘、显示等外设单片机电路有时候也需要键盘、显示等外设单片机电路有时候也需要键盘、显示等外设10.1 键盘接口键盘接口q按键的特点及输入原理q独立式按键q矩阵式按键按键的特点及输入原理v键输入原理:键输入原理: 通过按键的接通与断开,产生两种相反的逻辑通过按键的接通与断开,产生两种相反的逻辑状态状态 低电平低电平“0 0”与与高电平高电平“1 1” v键功能的实现:键功能的实现: 对于一组键或一个键盘,需通过接口电路与单对于一组键或一个键盘,需通过接口电路与单片机相连可采用片机相连可采用查询查询查询查询或或中断中断中断中断方式测试有无键按下,方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器再确定是哪一个键按下,将该键号送入累加器ACCACC,然后判断是数字键还是功能键,若是数字键,则,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。
行完后再返回主程序 硬件方案硬件方案——双稳态去抖电路双稳态去抖电路键盘接口需要解决的问题是否有键按下是否有键按下按键识别:按键识别:键抖动及消除键抖动及消除::机械按键抖动时间在机械按键抖动时间在5 5msms~~10ms10ms之之间间 软件方案软件方案——延时延时10ms10ms~~20ms20ms后再次判断后再次判断消除方法消除方法::求键号求键号独立式按键独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但占用特点:一线一键,按键识别(编程)简单;但占用较多口线,适合较多口线,适合8 8键以下使用键以下使用原理原理--------当任何一个键被按下时,与其相连的输入线被当任何一个键被按下时,与其相连的输入线被置成置成 “0 0”,平时该线为,平时该线为“1 1”键处理程序键处理程序ORG 2000HSTART::MOV A ,,#0FFH ;先置;先置P1口为口为“1”MOV P1,,AMOV A,,P1 ;输入键状态;输入键状态JNB ACC.0,, P0F ;查询;查询0号键号键JNB ACC.1,, P1F ;查询;查询1号键号键JNB ACC.2,, P2F ;查询;查询2号键号键JNB ACC.3,, P3F ;查询;查询3号键号键JNB ACC.4,, P4F ;查询;查询4号键号键JNB ACC.5,, P5F ;查询;查询5号键号键JNB ACC.6,, P6F ;查询;查询6号键号键JNB ACC.7,, P7F ;查询;查询7号键号键LJMP START键盘扫描键盘扫描键盘扫描键盘扫描P0F::LJMP PROM0 ;入口地址表;入口地址表P1F::LJMP PROM1P6F::LJMP PROM6P7F::LJMP PROM7……PROM0::………………….. ;;0号键功能程序号键功能程序PROM7::………………….. ;;7号键功能程序号键功能程序…………………..LJMP START ;;0号键处理完返回键盘扫描号键处理完返回键盘扫描LJMP START ;;7号键处理完返回键盘扫描号键处理完返回键盘扫描…………………......例例1 1:用:用P1P1口检测三个按键的状态并完成相应的功能口检测三个按键的状态并完成相应的功能解:资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。
流程图: ORG 2000HKB: MOV P1,#0FFH MOV A,P1 CPL A ANL A,#0FH JZ KBACK LCALL D10MS MOV A,P1 CPL A ANL A,#0FH JZ KBACK CJNE A,#01H,KB01 LCALL PGM1 SJMP KBACKKB01:CJNE A,#02H,KB02 LCALL PGM2 SJMP KBACKKB02:CJNE A,#04H,KB LCALL PGM3KBACK: LJMP KB END编程(1):按三个按键中的任一键都对应一个特定功能若判断键释放应如何修改?矩矩阵阵式式按按键键关键:如何关键:如何判断键号?判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法特点:按键识别应采用扫描法或线路反转法特点:按键识别应采用扫描法或线路反转法特点:按键识别应采用扫描法或线路反转法 编程较为复杂,节省口资源,编程较为复杂,节省口资源,编程较为复杂,节省口资源,编程较为复杂,节省口资源,8 8 8 8键以上使用键以上使用键以上使用键以上使用键盘扫描子程序一般包括以下内容: 1.判别有无键按下; 2.扫描获取闭合键的行、列值; 3.用计算法或查表法得到键值; 4.判断闭合键释放否,如没释放则继续等待; 5.保存闭合键号。
键按下键按下/ /释放判断释放判断 KS::MOV P1,,#0FH MOV A,,P1 ;;读入读入P1口状态口状态 CPL A ;变正逻辑,高电平表示有键按下;变正逻辑,高电平表示有键按下 ANL A,#0FH ;取低;取低4位位 RET ;返回,;返回,A≠0表示有键按下表示有键按下 按键识别——扫描法 流程: 当当第第0 0列列处处于于低低电电平平时时,,逐逐行行查查找找是是否否有有行行线线变变低低,,若若有有,,则则第第0 0列列与与该该行行的的交交叉叉点点按按键键按按下下;;若若无无,,则则表表示示第第0 0列列无无键键按按下下,,再再让让下下一一列列处处在在低低电电平平,,依依此此循循环环,,这这种方式称为种方式称为键盘扫描键盘扫描 原理: 在某一时刻只让在某一时刻只让一条列线一条列线处于处于低低电平,其余列线均电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。
有键按下例2:键盘扫描程序SERCH: MOV R2,#0EFH MOV R3,#00H LINE0: MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYKLINE1: JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2: JB ACC.1,LINE3 MOV A,#08H接口电路 AJMP TRYKLINE3: JB ACC.0,LINE4 MOV A,#0CH AJMP TRYKLINE4: INC R3 MOV A,R2 RL A JNB ACC.0,BACK MOV R2,A AJMP LINE0 TRYK: ADD A,R3BACK: RET接口电路定时扫描方式 定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。
CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序中断扫描方式 为提高CPU工作效率,可采用中断扫描工作方式其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号10.2 显示器接口技术LEDLED的结构和显示原理的结构和显示原理静态显示方式静态显示方式动态显示方式动态显示方式动态显示的实现动态显示的实现动态显示方式问题引入:问题引入: LEDLED显示器如何显示出指定数字显示器如何显示出指定数字/ /字符?字符?comcom例:模拟产品计数显示电路例:模拟产品计数显示电路编程 ORG1000HSTAR:MOVTMOD,#60H;定时器T1工作在方式2计数 MOVTH1,#00H ;T1置初值 MOVTL1,#00HMAIN:MOVP1,#0C0H;数码管显示0DISP: JB P3.3,DISP ;监测按键信号 ACALL DELAY ;消抖延时 JB P3.3,DISP ;确认低电平信号DISP1:JNB P3.3,DISP1;监测按键信号 ACALL DELAY ;消抖延时 JNBP3.3,DISP1;确认高电平信号 SETB TR1 ;启动计数器编程DISP2:MOV A,TL1 MOVC A,@A+DPTR ;查表获取数码管显示值 MOVP1,A ;数码管显示计数值 CJNE A,#8EH,DISP2 LJMPSTARTAB:0C0H,0F9H,0A4H … …DELAY:MOV R2,#14HDELAY1:MOV R3,#0FAH DJNZ R3,$ DJNZ R2,DELAY1 RET END静态显示方式q连接 所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。
q特点 原理简单;显示亮度强,无闪烁;占用I/O资源较多动态显示方式q连接 所有LED的段选线共同连接在一起共用一个 8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制因此必须采用动态扫描显示方式,每一个时刻只选通其中一个LED,同时在段选口送出该位LED的字型码 动态显示基本原理 电路的接法决定了必须采用电路的接法决定了必须采用逐位扫描显示方式即从段选口送出某位即从段选口送出某位LEDLED的字型码,然后选通该位的字型码,然后选通该位LEDLED,, 并保持一段延时时间然后选通下一位,直到所有位扫并保持一段延时时间然后选通下一位,直到所有位扫 描完 注意:字型码通常通过查表指令字型码通常通过查表指令MOVCMOVC来求得来求得 试编制程序,要求当其中某一按键压下时与试编制程序,要求当其中某一按键压下时与其对应的二极管将被点亮其对应的二极管将被点亮课堂练习P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.080318031+5V。












