历史上的今天
返回首页

历史上的今天

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

正在发生

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

2021-12-16 来源:eefocus

最近天气比较炎热闲来无事,自己在家DIY了一个小冰箱,试了一下制冷效果还可以的,下面就把制作步骤和技术资料和大家共享一下:


这个冰冰可乐什么的真的太适合不过了。。器材:一个电源模块,220v转12v,6A。以及一个封装好的制冷器,元件清单都在原理图上可以看出来,继电器用的是继电器模块。


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


废话不多说先上图:

这是系统控制板子需要自己DIY的板子散件,待焊接

在这里插入图片描述

焊接好的系统控制板成品

在这里插入图片描述

连接好的待测试品

在这里插入图片描述

接上显示LCD后可以显示的功能

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

系统完整演示图

在这里插入图片描述

智能小冰箱的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);


鉴于篇幅限制,只能写部分代码

推荐阅读

史海拾趣

ETA Electric Industry Co Ltd公司的发展小趣事

随着技术实力的增强,ETA Electric Industry Co Ltd开始积极拓展国内外市场。他们参加了多个国际电子展会,与世界各地的潜在客户建立了联系。同时,公司还加强了与国内外大型电子企业的合作,为其提供定制化的解决方案。这些举措极大地提升了公司的知名度和市场份额,为公司的快速发展奠定了基础。

赛微(Cellwise)公司的发展小趣事

随着公司业务的不断发展和技术实力的不断提升,赛微开始积极拓展国际市场。公司坚持“以人为本”的理念,积极引进国际化人才,加强与国际知名企业的合作与交流。通过多年的努力,赛微已经成功打入国际市场,与众多国际知名企业建立了长期稳定的合作关系,实现了业务的国际化拓展。

EOZ Secme公司的发展小趣事

随着国内市场的饱和,EOZ Secme开始积极寻求海外市场的拓展。公司制定了详细的国际化战略,通过参加国际展会、建立海外销售渠道等方式,逐步打开了国际市场的大门。同时,EOZ Secme还积极与国际知名企业开展合作,共同研发新产品,拓展业务领域。这些努力使得EOZ Secme在国际市场上的影响力不断增强。

C&K Components公司的发展小趣事

进入千禧年代,随着全球经济的融合和科技的快速发展,ITT Industries看中了C&K在开关领域的领先地位和强大实力,决定对其进行收购。这次并购使C&K成为ITT的开关部门,但公司仍然保留了C&K的名称和品牌。并购后的C&K借助ITT的全球资源和平台优势,进一步提升了自身的研发能力和市场竞争力,实现了更快速的发展。

Forge Europa Ltd公司的发展小趣事

随着技术实力的不断增强,Forge Europa Ltd公司开始将目光投向国际市场。公司积极参与国际展会,与全球客户建立联系,并通过优化供应链管理,确保产品能够迅速响应国际市场需求。在欧洲市场,Forge Europa凭借其高品质的产品和专业的服务,迅速赢得了众多知名客户的青睐。同时,公司还不断拓展北美、亚洲等新兴市场,逐步建立起覆盖全球的销售网络。

爱特姆(ATOM)公司的发展小趣事

随着电子行业的快速发展,爱特姆不断加大对技术研发的投入,致力于推出更先进、更稳定的连接器产品。公司成功研发出一系列具有自主知识产权的新产品,不仅提升了产品的性能和质量,也进一步巩固了其在行业内的领先地位。

问答坊 | AI 解惑

N32G45x系列MCU使用JLINK的开发应用记录之RTT篇

  前言 什么是RTT? RTT(Real Time Transfer)是一种用于嵌入式中与用户进行交互的技术,它结合了SWO和半主机的优点,具有极高的性能。使用RTT可以从MCU非常快速输出调试信息和数据,且不影响MCU实时性。这个功能可以用于很多支持J-Lin ...…

查看全部问答>

国民单片机N32G45x系列MCU使用JLINK的开发应用笔记 之J-scope

  前言: J-Scope简介 什么是J-Scope: J-Scope是Segger推出的一款免费软件,用于MCU运行时,实时显示数据的波形。   应用场景     在实际项目中,很多时候,我们需要将速度较快的传感器或者 A ...…

查看全部问答>

初学C语言用的哪部教材?

伙伴们,还记得上学那阵学习C语言课程吗,来说说你最初接触的C语言教材吧~ 我记得是大一时开设的C语言,所用教材---《C程序设计》谭浩强 清华大学出版社 ;第几版倒是记不得了 …

查看全部问答>

储能应急电源-三维模型欣赏

便携式储能应急电源结构设计三维模型         …

查看全部问答>

【行空板 Python编程学习主控板】手把手教你制作基于行空板的实时天气信息牌

本帖最后由 HonestQiao 于 2022-11-11 10:39 编辑 行空板板载的丰富接口,能够让我们很方便的接入多种传感器。简单的网络连接方式,能够让我们快捷的连接到网络。而自带的GUI屏,可以很方便我们进行显示。   今天的分享,就是基于行 ...…

查看全部问答>

先楫官方工程师干货:HPM6000系列的BOOT MODE及外部电路设计建议

1. 简介 HPM6000系列MCU目前提供了不同的启动方式,方便客户在研发生产等不同阶段使用。 本文提供了HPM6000系列微控制器的BOOT 模式的说明以及相应的外部电路设计建议。   2. BOOT模式说明 HPM6000系列高性能MCU目前 ...…

查看全部问答>

先楫官方工程师干货:HPM6000系列 ADC 相关硬件设计教程

本文将为大家展示国产芯片HPM6000系列ADC性能出色的测试结果并为您提供了与HPM6000系列微控制器的模数转换器ADC相关的外部电路设计建议。 在HPM6700/6400系列微控制器上,提供了3个12位ADC和1个16位ADC。在HPM6300系列微控制器上,提供了3个16 ...…

查看全部问答>

射频大功率陶瓷电容应用

射频大功率陶瓷电容应用 “为确保高射频功率设计应用中的最高可靠性水平,在将最大设备功率、最大电压和电流额定值、所有电路设备的热特性以及各种散热方式等因素纳入设计之前,应考虑到这些因素。最终产品设计。” 在当今的无 ...…

查看全部问答>

开关电源用书

开关电源入门(中文)这本书不错,值得一看。 …

查看全部问答>

哪位大神单独用RMII而不用SMI的?请指教

想用STM32F767接美满交换机芯片的,有个例程是只用的7根线的RMII,也就是说不用SMI接口(MDC和MDIO),但是我用STM32CUBE配置的时候强制要求9线,也就是用RMII必须得用SMI,这个怎么搞啊?只能自己移植了吗?不用SMI的方案是可行的吗? 看了几个 ...…

查看全部问答>