文档详情

89C51单片机温度传感器(C语言版).docx

发布:2020-01-18约3.37千字共5页下载文档
文本预览下载声明
#include reg51.h #include math.h #include intrins.h #define uchar unsigned char bit chushihua (void); //DS18B20初始化 uchar du (void); //DS18B20读函数 void xie (uchar m); //DS18B20写函数 void delay1 (uchar m); //延时1 ms void delayd (uchar m); //延时6 us void xianshi (void); //显示函数 void bj (void); void sxian (void); uchar gewei,shiwei,fuhao; void delay750 (void); sbit wei1=P2^0; sbit wei2=P2^1; sbit wei3=P2^2; sbit wei4=P2^3; sbit sw1=P1^0; sbit sw2=P1^1; sbit sw3=P1^2; sbit sw4=P1^3; sbit dq=P1^4; sbit fmq=P1^5; uchar cishu,i,j; uchar code nshuma[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6}; uchar code yshuma[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; main () { uchar gao,di,wendu; SP=0x5f; TMOD=0x01; ET0=1;EA=1;TR0=1; TL0=(65536-16584)%256; TH0=(65536-16584)/256; cishu=25;i=0;j=0; while (1) //读取温度显示 { if (sw4==0) //设置温度报警值 { while (1) { TR0=0; sxian (); if (sw1==0) { delay1 (3); if (sw1==0) {cishu++;sxian ();} } if (sw2==0) { delay1 (3); if (sw2==0) {cishu--;sxian ();} } i=cishu/10; j=cishu%10; if (sw3==0) break; } TR0=1; } if (chushihua ()) continue; xie (0xcc); xie (0x44); delay750 (); if (chushihua ()) continue; xie (0xcc); xie (0xbe); di=du(); gao=du(); if (chushihua ()) continue; di=di 0xf0; gao=gao 0x0f; wendu=(gao4) | (di4); fuhao=11; if (wendu 0x80) { wendu=cabs (wendu); fuhao=10; } gewei=wendu%10; shiwei=wendu/10; if (wendu=cishu) bj(); } } //------------------------------------------------------------ //****************************子函数************************** //------------------------------------------------------------ void delay750 (void) //延时750 ms { uchar i,j,k; for (i=0;i4;i++) for (j=0;j250;j++) for (k=0;k250;k++) ; } void delay1 (uchar m) //延时1 ms { uch
显示全部
相似文档