• 大小: 81KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: C/C++
  • 标签: dsPIC30  编程实例  

资源简介

包含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个文件信息

评论

共有 条评论