Advertisement

51单片机数字温度计程序及论文

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本项目设计了一款基于51单片机的数字温度计,并编写了相应的程序和论文。该温度计能够准确测量环境温度并显示结果,详细分析与实现过程收录于配套论文中。 本系统设计以MCS-51系列单片机为核心器件,通过绘制电路板原理图并焊接关键元器件来构建一个数字温度计。该系统使用数字式温度传感器进行单点温度检测或采集,能够检测的范围为﹣55℃到﹢125℃。温度显示采用4位LED数码管,并能显示出符号位等信息。当检测到超过预设上限和下限的温度时,会通过蜂鸣器发出声音报警。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 51
    优质
    本项目设计了一款基于51单片机的数字温度计,并编写了相应的程序和论文。该温度计能够准确测量环境温度并显示结果,详细分析与实现过程收录于配套论文中。 本系统设计以MCS-51系列单片机为核心器件,通过绘制电路板原理图并焊接关键元器件来构建一个数字温度计。该系统使用数字式温度传感器进行单点温度检测或采集,能够检测的范围为﹣55℃到﹢125℃。温度显示采用4位LED数码管,并能显示出符号位等信息。当检测到超过预设上限和下限的温度时,会通过蜂鸣器发出声音报警。
  • 基于51
    优质
    本项目设计并实现了一款基于51单片机的数字温度计,通过集成温度传感器实时监测环境温度,并在LCD显示屏上显示读数。 基于51单片机的数字温度计设计使用了4位数码管显示,并且已经通过实际测试证明可用。该项目采用Keil进行编程并生成了hex文件。
  • 51报告
    优质
    本报告为《51单片机数字温度计》课程设计作品,详细记录了基于51单片机实现数字温度测量的设计过程、硬件选型与软件编程方法。 这是一个基于51单片机的数字温度计,所测得的温度通过液晶显示屏显示出来,具有直观的特点。
  • 51原理图
    优质
    本项目提供了一个基于51单片机设计的数字温度计原理图。该系统通过温度传感器采集环境温度数据,并利用51单片机进行处理和显示,实现便捷准确的温度监测功能。 使用51单片机设计数字温度计,并包含SCH原理图。
  • 基于51
    优质
    本项目基于51单片机开发,旨在设计一款实用的数字温度计。通过集成高精度温度传感器,能够实时准确地显示环境温度,并具有体积小、成本低等优点。 简单实用的基于DS18B20的数字温度计设计能够很好地帮助初学者巩固与扩展所学知识。
  • 51测量
    优质
    本项目为基于51单片机的温度测量程序设计,通过集成温度传感器采集环境数据,并将结果转化为数字信号显示,适用于教学与小型电子设备中的温控应用。 51单片机温度计程序可以下载,密码是8888。
  • 51传感
    优质
    本项目为基于51单片机的温度传感程序设计,能够实时采集环境温度数据,并通过数码管或LCD显示。适用于教学、实验及小型测温设备开发。 以下是经过处理的代码段: ```c #include #define uchar unsigned char #define uint unsigned int sbit led = P2^5; sbit wei = P2^7; sbit duan = P2^6; sbit DQ = P2^2; uchar mazhi_duan[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x84}; // 数码管段选表 uchar mazhi_wei[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xff}; // 共阴数码管位选表 void delayl(uint n) { uint i,j; for(i=n; i>0; i--) for(j=114; j>0; j--); } void delays(uchar i){ while(i--); } bit init_DS18B20() { // DS8B20初始化 bit x; DQ = 1; delays(8); DQ = 0; delays(75); DQ = 1; delays(15); x=DQ; delays(5); return x; } void write_data(uchar dat){ uchar i,temp; temp=dat; for(i=0;i<8;i++) { DQ = 0; delays(1); if(temp&0x01) DQ = 1; else DQ = 0; delays(4); temp>>=1; } } uchar read_data(){ uchar i,dat; for(i=0;i<8;i++) { dat>>=1; if(DQ) dat|=0x80; DQ = 1; //配置为输入 delays(4); } return dat; } uint readtemp(){ uchar temph,templ; uint temp; float wendu; init_DS18B20(); write_data(0xcc);//跳过ROM write_data(0x44);//启动温度转换 delayl(100); init_DS18B20(); write_data(0xcc); write_data(0xBE); //读取温度 templ=read_data(); temph=read_data(); temp = (temph<<8)|templ; wendu=temp*0.625+0.5; // 温度扩大10倍,四舍五入 temp=wendu/10; return temp; } void STC_init(){ P1=0x00;//关闭led led = 0; wei = duan = 0; } void display(uchar weil, uchar duanl, bit dp){ wei=1; P0=mazhi_wei[weil-1]; wei=duan=dp; if(dp==1) P0=(mazhi_duan[duanl]|0x80); else P0 = mazhi_duan[duanl]; duan = 0; } void main(){ uchar i; uint wendu; STC_init(); wendu=readtemp(); delayl(500); wendu=readtemp(); delayl(500); while(1) { wendu = readtemp(); for(i=0; i<80; i++){ display(1,wendu/10, 0); delayl(3); display(2, (wendu%10)/1 , 1); delayl(3); display(3, wendu % 10, 0); delayl(3); } } } ``` 这段代码实现了基于89C52单片机和DS18B20温度传感器的温湿度显示系统。首先定义了数码管段选表与位选表,初始化单片机及