久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2926|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

基于STC15F2K60S2的AD轉(zhuǎn)換程序問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:619500 發(fā)表于 2020-8-15 20:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
自己寫了段測電壓的基于STC15F2K60S2的AD轉(zhuǎn)換。不過看了多遍不知道錯在哪。大家?guī)兔χ附滔隆Vx謝!
#include<STC15F2K60S2.H>

#define uint unsigned int

uint a;

void main()
{
        P1ASF=0X08;//選擇P1^3做模擬通道
        ADC_CONTR=0X80;//ADC電源打開
        for(a=50000;a>0;a--);
        ADC_CONTR=0XEB;//選擇P1^3做模擬通道
        CLK_DIV=0X0;//adrj位置0;
        for(a=50000;a>0;a--);
        while(1)
        {
                if(ADC_CONTR&0X10==0)//如何條件為真,ADC_FLAG已被置0,轉(zhuǎn)換完成
                {               
                        P2=ADC_RES;
                        ADC_RESL<<=6;
                        P3=ADC_RESL;
                        for(a=21000000;a>0;a--);
                        ADC_CONTR=0XEB;//將ADC_FLAG置0,ADC_START置1,以繼續(xù)轉(zhuǎn)換
                        
                }
        
        }
        
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2020-8-16 06:44 | 只看該作者
  1. #include<STC15F2K60S2.H>

  2. #define uint unsigned int

  3. uint a;

  4. void main()
  5. {
  6.         P1M1 = 0x08;                        //設(shè)置P1.3高阻
  7.         P1M0 = 0x00;                        //設(shè)置P1.3高阻
  8.         P1ASF= 0x08;                        //選擇P1.3做模擬通道
  9.         ADC_CONTR=0x80;                        //打開ADC電源
  10.         for(a=50000;a>0;a--);        //等待電源穩(wěn)定
  11.         while(1)
  12.         {
  13.                 ADC_CONTR=0x8B;                        //啟動轉(zhuǎn)換(速度控制420時鐘)1000 1011
  14. //                ADC_CONTR=0XEB;                        //選擇P1^3做模擬通道
  15. //                CLK_DIV=0X0;//adrj位置0
  16.                 for(a=10;a>0;a--);                //小延時
  17. //                if(ADC_CONTR&0X10==0)        //如何條件為真,ADC_FLAG已被置0,轉(zhuǎn)換完成
  18.                 while(!(ADC_CONTR & 0x10));//等待ADC轉(zhuǎn)換完成標(biāo)志置位 1001 1000
  19.                 ADC_CONTR &=~0x10;                        //清除轉(zhuǎn)換完成標(biāo)志
  20.                 P2=ADC_RES;
  21. //                ADC_RESL<<=6;
  22.                 P3=ADC_RESL<<6;
  23. //                for(a=21000000;a>0;a--);
  24.                 for(a=65535;a>0;a--);        //uint數(shù)據(jù)范圍0~65535
  25. //                ADC_CONTR=0XEB;//將ADC_FLAG置0,ADC_START置1,以繼續(xù)轉(zhuǎn)換               
  26.         }       
  27. }
復(fù)制代碼
回復(fù)

使用道具 舉報

板凳
ID:619500 發(fā)表于 2020-8-16 22:00 | 只看該作者

謝謝你。不過。這代碼我復(fù)制過去,還是不行。不知道會不會是我電路有問題。我電路是這么接的 有錯嗎。請指教。謝謝!
回復(fù)

使用道具 舉報

地板
ID:213173 發(fā)表于 2020-8-17 06:46 | 只看該作者
qjyvi2 發(fā)表于 2020-8-16 22:00
謝謝你。不過。這代碼我復(fù)制過去,還是不行。不知道會不會是我電路有問題。我電路是這么接的有錯嗎。請指 ...

STC15系列單片機(jī)加電復(fù)位后端口默認(rèn)為準(zhǔn)雙向模式高電平(部分型號少數(shù)特殊功能端口例外)。樓主想高電平驅(qū)動LED發(fā)光需要將P2和P3.6~3.7設(shè)置為推挽模式:
        P2M1 = 0x00;                        //設(shè)置P2推挽模式
        P2M0 = 0xff;                        //設(shè)置P2推挽模式
        P3M1 = 0x00;                        //設(shè)置P3.6~3.7推挽模式
        P3M0 = 0xc0;                        //設(shè)置P3.6~3.7推挽模式
樓主用此方法只能顯示10位2進(jìn)制AD轉(zhuǎn)換值,1.3V電壓經(jīng)轉(zhuǎn)換≈0100001010。
回復(fù)

使用道具 舉報

5#
ID:619500 發(fā)表于 2020-8-18 14:38 | 只看該作者
wulin 發(fā)表于 2020-8-17 06:46
STC15系列單片機(jī)加電復(fù)位后端口默認(rèn)為準(zhǔn)雙向模式高電平(部分型號少數(shù)特殊功能端口例外)。樓主想高電平 ...

找了兩天,還是沒找到哪里錯誤。有點(diǎn)絕望……。
回復(fù)

使用道具 舉報

6#
ID:213173 發(fā)表于 2020-8-18 19:31 | 只看該作者
qjyvi2 發(fā)表于 2020-8-18 14:38
找了兩天,還是沒找到哪里錯誤。有點(diǎn)絕望……。

按你的意圖給你重新寫了個ADC轉(zhuǎn)換程序,如果還玩不轉(zhuǎn)只能懷疑你的硬件電路有問題。
  1. /*---------------------------------
  2. 此程序適合STC15W系列單片機(jī)
  3. ------------------------------------*/
  4. #include<STC15F2K60S2.H>
  5. #include <intrins.h>
  6. #define uint unsigned int                         //宏定義變量uint為無符號整型數(shù)據(jù)(0-65535)
  7. #define uchar unsigned char                 //宏定義變量uchar為無符號字符型數(shù)據(jù)(0-255)
  8. //宏定義ADC的操作命令
  9. #define ADC_POWER   0x80                        //ADC power control dit (宏定義ADC電源控制位)1000 0000
  10. #define ADC_START   0x08                        //ADC start control dit (宏定義ADC啟動控制位)0000 1000
  11. #define ADC_FLAG    0x10                        //ADC complete flag (宏定義ADC完成標(biāo)志位)    0001 0000
  12. #define ADC_SPEEDLL 0x00                        //420 clocks (宏定義540個時鐘)速度控制       0000 0000
  13. /*-----------------------------------------------------------------
  14.         1ms延時子程序(11.0592MHz 1T)
  15. ------------------------------------------------------------------*/
  16. void delayms(uint k)
  17. {
  18.         uint i,j;
  19.         for(i=k;i>0;i--)
  20.                 for(j=829;j>0;j--);
  21. }
  22. /*-----------------------------------------------------------------------------
  23.   InitADC 初始化ADC
  24. -----------------------------------------------------------------------------*/
  25. void InitADC()
  26. {
  27.         P1ASF=0x08;                                                //設(shè)置P1.3通道端口作為模擬輸入
  28.         ADC_RES=0;                                                //清除ADC_RES存儲器以前的結(jié)果
  29.         ADC_RESL=0;
  30.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL;//ADC 開啟電源、轉(zhuǎn)換速度 1000 0000
  31.         delayms(1);                                                //上電延時1ms                                                                                       
  32. }
  33. /*----------------------------------------------------------------------------
  34. Get ADC Result(獲取ADC結(jié)果)
  35. ----------------------------------------------------------------------------*/
  36. uint Read(uchar CHA)                                      //獲取ADC結(jié)果
  37. {
  38.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL|CHA|ADC_START;//啟動轉(zhuǎn)換1000 1011
  39.     _nop_();                        //延時確保正確讀到ADC_CONTR寄存器的值
  40.     _nop_();
  41.     _nop_();
  42.     _nop_();
  43.         while(!(ADC_CONTR & ADC_FLAG));        //等待ADC轉(zhuǎn)換完成標(biāo)志置位 1001 1011
  44.         ADC_CONTR &=~ADC_FLAG;                           //清除完成標(biāo)志
  45.         return(ADC_RES<<2|ADC_RESL);           //返回十位ADC結(jié)果
  46. }
  47. void main()
  48. {
  49.         uint temp;
  50.         P0M0 = 0x00;
  51.         P0M1 = 0x00;
  52.         P1M1 = 0x08;//設(shè)置P1.3高阻
  53.         P1M0 = 0x00;//設(shè)置P1.3高阻
  54.         P2M1 = 0x00;//設(shè)置P2推挽模式
  55.         P2M0 = 0xff;//設(shè)置P2推挽模式
  56.         P3M1 = 0x00;//設(shè)置P3.6~3.7推挽模式
  57.         P3M0 = 0xc0;//設(shè)置P3.6~3.7推挽模式
  58.         P4M0 = 0x00;
  59.         P4M1 = 0x00;
  60.         P5M0 = 0x00;
  61.         P5M1 = 0x00;
  62.         P6M0 = 0x00;
  63.         P6M1 = 0x00;
  64.         P7M0 = 0x00;
  65.         P7M1 = 0x00;
  66.         InitADC();
  67.         while(1)
  68.         {
  69.                 temp=Read(3);
  70.                 P2=temp>>2;
  71.                 P3=temp<<6;            
  72.                 delayms(500);
  73.         }        
  74. }
復(fù)制代碼



評分

參與人數(shù) 1黑幣 +30 收起 理由
qjyvi2 + 30 很給力!

查看全部評分

回復(fù)

使用道具 舉報

7#
ID:619500 發(fā)表于 2020-8-18 19:47 | 只看該作者
wulin 發(fā)表于 2020-8-18 19:31
按你的意圖給你重新寫了個ADC轉(zhuǎn)換程序,如果還玩不轉(zhuǎn)只能懷疑你的硬件電路有問題。

嗯。我買新材料再做做看。非常感謝你!
回復(fù)

使用道具 舉報

8#
ID:619500 發(fā)表于 2020-8-21 20:30 | 只看該作者
qjyvi2 發(fā)表于 2020-8-18 19:47
嗯。我買新材料再做做看。非常感謝你!

程序和線路都沒問題。應(yīng)該是錫焊的能力太菜了,有地方虛焊假焊。今天面包板到貨。我程序運(yùn)行一次就成功了。萬用表測出來的電壓是1.35.用AD轉(zhuǎn)換出來是1.327.這應(yīng)該算是成功了。還是挺開心的。謝謝!

面包.jpg (235.47 KB, 下載次數(shù): 93)

面包.jpg
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一本色道久久综合亚洲精品高清 | 精品亚洲一区二区 | 亚洲a人 | 久久av一区 | 亚洲视频在线观看免费 | 在线中文字幕第一页 | 欧美日一区 | zzzwww在线看片免费 | 九九热re | 天天操天天干天天爽 | 国产精品久久久久久亚洲调教 | 国产伦精品一区二区三区四区视频 | 亚洲精品一区在线 | 手机看片169| 欧美在线观看一区 | 丁香久久 | 超碰在线人人干 | 爱爱小视频| 99久久日韩精品免费热麻豆美女 | 久草免费视 | 中国一级大毛片 | 精品国产免费人成在线观看 | 日韩av手机在线观看 | 中文字幕精品一区二区三区精品 | 国产成在线观看免费视频 | 欧美高清一区 | 久久成人精品视频 | 一区二区三区免费 | 99久久精品免费看国产高清 | 国产乱码精品一区二三赶尸艳谈 | 九色视频网 | 男女视频免费 | 日韩一级欧美一级 | 免费在线观看av网址 | 有码在线 | 久久综合伊人一区二区三 | www在线| 在线视频一区二区 | 久国产视频 | 欧美一区二区三区在线播放 | 国产成人精品一区二区三区视频 |