硬件只需STC单片机+DS18B20+3位共阴数码管
单片机STC15W408AS(内部集成了高精度可调晶振)通过DS18B20读取温度,用推挽方式直接驱动3位共阴数
码管显示温度。(0-99.9摄氏度)
单片机和数码管叠罗汉(单片机插在面包板上后数码管插在面包板单片机引脚对应的位置)

image.png
温度

image.png
连线简单
image.png
共阴极数码管要连接对了
程序中DS18B20.H驱动不适合直接用于STC89/STC90系列及其他公司的单片机(延时时间不同需修改
/*********************************************************************************************
  • 程序名:    3位共阴数码管显示温度
  • 编写人:    刘海龙(部分程序来自网络) 
  • 编写时间:  2016年7月3日
  • 硬件支持:  STC15W408AS单片机(12M晶振)+DS18B20+共阴数码管
  • 接口说明:  P5.5接口接DS18B20单总线    
  • /*********************************************************************************************/
  • #include <STC15w.h>
  • #include <intrins.h>
  • #include <4LED_YIN.h>
  • #include <DS18B20.h>
  • /*******************************************/
  • void delay1ms (unsigned int a){ // 1ms延时程序
  •         unsigned int i;
  •         while( --a != 0){
  •                 for(i = 0; i < 630; i++);//STC单片机在晶振为12MHz时i值上限为630  
  •         }                                                       //AT89C51单片机在外部晶振为12MHz时i值上限为125
  • }
  • /**********************************************************************************************/
  • void main (void){
  •         unsigned char i;
  •         delay1ms(300); //
  •         init();
  •         
  •         while(1){//主循环
  •            
  •                  disp(ReadTemperature());//刷新显示温度         
  •         }        
  • }
  • /*****************************************************************************/
  • 复制代码