專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)
深圳市英銳恩科技有限公司:臺灣麥肯單片機(Micon MDT單片機)亞太地區(qū)A級代理商
{QLdsPIC3}所有IO口流水燈{C30+dsPIC30F6014A}
//實驗?zāi)康模和ㄟ^LED流水燈實驗,熟悉dsPIC30F6014A的簡單編程
//軟件思路:
// 1、PORTD口的低8位的流水燈實驗
// 2、用TMR1的定時做流水燈的延時時間
// 3、改變FCY的值可以改變流水燈的速度
//硬件規(guī)劃:撥碼開關(guān)S1全置ON,其他撥碼開關(guān)OFF
#include //dsPIC30F6014標準頭文件
_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); //代碼保護禁止
#define Fcy 5000000 //流水燈延時時間
void delay()
{
unsigned int j,k;
for(j=0;j<10000;j++)
{
for(k=0;k<12;k++);
}
}
int main(void) //主函數(shù)
{
/*設(shè)置LED控制寄存器和定時器*/
//初始化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;
}
}