微机习题课(键盘-8255A行扫描法).ppt_第1页
微机习题课(键盘-8255A行扫描法).ppt_第2页
微机习题课(键盘-8255A行扫描法).ppt_第3页
微机习题课(键盘-8255A行扫描法).ppt_第4页
微机习题课(键盘-8255A行扫描法).ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,8255A并行接口(实验一),识别按键方法:行扫描法和线反转法1、行扫描法STEP1:检查是否有键按下1)所有行输出0;2)读列状态,检查是否全1;若否,则有可能有键按下3)延时20ms,再读列线,是否全1。若否,有键按下,2,STEP2:读键码(行扫描法)1)行扫描;逐行输出02)读列状态。被扫描到得行有键按下,列状态才会改变STEP3:键分析1)行值送(AL)2)列值送(AH)3)(AX)取反,得键码,3,STEP4:键处理1)查表拿键值与键值表比较,相同则记录下对应的字符码2)显示字符,4,主程序:,设置数据段,显示提示信息,调键盘扫描子程序KEY,字符是否为R,N,Y,开始,结束,5,键扫描子程序流程图(行扫描法):,置8255A控制字82H,A口输出,B口输入,A口输出低电平,B口读入数据,标识位BL清零,列线全为高电平,(BL)=1?,Y,N,延时去抖动BL置1,N,Y,A,B,B,开始,6,第1行输出低电平,保存行值,列线全为高电平,行扫描完毕,取行值,行值左移1位指向下一行,N,Y,Y,N,A,B,C,7,与表无任一键相同,Y,在屏幕上显示此键对应的字符,从A口输出00,从B口读入列值,输入字符的ASCII码存放在(DL)中,键是否已释放,返回,Y,N,列值送(AH),行值送(AL),(AX)取反,查表,B,C,N,8,PA55EQU218HPB55EQU219HP55CTLEQU21BHDATASEGMENTTABLEDW0101H,0102H,0104H,0108H;键码表DW0110H,0120H,0140H,0180HDW0201H,0202H,0204H,0208HDW0210H,0220H,0240H,0280HDW0401H,0402H,0404H,0408HDW0410H,0420H,0440H,0480HCHARDBCDEF;字符码表,行扫描法源程序1of10,9,DBBA98DB4567DB3210DB;四个空格DBRPMGMESDBINPUTANYKEYINTHEDBSMALLKEYBOARD.DB0AH,0DH;回车换行DBITWILLBEDISPLAYDBONTHESCREEN!DBENDWITHR,行扫描法源程序2of10,10,DB0AH,0DH,$DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;DS指向数据段MOVDX,OFFSETMESMOVAH,09;显示提示信息INT21HKY:CALLKEY;调键盘扫描子程序,行扫描法源程序3of10,11,CMPDL,R;键入字符不是R,转KYJNZKYMOVAX,4C00HINT21HRETMAINENDPKEYPROCNEAR;键盘扫描子程序MOVAL,82H;设置8255A控制字MOVDX,P55CTL;工作在方式0,端OUTDX,AL;口A输出,端口B输入BEGIN:MOVBL,00H;标识位清零,行扫描法源程序4of10,12,WAIT1:MOVAL,00H;端口A输出全0MOVDX,PA55OUTDX,ALMOVDX,PB55INAL,DX;端口B读入列值ANDAL,07HCMPAL,07HJZBEGIN;若为07H,无键按下CMPBL,01HJZKPRESS;若为1,已消抖动MOVCX,1000H,行扫描法源程序5of10,13,DLY:LOOPDLY;延时去抖MOVBL,01H;标识位置1JMPWAIT1KPRESS:MOVAL,0FEH;第一行输出0RSCAN:MOVDX,PA55OUTDX,ALPUSHAX;保存行值MOVDX,PB55INAL,DX;读入列值ANDAL,07HCMPAL,07H,行扫描法源程序6of10,14,JZNEXTR;列值全为1,跳转MOVAH,AL;列值送(AH)POPBX;弹出行值MOVAL,BLNOTAX;取反,得出键码MOVSI,OFFSETTABLE;键码表首址MOVDI,OFFSETCHAR;字符码表首址MOVCX,24TT:CMPAX,SI;键码相符转NNJZNNDECCX,行扫描法源程序7of10,15,JZBEGIN;比较完仍不相符跳转ADDSI,2INCDIJMPTT;继续比较NN:MOVDL,DIMOVAH,02;显示该键码对应字符INT21HPUSHDX;字符ASCII码入栈WAIT2:MOVAL,00;端口A输出全0MOVDX,PA55OUTDX,AL,行扫描法源程序8of10,16,MOVDX,PB55;从端口B读进列值INAL,DXCMPAL,0FFHJNZWAIT2;等待键释放POPDX;字符ASCII码出栈JMPDONENEXTR:POPAXCMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论