at89s51单片机实验——矩阵式键盘(编辑修改稿)内容摘要:

XRL A,0FH JZ NOKEY4 LCALL DELY10MS MOV A,P3 ANL A,0FH XRL A,0FH JZ NOKEY4 MOV A,P3 ANL A,0FH CJNE A,0EH,NK13 MOV KEYBUF,12 AT89S51单片机实验及实践教程 75 LJMP DK4 NK13: CJNE A,0DH,NK14 MOV KEYBUF,13 LJMP DK4 NK14: CJNE A,0BH,NK15 MOV KEYBUF,14 LJMP DK4 NK15: CJNE A,07H,NK16 MOV KEYBUF,15 LJMP DK4 NK16: NOP DK4: MOV A,KEYBUF MOV DPTR,TABLE MOVC A,@A+DPTR MOV P0,A DK4A: MOV A,P3 ANL A,0FH XRL A,0FH JNZ DK4A NOKEY4: LJMP WAIT DELY10MS: MOV R6,10 D1: MOV R7,248 DJNZ R7,$ DJNZ R6,D1 RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END 7. C 语言源程序 include unsigned char code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}。 unsigned char temp。 unsigned char key。 unsigned char i,j。 void main(void) { while(1) { P3=0xff。 P3_4=0。 temp=P3。 temp=temp amp。 0x0f。 if (temp!=0x0f) { for(i=50。 i0。 i) for(j=200。 j0。 j)。 temp=P3。 AT89S51单片机实验及实践教程 76 temp=temp amp。 0x0f。 if (temp!=0x0f) { temp=P3。 temp=temp amp。 0x0f。 switch(temp) { case 0x0e: key=7。 break。 case 0x0d:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。