历史上的今天
返回首页

历史上的今天

今天是:2025年03月24日(星期一)

正在发生

2021年03月24日 | 51单片机两点间温度控制设计

2021-03-24 来源:eefocus

1.电路原理图



图4.29.1


2.系统板上硬件连线


a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。


b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。


c)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。


d)把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。


e)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。


f)把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。


g)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。


h)把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。


i)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。


j)把“单片机系统”区域中的P3.6、P3.7用导线分别连接到“八路发光二极管指示模块”区域中的L1、L2上。


k)把“单片机系统”区域中的P3.5用导线连接到“音频放大模块”区域中的SPKIN端口上。


l)把“音频放大模块“区域中的SPKOUT插入音频喇叭。


3.C语言源程序

#include


unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsignedchardispbuf[8]={10,10,10,10,10,10,0,0};

unsignedchardispcount;

unsignedchargetdata;

unsignedinttemp;

unsignedchari;


sbitST=P3^0;

sbitOE=P3^1;

sbitEOC=P3^2;

sbitCLK=P3^3;

sbitLED1=P3^6;

sbitLED2=P3^7;

sbitSPK=P3^5;

bitlowflag;

bithighflag;

unsignedintcnta;

unsignedintcntb;

bitalarmflag;



voidmain(void)

{

ST=0;

OE=0;

TMOD=0x12;

TH0=0x216;

TL0=0x216;

TH1=(65536-500)/256;

TL1=(65536-500)%256;

TR1=1;

TR0=1;

ET0=1;

ET1=1;

EA=1;

ST=1;

ST=0;

while(1)

{

if((lowflag==1)&&(highflag==0))

{

LED1=0;

LED2=1;

}

elseif((highflag==1)&&(lowflag==0))

{

LED1=1;

LED2=0;

}

else

{

LED1=1;

LED2=1;

}

}

}


voidt0(void)interrupt1using0

{

CLK=~CLK;

}


voidt1(void)interrupt3using0

{


TH1=(65536-500)/256;

TL1=(65536-500)%256;


if(EOC==1)

{

OE=1;

getdata=P0;

OE=0;

temp=getdata*25;

temp=temp/64;

i=6;

dispbuf[0]=10;

dispbuf[1]=10;

dispbuf[2]=10;

dispbuf[3]=10;

dispbuf[4]=10;

dispbuf[5]=10;

dispbuf[6]=0;

dispbuf[7]=0;

while(temp/10)

{

dispbuf[i]=temp%10;

temp=temp/10;

i++;

}

dispbuf[i]=temp;

if(getdata<77)

{

lowflag=1;

highflag=0;

}

elseif(getdata>153)

{

lowflag=0;

highflag=1;

}

else

{

lowflag=0;

highflag=0;

}

ST=1;

ST=0;

}


P1=dispcode[dispbuf[dispcount]];

P2=dispbitcode[dispcount];

dispcount++;

if(dispcount==8)

{

dispcount=0;

}


if((lowflag==1)&&(highflag==0))

{

cnta++;

if(cnta==800)

{

cnta=0;

alarmflag=~alarmflag;

}

if(alarmflag==1)

{

SPK=~SPK;

}

}

elseif((lowflag==0)&&(highflag==1))

{

cntb++;

if(cntb==400)

{

cntb=0;

alarmflag=~alarmflag;

}

if(alarmflag==1)

{

SPK=~SPK;

}

}

else

{

alarmflag=0;

cnta=0;

cntb=0;

}

}


推荐阅读

史海拾趣

BELLING LEE公司的发展小趣事

为了进一步扩大市场份额,BELLING LEE公司开始实施国际化战略。公司首先在欧洲和北美市场设立了分支机构,并逐步拓展到亚洲、非洲等其他地区。在国际化过程中,公司不仅积极推广自己的产品和技术,还加强了与当地企业的合作与交流,从而实现了资源的优化配置和市场的互利共赢。

常忆科技(CHINGIS)公司的发展小趣事

展望未来,常忆科技将继续坚持创新驱动的发展战略。公司将不断加大在研发和创新方面的投入,推动产品技术的持续升级和迭代。同时,常忆科技还将积极拓展新的应用领域和市场空间,以满足更多客户的需求。

为了实现可持续发展,常忆科技还将注重环境保护和社会责任。公司将致力于推广绿色环保的生产方式和产品应用,为社会的可持续发展做出贡献。在未来的发展中,常忆科技有望凭借其卓越的技术实力和创新精神,继续在电子行业中书写新的辉煌篇章。

富之光(Fujicon)公司的发展小趣事

为了寻求更广阔的发展空间,富致科技积极参与各类产业交流活动。例如,在2023年7月,富致科技的董事长陈继圣和总厂长叶敬强前往中国大陆芜湖市进行考察交流,参观了奇瑞新能源汽车股份有限公司等企业,并与芜湖宏景电子、安瑞光电、致通汽车电子等产业链相关企业进行了深入交流。这些交流不仅让富致科技更加了解大陆市场的需求和潜力,也为双方未来的合作奠定了良好的基础。

Amphenol Thermometrics公司的发展小趣事

面对制造业的数字化转型趋势,富致科技也积极拥抱变革。公司投入大量资源建设数字化工厂,引入先进的自动化设备和信息化管理系统,实现生产流程的智能化和精细化。通过数字化转型,富致科技不仅提高了生产效率和产品质量,还降低了运营成本,为企业的可持续发展注入了新的动力。同时,公司还注重培养数字化人才,为企业的未来发展储备了宝贵的人力资源。

Herga公司的发展小趣事

随着全球对环境保护的日益重视,Herga公司积极响应绿色制造的号召,将环保理念融入产品设计和生产过程中。公司研发出了一系列节能高效的电子产品组件,如低能耗的驱动器、可回收材料的电机外壳等。这些产品不仅满足了市场对高性能、高品质的需求,还降低了生产过程中的碳排放和资源消耗。Herga公司的这一举措赢得了社会各界的广泛赞誉,也为其在电子行业中的可持续发展奠定了坚实基础。

Emulation Technology Inc公司的发展小趣事

随着技术的不断成熟,Emulation开始积极寻求与电子行业的合作伙伴建立战略合作关系。公司先后与多家知名半导体厂商、设备制造商以及系统集成商签订了合作协议,共同推动模拟和仿真技术在各个领域的应用。这些合作不仅拓宽了Emulation的市场渠道,还为公司带来了更多的创新机会。

问答坊 | AI 解惑

VCC、VDD和VSS

在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压; VDD:D=device 表示器件的意思, 即器件内部的工作电压; VSS:S=series 表示公共连接的意 ...…

查看全部问答>

请大家说说串口在线升级的方法

请大家有相关经验或者认识的说说串口在线升级的方法,大概有哪些思路? 主要是如何固定一些不需要升级的文件,如何将非升级文件与升级文件在FLASH中分区存放?…

查看全部问答>

wince编程中如何检测到挂起。

我想在挂起的时候做个操作,但是不知道如何检测到挂起。…

查看全部问答>

求救,路由器固件修改

公司购买了无线网桥做集成,打算更换固件LOGO图片,有没有啥办法呢? 、 忘各位高手指点几分…

查看全部问答>

就各位帮忙 JTAG能连上,能读内容,不能擦除和烧写

at91fr40162s的CPU,晶振用的66M的。用的JTAG线是之前调at91fr40162的CPU的线和JTAG板子,是 20口的,因为at91fr40162s的CPU的JTAG线是直接从MCU接出来,只有四跟,TDI,TDO,TCK,TMS, 再接上两根电源和地线,有六跟,根据网上的说明自己弄了一 ...…

查看全部问答>

c8051f020串口1UART1发送数据的问题。

大虾们好,以下是我的UART1中断函数 void UART1 (void) interrupt 20 using 2 {   unsigned char xdata tChar=0;         EIE2 &= 0xBF;         RI1Flag=(SCON1 & 0x01);     ...…

查看全部问答>

程序编译报错,帮忙看看

volatile unsigned int *xy=(volatile unsigned int *)0x3401; 编译,这句话报错: erro:"declaration may not appear after executable statement in block" 是什么地方出了问题? #define conval 0x15 .. unsigned int a=conval; 也报 ...…

查看全部问答>

(职业规划)学机的人可以向嵌入式发展么???

大家好,我是某大学里的一名本科生,马上就毕业了。我学的是机械,以及力学。但我个人却对电路设计和单片机什么的比较有兴趣。最近,也在花相当一部分时间学习嵌入式。我个人觉得,未来机电结合才是王道。大家觉得我的想法怎么样?对于一个外行,非 ...…

查看全部问答>

有关TI F28335 定时器中断问题

我们公司以前一直用NEC的单片机,现在改为用TI 28335,刚开始用;想问一个问题,就是看资料说TIMER 0是给用户用的,那是否定时器中断,只能有一个了?若想多定时中断咋办?…

查看全部问答>

【视频分享】SimpleLink WiFi CC3000快速体验

TI工程师Nick为您介绍快速使用CC3000 FRAM开发包的经验。CC3000 FRAM开发包包括了MSP430 FRAM EVM板,CC3000模组EVM板,不含电池的3A电池盒,以及用于接入无线网络的无线路由器。 $(\'swf_ypz\').innerHTML=AC_FL_RunContent(\'width\', \'550\', ...…

查看全部问答>