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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3150|回復: 5
收起左側

STM32單片機溫度傳感器DS18B20仿真程序 LCD1602顯示

[復制鏈接]
ID:1059945 發表于 2023-1-4 00:07 | 顯示全部樓層 |閱讀模式
STM32溫度傳感器DS18B20仿真LCD1602顯示實驗,使用proteus8.12版本

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
51hei截圖_20230103235542.png

單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "bsp-lcd1602.h"
  3. #include "delay.h"
  4. #include "sys.h"

  5. #include "ds18b20.h"
  6. #include <stdio.h>
  7. #include "math.h"


  8. short tem,tem1;
  9. u8 a,b,c,t;
  10. #ifdef __GNUC__
  11. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  12. #else
  13. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  14. #endif


  15. void Delay_DS18B20(int num)
  16. {
  17.         while(num--) ;
  18. }


  19. int main(void)
  20.        
  21. {

  22.         SystemCoreClockUpdate ();
  23.         LCD1602_Init();
  24.         LCD1602_ShowStr(2,0,"tempe=000.0C",13);
  25. //        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  26. //        GPIO_InitTypeDef g;
  27. //        g.GPIO_Mode = GPIO_Mode_Out_PP;
  28. //        g.GPIO_Speed = GPIO_Speed_10MHz;
  29. //        g.GPIO_Pin = GPIO_Pin_8  ;
  30. //        GPIO_Init(GPIOB,&g);
  31. //         GPIO_SetBits(GPIOB,GPIO_Pin_8);    //輸出1

  32.    t=DS18B20_DQ_IN;
  33. while(t){
  34.                 DS18B20_IO_OUT();         //SET PG11 OUTPUT

  35.     DS18B20_DQ_OUT=0;         //拉低DQ
  36.           Delay_DS18B20(750);             //拉低750us
  37.     DS18B20_DQ_OUT=1;         //DQ=1
  38.           Delay_DS18B20(15);             //15US
  39.                 DS18B20_IO_IN();        //SET PG11 INPUT         
  40.     Delay_DS18B20(100);
  41.                 t=DS18B20_DQ_IN;
  42. //                 LCD_ShowNum(13,0,t);
  43. }
  44. tem=DS18B20_Get_Temp();
  45.                 Delay_DS18B20(1000000);

  46. while(1)
  47.         {       
  48.     tem=DS18B20_Get_Temp();
  49.                 if(        tem>0)
  50.                 {        a=tem/100;
  51.                 b=tem%100/10;
  52.                 c=tem%10;
  53.                 LCD_ShowChar(8,0,'+');
  54.         LCD_ShowNum(9,0,a);       
  55.         LCD_ShowNum(10,0,b);
  56.         LCD_ShowNum(12,0,c);
  57.                           
  58.                 }
  59.         else
  60.         {       
  61. //                tem1=(int)tem;
  62. //                tem1=abs(tem1);
  63.                 tem1=-(tem);
  64.                 tem1=tem1+1;
  65.                 a=tem1/100;
  66.                 b=tem1%100/10;
  67.                 c=tem1%10;
  68.         LCD_ShowChar(8,0,'-');
  69.         LCD_ShowNum(9,0,a);       
  70.         LCD_ShowNum(10,0,b);
  71.         LCD_ShowNum(12,0,c);
  72.                
  73.         }
  74.         Delay_DS18B20(100000);
  75.   }



  76. }

復制代碼

Keil代碼與Proteus8.12仿真下載: 仿真程序.7z (282.97 KB, 下載次數: 171)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:978416 發表于 2023-1-6 21:25 | 顯示全部樓層
//IO方向設置

#define DS18B20_IO_IN()  {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=8<<0;}
#define DS18B20_IO_OUT() {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=3<<0;}
////IO操作函數                                                                                          
#define        DS18B20_DQ_OUT PBout(8) //數據端口        PA0
#define        DS18B20_DQ_IN  PBin(8)  //數據端口        PA0

你好,這個程序我試了一下沒有成功,暫時不知道怎么回事,有個問題想問一下GPIOB->CRH|=8<<0;這里左移0,不應該是 定義PBout(0)嗎
回復

使用道具 舉報

ID:1059945 發表于 2023-1-6 22:51 | 顯示全部樓層
egsresrhtrhrtst 發表于 2023-1-6 21:25
//IO方向設置

#define DS18B20_IO_IN()  {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=8CRH|=3

端口配置高寄存器(GPIOx_CRH)CRH是高哦也就是PB8,你可能寄存器配置這端口沒配好,用仿真可以說明沒問題
回復

使用道具 舉報

ID:1059945 發表于 2023-1-6 22:52 | 顯示全部樓層
egsresrhtrhrtst 發表于 2023-1-6 21:25
//IO方向設置

#define DS18B20_IO_IN()  {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=8CRH|=3

CRH高位從PB8開始不是0
回復

使用道具 舉報

ID:978416 發表于 2023-1-7 19:28 | 顯示全部樓層
xiaozou1234 發表于 2023-1-6 22:52
CRH高位從PB8開始不是0

感謝回復,這個程序我照著我現有的硬件改了一下,改好了以后仿真確實沒問題,但是實際的硬件確不行,我加了個led閃爍也長亮沒反應,但是在仿真里就正常閃爍
回復

使用道具 舉報

ID:978416 發表于 2023-1-8 11:51 | 顯示全部樓層
xiaozou1234 發表于 2023-1-6 22:52
CRH高位從PB8開始不是0

我感覺應該是我這上拉的問題,我這個開發板上拉的5v
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天射网站 | 精品一区二区三区四区 | 狠狠色狠狠色综合日日92 | 国产最新视频在线 | 人人草人人干 | 国产不卡视频在线 | 呦呦在线视频 | 少妇黄色 | 日日日日日日bbbbb视频 | 久久精品久久综合 | 中文字幕一区二区三区在线视频 | av免费网址 | 中文字幕一区二区三区不卡 | 91视频a | 免费在线观看av网站 | 欧美在线观看黄色 | 妹子干综合 | 天堂在线www | 蜜桃精品噜噜噜成人av | 成年人网站免费视频 | 欧美理论片在线观看 | 国产精品一区二区av | 亚洲品质自拍视频 | 国产真实精品久久二三区 | 久久精品免费一区二区 | 国产精品99久久久久久www | 日韩欧美一级精品久久 | 国产欧美精品 | 欧美 日韩 亚洲91麻豆精品 | 在线观看免费黄色片 | 99视频免费看 | 亚洲精品久 | 成人免费视频 | 日本不卡一区二区三区在线观看 | 精品久久久网站 | 自拍偷拍第1页 | 亚洲成人免费 | 欧美嘿咻 | 本道综合精品 | 精品久久一区二区三区 | 午夜小视频免费观看 |