<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機兩級中斷嵌套的示例C程序

單片機兩級中斷嵌套的示例C程序

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò ) 收藏

單片機兩級中斷嵌套的示例C程序

本文引用地址:http://dyxdggzs.com/article/201611/320293.htm

#ifndef __DEMO_4_13_C__
#define __DEMO_4_13_C__
#include

#define _MHZ_ 12 // 設置單片機使用的晶振頻率

void delay10ms(unsigned int count); // 聲明延時(shí)函數


void LED_show(unsigned long second);

unsigned char g_count; // 全局變量,timer_int函數使用
unsigned char g_second; // 全局變量,timer_int函數使用

void main()
{
g_count = 0; // 設置全局變量初值
g_second = 0;


TMOD = 0x10; // T1使用定時(shí)模式,工作模式1,無(wú)門(mén)控位
TH1 = 0xD8; // 為T(mén)1填入初值,定時(shí)時(shí)間10ms
TL1 = 0xF0;
TR1 = 1; // 啟動(dòng)T1
IT0 = 1; // 設置INTR0中斷方式為邊沿觸發(fā)方式,負跳變時(shí)產(chǎn)生中斷
PT1 = 1; // 設置定時(shí)器1中斷為高優(yōu)先級
ET1 = 1; // 允許定時(shí)器1中斷
EX1 = 1; // 允許外部中斷0中斷
EA = 1; // CPU開(kāi)放中斷

while(1); // 循環(huán)等待
}


void timer1_int() interrupt 3 using 3 // T1溢出中斷,使用工作組3
{ // 不同級別的中斷函數使用不同的工作組
TH1 = 0xD8; // 重新填入初值
TL1 = 0xF0;

g_count++;
if(g_count == 100) // 計時(shí)滿(mǎn)1s
{
g_count = 0; // 清0
g_second++; // 總秒數增1,溢出時(shí)會(huì )自動(dòng)歸0
LED_show(g_second); // LED送顯
}
}


void intr0_int() interrupt 0 using 2 // INTR0中斷,使用工作組2
{
unsigned char tmp;

EA = 0; // 關(guān)中斷
P1 = 0xff; // 在讀取P1口數據前,應先對其寄存器置1
tmp = P1; // 讀P1口
EA = 1; // 開(kāi)中斷

delay10ms(100);

EA = 0; // 關(guān)中斷
tmp = ~tmp; // 變量取反
P1 = tmp; // 送P1口
EA = 1; // 開(kāi)中斷
}


void delay10ms(unsigned int count)
{
unsigned int i, k;
unsigned char j;
unsigned int tmp;
tmp = (int)((100*_MHZ_)/12);

for(i=0; i for(j=0; j<100; j++)
for(k=0; k}

#endif



關(guān)鍵詞: 單片機中斷嵌套C程

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>