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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3117|回復(fù): 2
收起左側(cè)

單片機(jī)+XPT2046 ADC+DS18B20溫度采集和電源電壓采集程序

[復(fù)制鏈接]
ID:842771 發(fā)表于 2022-5-5 15:17 | 顯示全部樓層 |閱讀模式
本項(xiàng)目基于C51的DS18B20溫度采集和電源電壓采集

單片機(jī)源程序如下:
  1. #include "public.h"
  2. #include "lcd1602.h"
  3. #include "xpt2046.h"
  4. #include "intrins.h"
  5. #include "ds18b20.h"
  6. #include "key.h"
  7. void main()
  8. {        
  9.         int i=0,key=0;
  10. //        float adc_vol;//電壓值
  11.         float adc_elec;//電量
  12.         int temp_value;//溫度值
  13.         u16 adc_value;//ADC獲取數(shù)據(jù)(12位)
  14. //        u8 temp_buf[5];
  15. //        u8 adc_buf[3];
  16.         ds18b20_init();//初始化S18B20
  17.         LCD_Init();//LCD1602初始化
  18.         LCD_ShowString(2,0,"Temp:");
  19.         LCD_ShowString(1,0,"Elec:");
  20.         while(1)
  21.         {
  22.                 key=key_scan(0);//不需要連續(xù)掃描按鍵
  23.                 if(key==KEY1_PRESS)//檢測按鍵K1是否按下
  24.                         LED1=!LED1;//LED1狀態(tài)翻轉(zhuǎn)
  25.                 i++;
  26.                 if(i%50==0)//間隔一段時(shí)間讀取溫度值
  27.                         temp_value=ds18b20_read_temperture()*10;//保留
  28.                 if(temp_value<0)//如果溫度為負(fù),需要轉(zhuǎn)換為正
  29.                 {
  30.                         temp_value=-temp_value;
  31.                 }
  32.                 adc_value=xpt2046_read_adc_value(0xE4);//測量外部輸入通道AIN3(見PPT 7)
  33.                 adc_elec=(13.0*adc_value/4096-10.5)/(13.0-10.5)*100;
  34.                 LCD_ShowNum(1,6,adc_elec,2);//顯示電壓值
  35.                 delay_ms(10);
  36.                 LCD_ShowNum(2,6,temp_value,3);//顯示溫度值
  37.         }        
  38. }
復(fù)制代碼
  1. #include "xpt2046.h"
  2. #include "intrins.h"

  3. //XPT2046寫數(shù)據(jù)
  4. void xpt2046_wirte_data(u8 dat)
  5. {
  6.         u8 i;
  7.         CLK = 0;//時(shí)鐘拉低
  8.         _nop_();
  9.         for(i=0;i<8;i++)//循環(huán)8次,每次傳輸一位,共一個(gè)字節(jié),寫入是寫8位的,一般寫入的是命令,命令是8位的
  10.         {
  11.                 DIN = dat >> 7;//先傳高位再傳低位
  12.                 dat <<= 1;//將低位移到高位,左移一位,最高位變?yōu)樽畹臀?br />
  13.                 CLK = 0;//CLK由低到高產(chǎn)生一個(gè)上升沿,從而寫入數(shù)據(jù)(PPT 8)根據(jù)時(shí)序圖寫
  14.                 _nop_();        
  15.                 CLK = 1;//拉高,便于下次數(shù)據(jù)傳入
  16.                 _nop_();
  17.         }
  18. }
  19. //XPT2046讀數(shù)據(jù)
  20. u16        xpt2046_read_data(void)
  21. {
  22.         u8 i;
  23.         u16 dat=0;
  24.         CLK = 0;
  25.         _nop_();
  26.         for(i=0;i<12;i++)//循環(huán)12次,每次讀取一位,大于一個(gè)字節(jié)數(shù),所以返回值類型是u16
  27.         {
  28.                 dat <<= 1;
  29.                 CLK = 1;
  30.                 _nop_();
  31.                 CLK = 0; //CLK由高到低產(chǎn)生一個(gè)下降沿,從而讀取數(shù)據(jù)
  32.                 _nop_();
  33.                 dat |= DOUT;//先讀取高位,再讀取低位。這里采用或運(yùn)算讀取數(shù)據(jù)(PPT(9))
  34.         }
  35.         return dat;        
  36. }
  37. //XPT2046讀AD數(shù)據(jù)
  38. u16 xpt2046_read_adc_value(u8 cmd)
  39. {
  40.         u8 i;
  41.         u16 adc_value=0;

  42.         CLK = 0;//先拉低時(shí)鐘
  43.         CS  = 0;//使能XPT2046
  44.         xpt2046_wirte_data(cmd);//發(fā)送命令字
  45.         for(i=6; i>0; i--);//延時(shí)等待轉(zhuǎn)換結(jié)果
  46.         CLK = 1;
  47.         _nop_();
  48.         CLK = 0;//發(fā)送一個(gè)時(shí)鐘,清除BUSY,這里根據(jù)時(shí)序圖,PPT(9)
  49.         _nop_();
  50.         adc_value=xpt2046_read_data();//這里將讀取的數(shù)據(jù)放入adc_value中,這里讀取的數(shù)據(jù)并不是電壓,二是12位的數(shù)據(jù)
  51.         CS = 1;//關(guān)閉XPT2046
  52.         return adc_value;
  53. }
復(fù)制代碼

51hei.png
Keil代碼下載:
Y.zip (223.62 KB, 下載次數(shù): 39)



評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1023274 發(fā)表于 2022-5-19 20:56 | 顯示全部樓層
你好,請(qǐng)問有Proteus電路圖文件嗎?
回復(fù)

使用道具 舉報(bào)

ID:1022479 發(fā)表于 2022-6-12 20:40 | 顯示全部樓層
我不會(huì)單片機(jī)123 發(fā)表于 2022-5-19 20:56
你好,請(qǐng)問有Proteus電路圖文件嗎?

xpy2046我在protues里沒找到,不知道為啥
回復(fù)

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产一区二区三区香蕉 | 日本在线播放一区二区 | 亚洲日韩欧美一区二区在线 | 日本欧美在线视频 | 欧美美女爱爱视频 | 国产区在线观看 | 欧美日韩中 | 国产精品视频久久 | 日韩在线| 亚洲黄色av| 欧美精品一区二区三区在线播放 | 97精品视频在线观看 | 久久噜噜噜精品国产亚洲综合 | 七七婷婷婷婷精品国产 | 成人国产精品久久 | 第四色狠狠 | 国产成人jvid在线播放 | 免费国产网站 | 99免费精品视频 | 做a的各种视频 | 欧美一区二区在线观看 | 久久69精品久久久久久久电影好 | 九九热最新视频 | 精品在线一区 | 亚洲一区二区三区桃乃木香奈 | 99久久精品免费看国产免费软件 | av天天澡天天爽天天av | 精品久久久网站 | 欧美日韩不卡合集视频 | 亚洲一区国产精品 | 国产精品久久久久久福利一牛影视 | 日韩视频在线免费观看 | 99热.com | 日韩中文一区 | a级大片免费观看 | 久久国产一区二区 | 国产精品成人一区二区三区夜夜夜 | 91久久北条麻妃一区二区三区 | 国产一区二区在线免费观看 | 国产精品视屏 | 免费一区二区 |