基于51单片机的温度控制系统的设计.doc
《基于51单片机的温度控制系统的设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的温度控制系统的设计.doc(34页珍藏版)》请在咨信网上搜索。
贵州大学课程设计 基于单片机的温度控制系统设计 1.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD显示模块可以选用RT1602C。 3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD显示模块、报警与指示模块。其相互联系如下图1所示: 单片机时钟电路 复位电路 键盘接口模块 温度采集模块 单 片 机 LCD显示模块 报警与指示模块 图1 硬件电路设计框图 3.1单片机时钟电路 图2 单片机内部时钟方式电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为1.2~12MHz,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一起形成了一个自激振荡电路,为单片机提供时钟源。 3.2复位电路 图3 单片机按键复位电路 复位是单片机的初始化操作,其作用是使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。 3.3键盘接口模块 图4 键盘接口模块 本次设计需要的按键有4个,除去一个复位按键外,还有3个功能按键,因此选择独立式键盘。如图4,将键盘直接与单片机P1口的P1.0、P1.1、P1.2相连。3个键设计思路如下:当按下S1键时,系统进入上下限警戒值调整状态;当第一次按下S1键时,进行上限警戒值设定,当第二次按下S1键时,进行下限警戒值设定,当第三次按下S1键时,回到正常工作状态。在警戒值调整状态下,按下S2键,上下限警戒值加1,按下S3键,上下限警戒值减1,正常工作状态下,按下S2和S3键无作用。 3.4温度采集模块 本次设计中的温度传感器使用的是DALLAS公司的单总线数字温度传感器DS18B20,这是一种常用的温度传感器,具有体积小、硬件开销低、抗干扰能力强、精度高的特点。 DS18B20采用独特的一线接口,具有只需要一条口线通信多点的能力,简化了分布式温度传感应用,无需外部元件。可用数据总线供电,电压范围为3.0 V至5.5V,测量温度的范围为-55℃至+125 ℃,在-10℃至+85℃范围内精度为±0.5℃。 温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、消费电子产品温度计、或任何热敏感系统。由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一条总线,这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。 图5 DS18B20封装及引脚 DS18B20的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9、10、11或12位,分别以0.5℃,0.25℃,0.125℃和0.0625℃增量递增。在上电状态下默认的精度为12位。DS18B20启动后保持低功耗等待状态;当需要执行温度测量和AD转换时,总线控制器必须发出[44h]命令。在那之后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。当DS18B20由外部电源供电时,总线控制器在温度转换指令之后发起“读时序”,DS18B20正在温度转换中返回0,转换结束返回1。如果DS18B20由寄生电源供电,除非在进入温度转换时总线被一个强上拉拉高,否则将不会由返回值。 在硬件上,DS18B20与单片机的连接有两种方法:一种是VDD接外部电源,GND接地,DQ与单片机的I/O口相连;另一种是用寄生电源供电,此时,VDD、GND接地,DQ接单片机的I/O口。无论是接外部电源还是用内部寄生电源,I/O口线要接5kΩ左右的上拉电阻。 本次设计中,采用外部电源方式,其连接方式如图6所示。单总线DQ端接单片机的P1.7口,DQ端接一个4.7kΩ的上拉电阻,这样单总线DQ在闲置状态时为高电平。 图6 DS18B20外部电源连接方式 3.5 LCD显示模块 在本次设计中,使用RT1602C字符型液晶显示模块(LCM)来设计当前温度和上下限警戒值的显示电路。 RT1602C字符型液晶显示模块是16字×2行的采用5×7点阵图形来显示字符的液晶显示器,采用标准的16脚接口,其引脚定义如图7所示。 引脚号 引脚名 说 明 引脚号 引脚名 说 明 1 GND/Vss 电源地 7 D0 8位双向数据线 2 Vdd +5V电源 8 D1 3 VL 液晶显示偏压信号 9 D2 4 RS 数据/命令控制,H/L 10 D3 5 R/W 读/写控制,H/L 11 D4 6 E 使能端 12 D5 15 BLA 背光源正极 13 D6 16 BLK 背光源负极 14 D7 图7 RT1602C的引脚定义 RT1602C的内部结构可以分为3个部分:LCD控制器、LCD驱动器、LCD显示器,其中LCD控制器采用的是HD44780。 RT1602C与单片机的连线如图8所示。 图8 RT1602C与单片机连线 LCM的数据总线与单片机的P0口通过一个上拉电阻排相连,LCM的三条控制线RS、RW、EN分别与单片机的I/O口P2.0、P2.1、P2.2相连,第1、2引脚分别与地、电源相连,第3引脚使用一个10kΩ的可调电阻对显示屏的明亮进行调整。 3.6报警与指示模块 图9 报警与指示模块 在本次设计中,采用LED发光二极管作为系统指示灯,采用蜂鸣器作为报警鸣笛。当温度高于上限警戒值时,点亮红色发光二极管,蜂鸣器发出响声;当温度低于下限警戒值时,点亮黄色发光二极管,蜂鸣器发出响声;温度在正常范围内时,点亮黄色发光二极管。整个报警与指示电路如图9所示,其中绿、红、黄色指示灯分别接单片机P2.0、P2.1、P2.2口,电平拉低时点亮LED,蜂鸣器电路接单片机的P2.7口,电平拉高时蜂鸣器响。 至此便完成了整个硬件电路的设计工作,整个系统的原理图见附录二,系统I/O分配表如下: I/O口 功能说明 I/O口 功能说明 P0.0~P0.7 LCM数据口 P2.1 LCM读/写控制 P1.0~P1.3 键盘输入 P2.2 LCM使能 P1.7 DS18B20温度采集 P2.4~P2.6 LED信号输出 P2.0 LCM数据/命令控制 P2.7 报警信号输出 4.软件设计 单片机应用系统的设计中,软件设计占有重要的位置。在本次设计中,根据功能要求,可以把系统程序划分为5个模块,即主程序模块、显示模块、温度测量模块、键盘扫描模块、其它子程序模块,如图10所示。 主程序模块 显 示 模 块 温 度 测 量 模 块 键 盘 扫 描 模 块 其 它 子 程 序 图10 软件设计框图 4.1主程序设计 开始 初始化温度传感器 初始化单片机 初始化显示模块 键盘扫描 读取温度 显示字形转换 显示 主程序的内容包括单片机初始化、相关部件初始化和一些其它子程序的调用等。主程序清单如下,程序流程图如图11所示。 /************主程序************/ void main(void) { P1=0xff; //初始化P1口以便读入 P2|=0x70; P2&=0x7f; Temp_set1=90; //上限报警温度初值90 Temp_set2=10; //下限报警温度初值10 Delay(500); //延时500ms启动 init_LCD(); //LCD初始化 init_18B20(); //DS18B20初始化 Display_str(0,0,str2); //开机界面 Display_str(0,1,str2); //开机界面 图11 主程序流程图 Delay(2000); Display_str(0,0,str0); Display_str(0,1,str1); while(1) { Key_scan(); //扫描键盘 Read_temp(); //读取温度 Change(); Display(); //显示 Alarm(); //指示灯与报警程序 Delay(1000); } } 4.2显示模块 显示程序主要完成的功能是模式、上下限警戒值和测量温度值的显示,模块中包含LCD初始化、显示单个字符子函数、显示一个字符串子函数。程序流程图如图12所示,LCD初始化程序如下,其它子函数程序详见附录一。 开始 写显示命令 定位显示位置 写显示字符 结束显示 /************LCD初始化************/ void init_LCD(void) { P0=0; Delay(15); LCD_Command(0x38,0); Delay(5); LCD_Command(0x38,0); 图12 显示程序流程图 Delay(5); LCD_Command(0x38,0); Delay(5); LCD_Command(0x38,1); //8位数据传送,2行显示,5*7字形 LCD_Command(0x08,1); //关闭显示 LCD_Command(0x01,1); //清屏 LCD_Command(0x06,1); //显示光标右移设置 LCD_Command(0x0c,1); //显示屏打开,光标不显示不闪烁 } 4.3温度测量模块 温度测量程序主要功能是读出数字温度传感器的温度值。要正确地读出温度值必须严格遵守单总线器件的命令序列,否则单总线器件不会响应主机。单总线器件的命令序列如图13所示。 温度测量模块程序流程图如图14所示,DS18B20初始化程序如下,其它子程序详见附录一。 /************DS18B20初始化************/ void init_18B20(void) { uchar x=0; Y N 开始 读DS18B20序列号 初始化DS18B20 DS18B20存在? 温度转换 发跳过ROM指令 读取温度 返回 DQ=1; //DQ复位 Delay_us(4); //延时 DQ=0; //将DQ拉低 Delay_us(250); //精确延时大于480us DQ=1; //拉高总线 Delay_us(40); x=DQ; 开始 发ROM指令 初始化 发功能指令 结束 Delay_us(20); } 图14 温度测量程序流程图 图13 单总线命令序列 4.4键盘扫描模块 本次设计中使用了4个按键,除了1个复位键还有3个功能键,具体功能前面已介绍。键盘扫描程序如下,其它子程序详见附录一,相关流程图如图15所示。 /************键盘扫描************/ void Key_scan(void) { uchar temp; P1=0xff; if(P1!=0xff) { 延时去抖动 开始 初始化DS18B20 有键按下? 读取键值 Y 执行键功能程序 返回 有键按下? N N Y Delay(20); //延时消抖 if(P1!=0xff) { temp=P1; switch(temp) { case 0xfe:Key_set();break; //P1.0按下,功能选择 case 0xfd:Key_inc();break; //P1.1按下,数字加一 case 0xfb:Key_dec();break; //P1.2按下,数字减一 default:break; } } } 图15 键盘扫描程序流程图 } 4.5其它子程序 程序中使用的其它子程序,包括延时子程序、显示字符转换子程序等,具体详见附录一。 5.仿真分析 在本次的设计中,使用了Proteus仿真软件进行了功能测试,具体仿真步骤及分析如下。 (1)按照原理图,从Proteus元件库中找出对应元件,搭建硬件仿真电路,将程序烧写到单片机中,仿真图见附录三。 (2)点击运行按钮开始仿真,初始上下限值为90℃和10℃,当前温度为25℃,当前模式为N正常工作,绿灯亮,蜂鸣器不响,如图16。 图16 正常模式下仿真图 (3)按下S1键,进入上限警戒值设置模式H,此时按S2、S3键可以进行上限值设定,同时温度正常显示,设置上限值80℃,如图17。 图17 上限值设定仿真图 (4)再次按下S1键,进入下限警戒值设置模式L,此时按S2、S3键可以进行下限值设定,同时温度正常显示,设置下限值20℃,如图18。 图18 下限值设定仿真图 (5)再次按下S1键,返回正常模式N,调节DS18B20温度,测量温度随之改变,降低温度,超过下限值5℃以下时,黄灯亮,蜂鸣器报警,如图19。 图19 下限报警仿真图 图20 上限报警仿真图 (6)升高温度,超过上限值5℃以上时,黄灯亮,蜂鸣器报警,如图20。 (7)按下S4键,单片机复位。 在本次仿真中,可以看出,本次设计的硬件电路和软件程序均能成功仿真出来,设计要求的各种功能均已达到。 6.总结 本次课程设计为期一周,到此已全部结束。回想一周中的设计过程,我深深感觉收获良多。由于从前只是在理论上学习了单片机以及各种其它知识,即使是实验也只是按照实验指导书进行操作,并没有实际的独立设计一个系统,因此在刚开始接触本次课程设计时,有一点无从下手的感觉。后来通过查阅相关资料,渐渐开始了解课程设计的一般过程,开始明白一些元器件的相关作用与编程实现方法,并在此期间通过不断深入的学习和锻炼,开始渐渐能熟练运用和熟练编程起来。 通过本次计算机控制技术的课程设计,我更深层次的把理论知识和实际设计结合在一起,锻炼了我的综合运用所学的专业基础知识和解决实际工程问题的能力。同时也提升了我查阅文献资料、设计手册、设计规范以及电脑制图等其他知识能力水平。对各种系统的适用条件,各种设备的选用标准,各种管道的安装方式,我都是随着设计的不断深入而逐渐熟悉并学会应用的。并且,通过对整体的掌控,对局部的取舍,对细节的斟酌处理,以及绘图的技巧都使我在设计领域的能力得到了锻炼,得到了较丰富经验。 最后,通过这次的课程设计,我也深刻地认识到,只有将书本与具体的实践相结合,才会有真正的收获,才能巩固自己的所学,认识到自己的不足,同时我们也要有一种积极学习的态度,时代在进步我们也要跟着时代前进,要不断学习,不断创新,用自己的知识与行动来证明自己的价值。 本次课程设计以单片机为核心,介绍了用DS18B20温度传感器进行温度采集,并将其传输给AT89C51单片机进行处理再送到LCD显示屏显示。在此期间可以通过按键进行上下限警戒值设置,通过LED和蜂鸣器进行指示和报警。本文是采用模块化的方式进行叙述,对各模块的设计进行了比较详细地阐述,并着重分析硬件搭建过程和系统软件的设计过程,使用单片机C语言进行程序没计。本次设计的基于DS18B20的温度测量系统是一个分布式的温度测量系统,它可以远程对温度实现测量和监控,广泛应用于电力工业、煤矿、森林、火灾、高层建筑等场合。 本设计应用性比较强,可以应用在仓库温度、大棚温度、机房温度、水池等的监控。当然,本次设计还存在一些不足,例如在本次设计中,由于时间较短,警戒值只是在1~99℃之间,没有能够扩展到负温度和100℃以上;在本次设计中只是用了4个独立按键,实现简单的上下限警戒值设定,操作较麻烦,如果能够设计出多按键的矩阵式键盘,则能够对温度进行很方便的设定。此外如果把本设计方案扩展为多点温度控制,加上上位机,则可以实现远程温度监控系统,将具有更大的应用价值。 7.参考文献 [1] 潘新民,王燕芳. 微型计算机控制技术 [M]. 北京:电子工业出版社,2014 [2] 王迎旭. 单片机原理与应用 [M]. 北京:机械工业出版社,2013 [3] 康华光. 电子技术基础 [M]. 北京:高等教育出版社,2013 [4] 周正华,唐宁 RT1602C与FPGA接口技术 [J]. 中国科技信息,2008(10) [5] 廖琪梅,韩彬等. 基于DS18B20的温度测量仪 [J]. 国外电子元器件,2008(2) 附录一:程序清单 #include<reg51.h> #include<intrins.h> #include<absacc.h> #define uchar unsigned char #define uint unsigned int #define BUSY 0x80 void Delay(uint); void init_LCD(void); void LCD_Command(uchar,uchar); void LCD_Data(uchar); void ReadyLCD(void); void Display_char(uchar,uchar,uchar); void Display_str(uchar,uchar,uchar code *Data); void Change(void); void Display(void); void init_18B20(void); uchar Read_18B20(void); void Write_18B20(uchar); void Read_temp(void); void Delay_us(uchar i); void Key_scan(void); void Key_set(void); void Key_inc(void); void Key_dec(void); void Alarm(void); sbit LCD_RS=P2^0; sbit LCD_RW=P2^1; sbit LCD_EN=P2^2; sbit DQ=P1^7; sbit Normal=P2^4; sbit Alarm_H=P2^5; sbit Alarm_L=P2^6; sbit Alarm_BEEP=P2^7; uchar Set_flag=0; uchar Temp_mea,Temp_set1,Temp_set2; uchar Temp_high_1,Temp_high_2; uchar Temp_low_1,Temp_low_2; uchar Temp_true_1,Temp_true_2; extern uchar code str0[]={"High: C Low: C"}; extern uchar code str1[]={"Mode: Deg: C"}; extern uchar code str2[]={" Hellow!! "}; extern uchar code str3[]={"0123456789"}; extern uchar code mode[]={"NHL"}; /********主程序********/ void main(void) { P1=0xff; P2|=0x70; P2&=0x7f; Temp_set1=90; //上限报警温度初值90 Temp_set2=10; //下限报警温度初值10 Delay(500); //延时500ms启动 init_LCD(); //LCD初始化 init_18B20(); //DS18B20初始化 Display_str(0,0,str2); //开机界面 Display_str(0,1,str2); //开机界面 Delay(2000); Display_str(0,0,str0); Display_str(0,1,str1); while(1) { Key_scan(); //扫描键盘 Read_temp(); //读取温度 Change(); Display(); //显示 Alarm(); //指示灯与报警程序 Delay(1000); } } /********延时kms********/ void Delay(uint k) { uint i,j; for(i=0;i<k;i++) { for(j=0;j<60;j++) { ; } } } /********显示模块********/ /********LCD初始化********/ void init_LCD(void) { P0=0; Delay(15); LCD_Command(0x38,0); Delay(5); LCD_Command(0x38,0); Delay(5); LCD_Command(0x38,0); Delay(5); LCD_Command(0x38,1); //8位数据传送,2行显示,5*7字形 LCD_Command(0x08,1); //关闭显示 LCD_Command(0x01,1); //清屏 LCD_Command(0x06,1); //显示光标右移设置 LCD_Command(0x0c,1); //显示屏打开,光标不显示不闪烁 } /********写指令数据到LCD********/ void LCD_Command(uchar LC,uchar BC) { if(BC) ReadyLCD(); P0=LC; LCD_RS=0; //选中指令寄存器 LCD_RW=0; //写模式 LCD_EN=1; _nop_(); _nop_(); _nop_(); LCD_EN=0; } /********写显示数据到LCD********/ void LCD_Data(uchar LD) { ReadyLCD(); P0=LD; LCD_RS=1; //选中数据寄存器 LCD_RW=0; //写模式 LCD_EN=1; _nop_(); _nop_(); _nop_(); LCD_EN=0; } /********检测LCD忙状态********/ void ReadyLCD(void) { P0=0xff; LCD_EN=1; LCD_RS=0; LCD_RW=1; _nop_(); while(P0&BUSY) { LCD_EN=0; _nop_(); _nop_(); LCD_EN=1; _nop_(); _nop_(); } LCD_EN=0; } /********显示一个字符********/ void Display_char(uchar X,uchar Y,uchar Data) { Y&=0x01; X&=0x0f; if(Y) X|=0x40; X|=0x80; LCD_Command(X,0); LCD_Data(Data); } /********显示一串字符********/ void Display_str(uchar X,uchar Y,uchar code *Data) { uchar List=0; Y&=0x01; X&=0x0f; while(X<16) { Display_char(X,Y,Data[List]); List++; X++; } } /********显示字型转换********/ void Change(void) { Temp_high_1=Temp_set1/10; Temp_high_2=Temp_set1%10; Temp_low_1=Temp_set2/10; Temp_low_2=Temp_set2%10; Temp_true_1=Temp_mea/10; Temp_true_2=Temp_mea%10; } /********显示子程序********/ void Display(void) { Display_char(5,0,str3[Temp_high_1]); Display_char(6,0,str3[Temp_high_2]); Display_char(13,0,str3[Temp_low_1]); Display_char(14,0,str3[Temp_low_2]); Display_char(5,1,mode[Set_flag]); Display_char(13,1,str3[Temp_true_1]); Display_char(14,1,str3[Temp_true_2]); } /********温度测量模块********/ /********DS18B20初始化********/ void init_18B20(void) { uchar x=0; DQ=1; //DQ复位 Delay_us(4); //延时 DQ=0; //将DQ拉低 Delay_us(250); //精确延时大于480us DQ=1; //拉高总线 Delay_us(40); x=DQ; Delay_us(20); } /********从DS18B20读取一个字节数据********/ uchar Read_18B20(void) { uchar i=0; uchar dat=0; for(i=8;i>0;i--) { DQ=0; _nop_(); dat>>=1; DQ=1; Delay_us(1); if(DQ) dat|=0x80; Delay_us(10); } return(dat); } /********向DS18B20写入一个字节数据********/ void Write_18B20(uchar dat) { uchar i=0; for(i=8;i>0;i--) { DQ=0; _nop_(); DQ=dat&0x01; Delay_us(10); DQ=1; dat>>=1; Delay_us(10); } } /********从DS18B20读取温度********/ void Read_temp(void) { uchar a=0; uchar b=0; uchar t=0; init_18B20(); Write_18B20(0xcc); Write_18B20(0x44); init_18B20(); Write_18B20(0xcc); Write_18B20(0xbe); a=Read_18B20(); b=Read_18B20(); t=b; t<<=8; t=t|a; Temp_mea=t*(0.0625); } /********精确延时********/ void Delay_us(uchar i) { while(--i); } /********键盘扫描程序********/ void Key_scan(void) { uchar temp; P1=0xff; if(P1!=0xff) { Delay(20); //延时消抖 if(P1!=0xff) { temp=P1; switch(temp) { case 0xfe:Key_set();break; //P1.0按下,功能选择 case 0xfd:Key_inc();break; //P1.1按下,数字加一 case 0xfb:Key_dec();break; //P1.2按下,数字减一 default:break; } } } } /********工作模式子程序********/ void Key_set(void) { Set_flag++; if(Set_flag>=3) //Set_flag=1,设定上限值 Set_flag=0; //Set_flag=2,设定下限值 } /********按键加一子程序********/ void Key_inc(void) { switch(Set_flag) { case 1:Temp_set1++; if(Temp_set1>=99) Temp_set1=99;break; case 2:Temp_set2++; if(Temp_set2>=Temp_set1) Temp_set2=Temp_set1;break; default:break; } } /********按键减一子程序********/ void Key_dec(void) { //Delay(150); switch(Set_flag) { case 1:Temp_set1--; if(Temp_set1<=Temp_set2) Temp_set1=Temp_set2;break; case 2:Temp_set2--; if(Temp_set2<=1) Temp_set2=1;break; default:break; } } /********报警和指示程序********/ void Alarm(void) { uchar High; uchar Low; High=Temp_set1+5; Low=Temp_set2-5; if(Temp_mea>High) { Normal=1; Alarm_H=0; Alarm_L=1; Alarm_BEEP=1; } else {if(Temp_mea<Low) { Normal=1; Alarm_H=1; Alarm_L=0; Alarm_BEEP=1; } else { Normal=0; Alarm_H=1; Alarm_L=1; Alarm_BEEP=0; } } } 附录二:硬件设计原理图 附录三:程序仿真图 其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。 二.培训的及要求培训目的 安全生产目标责任书 为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标: 一、目标值: 1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。 2、现金安全保管,不发生盗窃事故。 3、每月足额提取安全生产费用,保障安全生产投入资金的到位。 4、安全培训合格率为100%。 二、本单位安全工作上必须做到以下内容: 1、对本单位的安全生产负直接领导责任,必须- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 温度 控制系统 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文