已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机控制的定时插座摘要装订线本文设计了一款基于STC89C52RC单片机控制的光敏定时插座,它可以通过人为设定时间和光照强度的强弱,实现自动通电和断电功能,从而达到节能的目的。硬件电路设计包括:单片机最小系统电路、电源稳压电路、1602液晶显示电路、独立式按键电路、温度控制电路、光敏电阻电路、继电器电路以及报警电路,设计原理主要利用DS1302时钟芯片和PCF8591芯片经A/D转换后在1602液晶上显示定时时间和光强大小,利用按键来选择工作模式和设定定时时间以及设定光照的阈值,当定时时间结束或光照强度小于设定光照阈值时,通过继电器的吸合作用来驱动插座的切断,红色发光二极管和蜂鸣器的状态来表示插座的工作状态。软件程序的设计包括:1602液晶显示程序、DS1302定时程序、AD转换程序,按键处理程序、蜂鸣器报警程序,在本文的最后对设计了硬件和软件部分,并进行了调试和制作,基于单片机控制的定时插座系统具有电路简单,可靠性高,定时准确等特点,基本满足设计要求。关键词:STC89C52;光敏;定时;插座ITHE TIMING SOCKET BASED ON SINGLE-CHIP MICROCOMPUTER ABSTRACTDesign a based on SCM STC89C52RC photosensitive regular outlet, by artificially setting time and the strength of the light intensity, it can achieve automatic power-on and power-off function, so as to achieve the purpose of energy saving. Hardware circuit design includes: the smallest single-chip system circuit, power regulator circuit, 1602 LCD circuit, an independent key circuit, temperature control circuit, the photoresistor circuit, the relay circuit and alarm circuit design principles mainly use the DS1302 clock chip and PCF8591 chip by A / D conversion timing in 1602 and two light levels, use keys to select the operating mode and set the timing and setting a threshold of light, when the time runs out or when the light intensity is less than the set light threshold,the state of the red light emitting diode and a buzzer to indicate the working status of the socket. Software design include: 1602 LCD procedures, DS1302 timer program, the AD conversion process, the key handler, the buzzer alarm program, at the end of this article on the final design of the hardware and software components in the design and commissioning and production , based on single-chip timing control socket system has a simple circuit, high reliability, and timing accuracy, basically meet the design requirements.Key words:STC89C52;photosensitive; Timing; Socket目录1绪论1.课题来源及意义1.定时插座发展趋势12定时插座系统设计2.设计方案的选择2.定时插座的工作过程23定时插座的硬件电路设计3.主控制器STC89C52RC4.定时插座的电源电路4.DS1302时钟电路5.DS18B20测温电路6.光强检测电路6.LCD1602显示电路7.报警电路8.继电器电路8.总体硬件电路及其工作原理94软件设计11.DS1302计时程序的编写12.A/D转换程序13.DS18B20程序初始化14.1602液晶显示程序165系统制作及调试18.硬件制作18.系统调试18.设计结果19.设计中存在的不足及其改进19参考文献20致谢21附录122附录2261绪论.课题来源及意义随着现代科学技术飞速发展,给电子产品市场带来了巨大市场机会和挑战,同时人们对电子产品的需求也越来越高。目前市场上出售的插座功能还比较单一,并不完全具备定时开启和关闭以及断电保护功能,长期通电会使家用电器电路老化,降低了电器的使用寿命,还容易漏电引发火灾,不能从根本上解决人们的需求。比如说长时间开着饮水机,这样不仅浪费了能源,而且长时间饮用多次烧过的热水会给身体带来非常严重疾病,通过使用定时插座,当家里没人时,可以关断饮水机,家里有人时,则让饮水机工作,这样不仅节约了能源,还可以保护饮水机的使用期限,也能让人们喝上更健康的水。其次,我们现在使用的手机,照相机等电子产品,如果长时间的给电池充电,这不仅缩短了电池的使用寿命,还有可能引起火灾,面对这样的难题,利用定时插座,将插头插在定时插座上,设定好定时时间,等电池充满电后,定时插座会自动停止工作,从而保护了电池。鉴于上述问题,研究定时插座,有着非常现实的意义,在无人监视的情况下,可以自动切断电源,这样不仅节约了电能,还消除了火灾隐患,使我们的生活更加智能化,因此,由单片机控制的定时插座控制系统,可以用于家用电器设备中。高精度、多功能、小体积、低功耗、智能化,是现代定时插座发展的趋势。本文简述了定时开关插座的硬件电路设计和软件设计的方法,设计出了定时插座的制定方案,它可以自动对家中一些需要在特定时间对电器进行自动断、通电控制,而不需要拔掉插头,减少电器的待机损耗,解决生活中的烦恼。.定时插座发展趋势单片机具有优异的性能性价比,集成度高、体积小、可靠性高,控制功能强,低电压、低功耗等特点,利用单片机技术来完善现有插座的功能,从根本上解决了传统电器启动的额定电流高,使传统电器易造成过热引起高温而加速绝缘老化、电压降过大而影响正常运转以及大的冲击力缩短设备的使用寿命等各种弊端。定时插座给生活带来许多的方便,减少因家中没人,用电设备长时间工作带来的隐患,定时插座可以通过人为设置好定时时间,定时时间一到,定时插座会自动切断电源,从根本上保护了用电电器,更节约了能源。定时插座是更加贴近实用、易用和人性化的智能家居概念,真正体现智能家居的价值,这也是现代科技价值的核心所在。定时插座在国内外已经成为生活中的一部分,智能插座还处于刚刚发展的阶段,然而现在市场上销售的定时插座绝大多数只具备简单的定时功能,不具备检测白天和黑夜以及温度过高自动保护等功能,本设计本着这一思想,在定时插座具有单一定时功能的基础上,又利用光敏电阻和温度控制,能够自动检测白天和黑夜,采用光敏电阻,对于道路上的路灯控制起到了非常重要的作用,其次当温度过高时,定时插座会自动断电,安全系数更高,从而使用电设备更加合理的得到充分的保护,更加节能。2定时插座系统设计本文设计一个基于STC89C52单片机控制的定时插座,设计要求:实现24小时之内任意时间段的定时,完成定时时间后,能自动切断电源,发出“嘀”的报警声,利用了光敏电阻器件和温度控制,可以用来检测白天和黑夜,随意选择两种模式之间的控制,温度过高自动保护等,从而更加方便和节能。.设计方案的选择对定时插座的研究与设计,具有很多的优越性。基于单片机控制的定时插座,再加上光敏和温度器件,电路设计简单,功能更加强大,时间控制精确度更高。采用STC89C52单片机,选择LCD1602液晶显示时间、温度及光照强度以及插座的工作状态,选择独立按键,方便的实现对定时时间和光照设定的调节,选择SONGLSRD-05VDC-SL-C继电器,在电路中起着自动调节、安全保护、转换电路等作用,实现小电压控制大电压的目的,使用光敏电阻,可以检测白天和黑夜,光敏电阻检测到当前环境的状态,反馈到单片机来控制继电器的闭合与断开。使用DS18B20温度计,可以提高定时插座的安全指标,防止出现温度过高或者火灾等危险,采用DS1302时钟芯片,更能准确的实现对时间的定时,采用5v蜂鸣器实现插座工作状态的提醒。系统的设计框图如图2-1所示。独立按键设置STC89C52RC 单片机DS1302定时电路模块1602液晶显示报警电路光敏控制电路继电器模块DS18B20温度控制电路模块电源插座12V直流电源三端稳压5V电源220V交流电源图2-1系统设计框图.定时插座的工作过程本设计是利用STC89C52RC单片机来实现,通过按键key1来选择控制模式,系统默认为时间模式,当key1按下时,系统选择光强度模式。当选择时间模式时,当按下key2时,可进行时间定时的时间段设置,再按下key3时,可进行时间调整的小时设计,再按下key3时,可进行时间调整的分钟设计,key4、key5是用来对时间的加减设定,把时间设定好之后,再按下key2键则恢复正常的时间和设定定时时间。当选择光强度模式时,系统可随光强度的强度进行变化,系统设置的光强度阈值为30,当光强度低于30时,则用电设备不工作。此系统也可以重新设定光强度阈值,按下key1键,按下key2键,再按key3键,用key4、key5对光强度重新设定阈值,把阈值设定好之后,再按下key2键则恢复正常的时间和光强度阈值。1602液晶显示定时时间和阈值,定时时间到,驱动继电器断开插座,达到切断的目的,同时液晶显示OFF,指示灯熄灭,蜂鸣器发出“嘀”的短暂报警声。3定时插座的硬件电路设计定时插座的核心器件是STC89C52单片机,硬件电路包括单片机最小系统电路、电源稳压电路、1602液晶显示电路、独立式按键电路、温度控制电路、光敏电阻电路、继电器电路以及报警电路,选择各部分电路来搭建一个完整的电路。.主控制器STC89C52RCSTC89C52RC具有8k字节的程序存储器,通过向其写入语言执行相应的功能。单片机的18和19引脚外接12M的晶振,构成时钟电路,机器周期为1us,C1和C2两个瓷片电容对振荡频率起微调的作用,EA端为高电平(Vcc端),CPU则执行内部程序储存器中的指令。单片机的9脚接复位电路,通过硬件复位,防止程序运行出错或者操作失误使系统处于死锁状态,由电源电路、时钟电路和复位电路构成了单片机的最小系统。单片机最小系统原理图如图3-1所示。图3-1单片机最小系统原理图.定时插座的电源电路电源是一个系统正常工作的基础,为系统的正常运行提供可靠的能源保证,因此电源模块的设计至关重要。本设计采用LM29401稳压芯片,LM2940是一款三端低压型稳压器,最大输出电流为1A,最大输入电压26V,能够输出5V电压以驱动单片机及系统的正常工作,其电路原理图如图3-2所示。图3-2电源电路.DS1302时钟电路本设计采用DS1302时钟芯片2实现计时。DS1302芯片是一款高性能时钟芯片,可自动对时间进行计数,而且精度高,工作电压在2.5V5.5V,采用这种专用时钟芯片可以更精确地实现定时插座的定时目的,定时准确又不占用太多系统资源。系统采取DS1302作为计时器,从而实现定时插座能在24小时内实现任意时间的可变定时。这样可以使得定时准确,方便,节约系统资源。X1和X2是振荡源,外接32.768KHz晶振,VCC1接干电池,作为后备电源。单片机P2口的高3位分别接时钟芯片的SCK(时钟输入端),IO(数据输入输出信号)和RST(复位/片选信号)通过把RST输入驱动置高电平来启动所有的数据传送,其电路原理图如图3-3所示。图3-3DS1302时钟电路.DS18B20测温电路DS18B204是一款先进的单总线数据通信的数字测温器件,工作电压范围在3.0V5.5V,可实现检测温度在-55C+125C范围内,具有线路简单,体积小的特点。单片机的P1.6口送入DS18B20的DQ(单数据总线),其电路原理图如图3-4所示。图3-4DS18B20测温电路.光强检测电路光敏电阻5又称光导管,通常制成薄片结构,以便吸收更多的光能,主要特性与参数包括光电流、亮电阻,暗电流、暗电阻,灵敏度,光谱响应,光照特性,伏安特性曲线,温度系数,额定功率。本设计采用的是光敏电阻,不同的光强对应着不同的电压,把它的电压接到AD芯片(PCF8591)【5】上,再配合计算程序,就可以测出光强。当外界光照低于设定的光照时,则插座停止工作。PCF8591是一款逐次逼近A/D转换器,具有4个模拟输入、1个模拟输出和1个串行IC总线接口,采样频率取决于I2C总线传输速率,本设计选取AIN0和AIN1通道,单片机P2.4和P2.3分别接芯片的SCL(I2C时钟线)和SDA(I2C数据线),模拟量AIN0和AIN1经采样保持器,经过逐次逼近A/D转换,输出数字信号,其电路原理图如图3-5所示。图3-5光强检测电路.LCD1602显示电路本设计采用的是LCD16026字符型液晶显示器。LCD液晶显示器是一种低功耗的显示器件,它不仅省电,而且能够显示大量的信息,LCD1602液晶可同时显示32个字符,内部含有的字符发生存储器里面存储160个不同的点阵字符图形,单片机P2.0接1602的第4脚RS(寄存器选择)高电平1时选择数据寄存器、低电平0时选择指令寄存器。P2.1接第5脚:RW(读写信号线)高电平1时进行读操作,低电平0时进行写操作。P2.2接第6脚:EN(使能端)。P0口控制1602液晶D0-D7的数据端,1602液晶的第3脚接1K的滑动变阻器,可以调节亮度,电路原理图如图3-6所示。 图3-6LCD1602显示电路.报警电路蜂鸣器是一种一体化结构的电子讯响器,本设计采用5V蜂鸣器作为报警设备,由单片机的P1.5口经三极管放大电流后控制蜂鸣器发出声音,当定时时间到或者光照小于阈值时,蜂鸣器发出短暂警报,告知插座已停止工作,其电路原理图如图3-7所示。图3-7报警电路.继电器电路继电器是一种电子控制器件,它是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用,实现小电压控制大电压的目的。本设计采用的是SONGLE SRD-05VDC-SL-C7继电器,主要是用于控制插座的开关状态,通过单片机P1.7输出信号控制继电器的工作已否从而达到控制插座开关的目的。为了防止倒流,电路中加入了光电耦合器4N258,4N25光耦是一种发光二极管与光电晶体管面对面得封装的单回路、内光路光电耦合器,开关的通断状态用一个红色LED灯显示插座的开关状态,当红灯亮时,插座处于工作状态,液晶上显示ON,反之则不工作。其电路原理图如图3-8所示。图3-8继电器电路.总体硬件电路及其工作原理整个定时插座系统由9V电源通过LM2940稳压模块输出5V电源供电,把插座的火线切断,将其两端接在线柱上,外接一个5V直流电机来表示插座的工作状态。系统可通过选择key1键选择工作模式,系统默认是时间模式,通过key2、key3、key4、key5四个独立式按键设置24小时内的任意时间内的定时,任意时间定时可以让定时插座在未设置的时间内停止,而设定的定时时间内正常工作,当定时时间到达之后,电机停止运行,红色指示灯熄灭,与此同时蜂鸣器发出报警声,液晶屏上显示OFF,则插座停止工作。当系统选择光模式时,通过key2、key3、key4、key5四个独立式按键设置0100之内光照强度的阈值,当光照低于所定阈值时,电机停止运行,红色指示灯熄灭,蜂鸣器发出报警声,液晶屏上显示OFF,则插座停止工作。电动机的运行速度会随着光照强度的变化而变化,光照越强,运行速度越快,反之。系统的整体电路如附录2的电路原理图所示,单片机由5V电源输入,开机时各模块分别初始化,开始工作,插座的工作与否由继电器控制。单片机从DS13029模块中读取计时参数,在LCD1602液晶上显示,开始时继电器电路不工作,红色指示灯不亮,蜂鸣器也不响。当单片机检测到独立按键设定定时时间后,单片机发出开启信号让继电器电路开始工作,同时红色指示灯亮,电动机开始运行,等定时时间到达后,单片机发出一个关闭信号让继电器停止工作,红色指示灯熄灭,同时蜂鸣器发出短暂“嘀”的一声,电动机停止运行。当独立按键选择光模式控制时,单片机立刻发出开启信号给继电器电路,让继电器工作,指示灯亮,电动机开始运行,当光照小于设定的光照阈值时,单片机发出关闭信号给继电器,关闭继电器,从而达到关闭插座的目的。整体电路的实物如图3-9所示。图3-9整体电路实物 4软件设计本系统采用C语言进行编程,采用模块化结构设计,用Keil10软件进行编译,STCISP软件进行下载。软件设计部分包括1602液晶显示程序、DS1302定时程序、A/D转换程序,按键处理程序、蜂鸣器报警程序。图4-1为主程序的流程图。开始系统初始化模式选择定时模式光模式执行定时程序YN是否小于光照阈值是否到达定时时间NYY报警停止图4-1主程序的流程图 主程序#include unsigned int pattern=1; /模式指针unsigned char mode=1;void main(void)Lcd_Init(); /初始化液晶 ds18b20_init(); /初始化ds18b20read_rtc(); /读取时间while(1) /进入大循环switch(pattern) /判断处于那种模式 case 1: /时间控制插座模式read_rtc(); /读取时间 time_display(); /在液晶上显示当前时间temperature_display(); /温度测量及显示time_control(); /根据设定时间来控制插座的开关 并显示到液晶上设定的时间段 和当前插座的状态 if(key_scan(1) /检测第一个按键是否按下pattern=2; /若第一个按键按下则切换到光强控制模式 Write_Com(0x01); /液晶清屏.DS1302计时程序的编写DS130211串行时钟芯片的主要组成部分:移位寄存器控制逻辑、振荡器、实时时钟以及RAM。为了初始化任何的数据传送,把RST置为高电平,在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。DS1302的读写时序如图4-2所示。图4-2DS1302的读写时序图读写程序如下:/*对1302某一确定地址的写操作*/static void write_ds1302(unsigned char add,unsigned char dat)rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);write_ds1302_byte(dat);rst=0;_nop_();io=1;sck=1;/*对1302某一固定地址的读操作*/static unsigned char read_ds1302(unsigned char add)unsigned char i,value;rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);.A/D转换程序光敏电阻采来的模拟量经PCF859112逐次逼近A/D转换之后输入到单片机内部,进行数字量输出,程序如下:sbit SCL=P24; sbit SDA=P23; #define AddWr 0x90 /写数据地址#define AddRd 0x91 /读数据地址#define adCon 0x40 /AD控制字节unsigned char light_uth=30;/*IIC通信协议的几个子函数*/static void delay(unsigned int cnt)while(-cnt);static unsigned char recive(void)unsigned char i=0; unsigned char temp=0;SDA_SET;/必须设置 for(i=0; i8; i+) SCL_CLR;/拉低允许数据改变 delay(1); SCL_SET;/拉高保持数据,等待读走 delay(2); if(SDA) temp|=0x01; else temp&=0xfe; if(i7) temp=1;/最低位发送完成不能移位,否则出错 SCL_CLR; return temp;.DS18B20程序初始化由于采用单总线数据传输方式,DS18B2013的数据I/O均由同一条线完成,因此,对读写的操作时序要求严格。初始化如图4-3所示。图4-3初始化时序图写时序包括写0时序和写1时序。所有写时序都至少需要60微秒的时间,且在两次写时序之间至少需要1微秒的恢复时间,两种写时序都起始于主机拉低总线时。写“0”时序:主机输出低电平,然后延时60微秒,释放总线;写“1”时序:主机输出低电平,延时至少1微秒,然后释放总线。读时序同样包括读“0”时序和读“1”时序。温度传感器在主机发出读时序时,才能向主机传输数据,故在主机发出读指令后,必须立即产生读时序,以便能传输数据。所有读时序都至少需要60微秒的时间,且在两次读时序之间至少需要1微秒的恢复时间,两种读时序也都起始于主机拉低总线时。图4-4DS18B20读/写时序图程序如下:void ds18b20_init(void)/初始化unsigned char n;DQ=1;delay(8);DQ=0;delay(60);DQ=1;delay(8);n=DQ; delay(4);unsigned char readtemprature(void) /读取当前温度值unsigned int a,b;ds18b20_init(); /初始化write_byte(0xcc); /跳过ROMwrite_byte(0x44); /启动温度测量delay(300); /等待检测完成ds18b20_init(); /初始化write_byte(0xcc); /跳过ROMwrite_byte(0xbe); /读取温度a=read_byte(); /读第0个寄存器写读取温度指令后可以连续(自动按照顺序)读取0-8九个寄存器 18B20共九个寄存器 第0个和第1个是温度的高位和低位 所以可以读两个就是其温度值b=read_byte(); /读第1个寄存器b4; /两个寄存器的整合return b; /返回温度值.1602液晶显示程序1602液晶主要是显示从DS130214读取的时钟数值和经A/D转换后的光照值,同时当检测到按键有键按下时,显示相应的设置等。基本操作时序:读状态:输入:RS=L,RW=H,E=H 输出:DOD7=状态字写状态:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:无读数据:输入:RS=H,RW=H,E=H 输出:DOD7=数据写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无图4-4为LCD1602的具体读写时序。 读操作时序写操作时序图4-4LCD1602的具体读写时序 程序初始化如下:include lcd_1602.hsbit lcden=P22;sbit lcdrs=P20;sbit lcdrw=P21;void Write_Date(unsigned char date) /液晶写数据 lcdrs=1; P0=date; Delay_ms(5); lcden=1; Delay_ms(5); lcden=0;void Lcd_Init(void) /液晶初始化lcden=0;lcdrw=0;Write_Com(0x38); /8位数据接口 两行显示Write_Com(0x0c); /开显示,关光标Write_Com(0x06); /读,写操作后AC自动加1Write_Com(0x01); /清屏5系统制作及调试.硬件制作本设计利用Protell9915软件将各个模块电路原理图画好,利用相同的网络编号将单片机最小系统、液晶电路、继电器外围电路、温度传感器电路,A/D转换电路,时钟电路及键盘电路与单片机连接起来,然后对原理图进行仿真,仿真无误后生成网络表后装载到PCB环境中生成需要的PCB,然后手动布线,完成最终的PCB设计。PCB图如图5-1所示。图5-1PCB 为了确保电路图的正确性,首先在万用板上焊接好各部分电路,并接上插座后对其进行验证,将各部分电路测试无误后,证明本电路能正常工作,然后打印已绘制好的PCB、转印到铜板上、用双氧水稀释浓盐酸腐蚀、钻孔,按照元器件的形状焊接到板子上,既完成了定时插座硬件电路板的设计。.系统调试用数字万用表检测焊好的电路板,检查电路板、元器件之间是否有短路的地方,电路板检查完后,即可进入软件编程的调试。利用C语言进行编程,Keil软件编译,STCISP软件进行下载。由于设计用到的模块较多,采取程序模块化的方法来编写程序,将分模块的程序写好之后先在板上编译仿真,将各模块测试好之后,在编写主程序,在主程序中分别调用各个模块,从而实现所要的功能。.设计结果 本文所设计的定时插座已经可以实现定时模式控制和光照模式控制两种模式的切换。该定时插座可以控制一路220V/10A的插座,可以设置任意一种模式的控制,当定时插座处于工作状态时,红色指示灯亮,定时插座不工作时指示灯熄灭。当定时时间结束或光照低于光强阈值时,蜂鸣器发出短暂的“嘀”的一声,指示灯熄灭,用来提示插座停止工作。.设计中存在的不足及其改进本次设计的定时插座虽然可以实现定时控制一路插座的功能,现实生活中,随着人们的生活水平不断的提高,家电等用电器具越来越多,单一的一路控制明显不能满足要求。因而,如果在设计时多加入几路的插座控制,而且各路控制互不干扰,用户只需要将要定时控制的用电器具都插在定时插座上,通过各自的定时设置,就可以使各电器按照人们的习惯有规律地工作,很大程度上方便人们的日常生活。如果再加上红外装置,甚至是自动语音提示功能,使人们能在其他地方对插座进行控制,会让定时插座变得更加人性化,实用性也更高。参考文献1胡伟,季晓衡单片机C语言设计及应用实例.北京:人民邮电出版社,20032李华,MCS-51系列单片机使用接口技术. 北京:北京航空航天大学出版社,20013李正军.计算机测控系统设计及应用.北京:机械工业出版社,2004 4何立民. MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航空航天大学 出版社,19905张洪润.单片机应用技术教程.北京:清华大学出版社,19976夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社,20017徐惠民,安德宁单片微型计算机原理接口与应用北京:北京邮电大学出版社,20008李叶紫. MCS-51单片机应用教程.北京:清华大学出版社,20049曹建树,夏云生,曾林春.51单片机实用教程.中国石化出版,2008 10 江思敏,姚鹏翼,胡荣.Protell电路设计教程.清华大学出版社,200211 张伟Protell99se基础教程.北京:人民邮电出版社,201012 童诗白模拟电子技术基础(第四版).高等教育出版社,200613 谭浩强C程序设计(第三版).清华大学出版社,200514 郭天祥51单片机C语言教程.电子工业出版社,200915 边海龙,孙永奎. 单片机开发与典型工程项目实例详解.电子工业出版社,2008致谢本毕业设计是在孙老师悉心的关怀与指导下,使我的毕业设计能够顺利完成,导师渊博的学识、严谨的治学态度、丰富的实践经验和高尚的人格都深深的影响着我,并将永远激励我在以后的工作学习中不断奋斗。在此,向孙老师致以我最真挚的感谢!在设计过程中,感觉到了自己知识的匮乏,通过自己的学习和探索,以及老师的细心指导,将困难一点点的克服,完成了最终的毕业设计,我相信这次设计的经验将是我步入社会的最宝贵经验。通过这次设计,不仅是对我们所学知识的一个汇总,同时也是考验我们学习能力和动手能力的一个平台,更培养了我们一种遇到困难不放弃的态度,坚持不懈的拼搏精神,这些在我以后的工作和生活中都是一笔宝贵的财富。最后感谢四年来教导过我的老师及一起学习生活的同学们,谢谢你们四年来的关照与帮助,非常高兴能与你们一起走过大学的缤纷时代,这将会是我一生中最珍贵、最美好的回忆!附录1主程序#include #include lcd_1602.h#include PCF8591.h#include DS1302.h #include ds18b20.h#include key.hunsigned int pattern=1; /模式指针unsigned char mode=1;void main(void)Lcd_Init(); /初始化液晶 ds18b20_init(); /初始化ds18b20/set_rtc(); /设定时间 read_rtc(); /读取时间while(1) /进入大循环switch(pattern) /判断处于那种模式 case 1: /时间控制插座模式read_rtc(); /读取时间 time_display(); /在液晶上显示当前时间temperature_display(); /温度测量及显示time_control(); /根据设定时间来控制插座的开关 并显示到液晶上设定的时间段 和当前插座的状态 if(key_scan(1) /检测第一个按键是否按下pattern=2; /若第一个按键按下则切换到光强控制模式 Write_Com(0x01); /液晶清屏if(key_scan(2) /检测第二个键是否按下 pattern=3; /若按下则切换到设置插座工作时间段的模式 Write_Com(0x01); /清屏break;case 2: /光照强度控制插座的模式 light_display(); /测量光照强度并显示(0-100)temperature_display(); /温度测量并显示relays_control(); /根据设定的阈值来控制 显示当前的阈值和当前插座工作状态if(key_scan(1) /检测第一个按键是否按下pattern=1; /第一个按键按下则切换到时间控制插座的模式 Write_Com(0x01); /清屏if(key_scan(2) /检测第二个按键是否按下 pattern=4; /若第二个按键按下 则切换到调整光照阈值的模式Write_Com(0x01); /清屏break;case 3: /调整控制时间段的模式time_uth_adjust(); /调整控制的时间段并显示在屏幕上if(key_scan(2) /检测第二个按键是否按下pattern=1; /若按下则保存当前调整好的时间段并切换到时间控制插座工作状态的模式mode=0; /一个变量 用于标记当前正在调整的是哪个时间元素 跳出该模式时清零以保证下次调整时从第一个元素开始 Write_Com(0x01); /清屏break;液晶lcd_1602.h#include lcd_1602.hsbit lcden=P22;sbit lcdrs=P20;sbit lcdrw=P21;static void Delay_ms(unsigned int z) unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-);void Lcd_Init(void) /液晶初始化lcden=0;lcdrw=0;Write_Com(0x38); /8位数据接口 两行显示Write_Com(0x0c); /开显示,关光标Write_Com(0x06); /读,写操作后AC自动加1Write_Com(0x01); /清屏A/D转换程序 #include PCF8591.hsbit SCL=P24; sbit SDA=P23; sbit beep=P15; #define SCL_SET SCL=1#define SCL_CLR SCL=0#define SDA_SET SDA=1#define SDA_CLR SDA=0#define AddWr 0x90 /写数据地址#define AddRd 0x91 /读数据地址#define adCon 0x40 /AD控制字节unsigned char light_uth=30;unsigned char light_flag_old,light_flag_new; unsigned char i=0; unsigned char temp=0;temp=Data;/*AD测试光照强度并归一化到0-100 显示在液晶上*/void light_display(void)unsigned char light;light=256-read(4);light/=2.56;Write
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年实验室室内质控培训课件
- 2026 年粮食生产来之不易科普教育课件
- 2026 年怀揣青春理想奋力逐梦前行课件
- 2026 年端午香囊习俗传统医药小知识课件
- 医院感染防控知识全员考核试题及答案
- mmdx考试拔高试题及答案讲解
- 原液准备浸渍操作工风险评估与管理考核试卷含答案
- 影视评论重要试题和全解答案
- 自控仪表测验题及详细答案
- 农机修理工达标强化考核试卷含答案
- 第一单元 确定位置(单元自测提高卷)-2026人教版六年级数学上册(A4版)
- 2026博乐市招聘社区工作者笔试备考试题及答案详解
- 2026广东粤财基金管理有限公司招聘15人笔试备考试题及答案详解
- GJB573B-2020 引信及引信零部件环境与性能试验方法
- 谜语知识讲解(优秀教学课件)-人教版
- 功能高分子课件第一章
- (中职)电工技术基础与技能(第2版)项目五 磁场及电磁感应的认知电子课件()
- NB/T 10731-2021煤矿井下防水密闭墙设计施工及验收规范
- GB/T 9145-2003普通螺纹中等精度、优选系列的极限尺寸
- GB/T 22717-2008电机磁极线圈及磁场绕组匝间绝缘试验规范
- GB/T 18400.7-2010加工中心检验条件第7部分:精加工试件精度检验
评论
0/150
提交评论