《单片机温度控制电路图加程序.doc》由会员分享,可在线阅读,更多相关《单片机温度控制电路图加程序.doc(5页珍藏版)》请在三一办公上搜索。
1、本次设计的总程序如下(注意在网页上复制的运行会有很多毛病,请下载下去后复制到keil上去编译,生成hex文件。这篇文章可以帮助你们很好的学习和了解单片机的开发和应用,本例是一个实例应用,也是毕业设计的课题。通过本例可以了解单片机的原理应用,开发以及proteus仿真,protel等原理图制作,以及keil的学习,本例是学习单片机和温度控制,放大电路等等的优秀资料,既是入门级的好资料,也是提高级的实例。):#include <reg51.h>#include <absacc.h>#include <stdio.h>#define uchar unsigned
2、char#define uint unsigned int#define DAC0832 XBYTE0x7fffuchar code seg=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; sbit D25=P2;sbit DLE0=P2;sbit DLE1=P2;sbit DLE2=P2;sbit START=P3;sbit OE= P3;sbit EOC=P3;sbit CEASE=P3;sbit LED=P3;uchar temp;void delay (uchar i)uchar j;for(;i>0;i-)for(j=0;j
3、<125;j+);void temper_set()char i=0,j=0,k=0; P2=0xff;P0=0xbf;P2=0xf9;doif(P2=0xf1) do; while(P2=0xf1); i+;if(i<=9)P0=segi;elsei=0;P0=segi;if(P2=0xe9)do; while(P2=0xe9); i-;if(i>=0)P0=segi;elsei=9;P0=segi; if(D25=0&DLE0=1) delay(500);if(D25=0&DLE0=1) do; while(D25=0); P2=0xfa;P0=0xbf;
4、if(P2=0xf2) do; while(P2=0xf2);j+;if(j<=9)P0=segj;else j=0;P0=segj; if(P2=0xea) do; while(P2=0xea); j-;if(j>=0)P0=segj;elsej=9;P0=segj; if(D25=0&DLE1=1) delay(500);if(D25=0&DLE1=1) do; while(D25=0); P2=0xfc;P0=0xbf;if(P2=0xf4)do; while(P2=0xf4); k+;if(k<=4)P0=segk;elsek=0;P0=segk; i
5、f(P2=0xec)do; while(P2=0xec); k-;if(k>=0)P0=segk;elsek=4;P0=segk; if(D25=0&DLE2=1) delay(500);if(D25=0&DLE2=1) do; while(D25=0); P2=0xff;P0=0xbf;P2=0xf9;i=0,j=0,k=0; while(CEASE=1);void main() uchar d;uchar m20,p20,q20,u20; uchar n20;uchar k=0;P1=0xff;EA=1;EX0=1;IT0=1;temper_set();START=0
6、; START=1; START=0; if(CEASE=0) EX1=1; IT1=1; temp=100*k+10*j+i; while(1) if (EOC=0) OE=0; d=P1; OE=0;mk=temp-d;k+;if(k>1)pk=mk/2;qk=mk/10+mk-1; uk=(mk-mk-1)/3; nk=pk+qk+uk; DAC0832=nk;if(nk-nk-1<1) LED=1; if(k>48) k=0; void int0() interrupt 0P2=0x30;LED=0;return;void int1() interrupt 1while(1) LED=1;delay(60); LED=0; delay(60);