資源簡介
dsPIC系列的編程示例 有詳細的講解和注釋 非常適用于初學者

代碼片段和文件信息
//熟悉AD轉換模塊的使用
//軟件規劃
//????????3路AD轉換結果送D口LED顯示
//????????只顯示AD轉換結果的低8位
//????????4次轉換結果求平均值
//????????由T3按10MS時間間隔觸發采樣并轉換
//????????RA12,RA13,RA14決定顯示3路中哪一路送顯示(RA12?-?RB4??RA13?-?RB5?RA14?-?RB6)
//硬件規劃
//????????撥碼開關S1置ON
//????????撥碼開關S2第6,7,8開
//????????撥碼開關S3置ON
#include??????????????//dsPIC30F6014標準頭文件
??_FOSC(CSW_FSCM_OFF?&?XT_PLL4);??//4倍頻晶振,Failsafe?時鐘關閉
??_FWDT(WDT_OFF);?????????????????//關閉看門狗定時器
??_FBORPOR(PBOR_OFF?&?MCLR_EN);???//掉電復位禁止,MCLR復位使能。
??_FGS(CODE_PROT_OFF);????????????//代碼保護禁止
unsigned?int?adresult[]={123};
void?init();
void?initT3();
void?initad();?
void?adchange();
void?display();
void?init()
{
???TRISB=0x0070;??????????????????//RB4B5B6設置為輸入(AD輸入口),其他輸出
???TRISA=0X7000;??????????????????//RA12RA13RA14置為輸入,其他輸出
???TRISD=0XFF00;??????????????????//RD口低8位輸出,高8位輸入
}
void?initT3()
{
???T1CON=0;???????????????????????//T3做定時器。分頻比1:1
???TMR3=0;???????????????????????
???PR3=0X2710;????????????????????//10MS時間
}
void?initad()
{
???ADPCFG=0xFF8F;?????????????????//RB4-RB6做AD輸入口,其他位做普通I/O口
???ADCON1=0X0044;?????????????????//采用T3比較結束采樣并開始轉換
???ADCON2=0X042C;?????????????????//掃描輸入,每12個采樣中斷一次(即每個輸入采樣4次求平均數)
???ADCON3=0X000F;?????????????????//Tad=8Tcy
???ADCSSL=0X0070;?????????????????//在引腳AN4,AN5,AN4掃描輸入
???ADCON1bits.ADON=1;?????????????//開啟AD轉換
}
void?adchange()
{
while(!IFS0bits.ADIF);????????//等待AD轉換完成
????IFS0bits.ADIF=0;??????????????//清除AD中斷標志位
????adresult[0]=ADCBUF0+ADCBUF3+ADCBUF6+ADCBUF9;???//4次RB4轉換的結果和
????adresult[0]=adresult[0]>>2;????????????????????//平均值
????adresult[1]=ADCBUF1+ADCBUF4+ADCBUF7+ADCBUFA;
????adresult[1]=adresult[1]>>2;
????adresult[2]=ADCBUF2+ADCBUF5+ADCBUF8+ADCBUFB;
????adresult[2]=adresult[2]>>2;
}
void?display()
{???
????PORTD=0X0000;?????????????????//清除所有顯示
if(!PORTAbits.RA12)?PORTD=adresult[0]&0x00ff;???//RA12按下則顯示RB4轉換結果
????if(!PORTAbits.RA13)?PORTD=adresult[1]&0x00ff;???//RA13按下則顯示RB5轉換結果
????if(!PORTAbits.RA14)?PORTD=adresult[2]&0x00ff;???//RA14按下則顯示RB6轉換結果
}
int?main?(void)
{
init();?????????????????????//I/O口初試化函數
????initT3();???????????????????//T3初試化函數
????initad();???????????????????//AD轉換初始化函數
????T3CONbits.TON=1;????????????//開啟T3定時器
????while(1)
????{
???????adchange();??????????????//AD轉換函數
???????display();???????????????//結果顯示函數
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-11-22?14:31??編程實例\
?????目錄???????????0??2011-12-24?17:54??編程實例\PIC24\
?????目錄???????????0??2011-12-24?17:54??編程實例\PIC24\output\
?????文件?????????814??2008-11-15?14:22??編程實例\PIC24\output\led.c
?????文件????????4449??2008-11-15?14:22??編程實例\PIC24\output\led.hex
?????目錄???????????0??2012-07-12?11:36??編程實例\dsPIC30系列\
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\Ethernet\
?????文件??????191829??2007-06-19?11:38??編程實例\dsPIC30系列\Ethernet\ping.hex
?????文件?????????436??2008-09-23?11:18??編程實例\dsPIC30系列\Ethernet\readme.txt
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\adc\
?????文件????????2689??2008-06-14?18:19??編程實例\dsPIC30系列\adc\adc.c
?????文件????????3974??2008-08-19?17:07??編程實例\dsPIC30系列\adc\adc.hex
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\button\
?????文件????????2024??2008-06-11?18:08??編程實例\dsPIC30系列\button\button.c
?????文件????????3185??2008-08-19?16:49??編程實例\dsPIC30系列\button\button.hex
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\can\
?????文件????????6169??2008-07-22?18:22??編程實例\dsPIC30系列\can\CANRX.c
?????文件????????6269??2008-07-22?17:56??編程實例\dsPIC30系列\can\CANRX.hex
?????文件????????7409??2008-07-22?18:19??編程實例\dsPIC30系列\can\CANTX.c
?????文件????????6126??2008-07-22?18:19??編程實例\dsPIC30系列\can\CANTX.hex
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\codec\
?????文件????????5951??2008-07-02?17:32??編程實例\dsPIC30系列\codec\Codec.c
?????文件????????6224??2008-08-19?17:40??編程實例\dsPIC30系列\codec\codec.hex
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\ds18b20\
?????文件????????8536??2008-06-21?16:08??編程實例\dsPIC30系列\ds18b20\ds18b20.c
?????文件????????7116??2008-08-19?16:42??編程實例\dsPIC30系列\ds18b20\ds18b20.hex
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\lcd12864\
?????文件???????10315??2008-08-19?16:32??編程實例\dsPIC30系列\lcd12864\lcd.hex
?????文件???????10748??2008-06-13?17:38??編程實例\dsPIC30系列\lcd12864\lcd1.c
?????目錄???????????0??2011-12-24?17:54??編程實例\dsPIC30系列\lcd1602\
?????文件????????4372??2008-08-19?16:40??編程實例\dsPIC30系列\lcd1602\lcd.hex
............此處省略40個文件信息
評論
共有 條評論