综合电子设计课程设计实验报告-可调温度报警器.doc

下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。

2.下载的文档,不会出现我们的网址水印。

3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。

文档包含非法信息?点此举报后获取现金奖励!

下载文档到电脑,查找使用更方便

15

积分

还剩页未读,继续阅读

关 键 词:设计实验报告

温度报警器设计报告

电子课程设计

温度报警器设计

综合课程 设计

综合课程设计

课程设计报告

温度报警器课程设计

温度报警系统

资源描述:

XXX大学XXX学院

综合性实验报告

课程名称: 综合电子设计

实验名称: 可调温度报警器

院系: 电子信息学院

专业:

班级:

组员:

指导老师:

日期:

摘要:在现代化的工业生产中,需要对周围环境的温度进行检测和控制。本小组针对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过液晶显示的系统。该系统使用89C51单片机,同时运用单线数字温度传感器DS18B20,LCD1602显示模块等模块可实现温度的检测。课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。该作品使用液晶显示,可以清晰地显示当前的报警温度,使使用者使用时不会出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,使用性很高。

关键字:温度报警器 温度上下限 AT89C51单片机 液晶LCD1602 温度传感器DS18B20

目录

一 课程设计任务2

1.1功能说明2

二 整体设计方案2

2.1设计思路2

2.2整体框图2

2.3模块功能说明2

三 硬件电路设计2

3.1各模块设计2

3.1.1传感器的选择2

3.1.2单片机的选择2

3.1.3液晶的选择2

3.2各模块分析2

3.2.1单片机89C51管脚图2

3.2.2 DS18B20引脚及管脚功能介绍2

3.2.3 LCD1602液晶显示介绍2

四 控制软件设计及电路图2

4.1单片机模块电路图及分析2

4.2液晶显示模块电路图及分析2

4.3温度传感器模块电路图及分析2

五 系统调试及遇到的问题2

六 个人小结2

6.1组长 2

6.2 组员12

6.3组员22

七 参考文献2

八 附录2

8.1附录12

8.2附录22

8.3附录32

一 课程设计任务

1.1功能说明

1.完成温度进行测量,理论测量范围-55°C~+125°C;

2.将温度测量值通过LCD液晶显示模块显示;

3.可以通过按键进行对上下限报警温度,自行设定并实现功能;

二 整体设计方案

2.1设计思路

根据功能要求,必须有单片机控制模块,LCD1602显示模块以及DS18B20的温度传感模块。各个模块都有其自己的功能。上电后,通过DS18B20可以检测到温度,并在显示器上显示。

声光报警

DS18B20

51

键盘&

显示

采用DS18B20的数字温度计结构框图

2.2整体仿真电路图

图1 温度报警器总电路图

2.3模块功能说明

本系统共分为三块模块。

单片机模块,这部分主要实现数据的处理,输出执行,报警设置功能

显示模块可以分别显示实时温度值,温度上下限。

温度传感模块的主要功能是通过DS18B20的强大功能实现对温度的采集及发送到计算机。

图2 温度报警器流程图

结束

Yes

Yes

No

No

温度大于温度上限

红灯亮,报警

温度小于温度上限

白灯闪烁,警告

温度小于低温控制

温度比较

键盘处理

开始

LCD初始化

初始化显示

读取温度数据

转换,显示

读取键盘值

红灯亮,报警

绿灯亮,正常

温度小于温度下限

No

Yes

Yes

三 硬件电路设计

3.1各模块设计

3.1.1DS 18B20简介

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。该装置信号线高的时候,内部电容器 储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。 DS18B20的电源也可以从外部3V-5 .5V的电压得到。

DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。

若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。

采用DALLAS最新单线数字温度传感器DS18B20。DS18B20“一线总线”数字化温度传感器也支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。DS18B20的特性:DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

3.1.2单片机89C51简介

89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。

3.1.3 LCD1602液晶简介

采用LCD1602液晶显示模块,有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。

3.2各模块分析

3.2.1单片机89C51管脚图

注:引脚说明:

①电源引脚

Vcc(40脚):典型值+5V。

Vss(20脚):接低电平。

②外部晶振

X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地

③输入输出口引脚:

P0口:I/O双向口。作输入口时,应先软件置“ 1”。

P1口:I/O双向口。作输入口时,应先软件置“ 1”。

P2口:I/O双向口。作输入口时,应先软件置“ 1”。

P3口:I/O双向口。作输入口时,应先软件置“ 1”。

④控制引脚:

RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。

RST/Vpd(9脚):复位信号输入端(高电平有效)。

第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。

ALE/-PROG(30脚):地址锁存信号输出端。

第二功能:编程脉冲输入。

-PSEN(29脚):外部程序存储器读选通信号。

-EA/Vpp(31脚):外部程序存储器使能端。

第二功能:编程电压输入端(+21V)。

3.2.2 DS18B20引脚及管脚功能介绍

DQ:数字信号输入/输出端。

GND:电源地端。

VDD:外接供电电源输入端(在寄生电源接线时此脚应接地)。

3.2.3 LCD1602液晶显示介绍

管脚功能

1602采用标准的16脚接口

第1脚:VSS为电源地

第2脚:VDD接5V电源正极

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作

第6脚:E(或EN)端为使能(enable)端

第7~14脚:D0~D7为8位双向数据端

第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极

四 控制软件设计及电路图

4.1单片机模块电路图及分析

图3 单片机接线图

P1接液晶数据口,P0接3个二极管,P2接8个按钮,P3.3接蜂鸣器,P3.4接液晶的RS,P3.5接液晶的R/W,P3.6接液晶的EN,P3.7接温度传感器,其他按单片机最小系统连接。

4.2液晶显示模块电路图及分析

图3 液晶接线图

液晶显示模块的子程序:

/*************************lcd1602程序**************************/

void delay1ms(unsigned int ms)//延时1毫秒(不够精确的)

{unsigned int i,j;

for(i=0;i0;i--)

{ DQ = 0; //给脉冲信号

dat>>=1;

DQ = 1; //给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(10);

}

return(dat);

}

void ds1820wr(uchar wdata)/*写数据*/

{unsigned char i=0;

for (i=8; i>0; i--)

{ DQ = 0;

DQ = wdata&0x01;

delay_18B20(10);

DQ = 1;

wdata>>=1;

}

}

read_temp()/*读取温度值并转换*/

{uchar a,b;

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

ds1820wr(0x44);//*启动温度转换*/

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

ds1820wr(0xbe);//*读取温度*/

a=ds1820rd();

b=ds1820rd();

tvalue=b;

tvalue<<=8;

tvalue=tvalue|a;

if(tvalue<0x0fff)

tflag=0;

else

{tvalue=~tvalue+1;

tflag=1;

}

tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数

return(tvalue);

}

/*******************************************************************/

void ds1820disp()//温度值显示

{ uchar flagdat;

disdata[0]=tvalue/1000+0x30;//百位数

disdata[1]=tvalue%1000/100+0x30;//十位数

disdata[2]=tvalue%100/10+0x30;//个位数

disdata[3]=tvalue%10+0x30;//小数位

if(tflag==0)

flagdat=0x20;//正温度不显示符号

else

flagdat=0x2d;//负温度显示负号:-

if(disdata[0]==0x30)

{disdata[0]=0x20;//如果百位为0,不显示

if(disdata[1]==0x30)

{disdata[1]=0x20;//如果百位为0,十位为0也不显示

}

}

wr_com(0x89);

wr_dat(flagdat);//显示符号位

wr_com(0x8a);

wr_dat(disdata[0]);//显示百位

wr_com(0x8b);

wr_dat(disdata[1]);//显示十位

wr_com(0x8c);

wr_dat(disdata[2]);//显示个位

wr_com(0x8d);

wr_dat(0x2e);//显示小数点

wr_com(0x8e);

wr_dat(disdata[3]);//显示小数位

}

五 系统调试及遇到的问题

开始我们只是做温度报警,因为温度传感器选择的是数字式温度传感器,老师觉得过于简单,所以帮我们也想了很多其他功能。

1. 开机复位欢迎词的移动显示

unsigned char code str3[]={" Welcome! "};

unsigned char code str4[]={"================"};

init_play()//初始化显示

{

wr_com(0x80+0x10); //屏幕外等待

display(str3);

wr_com(0xc0+0x10);

display(str4);

for(num=0;num<16;num++) //屏幕左移

{

wr_com(0x18);

delay1ms(200);

}

2. 得到键盘值

uchar GetKey() //读取键值

{

uchar K;

if(P2==0xff) return 0; //检查是否有键按下

delay1ms(10);

switch(P2)

{

case 0xfe: K=1;break;

case 0xfd: K=2;break;

case 0xfb: K=3;break;

case 0xf7: K=4;break;

case 0xef: K=5;break;

case 0xdf: K=6;break;

case 0xbf: K=7;break;

case 0x7f: K=8;break;

default: K=0;

}

while(P2!=0xff);

Beep();

return K;

}

3. 键盘值处理

void KeyProcess(uchar Key) //键盘处理

{

uchar t=0;

switch(Key)

{

case 1:if((h1

l)) //温度比较处理

{led1=1;led2=0;led3=0;baojing=1;}

else if((k>=h1)&&(k<=h2))

{

while((k>=h1)&&(k<=h2))

{

led1=0;led3=0;

led2=1;baojing=1;

while((k>=h1)&&(k<=h2))

{

read_temp();//读取温度

ds1820disp();//显示

Key=GetKey();

if(Key!=0)

{KeyProcess(Key);

if(Key!=7)

{lcd_init();init_play1();delay1ms(10);}

}

k=tvalue/10;

delay1ms(600);

led2=~led2;

baojing=~baojing;

}

}

}

else if(k>h2)

{led1=0;led2=0;led3=1;baojing=0;}

else if(k<=l)

{led1=0;led2=0;led3=1;baojing=0;}

}

}

一开始老师给我们加的功能让我们很为难,不知道怎么编所以我们都想推辞掉,不过在编写这些子程序的过程中慢慢的感觉很有趣,反而觉得挺简单的还是,但也会碰到很多问题,比如说显示温度上下限的时候一开始无法显示数字出来的是乱码,重新编写后又变成了日文,后来看了参考书后,最后用了一个0到9的数组,要显示的数字从数组中取得,这样就好了,终于能显示出来了,但是发现它无法记时改变数字,要重新按键才会显示新的上下限温度,后来发现时键盘处理中有点问题,这个我们花了好久才解决的,就是把去掉一个按键处理,把它用if语句独立出来,这样后就能记时改变温度,还有一个问题是我们发现在报警时我们无法改变其温度上下限和其他按键,也就是报警时按键无效了,后来知道了我们的报警程序是用while组成,所以报警时一直在while语句中做循环,按键当然无效,这个的解决办法马上就能想到了,就是在while语句中再加入读取键盘值和键盘值处理的子程序就ok了。其他别的小问题什么的我们组最后都很好的及时的解决了,这次的设计我们组觉得还是比较成功的,做出了比预期更好的设计来。

六 个人小结

6.1组长

从本次综合电子设计课程中,设计的结果基本符合设计的要求,我们也加了一些自己的想法。基本上算是比较满意的。在这次的设计的过程中我学到了很多,对很多相关的专业知识有了更深一层的理解,特别的对单片机这块。这次的设计,很好的将我们上学期学过的单片机进行复习并用于了实践之中,使我能更好的掌握其一般原理。另外,本次课程设计以小组的形式展开,这样一来不但提高了我们的动手能力,增强了团队合作的意识。

在大学期间,从接触硬件的相关课程开始,就已经对硬件产生了恐惧,不论是课程的学习,还是心中的看法。知道大三这学期开设了单片机课程,对我的人生观产生了巨大的影响。由于单片机是我们上学期学的,所以过了寒假过来开始以为特别难,因为一些知识有点忘记了。后来慢慢也就做下来了,虽然做的不是特别好。通过一个学期的学习发现《单片机》的确是一门很有用的课程,对今后的学习工作有很大的帮助,因为单片机目前在社会中有在和极其广泛的用途,各个地方都离不开它的。但是我觉得就我们在课堂上学到的这点知识还是极其有限的,更多的东西还靠我们自己去课下学习。老师只起到一个引导我们学习的作用,关键还是在于我们自己,这就是所谓的“师傅领进门,修行在个人”吧。冰冻三尺非一日之寒,滴水穿石非一时之功,谨以此自勉!

在我们三人小组里面,我负责的就是硬件这一块,由于我的焊接技术实在不怎么的,所以焊的很难看,因此还被老师批评工艺难看需改进,后来把硬件改进后的确是自己看的舒服别人也看的舒服。

只有做不到,没有想不到,面对问题,我们不逃避。只有一步一步的去发现去探索才可以解决问题。在网上看到关于如何学习单片机的文章,里面说到,学习单片机一方面要提高自身的知识水平和编程能力,同是多看多学别人已经写好的模块也是一种好的方法。同是,小组里成员一起齐心协力分配好工作后一起努力就能把问题解决,所以合作也是很重要的。

为期一周的单片机课程设计终于结束了,这一个星期真的蛮累的,大家都是忙忙碌碌的,我也不例外,这次实训我被安排到了组长,因为寒假里带回家的面包板调试不出来,所以寒假里没怎么做,这礼拜就有点忙了,但还是感谢学校给我这次学习的机会,让我更加了解到单片机的有趣,和它的无穷魅力。

我给我的其他组员分别安排了工作,他们也积极地配合我一起完成这次的单片机设计,一开始我过了一个寒假有点生疏,想到编程就感觉自己这个不会那个不会的,后来慢慢的看点书慢慢的就开始有感觉了,老师觉得我们的设计太简单,不停地给我们组的设计加功能,一开始觉得挺为难的,不过还是会慢慢做出来,完成老师提的要求,并且也对自己的编程能力也得到了提高,几乎每天对我都有新的挑战,每天都要克服新的困难。

我在组中的工作主要是编程和监制吧,帮助和监督他们焊接和调试还有拟论文等工作,大家学习和工作的都很融洽。

总而言之,单片机课程设计对于我们有很大的帮助,我们从中也受益匪浅。

6.2 组员1

在大学期间,从接触硬件的相关课程开始,就已经对硬件产生了恐惧,不论是课程的学习,还是心中的看法。知道大三这学期开设了单片机课程,对我的人生观产生了巨大的影响。由于单片机是我们上学期学的,所以过了寒假过来开始以为特别难,因为一些知识有点忘记了。后来慢慢也就做下来了,虽然做的不是特别好。通过一个学期的学习发现《单片机》的确是一门很有用的课程,对今后的学习工作有很大的帮助,因为单片机目前在社会中有在和极其广泛的用途,各个地方都离不开它的。但是我觉得就我们在课堂上学到的这点知识还是极其有限的,更多的东西还靠我们自己去课下学习。老师只起到一个引导我们学习的作用,关键还是在于我们自己,这就是所谓的“师傅领进门,修行在个人”吧。冰冻三尺非一日之寒,滴水穿石非一时之功,谨以此自勉!

在我们三人小组里面,我负责的就是硬件这一块,由于我的焊接技术实在不怎么的,所以焊的很难看,因此还被老师批评工艺难看需改进,后来把硬件改进后的确是自己看的舒服别人也看的舒服。

只有做不到,没有想不到,面对问题,我们不逃避。只有一步一步的去发现去探索才可以解决问题。在网上看到关于如何学习单片机的文章,里面说到,学习单片机一方面要提高自身的知识水平和编程能力,同是多看多学别人已经写好的模块也是一种好的方法。同是,小组里成员一起齐心协力分配好工作后一起努力就能把问题解决,所以合作也是很重要的。

6.3组员2

总的来说,本次课程设计对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!

七 参考文献

1. 单片机C语言程序设计实训100例 [编著] 彭 伟

2. 流行单片机实用子程序及应用实例

[编著] 杨振江 杜铁军 李 群

3. C51基础与应用实例

[编著] 常喜茂 孔英会 付小宁

4. 单片机原理与接口技术 [编著] 刘 军

5. 单片机原理与C51编程

[编著] 宋彩利 孙友仓 吴宏岐

6. 51单片机开发入门与经典实例 [编著] 王守中

7. 51单片机C语言教程 [编著] 郭天祥

8. 单片机程序设计及应用

[编著] 杨将新 李华军 刘东骏

9. 51单片机应用实例详解

[编著] 杨 欣 王玉凤 刘湘黔 张延强

10. wenku.baidu.com 百度文库

八 附录

8.1附录1

总电路图

温度报警器实物图

8.2附录2

器材清单

名称

型号

数量

液晶显示屏

LCD1602c

1

数字温度传感器

DS18B20

1

单片机

AT89C51

1

二极管

4

键盘

8

电容1

47uF

1

电容2

20pF

2

复位开关

1

开关

1

晶振

12MHz

1

蜂鸣器

1

三极管

S9012

1

电阻1

510Ω

6

电阻2

10kΩ

1

变压器

PY-398

1

8.3附录3

总程序图

#include#define uchar unsigned char

#define uint unsigned int

sbit DQ=P1^3;//ds18b20与单片机连接口

sbit RS=P2^4;

sbit RW=P2^5;

sbit EN=P2^6;

sbit led1=P1^0;//绿灯

sbit led2=P1^1;//白灯

sbit led3=P1^2;//红灯

sbit baojing=P1^4; //蜂鸣器

unsigned char code str1[]={"Now temp: "};

unsigned char code str2[]={"Made by DJ SH AJ"};

unsigned char code str3[]={" Welcome! "};

unsigned char code str4[]={"================"};

unsigned char code str5[]={"L H1 H2 "};

uchar shuzi[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; //1602液晶0~9的显示

uchar num;

uchar l=8;h1=20;h2=22; //初始的L、H1、H2的值

void Beep(); //按键“滴”提示音函数

uchar data disdata[5];

uint tvalue;//温度值

uchar tflag;//温度正负标志

/*************************lcd1602程序**************************/

void delay1ms(unsigned int ms)//延时1毫秒(不够精确的)

{unsigned int i,j;

for(i=0;i0;i--)

{ DQ = 0; //给脉冲信号

dat>>=1;

DQ = 1; //给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(10);

}

return(dat);

}

void ds1820wr(uchar wdata)/*写数据*/

{unsigned char i=0;

for (i=8; i>0; i--)

{ DQ = 0;

DQ = wdata&0x01;

delay_18B20(10);

DQ = 1;

wdata>>=1;

}

}

read_temp()/*读取温度值并转换*/

{uchar a,b;

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

ds1820wr(0x44);//*启动温度转换*/

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

ds1820wr(0xbe);//*读取温度*/

a=ds1820rd();

b=ds1820rd();

tvalue=b;

tvalue<<=8;

tvalue=tvalue|a;

if(tvalue<0x0fff)

tflag=0;

else

{tvalue=~tvalue+1;

tflag=1;

}

tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数

return(tvalue);

}

/*******************************************************************/

void ds1820disp()//温度值显示

{ uchar flagdat;

disdata[0]=tvalue/1000+0x30;//百位数

disdata[1]=tvalue%1000/100+0x30;//十位数

disdata[2]=tvalue%100/10+0x30;//个位数

disdata[3]=tvalue%10+0x30;//小数位

if(tflag==0)

flagdat=0x20;//正温度不显示符号

else

flagdat=0x2d;//负温度显示负号:-

if(disdata[0]==0x30)

{disdata[0]=0x20;//如果百位为0,不显示

if(disdata[1]==0x30)

{disdata[1]=0x20;//如果百位为0,十位为0也不显示

}

}

wr_com(0x89);

wr_dat(flagdat);//显示符号位

wr_com(0x8a);

wr_dat(disdata[0]);//显示百位

wr_com(0x8b);

wr_dat(disdata[1]);//显示十位

wr_com(0x8c);

wr_dat(disdata[2]);//显示个位

wr_com(0x8d);

wr_dat(0x2e);//显示小数点

wr_com(0x8e);

wr_dat(disdata[3]);//显示小数位

}

uchar GetKey() //读取键值

{

uchar K;

if(P3==0xff) return 0; //检查是否有键按下

delay1ms(10);

switch(P3)

{

case 0xfe: K=1;break;

case 0xfd: K=2;break;

case 0xfb: K=3;break;

case 0xf7: K=4;break;

case 0xef: K=5;break;

case 0xdf: K=6;break;

case 0xbf: K=7;break;

case 0x7f: K=8;break;

default: K=0;

}

while(P3!=0xff);

Beep();

return K;

}

void KeyProcess(uchar Key) //键盘处理

{

uchar t=0;

switch(Key)

{

case 1:if((h1

l)) //温度比较处理

{led1=1;led2=0;led3=0;baojing=1;}

else if((k>=h1)&&(k<=h2))

{

while((k>=h1)&&(k<=h2))

{

led1=0;led3=0;

led2=1;baojing=1;

while((k>=h1)&&(k<=h2))

{

read_temp();//读取温度

ds1820disp();//显示

Key=GetKey();

if(Key!=0)

{KeyProcess(Key);

if(Key!=7)

{lcd_init();init_play1();delay1ms(10);}

}

k=tvalue/10;

delay1ms(600);

led2=~led2;

baojing=~baojing;

}

}

}

else if(k>h2)

{led1=0;led2=0;led3=1;baojing=0;}

else if(k<=l)

{led1=0;led2=0;led3=1;baojing=0;}

}

}

34

展开阅读全文

温馨提示:

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。

2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。

3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。

4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。

5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。

6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。

7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:综合电子设计课程设计实验报告-可调温度报警器.doc

链接地址:https://www.renrendoc.com/p-13638245.html

温度报警器c语言课程设计,综合电子设计课程设计实验报告-可调温度报警器.doc...相关推荐

  1. 南邮软件设计matlab,通信软件设计基础,南邮,实验报告(共10篇).doc

    通信软件设计基础,南邮,实验报告(共10篇) 通信软件设计基础,南邮,实验报告(共10篇) 南邮matlab软件设计实验报告 通信与信息工程学院 2014 /2015 学年 第2学期 软件设计 实验报 ...

  2. 可以设计一个电子三缝干涉实验

    电子双缝干涉实验的讨论非常多了.吾就想,如果设计一个电子三缝干涉实验,结果会怎么样? 开始肯定是三缝干涉图案. 在其中一个缝加上探测,那么结果是点,还是双缝干涉? 如果在两个缝加上探测,有没有可能产生 ...

  3. 电子科大计算机操作系统ppt,电子科大计算机操作系统实验报告级.docx

    电子科 技大学 实验报告 学生姓名:郫县 LBJ 学号:指导教师:温柔可爱的刘杰彦 实验地点:主楼 A2-413实验时间: 2017年4月 22日上午 一.实验室名称:计算机学院主楼机房 二.实验项目 ...

  4. C语言实验报告计算成绩,c语言实验报告--学生成绩管理系统.doc

    c语言实验报告--学生成绩管理系统.doc XX大学CSUC语言程序设计实践报告题目学生成绩管理系统学生姓名剽悍的小白兔指导教师TZ学院信息科学与工程学院专业班级电气信息类XXXX班完成时间20XX年 ...

  5. c语言选择结构程序设计报告,《C语言程序设计》实验报告选择结构程序设计.doc...

    <C语言程序设计>实验报告选择结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会 ...

  6. 沈航C语言上机实验题答案,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...

    大学大一c语言程序设计实验室上机题全部代码答案(实验报告) C语言实验报告 实验1-1: hello world程序: 源代码: #include main() { printf("hell ...

  7. 北京电大c语言实验作业二,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...

    大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc C语言实验报告实验1-1:helloworld程序:源代码:#includemain(){printf("hellowor ...

  8. 华理c语言设计网上作业,华理c程序实验报告(共9篇).doc

    华理c程序实验报告(共9篇) 华理c程序实验报告(共9篇) 2011华理<C语言实验报告> C程序设计课程 实验报告册 所在学院 班 级 学 号 姓 名 任(来自:www.XIelw.Co ...

  9. 计算机辅助教学导学设计研究,《计算机辅助教学》实验报告

    <计算机辅助教学>实验报告 一.实验目的与要求 1.利用多媒体教室进行一节课的专业教学,教学对象为中学生,教学内容自选,学习内容适合采用多媒体教学手段. 2.以Authorware或Fla ...

  10. 基于 RICS-V 架构的单周期 38 条指令处理器设计(含源码及实验报告)

    一.概述   之前有专门的写过两篇博文来介绍基于 RICS-V 架构的单周期九条指令处理器设计,并提供了相关的代码结构介绍,之后我又对其进行了拓展,且修补了之前源码中存在的一些小问题,并将指令集从九条 ...

最新文章

  1. linux 下 读取某个文件的某一行或者某几行
  2. Arduino IDE 配置文件
  3. 尤克里里怎么样_尤克里里和吉他区别?尤克里里与吉他相比有什么不可替代的优势...
  4. groovy 对 list 排序
  5. ASP.NET页面——页面事件
  6. Effective Java 学习笔记(第53条:接口优先于反射机制)
  7. Java-mail发送邮件
  8. 游侠客php,华东推荐徒步线路之轻户外经典线路——杭宣古道
  9. RPC远程调用框架rsf和dubbo
  10. 在Excel中如何把每三行数据合并为一行?
  11. 美通社企业新闻汇总 | 2019.1.10 | 全球最受欢迎商旅城市上海第四,华为发布AI数据中心交换机...
  12. 【Android】之 Flow 的使用和浅析
  13. 《MySQL数据库用户模块需求分析》
  14. JAVA线上故障排查全套路
  15. IDEA中scala安装与配置(详细步骤)
  16. 【服务器】Linux一键安装web环境全攻略(阿里云服务器)(Centos )
  17. 利用鲍伊-迪克测试法测试饱和蒸汽以确保适当灭菌消毒
  18. 一文搞懂Typescript
  19. php 网页合成图片,PHP怎么把网页内容原封不动的给生成图片
  20. Houdini文件格式介绍指南

热门文章

  1. Linux设备模型分析之bus(基于3.10.1内核)
  2. 跨平台调用之一——java调用so库
  3. 【LOJ6198】谢特(后缀自动机)(01Trie)(dsu on tree)
  4. 戴建业老师对李白和杜甫的讨论
  5. 手机和工业计算机运算能力对比,手机cpu和电脑cpu差距有多大_手机cpu跟电脑cpu差多少...
  6. 门禁卡怎么弄到手机上,手机变成门禁卡,手把手超详细(建议收藏)
  7. 大数据与云计算 | 华科软院2020年期末考试试题及答案
  8. 关于 Cannot read property ‘length‘ of null 报错的解决办法
  9. python 词云生成
  10. C# 调用腾讯云的短信发送服务API