日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]進行了MDK中斷設(shè)置之后~~馬上中斷就可以用了~~要想了解的話,找EDA軟件板塊~~今天趕緊寫完就哦了~~二、中斷控制編程二—(01)、計數(shù)器(通過三個外部中斷來控制計數(shù)的加減或者清零~~)MDK2_1.c//------------------

進行了MDK中斷設(shè)置之后~~

馬上中斷就可以用了~~

要想了解的話,找EDA軟件板塊~~

今天趕緊寫完就哦了~~

二、中斷控制編程

二—(01)、計數(shù)器(通過三個外部中斷來控制計數(shù)的加減或者清零~~)





MDK2_1.c

//------------------------------------------------------------------------------
//通過外部中斷0、外部中斷1、外部中斷2實現(xiàn)加減計數(shù)器,并輸出數(shù)碼管顯示
#include"lpc210x.h"
#include"delay.h"
#include"bit.h"
#include"macroandconst.h"
//------------------------------------------------------------------------------
#define CON 0x000000ff//用于設(shè)置IOCLR,拉低數(shù)據(jù)引腳
uchar seg_display=0x00;//LED數(shù)碼管顯示,uchar型變量
//------------------------------------------------------------------------------
//外部中斷0處理函數(shù),實現(xiàn)加計數(shù)器
//名稱:EINT0
void __irq EINT0(void)
{
seg_display++;
while(GET_BIT(EXTINT,0)) //等待外部中斷信號恢復(fù)為高電平,然后對EXTINT的第0位寫‘1’來清零
SET_BIT(EXTINT,0);
IOCLR=CON;//在顯示之前要將數(shù)據(jù)口置零~~與下面的IOSET相配合~~然后達到送高低電平
IOSET=seg_display;
VICVectAddr=0;//處理完成后,寫向量地址寄存器為0,通知VIC中斷處理結(jié)束
}
//------------------------------------------------------------------------------
//外部中斷0處理函數(shù),實現(xiàn)減計數(shù)器
//名稱:EINT1
void __irq EINT1(void)
{
seg_display--;
while(GET_BIT(EXTINT,1)) //等待外部中斷信號恢復(fù)為高電平,然后對EXTINT的第1位寫‘1’來清零
SET_BIT(EXTINT,1);
IOCLR=CON;//在顯示之前要將數(shù)據(jù)口置零~~與下面的IOSET相配合~~然后達到送高低電平
IOSET=seg_display;
VICVectAddr=0;//處理完成后,寫向量地址寄存器為0,通知VIC中斷處理結(jié)束
}
//------------------------------------------------------------------------------
//外部中斷0處理函數(shù),實現(xiàn)減計數(shù)器
//名稱:EINT2
void __irq EINT2(void)
{
seg_display=0;
while(GET_BIT(EXTINT,2)) //等待外部中斷信號恢復(fù)為高電平,然后對EXTINT的第2位寫‘1’來清零
SET_BIT(EXTINT,2);
IOCLR=CON;//在顯示之前要將數(shù)據(jù)口置零~~與下面的IOSET相配合~~然后達到送高低電平
IOSET=seg_display;
VICVectAddr=0;//處理完成后,寫向量地址寄存器為0,通知VIC中斷處理結(jié)束
}
//------------------------------------------------------------------------------
//端口初始化函數(shù)
void port_init(void)
{
PINSEL0=0xa0000000;//設(shè)置I/O工作模式,分別為EINT0、EINT1、EINT2,其它為GPIO
PINSEL1=0x00000001;
IODIR=CON;//設(shè)置I/O方向,第八位數(shù)據(jù)位為輸出
}
//------------------------------------------------------------------------------
//外部中斷初始化函數(shù)
void eint_init(void)
{
VICIntSelect=0;//終端選擇寄存器,選擇為IRQ
VICIntEnable=0x0001c000;//使能EINT0、EINT1、EINT2中斷

VICVectCntl0=0x0000002e;//EINT0通道分配到IRQ Slot0,既優(yōu)先級最高
VICVectCntl1=0x0000002f;//EINT1通道分配到IRQ Slot1
VICVectCntl2=0x00000030;//EINT2通道分配到IRQ Slot2

VICVectAddr0=(int)EINT0;
VICVectAddr1=(int)EINT1;
VICVectAddr2=(int)EINT2;
}
//------------------------------------------------------------------------------
int main(void)
{
port_init();
eint_init();
IOCLR=CON;
IOSET=seg_display;

EXTINT=0x07;//清除外部中斷
while(1);
}

其它的輔助文件我就不貼了~~

都是挺簡單的~~


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉