標(biāo)題: 51單片機(jī)max1241測(cè)試源程序與仿真 ADC精度0.01V [打印本頁(yè)]

作者: 1356986515    時(shí)間: 2018-3-16 20:22
標(biāo)題: 51單片機(jī)max1241測(cè)試源程序與仿真 ADC精度0.01V
自己用的ADC程序。用的MAX1241,注意我是PROTUES8.0仿真的。歡迎大家討論,也希望給新手一個(gè)參考,精度0.01V
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. sbit ADC_DOUT=P3^0;
  3. sbit ADC_CLK=P3^1;
  4. sbit ADC_CS=P3^2;
  5. extern void WriteAddress(unsigned char x,y);
  6. extern void LcdInitiate(void);
  7. extern void display(char *p);
  8. extern void WriteData(unsigned char y);
  9. unsigned char code bt[]=" Max1241 Test! ";
  10. unsigned char code sj[]="Now Date:     V";
  11. unsigned char S;
  12. unsigned char a,b,c;
  13. unsigned char tab[]="0123456789";
  14. unsigned int ADC_Data;
  15. int Read_Max1241()
  16. {
  17. char i;
  18. ADC_CLK=0;
  19. ADC_CS=0;
  20. ADC_Data=0;
  21. while(!ADC_DOUT);   //當(dāng)CS=0后,開始轉(zhuǎn)換,DOUT輸出0,轉(zhuǎn)換結(jié)束輸出1,再要有一個(gè)時(shí)鐘后才開始傳輸數(shù)據(jù)
  22. //start output the data
  23. ADC_CLK=1;
  24. ADC_CLK=0;

  25. //傳輸數(shù)據(jù)
  26. for(i=0;i<12;i++)
  27. {
  28.        ADC_CLK=1;
  29.        ADC_Data<<=1;
  30.        ADC_Data |= ADC_DOUT;
  31.        ADC_CLK=0;
  32. }

  33. ADC_CS=1;
  34. ADC_CLK=0;
  35. return  ADC_Data;
  36. }
  37. void ADC_COUNT()
  38. {
  39. S=(Read_Max1241()*0.00122070312)*100;
  40. a=S/100%10;
  41. b=S/10%10;
  42. c=S%10;
  43. WriteAddress(2,11);
  44. WriteData(tab[a]);
  45. WriteAddress(2,13);
  46. WriteData(tab[b]);
  47. WriteData(tab[c]);



  48. }
  49. void main()
  50. {
  51.   LcdInitiate();
  52.   WriteAddress(1,1);
  53.   display(bt);
  54.   WriteAddress(2,1);
  55.   display(sj);
  56.   WriteAddress(2,12);
  57. ……………………

  58. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
max1241.zip (77 KB, 下載次數(shù): 92)




作者: a1357787200    時(shí)間: 2018-4-13 17:25
很棒的資料,學(xué)習(xí)學(xué)習(xí)

作者: xianfajushi    時(shí)間: 2023-6-7 14:45
稍做修正即無(wú)精度誤差,且乘以小數(shù)的值是從哪里來(lái)的?我獲取的小數(shù)是0.05/41*100

0.png (78.28 KB, 下載次數(shù): 57)

0.png





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1