第八章 应用系统.ppt
《第八章 应用系统.ppt》由会员分享,可在线阅读,更多相关《第八章 应用系统.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章 应用系统及接口技术 主要内容n小系统组成、结构和信号定义n键盘配置和程序设计nA/D与D/A简介n显示技术系统组成、信号的输入与输出应用小系统设计实例 要求:设计一个恒温箱控制器,温控范围5099,可任意设定。硬件框图:传感器放大器A/D转换器89C51单片机LED显示4X3键盘加热器加热指示键盘:09数字键 A:设置 B:运行流程图:如下图示开始显示“”,停止加温键扫描有键键识别数字键数据存储、显示运行键数据输入合理读A/D值温度设定值停止加温设定值按下启动加温NNNNNN人一机通道配置与接口技术 一键盘接口 编码键盘:按键识别由专用硬件译码器实现,输出键号或键值。非编码键盘:按键识
2、别由软件实现。基本按键电路:K闭合:P1.00K断开:P1.01 键抖动清除:硬件:加入去抖动电容或利用RS触发器 软件:利用延时程序,二次读键确认。键盘结构1独立式键盘及处理程序 设P1口接8个独立按键.K0K7程序:START:MOVP1,0FFHMOVA,P1;读键JNBACC.0,POF;KO按下转移JNBACC.1,P1F;K1按下转移JNBACC.7,P7F;K7按下转移SJMPSTART;无键,重新读键P0F:LJMPPROM0P1F:LJMPPROM1P7F:LJMPPROM7PROM0:LJMPSTARTPROM7:LJMPSTART2行列式键盘接口44键盘D0D3:输出,列
3、线D4D7:输入,行线工作原理:.有键闭合确认 端口输出FOH(全扫描),D0D30000B 读入端口,判断D4D7是否为1111B 若无键闭合,重新全扫描 若有键闭合,则调用延时子程(去抖动)第二次判断 是否有键闭合。若仍有键闭合,则进入键识别,否则 重新全扫描。键识别:逐列置低电平,读入行值,例:扫描左数第1列:D3D00111B7H 读入行线值:若上数第一行有键按下则行值D7D40111B7H故第一列第一行键值为77H,同理第一列第二行键值为01111011B7BH 每一键对应于唯一的键值。*键值的数值排列离散,还需通过一定的算法求出键号(键号一般为连续排列),以利于后续的键处理。单片机
4、键扫描控制方式1程序控制键扫描 电路:48行列式键盘,利用8155PA、PC实现接口。列线:8155PA0PA7(PA为基本IO,输出)行线:8155PC0PC3(PC为基本IO,输入)键值:PAPC 键号:031 例:0号键PAFEH,PCXEH键值FEXEH9号键PAFDH,PCXDH键值FDXDH 键值键号的转换:键号行首键号列号 行首键号:0、8、16、24 列号:07(可由PA为0的位置确定)例:PA11111101B,读得PC1101B 第一行、第一列,键号819键扫描子程序 功能:扫描键盘,无键继续扫描,有键求出键号。入口参数:无出口参数:A键号 子程嵌套:KS1:有无键按下判断
5、,出口 A0有键。T12MS:延时12s子程 寄存器分配:R2列扫描字;R4列号程序:程序:KEY1:ACALL KS1 ;调用判断有无键按下子程序调用判断有无键按下子程序 JNZ LK1 ;有键按下时,(有键按下时,(A)0,转消抖延时转消抖延时 AJMP KEY1 ;无键按下返回扫描无键按下返回扫描LK1:ACALL T12MS ;调延时调延时12s子程序子程序 ACALL KS1 ;查有无键按下,若有则为键确实按下查有无键按下,若有则为键确实按下 JNZ LK2 ;键按下,(键按下,(A)0,转逐列扫描转逐列扫描 AJMP KEY1 ;不是键按下不是键按下,返回扫描返回扫描 LK2:MO
6、V R2,0FEH;首列扫描字入首列扫描字入R2 MOV R4,00H ;首列号入首列号入R4 LK4:MOV DPTR,7F01H;列扫描字送至列扫描字送至8155PA口口 MOV A,R2 ;第一次列扫描第一次列扫描 MOVX DPTR,A;使第使第0列线为列线为0 INC DPTR INC DPTR ;指向指向8155PC口口 MOVX A,DPTR;8155 PC口读入行状态口读入行状态 JB ACC.O,LONE;第第0行无键按下,转查第行无键按下,转查第1行,行,ACC.00时为有键按下时为有键按下 MOV A,00H;第第0行有键按下,该行首键号行有键按下,该行首键号 00HA
7、AJMP LKP ;转求键号转求键号LONE:JBACC.1,LTWO;第1行无键按下,转查第2行MOVA,08H;第1行有键按下,该行首键号 08HAAJMPLKPLTWO:JBACC.2,LTHR;第2行无键下,转查第3行MOVA,10H;第2行有键按下,该行首键号 10HAAJMPLKPLTHR:JBACC.3,NEXT;第3行无键下,改查下一列MOVA,18H;第3行有键按下,该行首键号 18HALKP:ADDA,R4;键号行首键号列号PUSHACC;键号进栈保护LK3:ACALLKS1;等待键释放 JNZLK3;未释放,等待POPACC;键释放,键号ARET;键扫描结束,出口状态:(
8、A)键号NEXT:INC R4 ;指向下一列,列号加指向下一列,列号加1 MOV A,R2 ;判断判断8列扫描完没有列扫描完没有 JNB ACC.7,KND ;8列扫描完,返回列扫描完,返回 RL A ;扫描字左移一位,转变为下一列扫描字扫描字左移一位,转变为下一列扫描字 MOV R2,A ;扫描字入扫描字入R2 AJMP LK4 ;转下列扫描转下列扫描 KND:AJMP KEY1KS1:MOV DPTR,7F01H;指向指向PA口口 MOV A,00H ;全扫描字全扫描字00H=00000000B MOVX DPTR,A ;全扫描字入全扫描字入PA口口 INC DPTR ;指向指向PC口口
9、INC DPTR MOVX A,DPTR ;读入读入PC口行状态口行状态 CPL A ;变正逻辑,以高电平表示有键按下变正逻辑,以高电平表示有键按下 ANL A,0FH ;屏蔽高屏蔽高4位位 RET ;出口状态:(出口状态:(A)0时有键按下时有键按下T12MS:MOV R7,18H ;延迟延迟12ms子程序子程序TM:MOV R6,0FFHTM6:DJNZ R6,TM6 DJNZ R7,TM RET2中断扫描方式有键按下时产生中断,在中断子程中实现键扫描。硬件连接:以44键盘为例P1.0P1.3:列线,输出P1.4P1.7:行线,输入 实现:使P1.0P1.3为0000B(全扫描),有键按下
10、时,通过与门使INT10,产生中断,在中断子程中完成去抖动、键识别等功能。3定时中断扫描方式 以定时器定时,每隔一定时间(如10ms)产生一次中断,调用一次键扫描子程。键处理求出键号后,按不同类型进行处理。数字键:存贮、显示等功能键:转向相应的功能处理程序框图:程序:BUFFEQU30HKEYADR:MOVA,BUFF;键号ACJNEA,0FH,KYARD1AJMPDIGPRO;等于F,转数字键处理KYARD1:JCDIGPRO;小于F,转数字键处理KEYTBL:MOVDPTR,JMPTBL;送功能键地址表指针CLRC;清进位位SUBBA,10H;功能键值(10H1FH)减16RLA;(A)2
11、,使(A)为偶数:0,2,4,JMPADPTR;转相应的功能键处理程序JMPTBL:AJMPAAAAJMPBBBAJMPCCCAJMPDDDAJMPEEEAJMPFFFAJMPGGGAJMPHHHAJMPIIIAJMPJJJJAJMPKKKAJMPLLLAJMPMMMAJMPNNNAJMPOOOAJMPPPPDIGPRO:二LED显示器接口及显示程序 LED显示器结构原理1基本结构 七段显示数码,一段显示小数点 共阴、共阳两种,电流驱动,需加限流电阻。每管驱动电流310A(平均值)管压降:约1.8例:共阴极LED,KO(COM)端接地,向a、b、g,dp送入 11100001,则显示“7。”常
12、用显示码:(段码)注意表中各段顺序:DP、g、f、a,其中DP均未点亮。如为共阳极,将段码取反即可。2译码方式 硬件译码:用专用译码器电路,将欲显示的字符转 换为段码。软件译码:利用查表法,将段码作成一个表,以字 符值为索引,可查出不同字符的相应段码。LED接口及显示方式1LED静态显示方式 用8D锁存器(如74LS273)或带锁存的译码器(如CD4511)、或串行移位寄存器(如74LS164)来扩展 IO端口,其输出端(8位)可驱动一位LED。优点:编程容易。管理简单。占用CPU时间少 缺点:显示位数多时,占用端口多,附加器件多。2LED动态显示方式(扫描显示)原理:段选线并联,位选线独立
13、段选IO口输出一个段码,位选IO口输出一个相应的位选通信号,延迟一段时间,然后送下一个段码、下一个位选通反复循环。例:显示LL020 注意每个循环周期(6位LED轮流点亮一次)应小于20s,否则有闪烁感。优点:硬件及端口较省,(LED位数多时)缺点:编程复杂,占用CPU时间长。段驱动瞬时电流较大。LED与8155接口及显示子程。接口电路:6位共阴LED显示,由8155控制。PB0PB7:段码输出ag,dp(外加段驱动器7407)PA0PA5:位选输出(外加位驱动器75452)PA、PB均选基本IO、输出方式,地址分别为7FO1H、7F02H。子程功能:从右至左,依次点亮6位LED一次(每位保持
14、1s)入口、出口参数:无 子程嵌套:D1s延时子程 寄存器分配:R0:显示缓冲区指针R2:位选控制 内RAM分配:79H7EH:显示缓冲区(存放6位显示的数据)程序程序 DIS:MOV R0,7EH ;显示缓冲区末地址显示缓冲区末地址R0 MOV R2,01H ;选择最右一位选择最右一位 MOV A,R2 LP0:MOV DRTR,7F01H ;8155A口地址口地址DPTR MOVX DRTR,A INC DPTR ;数据指针指向数据指针指向8155PB口口 MOV A,R0 ;取显示数据取显示数据 ADD A,0DH ;加上偏移量加上偏移量 MOVC A,APC ;取出字形码取出字形码 M
15、OVX DPTR,A ;送出显示送出显示 ACALL D1MS ;调延时子程序调延时子程序 DEC R0 ;数据缓冲区地址减数据缓冲区地址减1 MOV A,R2 JB ACC.5,LP1 ;扫描到最左面的显示器吗?扫描到最左面的显示器吗?RL A ;没有到,左移一位没有到,左移一位 MOV R2,A AJMP LP0LP1:RET DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,40H,00HDIMS:MOV R7,02H ;延时延时1s子程序子程序DL:MOV R6,0FFHDL1:DJNZ R
16、6,DL1DJNZ R7,DL RET三键盘LED显示器与8155接口及控制程序接口电路:DB0PB7:段码输出(加7407驱动)PA0PA5:位选输出键列扫描(加7406驱动)PC0PC1:键行输入程序设计:在键扫描程序中嵌入显示子程序(代替去抖动延时)程序功能:扫描键盘,同时显示显缓区的字符,有键按下时返回键号。入口参数:内RAM79H7EH:显示字符值出口参数:(A)键号子程嵌套:DIS显示子程KS1键按下识别子程 程序:KD1:MOVA,00000011B;8155初始化,PA,PB口为基本 输出方式,PC口为输入方式MOVDPTR,7F00HMOVXDPTR,AKEY1:ACALLK
17、S1JNZLK1;有键,转键去抖确认ACALLDIS;调用显示子程序,延时6sAJMPKEY1LK1:ACALL DIS ACALL DIS ;调用两次显示子程序,延时调用两次显示子程序,延时12s ACALL KS1 JNZ LK2 ;确认有键,转键识别确认有键,转键识别 ACALL DIS ;调显示子程序,延迟调显示子程序,延迟6s AJMP KEY1 LK2:MOV R2,0FEH MOV R4,00HLK4:MOV DPTR,7F01H MOV A,R2 MOVX DPTR,A INC DPTR INC DPTR MOVX A,DPTR JB ACC.0,LONE MOV A,00H
18、AJMP LKPLONE:JB ACC.1,LTWO (NEXT)MOV A,08H(06H)AJMP LKPLTWO:JB ACC.2,LTHR KND:AJMP KEY1 MOV A,10H KS1:MOV DPTR,7F01H AJMP LKP MOV A,00HLTHR:JB ACC.3,NEXT MOVX DPTR,A MOV A,18H INC DPTRLKP:ADD A,R4 INC DPTR PUSH ACC MOVX A,DPTR LK3:ACALL DIS CPL A ACALL KS1 ANL A,0FH JNZ LK3 ;键释放判断键释放判断 RET POP ACC R
19、ETNEXT:INC R4 MOV A,R2 JNB ACC.7,KND (5)RL A MOV R2,A AJMP LK4四串口控制的键盘显示器接口 (一).接口电路74LS164:键列扫描74LS164、:串行口扩展并口,LED驱动P1.O、P1.1:键行线输入RXD:串行数据输出TXD:移位脉冲 (串口模式0)P1.2:显示输出控制(二).程序设计 功能:循环扫描键盘,若有数字键(09)按下则送显示缓冲区显示,若有命令键(AF)按下则转相应命令处理。内RAM分配:58H5FH:显示缓冲区;60H:显示缓冲区指针 寄存器分配:R6列选择;R3列号 子程嵌套:LED显示子程KEY:MOVA,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八章 应用系统 第八 应用 系统
限制150内