新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > IAR+Proteus7.6仿真MSP430單片機PORT1外部中斷功能

IAR+Proteus7.6仿真MSP430單片機PORT1外部中斷功能

作者: 時間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
1. Proteus電路
2. msp430程序
#include
#define uint unsigned int
#define uchar unsigned char
/
函數(shù):void delay_1ms(void) void delay_nms(uint n)
功能:延時1ms 延時Nms
*/
void Delay_1ms(void) //1ms延時函數(shù)
{
uint i;
for (i=0;i<80;i++);
}
void Delay_Nms(uint n) //N ms延時函數(shù)
{
uint i=0;
for (i=0;i Delay_1ms();
}
/
函數(shù):void P1_ISR(void)
功能:外部中斷服務(wù)函數(shù)
*/
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
uchar i;
for(i=0;i<10;i++)
{
P1OUT=0x01;
Delay_Nms(1000);
P1OUT=0x00;
Delay_Nms(1000);
}
P1IFG = 0x00; //清除中斷標志
}
/
函數(shù):void P1_INIT(void)
功能:PORT1端口初始化
*/
void P1_INIT(void)
{
P1SEL = 0x00; //設(shè)置為普通I/O口
P1DIR |= 0X01; //設(shè)置I/O方向
P1IE = 0x80; //P1^7中斷允許
P1IES = 0x00; //上升沿使相應(yīng)標志位置位
P1IFG = 0x00; //清除中斷標志
}
/
函數(shù):void main(void)
功能:主函數(shù)
*/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1_INIT();
_EINT(); //開總中斷
while(1)
{
P1OUT=0x00;
}
}



評論


技術(shù)專區(qū)

關(guān)閉