標(biāo)題: 帶詳細注釋的51單片機中斷系統(tǒng)c51 [打印本頁]

作者: geige    時間: 2015-7-26 00:40
標(biāo)題: 帶詳細注釋的51單片機中斷系統(tǒng)c51
#include<reg52.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單片機的5個中斷源的第一個,即INT0,外部中斷0
  LED=1; //外部中斷是在外部給予單片機的排針觸發(fā),如電平觸發(fā),需要給P3^2一個低電平
P0=0XFE; //則可以用導(dǎo)線一段接GND(地線:低電平)一端接P3^2,即給了一個電平觸發(fā)中斷
}

愿喜愛編程之人多多交流!!






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1