资源简介
包含LED,BUTTON,DS18B20,UART,ETHERNET,CODEC,RS485,PCF8583,CAN,LCD,PS2相关的c语言编程实例,来自开发板。
代码片段和文件信息
//熟悉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置为输入,其他输出 button
TRISD=0XFF00; //RD口低8位输出,高8位输入 led
}
void initT3()
{
T1CON=0; //T3做定时器。分频比1:1,采用内部时钟fosc/4
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(); //结果显示函数
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1636 2008-07-10 10:24 编程实例\dsPIC30系列\uart-b\uart.c
文件 3119 2008-08-21 11:47 编程实例\dsPIC30系列\uart-b\uart.hex
文件 1636 2008-07-12 15:21 编程实例\dsPIC30系列\uart-a\uart-a.c
文件 3135 2008-08-21 11:50 编程实例\dsPIC30系列\uart-a\uart-a.hex
文件 9469 2008-06-25 16:23 编程实例\dsPIC30系列\sd\sd.c
文件 8458 2008-08-19 17:35 编程实例\dsPIC30系列\sd\sd.hex
文件 3275 2008-08-25 17:01 编程实例\dsPIC30系列\rs485\rs485.c
文件 3884 2008-08-25 17:01 编程实例\dsPIC30系列\rs485\rs485.hex
文件 10347 2008-06-20 17:09 编程实例\dsPIC30系列\ps2\ps2.c
文件 7199 2008-08-20 09:34 编程实例\dsPIC30系列\ps2\ps2.hex
文件 9097 2008-06-25 10:20 编程实例\dsPIC30系列\pcf8583\pcf8583.c
文件 6601 2008-08-19 16:51 编程实例\dsPIC30系列\pcf8583\pcf8583.hex
文件 656 2008-08-27 10:25 编程实例\dsPIC30系列\pcf8583\readme.txt
文件 2915 2008-08-19 16:48 编程实例\dsPIC30系列\led\led.hex
文件 1560 2008-06-12 18:10 编程实例\dsPIC30系列\led\led.C.bak
文件 1757 2010-11-30 11:16 编程实例\dsPIC30系列\led\led.C
文件 4372 2008-08-19 16:40 编程实例\dsPIC30系列\lcd1602\lcd.hex
文件 4288 2010-12-09 09:23 编程实例\dsPIC30系列\lcd1602\lcd1602.c.bak
文件 4378 2010-12-09 10:06 编程实例\dsPIC30系列\lcd1602\lcd1602.c
文件 4378 2010-12-09 10:07 编程实例\dsPIC30系列\lcd1602\lcd1602-2
文件 4378 2010-12-09 10:08 编程实例\dsPIC30系列\lcd1602\lcd1602-2.c.bak
文件 4356 2010-12-09 10:14 编程实例\dsPIC30系列\lcd1602\lcd1602-2.c
文件 10315 2008-08-19 16:32 编程实例\dsPIC30系列\lcd12864\lcd.hex
文件 10810 2010-12-09 15:17 编程实例\dsPIC30系列\lcd12864\lcd1.c.bak
文件 10810 2010-12-09 15:19 编程实例\dsPIC30系列\lcd12864\lcd1.c
文件 191829 2007-06-19 11:38 编程实例\dsPIC30系列\Ethernet\ping.hex
文件 436 2008-09-23 11:18 编程实例\dsPIC30系列\Ethernet\readme.txt
文件 8536 2008-06-21 16:08 编程实例\dsPIC30系列\ds18b20\ds18b20.c
文件 7116 2008-08-19 16:42 编程实例\dsPIC30系列\ds18b20\ds18b20.hex
文件 5951 2008-07-02 17:32 编程实例\dsPIC30系列\codec\Codec.c
............此处省略31个文件信息
- 上一篇:C++ 实现屏幕水印
- 下一篇:门禁控制系统Pretues仿真图
评论
共有 条评论