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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于adc0832更改部分單片機代碼后無法工作的問題

查看數: 1823 | 評論數: 2 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-10-23 20:24

正文摘要:

如圖,原代碼是0832完成數據采集后,前8位先用if判斷DO是否為0然后將temp1分別與0和1做或運算(注釋部分),我在想為什么不能直接將temp1直接與DO進行或運算,然后我就講代碼改了一下,然后0832就不工作了,請問邏輯 ...

回復

ID:577554 發表于 2021-10-25 17:43
wulin 發表于 2021-10-24 06:34
把讀取0832的高8位更改為temp1|=DO;沒有問題,但把讀取低8位更改為temp2|=DO;不行。
因為讀取DO的是位數據 ...

原來如此,感謝大佬解答
ID:213173 發表于 2021-10-24 06:34
把讀取0832的高8位更改為temp1|=DO;沒有問題,但把讀取低8位更改為temp2|=DO;不行。
因為讀取DO的是位數據要放在temp2的最高位。如堅持這種寫法就要把DO移到高位,
并且要把DO強制轉換成char。如:temp2|=((char)DO<<7);,這就顯得多此一舉了。
函數解釋:
  1. //請先了解ADC0832模數轉換的串行協議,再來讀本函數,主要是對應時序圖來理解,
  2. //本函數是模擬0832的串行協議進行的
  3. unsigned char ad0832read(bit ch)
  4. {
  5.         uchar i,Data1=0,Data2=0;
  6.         CLK=0; //時鐘置低平
  7.         DO =1; //開始信號為高電平
  8.         CS =0; //片選信號置低,啟動AD轉換芯片
  9.         CLK=1; //輸入開始信號(構成一個正脈沖),時鐘上升沿,輸入開始信號
  10.         CLK=0; //時鐘下降沿
  11.         //模擬信號輸入模式選擇(1:單模信號,0:雙模差分信號)
  12.         DO =1;
  13.         CLK=1; //時鐘上升沿,輸入開始信號
  14.         CLK=0; //時鐘下降沿
  15.         //模擬信號輸入通道選擇(1:通道CH1,0:通道CH0)
  16.         DO =ch; //選擇通道0
  17.         CLK=1; //時鐘上升沿,輸入開始信號
  18.         CLK=0; //時鐘下降沿
  19.         DO =1; //數據線置高,準備接收數據
  20.         for(i=0;i<8;i++) //從高位移入數據
  21.         {
  22.                 CLK=1;
  23.                 CLK=0; //時鐘下降沿,AD0832輸出數據,高位(MSB)先
  24.                 Data1=Data1<<1;
  25.                 if(DO==1)
  26.                         Data1=Data1|0x01; //數據左移位,補0 ,如果數據為“1”,移入1, 如果數據為“0”,移入0,
  27.         }
  28.         for(i=0;i<8;i++) //從低位移入數據
  29.         {
  30.                 Data2=Data2>>1;
  31.                 if(DO==1)
  32.                         Data2=Data2|0x80; //數據右移位,補0,如果數據為“1”,移入1如果數據為“0”,移入0,
  33.                 CLK=1;
  34.                 CLK=0; //時鐘下降沿,AD0832輸出數據,高位(MSB)先
  35.         }
  36.         //數據線置高,釋放總線,完成一次轉換
  37.         CLK=1;
  38.         DO =1;
  39.         CS =1;
  40.         return (Data1==Data2)?Data1:0; //   如果相等輸出data1  or  0
  41. }
復制代碼

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品在线观看入口 | 欧美夜夜 | 亚洲高清在线观看 | 精品欧美黑人一区二区三区 | www.97zyz.com | 亚洲成av人影片在线观看 | 日韩综合网 | 极品久久 | wwwxxx日本在线观看 | 精品亚洲一区二区 | 日韩高清中文字幕 | 99re国产视频 | 天天综合日日夜夜 | 亚欧性视频| 国产精品成人一区二区三区夜夜夜 | 亚洲成人一区二区 | 欧美在线观看一区 | 国产精品福利视频 | 久久综合一区 | 性视频一区 | 天天操,夜夜爽 | 中文字幕免费观看 | 亚洲精品一区二区在线观看 | 一区二区成人在线 | av日韩精品 | 毛片一区二区三区 | 久久中文字幕视频 | 一区二区三区免费在线观看 | 一区二区影院 | 国产成人精品免高潮在线观看 | 午夜精品在线观看 | 精品不卡 | 亚洲成人午夜电影 | 99精品国产一区二区青青牛奶 | 在线免费观看视频你懂的 | 亚洲免费毛片 | 久久久精品国产 | 嫩草研究影院 | 免费视频久久 | 成人精品毛片国产亚洲av十九禁 | 涩涩视频在线看 |