找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)多通道AD采集源程序(8路) STC15w系列

查看數(shù): 11717 | 評(píng)論數(shù): 5 | 收藏 10
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2019-7-16 12:00

正文摘要:

12864為串行接法。AD0~AD4接的5V電源。 AD5~AD7接的GND。 STC15W408AS 自帶8路10位AD   程序只使用了高八位。量程為255. 程序里面含10位AD采集。1024。 代碼已注釋。 新手上路。有錯(cuò)誤還請(qǐng)斧正。 ...

回復(fù)

ID:97678 發(fā)表于 2023-4-18 12:48
10位 ADC 采集部分程序有問題
做如下修改編譯就可以通過, 這樣修改可以嗎?
/****************
*以下關(guān)于ADC
*****************/
void ADC_init() //adc初始化
{
        P1ASF=0XFF;     //設(shè)置P1為ADC采集
        ADC_RES=0;        //清除高八位結(jié)果寄存器
        ADC_CONTR=0XE0; //ADC上電  A/D轉(zhuǎn)換周期90個(gè)時(shí)鐘周期
        delay(5);
}

uchar ADC_P(unsigned char ch) //ADC處理函數(shù)
{
ADC_CONTR &= !ADC_FLAG;         //清除ADC中斷標(biāo)志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|ch;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
        ADC_data=(a1<<2)|(b1>>6); //10AD  */

/*        ADC_CONTR&=~ADC_FLAG;  //關(guān)閉標(biāo)志位
        ADC_CONTR=0X80|0X00|0X08|ch;
        _nop_();_nop_();_nop_();_nop_();  */
       
/*   ADC_CONTR &= !ADC_FLAG;         //清除ADC中斷標(biāo)志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|0x00;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
//        ADC_data=(a1<<2)|(b1>>6); //10AD  */

              while(!(ADC_CONTR&0x10));//等待ADC轉(zhuǎn)換完成

        return ADC_RES;  //返回ADC結(jié)果  8位AD
}
ID:361216 發(fā)表于 2022-5-24 15:16
不錯(cuò)的資料,正是我想找了東西。
ID:996527 發(fā)表于 2022-3-25 22:28
good,程序?qū)W習(xí)下,請(qǐng)問有沒有具體電路連接呢
ID:646328 發(fā)表于 2020-11-16 15:52
uchar ADC_P(unsigned char ch) //ADC處理函數(shù)
{
        ADC_CONTR&=~ADC_FLAG;  //關(guān)閉標(biāo)志位
        ADC_CONTR=0X80|0X00|0X08|ch;
        _nop_();_nop_();_nop_();_nop_();
        while(!(ADC_CONTR&0x10));//等待ADC轉(zhuǎn)換完成

        return ADC_RES;  //返回ADC結(jié)果  8位AD
      
/*   ADC_CONTR &= !ADC_FLAG;         //清除ADC中斷標(biāo)志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|0x00;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
//        ADC_data=(a1<<2)|(b1>>6); //10AD  */

}如果使用10位ad,不應(yīng)該是
/*   ADC_CONTR &= !ADC_FLAG;         //清除ADC中斷標(biāo)志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|0x00;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
//        ADC_data=(b1<<2)|(a1>>6); //10AD  */
,詳情請(qǐng)看圖片

51hei截圖_20201116155222.png (38.13 KB, 下載次數(shù): 116)

51hei截圖_20201116155222.png

評(píng)分

參與人數(shù) 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

ID:813923 發(fā)表于 2020-8-13 16:57
有沒有proteus仿真電路鴨?

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表