f_temp=temp*0.0625; //温度在寄存器中为12位 分辨率位0.0625° temp=f_temp*10+0.5; //乘以10表示小数点后面只取1位,加0.5是四舍五入
f_temp=f_temp+0.05;
return temp; //temp是整型 }
////////////////////显示程序////////////////////////// void display(uchar num,uchar dat) { uchar i; dula=0; P0=table[dat]; dula=1; dula=0;
wela=0; i=0XFF;
i=i&(~((0X01)<<(num))); P0=i; wela=1; wela=0; delay(1); }
void dis_temp(uint t) { uchar i; i=t/100;
display(0,i); i=t0/10; display(1,i+10); i=t0; display(2,i); }
/////////////////报警/////////////////////////////
void warn(uint s,uchar led) //蜂鸣器报警声音 ,s控制音调 {
uchar i;i=s; dula=0; wela=0;
beep=0; P1=~(led); while(i--) {
dis_temp(get_temp()); } beep=1; P1=0XFF; i=s; while(i--) {
dis_temp(get_temp()); } }
void deal(uint t) { uchar i;
if((t>warn_l2)&&(t<=warn_l1)) //大于25度小于27度 {
warn(40,0x01); }
else if(t<=warn_l2) //小于25度 {
warn(10,0x03); }
else if((t
warn(40,0x04); }
else if(t>=warn_h2) //大于32度 {
warn(10,0x0c); } else { i=40; while(i--) {
dis_temp(get_temp()); } } }
void init_com(void) {
TMOD = 0x20;
PCON = 0x00; SCON = 0x50; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1; }
void comm(char *parr) { do {
SBUF = *parr++; 数据
while(!TI); 成标志为1
TI =0; }while(*parr); 环直到字符为'\\0' }
void main() {
uchar buff[4],i; dula=0; wela=0; init_com(); while(1) {
tempchange(); for(i=10;i>0;i--)
//发送等待发送完 //标志清零 //保持循 // {
dis_temp(get_temp());} deal(temp);
sprintf(buff,\
for(i=10;i>0;i--) {
dis_temp(get_temp());}
comm(buff);
for(i=10;i>0;i--) {
dis_temp(get_temp());} } }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库电阻炉炉温自动控制系统(7)在线全文阅读。
相关推荐: