键盘和LED显示程序;;*********************************************;*8279初始化*;*为8279命令口KEYDAT为8279数据口*;*********************************************XDATA0E601HKEYDATXDATA0E600HKEYCAMEQU30H;0060HSTART:MOVR0,#10MOVDPTR,#;命令口地址MOVA,#10H;键盘/显示方式命令字8字符显示左入口,编码键盘,双键锁定******@DPTR,AMOVA,#34H;程序时钟命令26分频对外部输入时钟******@DPTR,AMOVA,#0DFH;清除显示缓冲区命令******@DPTR,ABUSY1:MOVXA,***@.7,BUSY1MOVIE,#81HMOVDPTR,#KEYDATMOVA,#******@DPTR,A;字型送入8279INCDPTRMOVA,#******@DPTR,A;字位送入8279(显示P)HA7S2:MOV30H,#80HMOV31H,#40HHA7S3:MOVDPTR,#MOVXA,***@DPTRANLA,#07HCJNEA,#00H,HA7S4;AJMPHA7S3HA7S4:MOVDPTR,#KEYDATMOVXA,***@DPTRMOVB,A;取键值MOVR1,#00HMOVDPTR,#KEYTAB;数字键键值表HA7S5:MOVA,#00HMOVCA,***@A+DPTRCJNEA,B,HA7S6;查键值表是否相同AJMPHA7SA;转数字键处理程序HA7S6:INCDPTR;键值表地址加1INCR1;查找次数加1MOVA,.4,HA7S7;是功能键吗?AJMPHA7S5;继续查找HA7S7:MOVR1,#00HMOVDPTR,#KEYTAB1;功能键表地址HA7S8:MOVA,#00HMOVCA,***@A+DPTR;取出功能键键值CJNEA,B,HA7S9;键值相同吗?AJMPHA7SC;转功能键处理子程序HA7S9:INCDPTRINCR1MOVA,.2,HA7S8;继续查找LJMPSTART;;;AJMPHA7SD;无按键返回HA7SD:LJMPSTARTHA7SA:MOVA,30HMOVDPTR,#******@DPTR,A;字位送入8279MOVA,R1MOVR0,******@R0,AINC31HMOVDPTR,#CDATAMOVCA,***@A+DPTR;取字型代码MOVDPTR,#******@DPTR,A;送8279显示INC30HMOVA,30H;字位加1CJNEA,#88H,HA7SB;LJMPHA7S2HA7SB:AJMPHA7S3HA7SC:MOVDPTR,#KJPADDRMOVA,R1RLA;;ADDA,R1ADDA,#******@A+DPTR;KJPADDR:LJMPLOOP0LJM
键盘和led显示程序 来自淘豆网m.daumloan.com转载请标明出处.