專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
深圳市英銳恩科技有限公司:臺灣麥肯單片機(jī)(Micon MDT單片機(jī))亞太地區(qū)A級代理商
QLdsPIC3]流水燈[C30+dsPIC30F6014A]
//實驗?zāi)康模和ㄟ^LED流水燈實驗,熟悉dsPIC30F6014A的簡單編程
//軟件思路:
// 1、PORTD口的低8位的流水燈實驗
// 2、用TMR1的定時做流水燈的延時時間
// 3、改變FCY的值可以改變流水燈的速度
//硬件規(guī)劃:撥碼開關(guān)S1全置ON,其他撥碼開關(guān)OFF
#include //dsPIC30F6014標(biāo)準(zhǔn)頭文件
_FOSC(CSW_FSCM_OFF & XT_PLL4); //4倍頻晶振,F(xiàn)ailsafe 時鐘關(guān)閉
_FWDT(WDT_OFF); //關(guān)閉看門狗定時器
_FBORPOR(PBOR_OFF & MCLR_EN); //掉電復(fù)位禁止,MCLR復(fù)位使能。
_FGS(CODE_PROT_OFF); //代碼保護(hù)禁止
#define Fcy 5000000 //流水燈延時時間
int main(void) //主函數(shù)
{
/*設(shè)置LED控制寄存器和定時器*/
//初始化LED端口和按鍵開關(guān)端口
LATD = 0x0000; //關(guān)閉所有LED
TRISD = 0xFF00; //設(shè)定LED引腳為輸出
T1CON = 0; //關(guān)閉定時器1
TMR1 = 0; //啟動定時器1的計數(shù)寄存器為0
PR1 = (Fcy/256)/2; //設(shè)定延時時間
T1CON = 0x8030; //配置定時器1 (定時器開, 在空閑模式定時器繼續(xù)工作,
//控時間累加禁止, 預(yù)分頻比是1:256, 內(nèi)部時鐘)
unsigned char i; //定義一循環(huán)變量
while (1)
{
LATD=1; //先點(diǎn)亮PORTD0口LED
for(i=0;i<8;i++) //循環(huán)8次,依次點(diǎn)亮所有LED
{
while(!IFS0bits.T1IF); //等待延時時間到
LATD=LATD<<1; //緩沖器左移一位,以便點(diǎn)亮下一位LED
IFS0bits.T1IF=0; //定時器中斷標(biāo)志位清0
}
}
}