欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17049|回復: 40
打印 上一主題 下一主題
收起左側

STC15F2K60S2單片機AD轉換程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:249268 發表于 2017-11-14 12:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC15F2K60S2的ad轉換。

單片機源程序如下:
  1. #include<STC15F2K60S2.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit wei1=P3^4;
  5. sbit wei2=P3^5;
  6. sbit wei3=P3^6;
  7. sbit wei4=P3^7;

  8. uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  9. uint num=0;

  10. void delay()
  11. {
  12.         uchar i,j;
  13.         for(i=0;i<20;i++)
  14.                 for(j=0;j<250;j++);
  15. }

  16. void adval()//ad轉換函數
  17. {
  18.         uint val;//存放ad轉換結果
  19.         uchar low;//存放ad轉換結果低兩位
  20.         float fval;//小數
  21.         P1ASF=0X08;//p1.3為ad轉換kou
  22.         ADC_CONTR=0xeb;//打開ad轉換電源速度最快輸出端p1.3;
  23.         delay();
  24.         while(ADC_CONTR&0X10==0);
  25.         val=ADC_RES;//取轉換結果高八位放入
  26.         val<<=2;//空出第八位
  27.         low=ADC_RESL;
  28.         low&=0x03;
  29.         val+=low;
  30.         fval=val;
  31.         fval*=5;
  32.         fval/=1024;
  33.         fval*=10;
  34.         num=fval;
  35.         ADC_CONTR=0xeb;

  36. }

  37. void display()
  38. {
  39.         uchar bai,shi,ge;
  40.         uint temp=num;
  41.         bai=temp/100;
  42.         temp=temp%100;
  43.         shi=temp/10;
  44.         ge=temp%10;
  45.         P2=duan[bai];wei2=0;delay();wei2=1;
  46.         P2=duan[shi]&0x7f;wei3=0;delay();wei3=1;
  47.         P2=duan[ge];wei4=0;delay();wei4=1;
  48. ……………………

  49. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
AD轉換.zip (22.56 KB, 下載次數: 418)


評分

參與人數 1黑幣 +5 收起 理由
KolalaSA + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂3 踩
回復

使用道具 舉報

來自 2#
ID:79544 發表于 2018-5-3 18:19 | 只看該作者
ADC_CONTR=0xeb;//打開ad轉換電源速度最快輸出端p1.3;  樓主后面的0xeb是怎么出來的
回復

使用道具 舉報

來自 3#
ID:206194 發表于 2018-5-4 00:15 | 只看該作者
騰飛的龍 發表于 2018-5-3 18:19
ADC_CONTR=0xeb;//打開ad轉換電源速度最快輸出端p1.3;  樓主后面的0xeb是怎么出來的

0xeb是16進制 二進制需根據8421轉換法轉成16進制
8421    轉換碼
1110    E  =8+4+2+0=12=E(16進制)
1011    B  =8+0+2+1=11=B(16進制)
所以ADC_CONTR=1110 1011=0xeb

評分

參與人數 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:261727 發表于 2017-12-14 20:20 | 只看該作者
下下來看看
回復

使用道具 舉報

5#
ID:243748 發表于 2017-12-16 18:24 來自觸屏版 | 只看該作者
謝謝分享
回復

使用道具 舉報

6#
ID:98985 發表于 2018-2-6 22:28 | 只看該作者
學習中謝謝分享
回復

使用道具 舉報

7#
ID:280512 發表于 2018-2-7 22:11 | 只看該作者
謝謝分享。寫的很清楚,讀起來很舒服
回復

使用道具 舉報

8#
ID:284500 發表于 2018-2-20 20:11 | 只看該作者
頭文件在哪里下載的?
回復

使用道具 舉報

9#
ID:243748 發表于 2018-2-24 23:16 來自觸屏版 | 只看該作者
學習中,謝謝分享
回復

使用道具 舉報

10#
ID:164172 發表于 2018-3-25 19:02 | 只看該作者
只是個AD轉換函數  不是AD讀取函數,下載的時候沒看清
回復

使用道具 舉報

11#
ID:161115 發表于 2018-5-2 13:13 | 只看該作者
正在學習,感謝樓主無私的分享
回復

使用道具 舉報

12#
ID:79544 發表于 2018-5-3 18:17 | 只看該作者
送人玫瑰手留余香。感謝分享
回復

使用道具 舉報

13#
ID:329679 發表于 2018-5-14 16:20 | 只看該作者
謝謝分享,學習中
回復

使用道具 舉報

14#
ID:308785 發表于 2018-6-2 15:24 | 只看該作者
可以看看思路
回復

使用道具 舉報

15#
ID:369082 發表于 2018-7-10 22:39 | 只看該作者
謝謝分享
回復

使用道具 舉報

16#
ID:369082 發表于 2018-7-10 22:41 | 只看該作者
大米飯 發表于 2018-3-25 19:02
只是個AD轉換函數  不是AD讀取函數,下載的時候沒看清

AD讀取函數是什么意思??
回復

使用道具 舉報

17#
ID:369082 發表于 2018-7-12 10:30 | 只看該作者
P2=duan[shi]&0x7f這是什么意思啊
回復

使用道具 舉報

18#
ID:413177 發表于 2018-10-21 17:14 | 只看該作者
謝謝樓主
回復

使用道具 舉報

19#
ID:480142 發表于 2019-4-14 13:24 來自觸屏版 | 只看該作者
厲害,謝謝謝謝謝謝
回復

使用道具 舉報

20#
ID:511752 發表于 2019-4-14 17:06 | 只看該作者
感謝分享
回復

使用道具 舉報

21#
ID:557356 發表于 2019-6-7 20:31 | 只看該作者
感謝分享
回復

使用道具 舉報

22#
ID:557356 發表于 2019-6-7 20:32 | 只看該作者
感謝分享
回復

使用道具 舉報

23#
ID:583132 發表于 2019-7-18 10:13 | 只看該作者
大米飯 發表于 2018-3-25 19:02
只是個AD轉換函數  不是AD讀取函數,下載的時候沒看清

val=ADC_RES;
val<<=2;
low=ADC_RESL;
low&=0x03;
val+=low;
這是什么?
回復

使用道具 舉報

24#
ID:586238 發表于 2019-7-18 11:19 | 只看該作者
謝謝分享
回復

使用道具 舉報

25#
ID:480680 發表于 2019-7-21 09:00 | 只看該作者
騰飛的龍 發表于 2018-5-3 18:19
ADC_CONTR=0xeb;//打開ad轉換電源速度最快輸出端p1.3;  樓主后面的0xeb是怎么出來的

看看15手冊,PLASF是P1口的模擬功能控制寄存器,PLASF=0x08;是將P1.3口做模擬ad使用,后面的ADC_CONTR=0xeb;ADC_CONTR是控制寄存器,后四位的16進制數是b,是1011,后三位011指的是將P1.3作為ad輸入來用,
回復

使用道具 舉報

26#
ID:480680 發表于 2019-7-21 09:14 | 只看該作者

看15手冊,ADC_RES和ADC_RESL是AD轉換過程中的存儲ad轉換結果的,這里ADC_RES指的是高八位,ADC_RESL指的是低2位,val向左移了2位,相當與變為了10位,val加上low表示高八位和低二位相加,low&=0x03;表示值不能超過3;






























回復

使用道具 舉報

27#
ID:480680 發表于 2019-7-21 09:19 | 只看該作者
小百科 發表于 2018-7-12 10:30
P2=duan[shi]&0x7f這是什么意思啊

這個地方有些多余,&這是與的意思,0x7f指的是數碼管可以顯示8,無論你用啥值與8&‘都等于原來值
回復

使用道具 舉報

28#
ID:480680 發表于 2019-7-21 09:50 | 只看該作者
小百科 發表于 2018-7-12 10:30
P2=duan[shi]&0x7f這是什么意思啊

你這個意思是不管是啥值,都要帶個小數點,之前理解錯了
回復

使用道具 舉報

29#
ID:587609 發表于 2019-7-21 10:18 | 只看該作者
想下載看看哈
回復

使用道具 舉報

30#
ID:473219 發表于 2019-11-7 21:59 | 只看該作者
挺簡單的程序,移植也很方便
回復

使用道具 舉報

31#
ID:638203 發表于 2019-11-8 17:08 | 只看該作者
謝謝樓主的分享
回復

使用道具 舉報

32#
ID:646125 發表于 2019-12-7 11:50 | 只看該作者
送人玫瑰手留余香。感謝分享
回復

使用道具 舉報

33#
ID:643071 發表于 2019-12-7 13:32 來自觸屏版 | 只看該作者
學習中,謝謝分享
回復

使用道具 舉報

34#
ID:445996 發表于 2020-3-25 14:14 | 只看該作者
我想問一下 就不能給一個16位然后高位移開 | 低位嗎
回復

使用道具 舉報

35#
ID:732181 發表于 2020-4-28 17:52 | 只看該作者
謝謝大佬分享
回復

使用道具 舉報

36#
ID:137747 發表于 2020-4-29 14:10 | 只看該作者
謝謝樓主的分享,好東西
回復

使用道具 舉報

37#
ID:560110 發表于 2020-7-26 22:04 | 只看該作者

打開ad轉換電源速度最快輸出端p1.3;  樓主后面的0xeb是怎么出來的
回復

使用道具 舉報

38#
ID:619500 發表于 2020-8-9 15:56 | 只看該作者
low&=0x03;
這步是作什么用。感覺是不是多余。是不是有什么深意。忘解惑。謝謝!
回復

使用道具 舉報

39#
ID:619500 發表于 2020-8-14 20:53 | 只看該作者
沒有電路圖嗎。
回復

使用道具 舉報

40#
ID:61140 發表于 2022-5-19 09:16 | 只看該作者
本帖最后由 xiaoyuxinke 于 2022-5-19 09:25 編輯
周濤1331 發表于 2019-7-21 09:00
看看15手冊,PLASF是P1口的模擬功能控制寄存器,PLASF=0x08;是將P1.3口做模擬ad使用,后面的ADC_CONTR=0x ...

這里是錯的,0xeb   E=1110,B=1100  加起來就是1110,1011  而且實話說樓主這個程序你自己用過么,前面的E是指1110      這四個分開
1.打開ADC電源
1.速度1
1.速度0
0.ADC標志位

后面的B是指1011     這四個分開
1.開啟ADC轉換
0.通道選擇第1位
1.通道選擇第2位
1.通道選擇第3位

樓主此程序無法正常工作,因為你自己都沒看明白STC15手冊.
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表