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 & 0x0f。 if (temp!=0x0f> {
for(i=50。i>0。i--> for(j=200。j>0。j-->。 temp=P3。
temp=temp & 0x0f。 if (temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 switch(temp> {
case 0x0e: key=7。 break。 case 0x0d: key=8。 break。 case 0x0b: key=9。
break。 case 0x07: key=10。 break。 }
temp=P3。 P1_0=~P1_0。 P0=table[key]。 temp=temp & 0x0f。 while(temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 } } }
P3=0xff。 P3_5=0。 temp=P3。
temp=temp & 0x0f。 if (temp!=0x0f> {
for(i=50。i>0。i--> for(j=200。j>0。j-->。 temp=P3。
temp=temp & 0x0f。 if (temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 switch(temp> {
case 0x0e: key=4。 break。 case 0x0d: key=5。 break。 case 0x0b: key=6。 break。 case 0x07: key=11。 break。 }
temp=P3。 P1_0=~P1_0。 P0=table[key]。
temp=temp & 0x0f。 while(temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 } } }
P3=0xff。 P3_6=0。 temp=P3。
temp=temp & 0x0f。 if (temp!=0x0f> {
for(i=50。i>0。i--> for(j=200。j>0。j-->。 temp=P3。
temp=temp & 0x0f。 if (temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 switch(temp> {
case 0x0e: key=1。 break。 case 0x0d: key=2。 break。 case 0x0b: key=3。 break。 case 0x07: key=12。 break。 }
temp=P3。 P1_0=~P1_0。 P0=table[key]。 temp=temp & 0x0f。 while(temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 } } }
P3=0xff。 P3_7=0。 temp=P3。
temp=temp & 0x0f。 if (temp!=0x0f> {
for(i=50。i>0。i--> for(j=200。j>0。j-->。 temp=P3。
temp=temp & 0x0f。 if (temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 switch(temp> {
case 0x0e: key=0。 break。 case 0x0d: key=13。 break。 case 0x0b: key=14。 break。 case 0x07: key=15。 break。 }
temp=P3。 P1_0=~P1_0。 P0=table[key]。 temp=temp & 0x0f。 while(temp!=0x0f> {
temp=P3。
temp=temp & 0x0f。 } } } } } 1. 实验任务
. 定时计数器T0作定时应用技术<一)15