微机习题课(键盘-8255A行扫描法)

微机习题课(键盘-8255A行扫描法)

ID:44999582

大小:95.50 KB

页数:17页

时间:2019-11-07

微机习题课(键盘-8255A行扫描法)_第1页
微机习题课(键盘-8255A行扫描法)_第2页
微机习题课(键盘-8255A行扫描法)_第3页
微机习题课(键盘-8255A行扫描法)_第4页
微机习题课(键盘-8255A行扫描法)_第5页
资源描述:

《微机习题课(键盘-8255A行扫描法)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、8255A并行接口(实验一)识别按键方法:行扫描法和线反转法1、行扫描法STEP1:检查是否有键按下1)所有行输出‘0’;2)读列状态,检查是否全‘1’;若否,则有可能有键按下3)延时20ms,再读列线,是否全‘1’。若否,有键按下1STEP2:读键码(行扫描法)1)行扫描;逐行输出‘0’2)读列状态。被扫描到得行有键按下,列状态才会改变STEP3:键分析1)行值送(AL)2)列值送(AH)3)(AX)取反,得键码2STEP4:键处理1)查表拿键值与键值表比较,相同则记录下对应的字符码2)显示字符3主程序:设置数据段,显示提示信息调键盘扫描子程序KEY字符是否为‘R’NY开始结

2、束4键扫描子程序流程图(行扫描法):置8255A控制字82H,A口输出,B口输入A口输出低电平,B口读入数据标识位BL清零列线全为高电平(BL)=1?YN延时去抖动BL置1NYABB开始5第1行输出低电平保存行值列线全为高电平行扫描完毕取行值行值左移1位指向下一行NYYNABC6与表无任一键相同Y在屏幕上显示此键对应的字符从A口输出00,从B口读入列值输入字符的ASCII码存放在(DL)中键是否已释放返回YN列值送(AH),行值送(AL),(AX)取反,查表BCN7PA55EQU218HPB55EQU219HP55CTLEQU21BHDATASEGMENTTABLEDW0101

3、H,0102H,0104H,0108H;键码表DW0110H,0120H,0140H,0180HDW0201H,0202H,0204H,0208HDW0210H,0220H,0240H,0280HDW0401H,0402H,0404H,0408HDW0410H,0420H,0440H,0480HCHARDB‘CDEF’;字符码表行扫描法源程序[1of10]8DB‘BA98’DB‘4567’DB‘3210’DB‘’;四个空格DB‘RPMG’MESDB‘INPUTANYKEYINTHE’DB‘SMALLKEYBOARD.’DB0AH,0DH;回车换行DB‘ITWILLBEDISPL

4、AY’DB‘ONTHESCREEN!’DB‘ENDWITH‘R’’行扫描法源程序[2of10]9DB0AH,0DH,‘$’DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;DS指向数据段MOVDX,OFFSETMESMOVAH,09;显示提示信息INT21HKY:CALLKEY;调键盘扫描子程序行扫描法源程序[3of10]10CMPDL,’R’;键入字符不是‘R’,转KYJNZKYMOVAX,4C00HINT21HRETMAINENDPKEYPROCNEAR;键盘扫描子程序MO

5、VAL,82H;设置8255A控制字MOVDX,P55CTL;工作在方式0,端OUTDX,AL;口A输出,端口B输入BEGIN:MOVBL,00H;标识位清零行扫描法源程序[4of10]11WAIT1:MOVAL,00H;端口A输出全0MOVDX,PA55OUTDX,ALMOVDX,PB55INAL,DX;端口B读入列值ANDAL,07HCMPAL,07HJZBEGIN;若为07H,无键按下CMPBL,01HJZKPRESS;若为1,已消抖动MOVCX,1000H行扫描法源程序[5of10]12DLY:LOOPDLY;延时去抖MOVBL,01H;标识位置1JMPWAIT1KPR

6、ESS:MOVAL,0FEH;第一行输出0RSCAN:MOVDX,PA55OUTDX,ALPUSHAX;保存行值MOVDX,PB55INAL,DX;读入列值ANDAL,07HCMPAL,07H行扫描法源程序[6of10]13JZNEXTR;列值全为1,跳转MOVAH,AL;列值送(AH)POPBX;弹出行值MOVAL,BLNOTAX;取反,得出键码MOVSI,OFFSETTABLE;键码表首址MOVDI,OFFSETCHAR;字符码表首址MOVCX,24TT:CMPAX,[SI];键码相符转NNJZNNDECCX行扫描法源程序[7of10]14JZBEGIN;比较完仍不相符跳转

7、ADDSI,2INCDIJMPTT;继续比较NN:MOVDL,[DI]MOVAH,02;显示该键码对应字符INT21HPUSHDX;字符ASCII码入栈WAIT2:MOVAL,00;端口A输出全0MOVDX,PA55OUTDX,AL行扫描法源程序[8of10]15MOVDX,PB55;从端口B读进列值INAL,DXCMPAL,0FFHJNZWAIT2;等待键释放POPDX;字符ASCII码出栈JMPDONENEXTR:POPAXCMPAL,0EFHJEBEGINROLAL,1;行值左移一位,

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

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

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