- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析单片机多点温度测试仪带按键设定温度报警_带仿真图
本系统的设计思路
1.2.1 本系统的设计思想和工作原理
设计思想:随着时代的发展人们的生活水平越来越高,对生活的要求也越来越高,单片机已在各行业得到广泛应用,为适应更多的应用领域,厂家采取了在一块单片机芯片上集成多种功能部件和大容量存储器的方法。因而,整个应用系统不需要扩展,而体积变小、可靠性增高,使单片机成为真正意义上的单片机系统。同时随着现代信息技术的飞速发展,温度测量采集以及报警系统在工业、农业、军事及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集报警系统的设计与研究有十分重要的意义。
设计原理:本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LCD进行显示。本系统可以实现多路温度信号采集与显示,可以使用程序来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和LED进行报警。
#includereg51.h
#define uchar unsigned char
#define uint unsigned int
sbit DQ =P2^0; //一号ds18b20与单片机连接口
sbit DQ1=P2^1; //二号ds18b20与单片机连接口
sbit D1=P2^3;
sbit D2=P2^4;
sbit RS=P2^5; //LCD控制脚
sbit RW=P2^6;
sbit EN=P2^7;
sbit key0=P3^3;
sbit key1=P3^4; //按键定义
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit bell=P1^7;
uchar code str1[]={wendu1:};
uchar code str2[]={wendu2:};
uchar code str3[]={set high };
uchar code str4[]={set low };
uchar data disdata [5];
uchar data disdata1[5];
uchar data disdata2[4];
uchar data disdata3[4];
unsigned char temphigh=40,templow=5; //温度设定初始值
uint flag0,flag1,flag2,flag3,flag4; //按键标志
uint high,low; //高温和低温设置值
uint tvalue,tvalue1; //温度值
uchar tflag,tflag1; //温度正负标志
/*******************lcd1602程序**********************/
void delay1ms(uint ms) //延时1毫秒
{
unsigned int i,j;
for(i=0;ims;i++)
for(j=0;j110;j++);
}
void wr_com(uchar com) //LCD写指令
{
RS=0;
RW=0;
P0=com;
delay1ms(5);
EN=1;
delay1ms(5);
EN=0;
}
void wr_dat(uchar dat) //LCD写数据
{
RS=1;
RW=0;
P0=dat;
delay1ms(5);
EN=1;
delay1ms(5);
EN=0;
}
void lcd_init() //LCD初始化设置
{
wr_com(0x38); //设置16×2显示,5×7点阵,8位数据接口
wr_com(0x0c); //设置开显示,不显示关标
wr_com(0x06); //写一个字符后地址指针加1
wr_com(0x01); //显示清0,数据指针清0
}
void display(uchar *p) //显示
{
while(*p!=\0)
{
wr_dat(*p);
p++;
delay1ms(5);
}
}
init_play() //1号初始化显示
{
lcd_init();
wr_com(0x80);
display(str1);
}
/******************二号初始化********
原创力文档


文档评论(0)