找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2286|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

帶詳細(xì)注釋的51單片機(jī)中斷系統(tǒng)c51

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:86860 發(fā)表于 2015-7-26 00:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#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)閉點(diǎn)陣
L=0;  //鎖存
P0=0XFF;   // 關(guān)閉LED燈
LED=0;   //鎖存
WEB1=1; // 位選
P0=0XFE;  //共有8個(gè)數(shù)碼管,打開第一個(gè)數(shù)碼管
WEB1=0;  //鎖存

  EA=1; //中斷總控制位,EA=1,CPU開放中斷
EX0=1; //外中斷0中斷控制位,EX0=1,允許外部中斷0中斷
IT0=1; //外部中斷控制,IT0時(shí)觸發(fā)方式控制,IT0=0為電平觸發(fā),IT0=1為邊沿觸發(fā)
while(1)
{
for(num=0;num<16;num++)
{
A=1; //段選
  P0=table[num]; //一個(gè)數(shù)碼管有8個(gè)二極管,需要顯示的數(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)鍵字,說明這個(gè)函數(shù)是中斷函數(shù),中斷函數(shù)不用函數(shù)聲明
{ //0表示51單片機(jī)的5個(gè)中斷源的第一個(gè),即INT0,外部中斷0
  LED=1; //外部中斷是在外部給予單片機(jī)的排針觸發(fā),如電平觸發(fā),需要給P3^2一個(gè)低電平
P0=0XFE; //則可以用導(dǎo)線一段接GND(地線:低電平)一端接P3^2,即給了一個(gè)電平觸發(fā)中斷
}

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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表