|
#include <reg51.h>
sbit WEB1=P1^1;
sbit A=P1^0;
sbit L=P1^3;
sbit LED=P1^2;
void delay();
unsigned char code table[]={
0X3F,0X06,0X5B,0X4F,0X66,
0x6d,0X7D,0X07,0X7F,0X6F,
0X77,0X7C,0X39,0X5E,0X79,
0X71};
unsigned char num;
void main()
{
P0=0X00; //關(guān)閉點陣
L=0; //鎖存
P0=0XFF; // 關(guān)閉LED燈
LED=0; //鎖存
WEB1=1; // 位選
P0=0XFE; //共有8個數(shù)碼管,打開第一個數(shù)碼管
WEB1=0; //鎖存
EA=1; //中斷總控制位,EA=1,CPU開放中斷
EX0=1; //外中斷0中斷控制位,EX0=1,允許外部中斷0中斷
IT0=1; //外部中斷控制,IT0時觸發(fā)方式控制,IT0=0為電平觸發(fā),IT0=1為邊沿觸發(fā)
while(1)
{
for(num=0;num<16;num++)
{
A=1; //段選
P0=table[num]; //一個數(shù)碼管有8個二極管,需要顯示的數(shù)字
A=0; //鎖存
delay();
}
}
}
void delay()
{
int a,b;
for(a=1500;a>=0;a--)
for(b=100;b>=0;b--);
}
void exter0() interrupt 0 //interrupt為中斷函數(shù)關(guān)鍵字,說明這個函數(shù)是中斷函數(shù),中斷函數(shù)不用函數(shù)聲明
{ //0表示51單片機(jī)的5個中斷源的第一個,即INT0,外部中斷0
LED=1; //外部中斷是在外部給予單片機(jī)的排針觸發(fā),如 電平觸發(fā),需要給P3^2一個低電平
P0=0XFE; //則可以用導(dǎo)線一段接GND(地線:低電平)一端接P3^2,即給了一個電平觸發(fā)中斷
}
|
|