|
|
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
void delay(uint z);
sbit D1=P1^4;
void main() //進(jìn)入主函數(shù)之前設(shè)置中斷。
{ //所有地址能被8整除的寄存器均可進(jìn)行位尋址(即直接操作某一位)。
uint LED=0; //一定要先定義變量,否則程序無(wú)法編譯。
EA=1; //開(kāi)總中斷。
EX0=1; //開(kāi)外部中斷0(電平觸發(fā)和跳變沿觸發(fā)兩種觸發(fā)方式)。
IT0=0; //電平觸發(fā)方式(默認(rèn)的觸發(fā)方式,單片機(jī)上電后即為電平觸發(fā))。
while(1)
{
D1=1;
LED++; //變量的自加1,等價(jià)于LED=LED+1;
P0=LED7Code[LED%16]; //%為求余符號(hào),a%b的結(jié)果是a除以b的余數(shù),0x7f是顯示小數(shù)點(diǎn)。
delay(200);
}
}
void delay(uint z)
{
uint x,y;
for(x=500;x>0;x--)
for(y=z;y>0;y--);
}
void exter0() interrupt 0 //中斷函數(shù)不需要聲明。
{
D1=0;
}
十分感謝。
|
|