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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

在單片機(jī)開發(fā)板上運(yùn)行程序,顯示的為以下圖片,測不出溫度,怎么解決呀

查看數(shù): 1516 | 評論數(shù): 3 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
IOW
發(fā)布時間: 2023-7-6 20:36

正文摘要:

main.c #include <smg.h> #include <ds18b20.h> void main() {                 u8 i=0;   int temp_value; ...

回復(fù)

ID:213173 發(fā)表于 2023-7-7 11:16
你自己根據(jù)硬件電路核對IO口。

  1. #include <reg51.h>
  2. #include <intrins.h>
  3. typedef unsigned char u8;
  4. typedef unsigned int u16;
  5. #define SMG_A_DP_PORT P0

  6. sbit LSC=P2^4;
  7. sbit LSB=P2^3;
  8. sbit LSA=P2^2;
  9. sbit DS18B20_PORT=P3^7;

  10. u8  gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,
  11.                   0x6d,0x7d,0x07,0x7f,0x6f};
  12. u8  temp_buf[8];

  13. u16 temp;
  14. u8  tempH=0;
  15. u8  tempL=0;

  16. void delay_10us(u16 ten_us)//T=ten_us*9+16us
  17. {
  18.         while(ten_us--);        
  19. }

  20. void ds18b20_reset(void)//重置
  21. {
  22.         DS18B20_PORT=1;
  23.         delay_10us(8);
  24.         DS18B20_PORT=0;        
  25.         delay_10us(80);        
  26.         DS18B20_PORT=1;
  27.         delay_10us(30);
  28. }

  29. u8 ds18b20_read_byte(void)//讀
  30. {
  31.         u8 i=0;
  32.         u8 dat=0;
  33.        
  34.         for(i=0;i<8;i++)
  35.         {
  36.                 DS18B20_PORT=0;
  37.                 dat>>=1;
  38.                 DS18B20_PORT=1;
  39.                 if(DS18B20_PORT)
  40.                         dat|=0x80;
  41.                 delay_10us(4);
  42.         }
  43.         return dat;        
  44. }


  45. void ds18b20_write_byte(u8 dat)//寫
  46. {
  47.         u8 i=0;
  48.         for(i=0;i<8;i++)
  49.         {
  50.                 DS18B20_PORT=0;
  51.                 DS18B20_PORT=dat&0x01;
  52.                 delay_10us(5);
  53.                 DS18B20_PORT=1;
  54.                 dat>>=1;
  55.         }
  56.         delay_10us(4);
  57. }

  58. void ds18b20_start(void)
  59. {
  60.         ds18b20_reset();
  61.         ds18b20_write_byte(0xcc);
  62.         ds18b20_write_byte(0x44);
  63. }


  64. void ds18b20_read(void)
  65. {
  66.         ds18b20_reset();
  67.         ds18b20_write_byte(0xcc);
  68.         ds18b20_write_byte(0xbe);   
  69. }


  70. void ds18b20_read_temperture(void)
  71. {
  72.         static u8 value;
  73.         u8 dath=0;
  74.         u8 datl=0;
  75.         switch(value)
  76.         {
  77.                 case 0: ds18b20_start(); break;

  78.                 //1~4為等待轉(zhuǎn)換完成時間

  79.                 case 5: ds18b20_read();  break;

  80.                 case 6: datl=ds18b20_read_byte();
  81.                                 dath=ds18b20_read_byte();
  82.                                 temp=dath<<8|datl;
  83.                                 tempH=temp>>4;
  84.                                 tempL=(temp&0x0f)*0.625;
  85.                 case 7:
  86.                                 temp_buf[0]=gsmg_code[tempH/100%10];
  87.                                 temp_buf[1]=gsmg_code[tempH/10%10];
  88.                                 temp_buf[2]=gsmg_code[tempH%10]|0x80;
  89.                                 temp_buf[3]=gsmg_code[tempL];
  90.                                 break;
  91.         }               
  92.         value=++value%8;
  93. }

  94. void smg_display()
  95. {
  96.         static i=0;
  97.         SMG_A_DP_PORT=0x00;//消隱       
  98.         switch(i)
  99.         {
  100.                 case 0: LSC=1;LSB=1;LSA=1;break;
  101.                 case 1: LSC=1;LSB=1;LSA=0;break;
  102.                 case 2: LSC=1;LSB=0;LSA=1;break;
  103.                 case 3: LSC=1;LSB=0;LSA=0;break;
  104. /*                case 4: LSC=0;LSB=1;LSA=1;break;
  105.                 case 5: LSC=0;LSB=1;LSA=0;break;
  106.                 case 6: LSC=0;LSB=0;LSA=1;break;
  107.                 case 7: LSC=0;LSB=0;LSA=0;break;*/
  108.         }
  109.         SMG_A_DP_PORT=temp_buf[i];
  110.         i=++i%4;

  111. }

  112. void main()
  113. {
  114.        
  115.         while(1)
  116.         {                                
  117.                 smg_display();
  118.                 ds18b20_read_temperture();
  119.                 delay_10us(100);
  120.         }               
  121. }
復(fù)制代碼



ID:1080935 發(fā)表于 2023-7-7 08:19
首先取個位  x%10,取十位 x/10%10,取百位 x/100%10,然后注意if,else的范圍,不清楚就全用大括號括起來,另外注意正負(fù)號處理。
ID:712097 發(fā)表于 2023-7-7 08:09
你溫度傳感器接哪里的呀?有沒有電路圖?

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩电影一区 | 亚洲精品一区中文字幕乱码 | 国产精品永久久久久久久www | 久久国产精品久久国产精品 | 99精品久久久久 | 中文天堂在线一区 | 99久久精品免费看国产小宝寻花 | 国产一区电影 | 成人天堂噜噜噜 | 美女视频黄的 | 在线只有精品 | 精品国产一区二区三区久久久蜜月 | 少妇一区二区三区 | 亚洲视频免费在线观看 | 在线视频中文字幕 | 中文字幕在线一区 | 久草热线 | 日本 欧美 三级 高清 视频 | 国产激情在线观看 | 亚洲一区二区在线电影 | 久久国产精品一区二区 | 国产性网 | 一区二区三区四区免费视频 | 日本免费网 | 亚洲精品久久久一区二区三区 | 亚洲日本欧美日韩高观看 | 国产97在线 | 日韩 | 夜夜爆操 | 超碰日本 | 在线观看免费高清av | 色天堂影院 | 成人福利视频网站 | 免费毛片网 | 亚洲一区二区在线播放 | 久久久久久91| 日韩福利片 | 日韩免费av | 精品一区电影 | 日韩中文字幕一区二区 | 欧美福利在线 | 中文字幕在线免费视频 |