人机交互设备接口课件.ppt

人机交互设备接口课件.ppt

ID:57012414

大小:191.00 KB

页数:19页

时间:2020-07-26

人机交互设备接口课件.ppt_第1页
人机交互设备接口课件.ppt_第2页
人机交互设备接口课件.ppt_第3页
人机交互设备接口课件.ppt_第4页
人机交互设备接口课件.ppt_第5页
资源描述:

《人机交互设备接口课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DBPB6PB7PAIRQ1T1P10P21P11P22P204GND1CLOCK2DATA5+5V3RESETPC机键盘系统板80488255A8259ALS322串并转换器键盘阵列按键选通PC机键盘的工作原理1.PC机键盘的工作过程键盘电路正常工作时不断地扫描键盘矩阵有按键,则确定按键位置之后以串行数据形式发送给系统板键盘接口电路键按下时,发送该键的接通扫描码键松开时,发送该键的断开扫描码若一直按住某键,则以拍发速率(每秒2~30次)连续发送该键的接通扫描码接通扫描码反映该键在键盘上的位置断开扫描码(接通扫

2、描码最高位置1)=接通扫描码+80H第8章人机交互设备接口2.键盘接口电路的工作过程接收一个串行形式字符以后,进行串并转换然后产生键盘中断IRQ1请求,等待读取键盘数据CPU响应中断,则进入09H键盘中断服务程序:①读取键盘扫描码:用INAL,60H即可②响应键盘:系统使PB7=1③允许键盘工作:系统使PB7=0④处理键盘数据⑤给8259A中断结束EOI命令,中断返回3.PC机键盘中断服务程序09H号中断服务程序(kbint过程)完成常规的操作处理键盘数据:将获取的扫描码通过查表转换为对应的ASCII码送缓冲区

3、。对于不能显示的按键,则转换为0,且不再送至缓冲区键盘I/O功能程序(kbget子程序)从缓冲区中读取转换后的ASCII码功能调用(主程序)循环显示键入的字符键盘缓冲区中断服务程序与子程序之间传递参数先进先出循环队列队列空进队列出队列队列满buffer0129队列始端队列末端键盘缓冲区bufferdb10dup(0)bufptr1dw0;队列头指针bufptr2dw0;队列尾指针buffer0129队列始端队列末端bufptr1bufptr2键盘代码表scantbdb0,1,’1234567890-=’,08h

4、;键盘第1排的按键,从ESC到退格db0,’qwertyuiop[]’,0dh;键盘第2排的按键,从Tab到回车……db0,0,’789-456+1230.’;右边小键盘,从NumLock到Del键位置设置中断向量1movax,3509hint21hpushespushbx;保存09H号原中断向量cli;关中断pushds;设置09H号新中断向量movax,segkbintmovds,axmovdx,offsetkbint设置中断向量2movax,2509hint21hpopdsinal,21h;允许IRQ1中

5、断,其他不变pushaxandal,0fdhout21h,alsti;开中断调用并显示start1:callkbget;获取按键的ASCII码cmpal,1jzstart2;是ESC键,则退出pushax;保护字符movdl,al;显示字符movah,2int21hpopax;恢复字符处理回车符cmpal,0dh;该字符是回车符吗?jnzstart1;不是,取下一个按键字符movdl,0ah;是回车符,则再进行换行movah,2int21hjmpstart1;继续取字符恢复中断向量start2:clipopax

6、out21h,alpopdxpopdsmovax,2509hint21hstimovax,4c00h;返回DOSint21h子程序:判断缓冲区空否kbgetprockbget1:pushbx;保护BXclimovbx,bufptr1;取头指针cmpbx,bufptr2;与尾指针相等否?jnzkbget2;不相等,说明缓冲区有字符,转移sti;相等,说明缓冲区空popbxjmpkbget1;等待缓冲区有字符子程序:获取按键字符kbget2:moval,buffer[bx];取字符送ALincbx;队列头指针增量c

7、mpbx,10;是否指向队列末端jckbget3;没有,转移movbx,0;指针指向队列末端,则循环,指向始端kbget3:movbufptr1,bx;设定新队列头指针stipopbxretkbgetendp中断服务程序:响应键盘kbintprocsti;开中断pushax;保护寄存器pushbxinal,60h;读取键盘扫描码pushaxinal,61h;使PB7=1,响应键盘oral,80hout61h,alandal,7fh;使PB7=0,允许键盘out61h,al中断服务程序:数据处理popaxtest

8、al,80h;是断开扫描码?jnzkbint2;是,则退出movbx,offsetscantb;是接通扫描码,取表首地址xlat;将扫描码转换成ASCII码cmpal,0;是否为合法的ASCII码?jzkbint2;不是,则退出中断服务程序:指针增量movbx,bufptr2movbuffer[bx],al;将ASCII码存入缓冲区队列尾incbx;队列尾指针增量cmpbx,10;是否

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。