專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
深圳市英銳恩科技有限公司:臺(tái)灣麥肯單片機(jī)(Micon MDT單片機(jī))亞太地區(qū)A級(jí)代理商
{QLdsPIC3}所有IO口流水燈{C30+dsPIC30F6014A}
//實(shí)驗(yàn)?zāi)康模和ㄟ^LED流水燈實(shí)驗(yàn),熟悉dsPIC30F6014A的簡(jiǎn)單編程
//軟件思路:
// 1、PORTD口的低8位的流水燈實(shí)驗(yàn)
// 2、用TMR1的定時(shí)做流水燈的延時(shí)時(shí)間
// 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 時(shí)鐘關(guān)閉
_FWDT(WDT_OFF); //關(guān)閉看門狗定時(shí)器
_FBORPOR(PBOR_OFF & MCLR_EN); //掉電復(fù)位禁止,MCLR復(fù)位使能。
_FGS(CODE_PROT_OFF); //代碼保護(hù)禁止
#define Fcy 5000000 //流水燈延時(shí)時(shí)間
void delay()
{
unsigned int j,k;
for(j=0;j<10000;j++)
{
for(k=0;k<12;k++);
}
}
int main(void) //主函數(shù)
{
/*設(shè)置LED控制寄存器和定時(shí)器*/
//初始化LED端口和按鍵開關(guān)端口
LATA=0;
TRISA=0;
LATB=0;
TRISB=0;
LATC=0;
TRISC=0;
LATG=0;
TRISG=0;
LATD = 0x0000; //關(guān)閉所有LED
TRISD = 0; //設(shè)定LED引腳為輸出
LATF=0;
TRISF=0;
ADPCFG=0XFFFF;
unsigned char i; //定義一循環(huán)變量
while (1)
{
LATAbits.LATA6=1; //RA6
delay();
LATAbits.LATA6=0;
LATAbits.LATA7=1; //RA7
delay();
LATAbits.LATA7=0;
LATAbits.LATA9=1; //RA9
delay();
LATAbits.LATA9=0;
LATAbits.LATA10=1; //RA10
delay();
LATAbits.LATA10=0;
LATA=0X1000;
for(i=0;i<4;i++) //RA12-RA15
{
delay();
LATA=LATA<<1;
}
LATB=0X100;
for(i=0;i<8;i++) //RB8-RB15
{
delay();
LATB=LATB<<1;
}
LATB=1;
for(i=0;i<8;i++) //RB0-RB7
{
delay();
LATB=LATB<<1;
}
LATB=0;
LATFbits.LATF8=1; //RF8
delay();
LATFbits.LATF8=0;
LATCbits.LATC1=1; //RC1-RC4
for(i=0;i<4;i++)
{
delay();
LATC=LATC<<1;
}
LATCbits.LATC13=1; //RC13
delay();
LATCbits.LATC13=0;
LATCbits.LATC14=1; //RC14
delay();
LATCbits.LATC14=0;
LATD=0X100;
for(i=0;i<8;i++) //RD8-RD15
{
delay();
LATD=LATD<<1;
}
LATD=1;
for(i=0;i<8;i++) //RD0-RD7
{
delay();
LATD=LATD<<1;
}
LATD=0;
LATF=1;
for(i=0;i<8;i++) //RF0-RF7
{
delay();
LATF=LATF<<1;
}
LATF=0;
LATG=0X1000;
for(i=0;i<4;i++) //RG12-RG15
{
delay();
LATG=LATG<<1;
}
LATG=1;
for(i=0;i<4;i++) //RG0-RG3
{
delay();
LATG=LATG<<1;
}
LATG=0X40;
for(i=0;i<4;i++) //RG6-RG9
{
delay();
LATG=LATG<<1;
}
LATG=0;
}
}