久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
MSP430用I2C擴(kuò)展鍵,編程實(shí)現(xiàn)8個(gè)LED燈的流水點(diǎn)亮,點(diǎn)亮?xí)r間由定時(shí)器確定,長(zhǎng)短用鍵...
[打印本頁]
作者:
1998年
時(shí)間:
2019-5-15 15:42
標(biāo)題:
MSP430用I2C擴(kuò)展鍵,編程實(shí)現(xiàn)8個(gè)LED燈的流水點(diǎn)亮,點(diǎn)亮?xí)r間由定時(shí)器確定,長(zhǎng)短用鍵...
利用I2C擴(kuò)展鍵,編程實(shí)現(xiàn)8個(gè)LED燈的流水點(diǎn)亮,點(diǎn)亮?xí)r間由定時(shí)器確定,長(zhǎng)短用鍵盤可調(diào)。
單片機(jī)源程序如下:
#include "MSP430G2553.h"
void P1_IODect();
void P13_Onclick();
void GPIO_init();
void WDT_init();
void Timer1_init();
void Timer1_ISR();
void main(void) {
WDTCTL = WDTPW + WDTHOLD; //關(guān)狗
GPIO_init();
WDT_init();
Timer1_init();//初始化timer1
_enable_interrupts(); //使能總中斷
_bis_SR_register(LPM3_bits+GIE); //LPM0方式休眠
}
void GPIO_init()
{
//-----配合機(jī)械按鍵,啟用內(nèi)部上拉電阻-----
P1DIR|=BIT0; //啟用P1.3內(nèi)部上下拉電阻
P1OUT|=BIT0;//LED輸出 P1.6
P2DIR|=BIT4;
P2SEL|=BIT4;//PWM輸出 P2.4
P2DIR&=~BIT2;
P2SEL|=BIT2;//捕獲模式,要善于查捕獲IO口//將電阻設(shè)置為上拉
//-----配置P1.3中斷參數(shù)-----
P1REN|=BIT3;//電阻使能寄存器
P1OUT|=BIT3;
P1DIR&=~BIT3;//設(shè)為輸入(可省略)
}
void WDT_init()
{
WDTCTL=WDT_ADLY_16;
IE1|=WDTIE;//WDT中斷開關(guān)
}
void Timer1_init()
{
//通道1控制寄存器,捕獲通道
TA1CCTL1=CAP+CCIE+CM_3+CCIS_1+SCS;//捕獲,中斷分開關(guān),測(cè)脈寬需上升和下降沿均捕獲
//通道2控制寄存器,比較通道
TA1CCTL2=OUTMOD_6;
TA1CCR0 = 32700;//將近1秒,使肉眼可見
TA1CCR2 = 16000;
//設(shè)置主定時(shí)器,主定時(shí)器增計(jì)數(shù),增減模式周期可調(diào)
TA1CTL =TASSEL_1+MC_1+TACLR;//主定時(shí)器工作模式設(shè)定,捕獲比較功能打開
}
//Timer1中斷函數(shù),多中斷源合用
#pragma vector=TIMER1_A1_VECTOR//中斷向量
__interrupt void TIMER1_A1(void)//名稱任取,可讀性強(qiáng)
{
switch(TA1IV)//中斷向量寄存器
{
case TA1IV_TACCR1:Timer1_ISR();
break;
default:break;
}
}
void Timer1_ISR()
{
volatile unsigned int width=0;
static unsigned int pwm_start=0;
unsigned int pwm_end=0;
//讀取電平讀取上升下降沿,通過寄存器讀取狀態(tài)
if(TA1CCTL1&CCI)//高電平
{
pwm_start=TA1CCR1;//捕獲值放到變量中,捕獲完成
P1OUT|=BIT0;//LED點(diǎn)亮顯示高電平
}
else if(TA1CCTL1&COV==2) TA1CCTL1 &=~COV;//判斷溢出
else
{
pwm_end =TA1CCR1;
width=pwm_end-pwm_start;//高電平脈寬
P1OUT&=~BIT0;//LED顯示低電平
pwm_start=0;
pwm_end=0;//變量清零
_bis_SR_register(LPM0_bits+GIE);
}
TA1CCTL1&=~COV;
}
void P1_IODect()
{
unsigned int Push_Key=0;
//-----排除輸出IO的干擾后,鎖定唯一被觸發(fā)的中斷標(biāo)志位-----
Push_Key=P1IFG&(~P1DIR);
//-----延時(shí)一段時(shí)間,避開機(jī)械抖動(dòng)區(qū)域-----
__delay_cycles(10000); //消抖延時(shí)
//----判斷按鍵狀態(tài)是否與延時(shí)前一致-----
if((P1IN&Push_Key)==0&&Push_Key==BIT3) //如果該次按鍵確實(shí)有效
P13_Onclick();
}
void P13_Onclick() //P1.3的事件處理函數(shù)
{
//-----Bright在函數(shù)執(zhí)行完后不能被清空,所以得設(shè)為靜態(tài)局部變量-----
static unsigned int temp=16000;
TA1CCR2+=4000;
temp=TA1CCR2;
if(temp>=32700)
TA1CCR2=0;
}
#pragma vector = WDT_VECTOR//中斷向量
__interrupt void WDT_ISR(void)//名稱任取,可讀性強(qiáng)
{
P1_IODect();
}
復(fù)制代碼
所有資料51hei提供下載:
4_2.zip
(38.77 KB, 下載次數(shù): 6)
2019-5-15 15:42 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产日韩欧美精品一区二区
|
精品国产免费人成在线观看
|
亚洲精品在线免费
|
久久综合久久综合久久
|
亚洲精品v日韩精品
|
国产精品欧美一区二区
|
性色视频在线观看
|
91天堂网
|
香蕉av免费
|
99久久久无码国产精品
|
久久久中文
|
麻豆一区二区三区精品视频
|
日韩1区
|
日本不卡在线视频
|
日韩欧美大片
|
一级二级三级黄色
|
欧美高清视频一区
|
久久国产99
|
九九亚洲精品
|
久久久久国产一区二区三区
|
欧美一a一片一级一片
|
蜜臀网
|
日本不卡高清视频
|
成人免费视频网站在线看
|
亚洲精品在线免费
|
蜜桃一区二区三区
|
三级国产三级在线
|
久久se精品一区精品二区
|
人人做人人澡人人爽欧美
|
9191av
|
操久久
|
人人九九精
|
亚洲国产日韩一区
|
一区在线观看视频
|
日日干夜夜草
|
精品一区二区在线观看
|
亚洲一区日韩
|
国产精品久久久久久久久久
|
一区二区免费在线观看
|
福利视频三区
|
欧美一区在线视频
|