历史上的今天
返回首页

历史上的今天

今天是:2024年12月29日(星期日)

2021年12月29日 | 单片机做的半导体智能制冷小冰箱

2021-12-29 来源:eefocus

前几天一个朋友对我说,马上要过年了

准备买点年货放冰箱,正好我最近不太忙,便想着做一个小冰箱玩玩

废话不多说,先介绍器材

器材:一个电源模块,220v转12v,6A。以及一个封装好的制冷器,元件清单都在原理图上可以看出来,继电器用的是继电器模块。


防水型的18B20,继电器模块,12c887时间芯片,12864液晶屏,蜂鸣器,89c58单片机芯片,接线子,什么开关,按键,电阻电容的你也应该知道的,就是一个单片机模块。。这些就是控制板的元件了,然后你还要去淘宝上买制冷器和制冷器血药的配套的电源模块。。然后你就可以自己DAY一个小冰箱了。。


先上实物图,整个过程需要自己亲力亲为,虽然有点麻烦,但是里面还是有很大乐趣的

这是控制系统板子散件

在这里插入图片描述

焊接好的控制板

在这里插入图片描述

连接好的整个系统

在这里插入图片描述

下图这些显示都是可以实现的功能。。

在这里插入图片描述
在这里插入图片描述

这是一个定时关闭的功能

在这里插入图片描述

时间设置及其他功能

在这里插入图片描述
在这里插入图片描述

最低温度你们看吧!这个小冰箱实际测试结果我还是挺满意的,可以喝冰镇啤酒饮料,这几实验基本成功。

在这里插入图片描述

搭的系统有点丑,我下次有时间再改进一下,因为都是模块搭的,所以就不过多啰嗦了,


89c58单片机C语言参考代码如下:


#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit ds=P2^2;

sbit rs=P3^5;

sbit rw=P3^6;

sbit en=P3^4;

sbit psb=P3^7;

sbit feng=P2^0;

sbit dscs=P1^4;

sbit dsas=P1^5;

sbit dsrw=P1^6;

sbit dsds=P1^7;

sbit dsirq=P3^3;

sbit jidianqi=P2^3;

bit flag1,flag_ri;

sbit xuanzhe=P1^0;

sbit queding=P1^1;

sbit fanhui=P1^2;

sbit tiaozheng=P1^3;

sbit zengjia=P3^0;

sbit jianxiao=P3^1;

uint temp;

int x1,x3;

uchar flog1,flog,count,count1,acount1,count2,acount2,s1num,flag,t0_num,ff,xh,xh1,xh2,xw,xw1,xw2,xx,xt,axt,xt1,axt1,hh,ahh;

char miao,shi,fen,year,month,day,week,amiao,afen,ashi;

float f_temp;

uchar code table00[]={" 系统初始化… “};

uchar code table01[]={” 以关闭"};

uchar code table02[]={" 以开启"};


uchar code table0_0[]={“电气与”};

uchar code table0_1[]={" 信息工程学院"};

uchar code table0_2[]={"–电气1302唐小旺"};

uchar code table0_3[]={" 湖南工学院 "};


uchar code table11[]={“2015年00月00日”};

uchar code table12[]={" “};

uchar code table13[]={” 00: 00: 00"};

uchar code table14[]={“当前温度:”};


uchar code table1[]={“菜 1:温度调节”};

uchar code table2[]={“单 2:定时关闭”};

uchar code table3[]={“1 3:报警温度调”};

uchar code table4[]={" 4:时间调节"};

uchar code table5[]={“菜 5:闹钟调节”};

uchar code table6[]={“单 6:小小游戏”};

uchar code table7[]={“2 7:小小说明”};

uchar code table8[]={"–在按选择键返回"};


uchar code table1_1[]={“设置温度:”};

uchar code table1_2[]={" 00"};

uchar code table1_3[]={""};

uchar code table1_4[]={""};

uchar code table1_5[]={" 设置成功"};

uchar code table1_6[]={""};

uchar code table1_7[]={""};

uchar code table1_8[]={""};


uchar code table2_1[]={“设置定时开关:”};

uchar code table2_2[]={" 1:开启定时关闭"};

uchar code table2_3[]={" 2:关闭定时关闭"};

uchar code table2_4[]={"~~~~~~~~~~~~~~~~"};

uchar code table2_5[]={“设置时间:”};

uchar code table2_6[]={" 00: 00: 00"};

uchar code table2_7[]={""};

uchar code table2_8[]={" 设置成功"};

uchar code table2_9[]={“正在计时关闭中”};

uchar code table2_a[]={""};

uchar code table2_b[]={""};

uchar code table2_c[]={" 设置成功"};

uchar code table2_d[]={“以关闭定时关闭”};

uchar code table2_e[]={""};


uchar code table3_1[]={“设置报警温度:”};

uchar code table3_2[]={" 00"};

uchar code table3_3[]={""};

uchar code table3_4[]={""};

uchar code table3_5[]={" 设置成功"};

uchar code table3_6[]={" 滴滴滴滴"};

uchar code table3_7[]={“定时炸弹即将爆炸”};


uchar code table4_1[]={“设置时间:”};

uchar code table4_2[]={“2015年03月22日”};

uchar code table4_3[]={" Sun “};

uchar code table4_4[]={” 00: 00: 00 “};

uchar code table4_5[]={” 设置成功"};

uchar code table4_6[]={“春天到了!”};

uchar code table4_7[]={“I am coming”};

uchar code table4_8[]={" 师院"};


uchar code table5_1[]={“设置闹钟:”};

uchar code table5_2[]={" 1:开启闹钟"};

uchar code table5_3[]={" 2:关闭闹钟"};

uchar code table5_4[]={" 00: 00: 00 “};

uchar code table5_7[]={” 设置成功"};

uchar code table5_8[]={" 小鸡小鸡"};

uchar code table5_9[]={“小鸡小鸡咕咕day”};

uchar code table5_a[]={"(咦,我的闹铃)~~"};

uchar code table5_5[]={“设置时间:”};

uchar code table5_6[]={" 00: 00: 00"};

uchar code table5_b[]={""};

uchar code table5_c[]={" 设置成功"};

uchar code table5_d[]={“闹钟以关闭”};

uchar code table5_e[]={""};


uchar code table6_1[]={" 咦!!!"};

uchar code table6_2[]={" 游戏捏?"};


uchar code table7_1[]={“小慧是傻逼”};

uchar code table7_2[]={" 小慧是傻逼"};

uchar code table7_3[]={" 小慧是傻逼"};

uchar code table7_4[]={" 小慧是傻逼"};

uchar code table7_5[]={“当前温度:”};

uchar code table7_6[]={" --’f i e r c e’"};

uchar code table7_7[]={" no way!!"};

uchar code table7_8[]={" 谢谢合作"};


void delay(uint z)

{

uint x,y;

for(x=z;x>0;x–)

for(y=110;y>0;y–);

}


void di()

{

feng=0;

delay(100);

feng=1;

}


void write_com(uchar com)

{

rs=0;

rw=0;

en=0;

P0=com;

delay(5);

en=1;

delay(5);

en=0;

}


void write_dat(uchar dat)

{

rs=1;

rw=0;

en=0;

P0=dat;

delay(5);

en=1;

delay(5);

en=0;

}


void dsreset(void)

{

uint i;

ds=0;

i=103;

while(i>0)i–;

ds=1;

i=4;

while(i>0)i–;

}


bit tempreadbit(void)

{

uint i;

bit dat;

ds=0;i++;

ds=1;i++;i++;

dat=ds;

i=8;while(i>0)i–;

return(dat);

}


uchar tempread(void)

{

uchar i,j,dat;

dat=0;

for(i=1;i<=8;i++)

{

j=tempreadbit();

dat=(j<<7)|(dat>>1);


}

return(dat);

}


void tempwritebyte(uchar dat)

{

uint i;

uchar j;

bit testb;

for(j=0;j<8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb)

{

ds=0;

i++;i++;

ds=1;

i=8;

while(i>0)i–;

}

else

{

ds=0;

i=8;

while(i>0)i–;

ds=1;

i++;

i++;

}

}

}


void tempchang(void)

{

dsreset();

delay(1);

tempwritebyte(0xcc);

tempwritebyte(0x44);

}

uint get_temp()

{

uchar a,b;

dsreset();

delay(1);

tempwritebyte(0xcc);

tempwritebyte(0xbe);

a=tempread();

b=tempread();

temp=b;

temp<<=8;

temp=temp|a;

f_temp=temp0.0625;

temp=f_temp10+0.5;

f_temp=f_temp+0.05;

return temp;

}


void write_ds(uchar add,uchar dat)

{

dscs=0;

dsas=1;

dsds=1;

dsrw=1;

P0=add;

dsas=0;

dsrw=0;

P0=dat;

dsrw=1;

dsas=1;

dscs=1;

}


uchar read_ds(uchar add)

{

uchar ds_date;

dsas=1;

dsds=1;

dsrw=1;

dscs=0;

P0=add;

dsas=0;

dsds=0;

P0=0xff;

ds_date=P0;

dsds=1;

dsas=1;

dscs=1;

return ds_date;

}


/*void set_time()

{

write_ds(0,0);

write_ds(1,0);

write_ds(2,0);

write_ds(3,0);

write_ds(4,0);

write_ds(5,0);

write_ds(6,0);

write_ds(7,0);

write_ds(8,0);

write_ds(9,0);

} */


void init1()

{

EA=1;

EX1=1;

IT1=1;

t0_num=0;

s1num=0;

week=1;

// write_ds(0x0A,0x20);

// write_ds(0x0B,0x26);

// set_time();

}


void sfm_(uchar add,char dat)

{

uchar si,ge;

si=dat/10;

ge=dat%10;

write_com(add);

write_dat(0x30+si);

write_dat(0x30+ge);

}


void asfm_(uchar add,char dat)

{

uchar si,ge;

si=dat/10;

ge=dat%10;

write_com(add);

write_dat(0x30+si);

write_dat(0x30+ge);

}


void week_(uchar add,char week)

{

write_com(add);

if(week0)

{

write_dat(0x4D);

write_dat(0x6F);

write_dat(0x6E);

write_dat(0x20);

}

if(week1)

{

write_dat(0x54);

write_dat(0x75);

write_dat(0x65);

write_dat(0x73);


}

if(week2)

{

write_dat(0x57);

write_dat(0x65);

write_dat(0x64);

write_dat(0x20);

}

if(week3)

{

write_dat(0x54);

write_dat(0x68);

write_dat(0x75);

write_dat(0x72);

}

if(week4)

{

write_dat(0x46);

write_dat(0x72);

write_dat(0x69);

write_dat(0x20);

}

if(week5)

{

write_dat(0x53);

write_dat(0x61);

write_dat(0x74);


}

if(week==6)

{

write_dat(0x53);

write_dat(0x75);

write_dat(0x6E);

write_dat(0x20);

}

}


void nyr_(uchar add,char dat)

{

uchar si,ge;

si=dat/10;

ge=dat%10;

write_com(add);

write_dat(0x30+si);

write_dat(0x30+ge);

}


void tx(uchar add,uint dat)

{

uchar shi,ge,xs;

shi=(dat)/100;

ge=(dat)%100/10;

xs=(dat)%100%10;

write_com(0x98+add);

write_dat(0x30+shi);

write_dat(0x30+ge);

write_dat(0x2e);

write_dat(0x30+xs);

write_com(0x9f);

write_dat(0xA1);

write_dat(0xE6);

}


void x1_(int x1)

{

uchar si,ge;


si=x1/10;

ge=x1%10;

write_com(0x93);

write_dat(0x30+si);

write_dat(0x30+ge);

}


void x3_(int x3)

{

uchar si,ge;


si=x3/10;

ge=x3%10;

write_com(0x93);

write_dat(0x30+si);

write_dat(0x30+ge);

}


void lcd_init()

{

uchar i;

psb=1;

write_com(0x30);

delay(5);

write_com(0x0c);

delay(5);

write_com(0x01);

delay(5);

write_com(0x90);

i=0;

while(table00[i]!=’’)

{

write_dat(table00[i]);

i++;

}

delay(700);

write_com(0x01);

delay(500);

write_com(0x90);

i=0;

while(table00[i]!=’’)

{

write_dat(table00[i]);

i++;

}

delay(700);

write_com(0x01);

delay(500);

write_com(0x90);

i=0;

while(table00[i]!=’’)

{

write_dat(table00[i]);

i++;

}

delay(700);

write_com(0x01);

delay(500);

write_com(0x90);

i=0;

while(table0_3[i]!=’’)

{

write_dat(table0_3[i]);

i++;

delay(100);

}

delay(700);

write_com(0x01);

write_com(0x90);

i=0;

while(table0_0[i]!=’’)

{

write_dat(table0_0[i]);

i++;

delay(50);

}

write_com(0x88);

i=0;

while(table0_1[i]!=’’)

{

write_dat(table0_1[i]);

i++;

delay(50);

}

write_com(0x98);

i=0;

while(table0_2[i]!=’’)

{

write_dat(table0_2[i]);

i++;

delay(50);

}

delay(700);

write_com(0x01);

write_com(0x80);

i=0;

while(table11[i]!=’’)

{

write_dat(table11[i]);

i++;

}

write_com(0x90);


i=0;

while(table12[i]!=’’)

{

write_dat(table12[i]);

i++;

}

write_com(0x88);

i=0;

while(table13[i]!=’’)

{

write_dat(table13[i]);

i++;

}

write_com(0x98);

i=0;

while(table14[i]!=’’)

{

write_dat(table14[i]);

i++;

}

ff=1;

}


void xuanzhe_()

{

uchar i;

if((xuanzhe0)&&(flog10))

{

delay(10);

if(xuanzhe0)

{

while(!xuanzhe);

count++;

ff=0;

di();

if(count1)

{

flog=1;

write_com(0x01);

write_com(0x80);

i=0;

while(table1[i]!=’’)

{

write_dat(table1[i]);

i++;

}

write_com(0x81);

write_dat(0x02);

write_com(0x90);

i=0;

while(table2[i]!=’’)

{

write_dat(table2[i]);

i++;

}

write_com(0x88);

i=0;

while(table3[i]!=’’)

{

write_dat(table3[i]);

i++;

}

write_com(0x98);

i=0;

while(table4[i]!=’’)

{

write_dat(table4[i]);

i++;

}

}

if(count2)

{

flog=2;

write_com(0x01);

write_com(0x80);

i=0;

while(table1[i]!=’’)

{

write_dat(table1[i]);

i++;

}

write_com(0x90);

i=0;

while(table2[i]!=’’)

{

write_dat(table2[i]);

i++;

}

write_com(0x91);

write_dat(0x02);

write_com(0x88);

i=0;

while(table3[i]!=’’)

{

write_dat(table3[i]);

i++;

}

write_com(0x98);

i=0;

while(table4[i]!=’’)

{

write_dat(table4[i]);

i++;

}

}

if(count3)

{

flog=3;

write_com(0x01);

write_com(0x80);

i=0;

while(table1[i]!=’’)

{

write_dat(table1[i]);

i++;

}

write_com(0x90);

i=0;

while(table2[i]!=’’)

{

write_dat(table2[i]);

i++;

}

write_com(0x88);

i=0;

while(table3[i]!=’’)

{

write_dat(table3[i]);

i++;

}

write_com(0x89);

write_dat(0x02);

write_com(0x98);

i=0;

while(table4[i]!=’’)

{

write_dat(table4[i]);

i++;

}

}

if(count==4)

{

flog=4;

write_com(0x01);

write_com(0x80);

i=0;

while(table1[i]!=’’)

{

write_dat(table1[i]);

i++;

}

write_com(0x90);

i=0;

while(table2[i]!=’’)

{

write_dat(table2[i]);

i++;

}

write_com(0x88);

i=0;

while(table3[i]!=’’)

{

write_dat(table3[i]);

i++;

}

write_com(0x98);

i=0;

while(table4[i]!=’’)

{

write_dat(table4[i]);

i++;

}

write_com(0x99);

write_dat(0x02);

}


if(count5)

{

flog=5;

write_com(0x01);

write_com(0x80);

i=0;

while(table5[i]!=’’)

{

write_dat(table5[i]);

i++;

}

write_com(0x81);

write_dat(0x02);

write_com(0x90);

i=0;

while(table6[i]!=’’)

{

write_dat(table6[i]);

i++;

}

write_com(0x88);

i=0;

while(table7[i]!=’’)

{

write_dat(table7[i]);

i++;

}

write_com(0x98);

i=0;

while(table8[i]!=’’)

{

write_dat(table8[i]);

i++;

}

}

if(count6)

{

flog=6;

write_com(0x01);

write_com(0x80);

推荐阅读

史海拾趣

GarrettCom公司的发展小趣事

背景:GarrettCom始创于1989年,专注于工业网络通信产品的研发与制造。在那个工业自动化初具规模的年代,GarrettCom凭借其卓越的产品质量和创新的解决方案,迅速在市场中崭露头角。公司推出的工业以太网交换机和路由器等产品,以其高稳定性和可靠性,赢得了众多工业客户的信赖。

发展:随着工业自动化程度的不断提升,GarrettCom不断加大研发投入,推出了一系列适应恶劣工业环境的产品。这些产品不仅满足了工业自动化对通信稳定性的严苛要求,还推动了工业通信技术的进步。通过不断的技术创新和市场拓展,GarrettCom逐步确立了其在工业通信领域的领先地位。

无锡友达公司的发展小趣事

随着产品性能的不断提升和市场需求的扩大,无锡友达开始积极拓展国内外市场。公司的产品不仅覆盖国内二十多个省、市,还远销欧美、中东、港澳台等国家和地区。通过与国际知名企业的合作,无锡友达不断提升自身的品牌影响力,逐渐在全球电子行业中占据一席之地。

全鹏(CHAMPION)公司的发展小趣事

为了提升国际市场竞争力,全鹏公司一直致力于提高产品质量和管理水平。在2014年,全鹏电子科技有限公司成立,并成功通过了ISO9001国际质量管理体系、ISO14001环境管理体系认证和汽车与医疗器材体系IATF/16949认证。这些认证不仅证明了全鹏公司在质量管理方面的实力,也为其在国际市场上赢得了更多的信任和机会。

ETL semiconductor公司的发展小趣事

1958年,德州仪器(TI)的工程师杰克·基尔比面临一个挑战:如何将复杂的晶体管布线简化。他通过不懈努力,发现了一种将多个晶体管内置在同一块硅或锗板中的方法,从而大大简化了电路设计。这一创新为集成电路的发展奠定了重要基础,也奠定了德州仪器在半导体行业的领先地位。

DAVE Embedded Systems公司的发展小趣事

随着公司的发展,DAVE Embedded Systems不断投入研发力量,致力于技术创新和产品创新。他们基于最新技术(如多核ARM Cortex、PowerPC和X86)设计了一系列高端嵌入式系统模块,这些产品不仅满足了客户对性能的需求,还提供了更好的可靠性和可扩展性。此外,公司还积极开发基于Android和Windows平台的嵌入式系统模块,以满足不同客户的需求。

捷嘉电子(Chequers Electronic)公司的发展小趣事

随着市场需求的不断变化,捷嘉电子意识到只有不断创新才能保持竞争力。于是,公司投入大量资源进行技术研发,特别是在智能控制器PCBA制造及智能产品研发方面取得了显著成果。其中,公司研发的一款新型智能家居控制器,以其卓越的稳定性和易用性受到了市场的热烈欢迎。这款产品的成功,不仅提升了捷嘉电子的品牌知名度,也为其后续发展奠定了坚实的基础。

问答坊 | AI 解惑

记录波形

1、  想把一个时间段的波形录制下来再看,或者传到电脑上进一步分析,有没有这样的示波器?或者有这样功能的仪器叫什么,大家有用到的介绍下…

查看全部问答>

sigmatel 9200 HD 声卡没有混音功能怎么办

能够记录机器里面播放的声音,或者使用麦克可以录音,但就是不能同时实现卡拉ok混音功能。怎么办,网上找到的补丁都用过了,就是不能用混音。 高手在哪里?…

查看全部问答>

单片机通信能发送浮点数据吗?

请问各位经过AD转换后存放在单片机里的浮点数据,要发送给其他单片机,需要把浮点转换成字符型或其他型数据吗?如果要转换,算法是什么?谢谢指点!…

查看全部问答>

wince wifi有问题

WINCE在开机后自动弹出来一个WIFI无线配置的窗口,但是这个窗口比LCD高了,有没有好办法把这个窗口缩小一点呀!如果单改代码来缩小窗口,那窗口上的控件也要调整,比较麻烦,改资源文件又好像只有英文版的才有效,哪位前辈能给小弟一点建议呀?!…

查看全部问答>

【招兵买马】响应论坛活动

随着论坛LM811的开发板的活动,先前我也在论坛发过一些关于DIY机器人的意见贴!~ 随着我实习已经快接近尾声了,在论坛活动结束之后,召集申请到得开发板的童鞋,当然没有申请到得童鞋也是可以的啦,一起来DIY机器人,如果我没有申请到我会自己出钱 ...…

查看全部问答>

【MSP430共享】自动控制升降旗系统

自动控制升降旗系统专为运动会以及企事业单位的升旗仪式所制,系统有单片机MSP430F247、步进电机、语音芯片时钟芯片、液晶、遥控模块、按键等基本部分组成 ,考虑到在实际情况中的应用,完成标准升旗、降旗、降半旗、自定义升旗、远程遥控升旗、定 ...…

查看全部问答>

TI课堂进不去

上周学习了前三讲,后面的几次课就没有办法进去了,登陆不上去,不知怎么解决…

查看全部问答>

【TI课程ppt】开关电源组件选择

开关电源组件选择 开关电源组件选择 (Switch-Power-Supply-Component-Selection) 开关电源深入浅出之设计选型篇,作为能量转换的装置-电源,此篇告诉你想了解的储能元器件类型和如何选择,理解并能优化选择电容和电感 课程大纲: 拓扑敏感回路 ...…

查看全部问答>

CCS昨天编译出现“gmake: *** 拒绝访问",所有编译无法运行,奇怪得很呐

大家早上好,我这边遇到个关于CCS的小问题,想请大家帮帮忙。 问题描述:从昨天下午开始,使用CCS编译已经写好的程序之后,进度一直停留在大概7%左右的位置,查看编译信息,发现有如下提示:gmake: *** 拒绝访问 经过无数次的测试,就算是新建的 ...…

查看全部问答>

中秋节,晒福利

如题,晒晒你们公司的中秋福利吧…

查看全部问答>