at89s52+sht10+4bitled.c

来自「SHT10资料和C例程」· C语言 代码 · 共 85 行

C
85
字号
#include <AT89X52.h>
#include "sht10.h"
#define uchar unsigned char
#define uint unsigned int


uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
                    0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

uint t,q,k,l;
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=20;y>0;y--);
}

void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
  P2=0xfe;
  P3=duan[qian];
  delay(5);
  P2=0xff;

  P2=0xfd;
  P3=duan[bai];
  delay(5);
  P2=0xff;

  P2=0xfb;
  P3=duan[shi];
  delay(5);
  P2=0xff;

  P2=0xf7;
  P3=duan[ge];
  delay(5);
  P2=0xff; 

  P2=0xfd;
  P3=0x7f;
  delay(5);
  P2=0xff;
}

void main()
{
  uchar checksum;
 s_connectionreset();
 TMOD=0X01;
 TH0=(65536-5000)/256;
 TL0=(65536-5000)%256;
 TR0=1;
 ET0=1;
 EA=1;
 while(1)
{ 
  error=0;
  error+=s_measure(&Tem,&checksum,TEMP); //measure temperature
  error=0;
  error+=s_measure(&Hum,&checksum,HUMI); //measure temperature
  ShowTem(&Tem,&Hum);
  delay(1000);
}
}

void timer0() interrupt 1
{
 TH0=(65536-5000)/256;
 TL0=(65536-5000)%256;
 t++;
 if(t==1)
 {
  t=0;
   if(P1_5==1)
   display(a,b,c,12);
  if(P1_5==0)
   {
   delay(50);
    if(P1_5==0)
    display(e,f,g,h);
   }
 }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?