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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)對adc0808/0809兩路數(shù)據(jù)比較,程序有問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:949127 發(fā)表于 2021-7-7 21:32 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
大佬們好,最近想做一個利用51單片機(jī)對adc0808/0809兩路轉(zhuǎn)換數(shù)據(jù)的比較,但是讀完兩路數(shù)據(jù)之后用if語句比較,發(fā)現(xiàn)不能實(shí)現(xiàn)功能,已經(jīng)確認(rèn)兩路數(shù)據(jù)讀取正確,求大佬賜教!
  1. #include<reg52.h>
  2. unsigned int i;
  3. unsigned int j;
  4. unsigned int getdata1;
  5. unsigned int getdata2;
  6. unsigned int temp;
  7. unsigned int temp1;
  8. unsigned int temp3[8];
  9. unsigned int temp4[8];
  10. unsigned int bj1;
  11. unsigned int bj2;
  12. sbit ST=P3^0;
  13. sbit OE=P3^1;
  14. sbit EOC=P3^2;
  15. sbit CLK=P3^3;
  16. sbit P17=P1^7;
  17. sbit P25=P2^5;
  18. sbit P26=P2^6;
  19. sbit P27=P2^7;
  20. void TimeInitial();
  21. void Delay(unsigned int i);
  22. void TimeInitial()
  23.     {
  24.          TMOD=0x10;
  25.          TH1=(65536-200)/256;
  26.          TL1=(65536-200)%256;
  27.          EA=1;
  28.          ET1=1;
  29.          TR1=1;
  30.     }

  31. void Delay(unsigned int i)
  32.     {
  33.          unsigned int j;
  34.          for(;i>0;i--)
  35.             {
  36.                 for(j=0;j<125;j++)
  37.                 {;}
  38.             }
  39.     }

  40. void shang()   //讀取IN0口數(shù)據(jù)
  41. {
  42.        P25=P26=P27=0;         //設(shè)置讀取IN0口
  43.                   ST=0;
  44.           OE=0;
  45.           ST=1;
  46.           ST=0;                                    
  47.           while(EOC==0);
  48.                   OE=1;
  49.                                   getdata1=P0;          //51 P0口接收數(shù)據(jù)
  50.                   OE=0;
  51.                                   temp=getdata1*1.96;
  52.                   temp3[0]=temp%10;           //計(jì)算個位數(shù)
  53.                                   temp3[1]=temp/10%10;          //計(jì)算十分位
  54.                                   temp3[2]=temp/100;        //計(jì)算百分位
  55.                                   bj1=temp3[2]+temp3[1]/10+temp3[0]/100;         //相加進(jìn)行比較
  56. }

  57. void xia()          //讀取IN1口數(shù)據(jù)
  58. {
  59.           ST=0;
  60.           OE=0;
  61.                   P25=1;P26=P27=0;                 //設(shè)置讀取IN1口
  62.                   ST=1;
  63.           ST=0;                  
  64.                   while(EOC==0);
  65.                   OE=1;
  66.                                   getdata2=P0;                //51 P0口接收數(shù)據(jù)
  67.                   OE=0;
  68.                                   temp1=getdata2*1.96;
  69.                   temp4[0]=temp1%10;          //計(jì)算個位數(shù)
  70.                                   temp4[1]=temp1/10%10;          //計(jì)算十分位
  71.                                   temp4[2]=temp1/100;        //計(jì)算百分位
  72.                                   bj2=temp4[2]+temp4[1]/10+temp4[0]/100;         //相加進(jìn)行比較
  73. }


  74. void main()
  75. {
  76.   
  77.   TimeInitial();
  78.   
  79.   while(1)
  80.        {
  81.          
  82.                   shang();
  83.                   xia();
  84.          
  85.                   if(bj1>bj2)                 //對兩路數(shù)據(jù)比較
  86.                                   {
  87.                                         P17=0;                                
  88.                                 }
  89.         }
  90. }

  91. void t1(void) interrupt 3 using 0
  92. {
  93.   TH1=(65536-200)/256;
  94.   TL1=(65536-200)%256;
  95.   CLK=~CLK;
  96.   }
復(fù)制代碼


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

使用道具 舉報

沙發(fā)
ID:539024 發(fā)表于 2021-7-8 11:35 | 只看該作者
怎么不能實(shí)現(xiàn)功能,你可以把兩次讀出來的數(shù)值顯示出來,或者通過串口發(fā)出來看看,再進(jìn)行比較
回復(fù)

使用道具 舉報

板凳
ID:949127 發(fā)表于 2021-7-8 11:42 | 只看該作者
1543330241 發(fā)表于 2021-7-8 11:35
怎么不能實(shí)現(xiàn)功能,你可以把兩次讀出來的數(shù)值顯示出來,或者通過串口發(fā)出來看看,再進(jìn)行比較

顯示出來的數(shù)值沒問題,但是比較的時候發(fā)現(xiàn)不行。。。比較出來的結(jié)果完全是錯誤的。。
回復(fù)

使用道具 舉報

地板
ID:176854 發(fā)表于 2021-7-8 12:02 | 只看該作者
直接用temp1和temp2比較就可以了。而且bi1,bj2計(jì)算也不對。
bj1=temp3[2]*100+temp3[1]*10+temp3[0];
回復(fù)

使用道具 舉報

5#
ID:94031 發(fā)表于 2021-7-8 13:38 | 只看該作者
先弄清楚比較的目的,由于干擾數(shù)據(jù)跳動很大,直接比較意義不大。
回復(fù)

使用道具 舉報

6#
ID:949127 發(fā)表于 2021-7-8 13:51 | 只看該作者
jjjjjjir 發(fā)表于 2021-7-8 12:02
直接用temp1和temp2比較就可以了。而且bi1,bj2計(jì)算也不對。
bj1=temp3[2]*100+temp3[1]*10+temp3[0];

直接用temp1和temp2比較也是結(jié)果不太對。。
回復(fù)

使用道具 舉報

7#
ID:949127 發(fā)表于 2021-7-8 13:54 | 只看該作者
xuyaqi 發(fā)表于 2021-7-8 13:38
先弄清楚比較的目的,由于干擾數(shù)據(jù)跳動很大,直接比較意義不大。

我打算通過比較兩個電壓的大小,來確定步進(jìn)電機(jī)的正轉(zhuǎn)反轉(zhuǎn),如果temp1>temp2,電機(jī)就正轉(zhuǎn),反之就反轉(zhuǎn),要怎么比較呢?
回復(fù)

使用道具 舉報

8#
ID:176854 發(fā)表于 2021-7-8 16:31 | 只看該作者
lv5211314 發(fā)表于 2021-7-8 13:51
直接用temp1和temp2比較也是結(jié)果不太對。。

用getdata1,getdata2比較,這兩個數(shù)據(jù)是沒有經(jīng)常處理。
如果還是不對,那就要檢查讀取的數(shù)據(jù)是否正確
回復(fù)

使用道具 舉報

9#
ID:94031 發(fā)表于 2021-7-8 16:52 | 只看該作者
lv5211314 發(fā)表于 2021-7-8 13:54
我打算通過比較兩個電壓的大小,來確定步進(jìn)電機(jī)的正轉(zhuǎn)反轉(zhuǎn),如果temp1>temp2,電機(jī)就正轉(zhuǎn),反之就反轉(zhuǎn), ...

由于干擾,數(shù)據(jù)跳動很大,經(jīng)過濾波再比較。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 男人的天堂亚洲 | 久久91精品| 视频在线h | 日韩欧美在线播放 | av网站免费看 | 亚洲不卡在线观看 | 中文字幕视频一区 | 中文字幕第二十页 | 午夜精品久久久久久久久久久久久 | 免费av直接看 | 日韩精品在线免费观看 | 国产在线观看不卡一区二区三区 | 亚洲一区二区精品视频 | 国产精品久久久久久久久久久免费看 | 精精国产xxxx视频在线播放 | 中文字幕一区二区三区在线视频 | 97av视频 | 成人在线免费观看视频 | 欧美成人综合 | www久久久 | 精品国产鲁一鲁一区二区张丽 | 一区二区高清 | 亚洲一二三区不卡 | 操视频网站 | 精品二区视频 | 国产精品亚洲片在线播放 | 国产麻豆一区二区三区 | 久热国产精品 | 欧美做暖暖视频 | 97超碰在线播放 | 日韩一区在线观看视频 | 久久一二 | 天天看逼 | 日韩中文字幕 | 午夜免费电影 | 韩日在线| 国产一区二区观看 | 国产精品日本一区二区在线播放 | www.788.com色淫免费 | 日韩国产黄色片 | 国产一级毛片视频 |