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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ADC0832模數(shù)轉(zhuǎn)換采集電壓上位機(jī)和下位機(jī)單片機(jī)程序源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:3721 發(fā)表于 2016-6-17 01:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式




ADC0832電壓采集上位機(jī)程序,51黑附件中可下載vc++源碼


下面是單片機(jī)做的下位機(jī)程序:
  1. #include<reg52.h>
  2. #include "intrins.h"
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit ADCS =P2^3;  //ADC0832 chip seclect
  6. sbit ADDI =P2^2;  //ADC0832 k in
  7. sbit ADDO =P2^1;  //ADC0832 k out
  8. sbit ADCLK =P2^0;  //ADC0832 clock signal

  9. sbit cs=P2^2;
  10. sbit wr=P2^3;
  11. unsigned char dispbitcode[8]={0xf7,0xfb,0xfd};  //位掃描
  12. unsigned char dispcode[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
  13. unsigned char dispbuf[3];
  14. unsigned char table[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  15. uint temp,adc=0;
  16. uchar getdata; //獲取ADC轉(zhuǎn)換回來的值
  17. uchar flag,a;

  18. void delayms(void)  //12mhz delay 1.01ms
  19. {
  20.    unsigned char x,y;   
  21.    x=10;
  22.    while(x--)
  23.   {
  24.        y=4;
  25.        while(y--);
  26.     }
  27. }

  28. void display(void)  //數(shù)碼管顯示函數(shù)
  29. {
  30.   char k;
  31. for(k=0;k<3;k++)
  32.   {

  33.   P1 = dispbitcode[k];
  34.   
  35.   P0 = dispcode[dispbuf[k]];
  36.    
  37.     delayms();
  38.   if(k==0)          //加上數(shù)碼管的dp小數(shù)點(diǎn)
  39.           P0&=0x7f;
  40.   delayms();
  41.            P1=0xff;
  42.   
  43.   }
  44. }
  45. //采集并返回
  46. unsigned int Adc0832(unsigned char channel)     //AD轉(zhuǎn)換,返回結(jié)果
  47. {
  48.     uchar i=0;
  49.     uchar j;
  50.     uint dat=0;
  51.     uchar ndat=0;

  52.     if(channel==0)channel=2;
  53.     if(channel==1)channel=3;
  54.     ADDI=1;
  55.     _nop_();
  56.     _nop_();
  57.     ADCS=0;//拉低CS端
  58.     _nop_();
  59.     _nop_();
  60.     ADCLK=1;//拉高CLK端
  61.     _nop_();
  62.     _nop_();
  63.     ADCLK=0;//拉低CLK端,形成下降沿1
  64.     _nop_();
  65.     _nop_();
  66.     ADCLK=1;//拉高CLK端
  67.     ADDI=channel&0x1;
  68.     _nop_();
  69.     _nop_();
  70.     ADCLK=0;//拉低CLK端,形成下降沿2
  71.     _nop_();
  72.     _nop_();
  73.     ADCLK=1;//拉高CLK端
  74.     ADDI=(channel>>1)&0x1;
  75.     _nop_();
  76.     _nop_();
  77.     ADCLK=0;//拉低CLK端,形成下降沿3
  78.     ADDI=1;//控制命令結(jié)束
  79.     _nop_();
  80.     _nop_();
  81.     dat=0;
  82.     for(i=0;i<8;i++)
  83.     {
  84.         dat|=ADDO;//收數(shù)據(jù)
  85.         ADCLK=1;
  86.         _nop_();
  87.         _nop_();
  88.         ADCLK=0;//形成一次時(shí)鐘脈沖
  89.         _nop_();
  90.         _nop_();
  91.         dat<<=1;
  92.         if(i==7)dat|=ADDO;
  93.     }  
  94.     for(i=0;i<8;i++)
  95.     {
  96.         j=0;
  97.         j=j|ADDO;//收數(shù)據(jù)
  98.         ADCLK=1;
  99.         _nop_();
  100.         _nop_();
  101.         ADCLK=0;//形成一次時(shí)鐘脈沖
  102.         _nop_();
  103.         _nop_();
  104.         j=j<<7;
  105.         ndat=ndat|j;
  106.         if(i<7)ndat>>=1;
  107.     }
  108.     ADCS=1;//拉低CS端
  109.     ADCLK=0;//拉低CLK端
  110.     ADDO=1;//拉高數(shù)據(jù)端,回到初始狀態(tài)
  111.     dat<<=8;
  112.     dat|=ndat;
  113.     return(dat);            //return ad k
  114. }


  115. void main()
  116. { P0=0XFF;
  117.   TMOD=0x20;
  118. TH1=0xfd;
  119. TL1=0xfd;
  120. TR1=1;
  121. REN=1;
  122. SM0=0;
  123.   SM1=1;
  124.   EA=1;
  125.   ES=1;
  126.   while(1)
  127.   {           if(flag==1)
  128.      {        
  129.             ES=0;
  130.             flag=0;
  131.             SBUF=getdata;
  132.    while(!TI);
  133.            TI=0;
  134.         ES=1;               
  135.                

  136.          
  137.          }
  138.            getdata=Adc0832(1);
  139.   temp=getdata*1.0/255*500;  //電壓值轉(zhuǎn)換,5V做為參考電壓,分成256份。
  140.   dispbuf[2]=temp%10;         //個(gè)位
  141.   dispbuf[1]=temp/10%10; //十位
  142.   dispbuf[0]=temp/100; //百位

  143.          
  144.       display();
  145.   
  146.   }        

  147. }
  148. void ckzd() interrupt 4
  149. {        
  150.          RI=0;
  151.          
  152.          a=SBUF;



  153.    switch(a)
  154.    {
  155.                    case 'a':

  156.                      flag=1; break;

  157.                 case 'b':

  158.                   P0=adc; break;

  159.                 case 'c':
  160.         
  161.                   P0=adc; break;

  162.                 default:
  163.         P1=0xFF;
  164.         break;
  165.     }
  166.         
  167. }
復(fù)制代碼




ADC0832模數(shù)轉(zhuǎn)換測試程序,帶上位機(jī)源程序和下位機(jī)源程序,將adc0832采集的電壓值送給上位機(jī)顯示,本人親測

上位機(jī)和下位機(jī)ADC0832upanddown.rar (5.72 MB, 下載次數(shù): 139)


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

使用道具 舉報(bào)

沙發(fā)
ID:273849 發(fā)表于 2018-5-14 19:44 | 只看該作者
是用什么軟件做的啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:65956 發(fā)表于 2018-9-27 13:21 | 只看該作者
才0-5V,上位機(jī)也才那樣,功能太簡單了,測量范圍也太小了,還有ADC才8位,精度太差
回復(fù)

使用道具 舉報(bào)

地板
ID:186637 發(fā)表于 2018-10-19 21:55 | 只看該作者
謝謝分享!學(xué)習(xí)學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

5#
ID:478255 發(fā)表于 2019-3-22 10:02 | 只看該作者
這個(gè)_nop_是什么意思?延時(shí)的意思嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:63090 發(fā)表于 2020-5-10 12:28 | 只看該作者
挺好O,感謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:860602 發(fā)表于 2021-1-8 22:37 | 只看該作者

這個(gè)_nop_是什么意思?延時(shí)的意思嗎  

是的 ,相當(dāng)于匯編的nop指令
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美亚洲 | 国产视频一区二区在线观看 | 黄a免费网络| 成人av网站在线观看 | 亚洲高清成人在线 | 国产91成人 | 91免费版在线观看 | 在线观看视频一区 | 国产一区二区成人 | 天天天操操操 | 一区二区免费 | 午夜视频网 | 欧美激情亚洲天堂 | 国产高清精品一区二区三区 | 二区欧美| 久久伊人青青草 | 99久久精品一区二区毛片吞精 | 日韩精品一区二区在线 | 久久久国产精品 | 成人午夜免费福利视频 | 日韩精品视频在线免费观看 | 欧美99| 欧美一级久久 | 91精品国产综合久久久久久蜜臀 | 亚洲欧美自拍偷拍视频 | av色站| 久久99精品久久久久久琪琪 | 国产乱码精品一区二区三区中文 | 午夜精品 | 国产精品美女www爽爽爽 | 精品在线观看入口 | 91精品国产综合久久婷婷香蕉 | 精品久久国产 | 熟女毛片| 久久av一区二区三区 | 成人在线网址 | www.久久艹| 成人高清网站 | 国产精品一区二区av | 精品国产免费人成在线观看 | 草久在线 |