历史上的今天
今天是:2025年01月03日(星期五)
2020年01月03日 | 单片机DS18B20数字温度报警器Proteus仿真+代码详细注释
2020-01-03 来源:51hei
现呈上一份关于c51数字温度报警器的压缩包,我的设计报告,望各位大佬指点。
单片机源程序如下:
#include #include #define uint unsigned int //宏定义uint #define uchar unsigned char //宏定义uchar sbit lcden=P2^0; //液晶使能端 sbit lcdrw=P2^1; sbit lcdrs=P2^2; //液晶数据命令选择端选择写数据还是写命令 sbit DQ = P2^3; //通过DQ口读取温度值 sbit s1=P1^2; //选择按键 sbit s2=P1^7; //加按键 sbit s3=P3^3; //减按键 sbit D1=P3^4; //高温报警灯 sbit D2=P1^3; //低温报警灯 uchar temp_value,num,fig,s1num,figh,figl,t; //设置全局无符号字符型变量 char h,l; //设置全局有符号字符型变量 void delay(uint z); //申明延时程序 void init(); //申明LCD初始化程序 void write_com(uchar com); //申明写命令程序 void write_data(uchar date); //申明写数据程序 void keyscan(); //申明按键扫描程序 void write_hl(uchar add,char date); //申明设置的最高低温度值在LCD上显示程序 void write_temp_value(uchar add,char date); //申明温度值在LCD上显示程序 void delay_18B20(unsigned int i); //申明延时程序 void Init_DS18B20(void); //申明DS18B20初始化程序 unsigned char ReadOneChar(void); //申明ds18b20读一个字节 void WriteOneChar(uchar dat); //申明ds18b20读一个字节 void ReadTemp(void); //申明读取ds18b20当前温度 void comp(); void main() { init(); //LCD初始化 Init_DS18B20(); //DS18B20初始化 while(1) //大循环 { if(s1==0||s1num>=1) { keyscan(); //按键扫描 } else{ ReadTemp(); //读取温度值 write_temp_value(0,temp_value); //LCD显示温度值 } comp(); } } void delay(uint z) //延时程序 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void init() //LCD初始化程序 { lcden=0; lcdrw=0; write_com(0x38); //设置16x2 显示5x7 点阵,8 位数据接口 write_com(0x0c); //设置开始显示不显示光标 write_com(0x06); //写一个字符后地址指针加1 write_com(0x01); //显示清零数据指针清零 write_com(0x80); //将数据指针第一行第一个字处, write_com(0x80+9); //定义当前指针位置 write_data('H'); //写入 write_data(':'); //写入 write_data('+'); //写入 write_data('2'); //写入 write_data('0'); //写入 write_data(0xdf); //写入° write_data('C'); //写入C write_com(0x80+9+0x40); //定义当前指针位置 write_data('L'); //写入 write_data(':'); //写入 write_data('+'); //写入 write_data('1'); //写入 write_data('0'); //写入 write_data(0xdf); //写入° write_data('C'); //写入C h=0x14; //h=+20 l=0+0x0a; //l=+10
史海拾趣
|
[转载].SSRAM、SDRAM和Flash简要介绍.[Memory] 转CalmBright兄的博文:http://www.cnblogs.com/CalmBright/archive/2009/07/19/1526569.html Abstract 在用NIos II 调试sdram遇到了其容量计算的问题,现介绍如下 Introduction 问题1:什么是DRAM、SRAM、SDRAM? 答: ...… 查看全部问答> |
|
http://www.jslc.org.cn/list.php?act1=do&tid=48&ttid=102 这上面有嵌入式培训的网址: 兄弟我像学习嵌入式开发,不知道这个培训班的内容怎么样啊?各位前辈给点意见啊,谢谢! 下面是一些课程介绍: 课程体系 基于ARM的嵌入式研发 ...… 查看全部问答> |
|
有谁了解深圳\"研祥智能科技\"公司吗?那边的待遇怎么样,我是08年的应届毕业生,我很想知道,本科生在那边的待遇和发展怎么样呢? 望各位知情的大虾帮帮忙啊 ~谢过~… 查看全部问答> |
|
什么是Arduino?Arduino是一个比你的台式电脑更能够用来感应和控制现实物理世界的一套工具。 它由一个基于简易单片机并且开放源码的计算机平台,和一套为Arduino板编写程序 的开发环境组成。 Arduino可以用来开发交互产品,比如它可以读取大量 ...… 查看全部问答> |
|
今天闲来无事,在家看一本介绍二战期间密码破译的书,在看到有关图灵贡献一段时,突然意识到昨天是这位现代计算机之父的忌日,特发此帖纪念这位伟大的天才。下面是拜读百度上有关图灵的介绍:【概述】阿兰·麦席森·图灵(Alan Mathison& ...… 查看全部问答> |
|
请问下各位: 本人用DCO倍频至8M, LPM0: MCLK OFF, SMCLK ON, ACLKON, DCO ON LPM1: MCLK OFF, SMCLK ON, ACLK ON, DCO ON(DCO用于MCLK和SMCLK) (1)不知两者到底有何区别,LPM1下是否会影响TIMER1(时钟选择为SM ...… 查看全部问答> |
|
今天试着用雕刻机切割PCB板子,切了一个同心圆。G代码过长无法执行的问题还是没有解,求大神指点。 切下来的正面 反面 老婆的指头 工作视频需要优酷发布完了才能更新了,后续再上传。 … 查看全部问答> |




