欢迎来到天天文库
浏览记录
ID:43411761
大小:1.60 MB
页数:14页
时间:2019-10-01
《单片机实验--恒温冰箱》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、迷你恒温冰箱一课程设计目的1通过对本课程的设计加深对AVR单片机的认识、了解以及掌握2、掌握JETC串口进行数据传输的应用,并学会使用外部芯片辅助项目设计。3加深对硬件电路的了解以及掌握,掌握对模数转换部分以及对中断部分的应用。4、通过此次课程设计将单片机软硬件结合起来对程序进行编辑,校验,锻炼实践能力和理论联系实际的能力。5培养团队意识,锻炼分工合作以及协调能力。二设计原理利用DS18B20芯片实现温度探测和温度信号输入,利用3个七段数码管显示温度。当温度高于临界温度15°时,单片机则输出信号,通过继电器控制半导体制冷片及风扇工作,使冰箱实现制冷功能。三用途
2、与功能1、利用DS18B20芯片实现温度探测和温度信号输入,显示室内温度,并随室内温度变化而变化。2、利用3个七段数码管显示温度,温度精确度为0.5。3、当外界温度高于15度时,利用单片机输出信号,通过继电器控制半导体制冷片及风扇工作,使冰箱实现制冷功能。4、制冷片不工作即冰箱不工作时绿灯亮,工作时红灯亮。四设计功能模块迷你恒温冰箱的功能主要有4个模块构成:探测模块,显示模块,主控模块以及制冷驱动模块。设计功能模块图及各功能模块分析:3、七段数码管显示模块4、半导体制冷片和散热风扇继电器1、主控模块(ATMEGA16单片机)2、DS18B20温度探测芯片设计功
3、能模块图1探测模块对于温度传感器,理想情况下应该能够随时高效地感应到所在整个空间内的温度变化。鉴于性价比高的考虑,我们选择了DS18B20作为本系统中的温度传感器。DS18B20是DALLAS半导体器件公司生产的可编程一线数字温度传感器芯片,它仅用一线就可完成与单片微控制器的硬件接口,具有使用简单方便、分辨率高的优点。2显示模块我们使用3位共阴7段数码管输出温度数据,因测量温度精确到0.5°2.3主控模块我们直接选用Atmel公司的ATmaga16L单片机作为主控模块。Mega16是高性能、低功耗的8位AVR微处理器,具有先进的RISC结构,内部集成两个具有独
4、立预分频器和比较器功能的8位定时器/计数器和一个具有预分频器、比较功能和捕捉功能的16位定时器计数器。可通过JTAG对MCU进行程序烧写及仿真。内置晶振,使用方便。2.4制冷驱动模块我们选用的是TEC12705半导体制冷片,通过5腿继电器控制其工作。四电路设计图六程序流程图大于15度小于15度开始模块初始化DS18B20芯片探测温度传入MCU计算判断发出指令发出指令绿灯亮显示温度红灯亮显示温度冰箱工作七程序代码#include#includeunsignedchards1820_reset(void);unsignedi
5、ntds1820_read_temp(void);flashunsignedcharled_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};flashunsignedcharposition[4]={0x0E,0x0D,0x0B,0x07};//初始化中断intled_buf[4];unsignedcharpoist=0;#defineDQ_INDDRA&=~(1<6、=(1<7、A&=~(1<8、=(1<9、reset(void){unsignedchari;flag=SREG;/*中断保护*/CLI();/*关闭中断*/DQ_OUT;DQ_CLR;delay_10us(49);/*延时500uS(480-960)*/DQ_SET;DQ_IN;delay_10us(7);/*延时80uS*/i=DQ_R;delay_10us(49);/*延时500uS(保持>480uS)*/if(flag&0x80){/*恢复中断*/SEI();}if(i){return0x00;}else{return0x01;}}/*DS18B20读取函数*/unsignedchards1810、20_read_byte(void){
6、=(1<7、A&=~(1<8、=(1<9、reset(void){unsignedchari;flag=SREG;/*中断保护*/CLI();/*关闭中断*/DQ_OUT;DQ_CLR;delay_10us(49);/*延时500uS(480-960)*/DQ_SET;DQ_IN;delay_10us(7);/*延时80uS*/i=DQ_R;delay_10us(49);/*延时500uS(保持>480uS)*/if(flag&0x80){/*恢复中断*/SEI();}if(i){return0x00;}else{return0x01;}}/*DS18B20读取函数*/unsignedchards1810、20_read_byte(void){
7、A&=~(1<8、=(1<9、reset(void){unsignedchari;flag=SREG;/*中断保护*/CLI();/*关闭中断*/DQ_OUT;DQ_CLR;delay_10us(49);/*延时500uS(480-960)*/DQ_SET;DQ_IN;delay_10us(7);/*延时80uS*/i=DQ_R;delay_10us(49);/*延时500uS(保持>480uS)*/if(flag&0x80){/*恢复中断*/SEI();}if(i){return0x00;}else{return0x01;}}/*DS18B20读取函数*/unsignedchards1810、20_read_byte(void){
8、=(1<9、reset(void){unsignedchari;flag=SREG;/*中断保护*/CLI();/*关闭中断*/DQ_OUT;DQ_CLR;delay_10us(49);/*延时500uS(480-960)*/DQ_SET;DQ_IN;delay_10us(7);/*延时80uS*/i=DQ_R;delay_10us(49);/*延时500uS(保持>480uS)*/if(flag&0x80){/*恢复中断*/SEI();}if(i){return0x00;}else{return0x01;}}/*DS18B20读取函数*/unsignedchards1810、20_read_byte(void){
9、reset(void){unsignedchari;flag=SREG;/*中断保护*/CLI();/*关闭中断*/DQ_OUT;DQ_CLR;delay_10us(49);/*延时500uS(480-960)*/DQ_SET;DQ_IN;delay_10us(7);/*延时80uS*/i=DQ_R;delay_10us(49);/*延时500uS(保持>480uS)*/if(flag&0x80){/*恢复中断*/SEI();}if(i){return0x00;}else{return0x01;}}/*DS18B20读取函数*/unsignedchards18
10、20_read_byte(void){
此文档下载收益归作者所有