关于单片机C语言汇编实例 下载本文

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