⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1820.c

📁 液晶显示程序
💻 C
字号:
#include <reg51.h>
typedef unsigned char uchar;
sbit RCLK=P3^4;
//sbit SRCLK=P3^1;
//sbit SER=P3^0;
char ledcode[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff,0xfd,0x02,0x9e,0x24,0x03,0x98,0x48,0x40,0x1e,0x00,0x08};
//-----------------
sbit TMDAT=P1^7;
 void display(int g);
/***************************/
void dmsec(unsigned int count)       //msec delay 11.0592MHz
{                                    //1ms延时

unsigned int i;
while(count--)
  {
  for(i=0;i<125;i++)
   {}
    }
  }
void tmreset(void)
  {                     //Reset tx
   unsigned int i;
   TMDAT=0;
   i=103;while(i>0)i--;//APPROX 900us
   TMDAT=1;
   i=4;while(i>0)i--;
   }
void tmpre(void)
   {
   unsigned int i;
   while(TMDAT);
   while(~TMDAT);
   i=4;while(i>0)i--;
   }
bit tmrbit(void)
{
  unsigned int i;
  bit dat;
  TMDAT=0;i++;
  TMDAT=1;i++;i++;
  dat=TMDAT;
  i=8;while(i>0)i--;
  return(dat);
}
unsigned char tmrbyte(void)
 {
 unsigned char i,j,dat;
 dat=0;
 for (i=1;i<=8;i++)
   {
 j=tmrbit();
 dat=(j<<7)|(dat>>1);
   }
 return(dat);
 }
void tmwbyte(unsigned char dat)
  {                          //write one byte
unsigned int i;
unsigned char j;
bit testb;
for (j=1;j<=8;j++)
      {
                testb=dat&0x01;
      dat=dat>>1;
      if(testb)
      {
      TMDAT=0;    //Wite 1
      i++;
      i++;
      TMDAT=1;
      i=8;
      while(i>0)
      i-- ;
      }
     else {
     TMDAT=0 ; //Wite 0
     i=8;while(i>0)i--;
     TMDAT=1;
     i++;i++;
     }
    }
   }
   void tmstart(void){
   tmreset();
   tmpre();
   dmsec(1);
   tmwbyte(0xcc);//skip rom
   tmwbyte(0x44);//convert
   }
  unsigned char tmrtemp(void){//read temp
  unsigned char c,d,e,f,a,b,y1,y2,y3;
  tmreset();
  tmpre();
  dmsec(1);
  tmwbyte(0xcc);      //skip rom
  tmwbyte(0xbe);      //convert
  a=tmrbyte();        //lsb
  b=tmrbyte();         //msb
  f=a/16;
  c=a%16;
  c=c*10;
  c=c/16; //小数
  b=b*16;
  b=b+f;   //整数
  d=b/10;   //十位
  e=b%10;//个位
  e=e+12;
  //y1=display()
 //b=b;
  display(10);
  display(c);
  display(e);
  display(d);



  //y1=a>>4;
  //y2=b<<4;
  //y3=y1|y2;
  //return(y3);
  }
  //unsigned char convert(int y4,int y5){
   ///*******8****
   void display(int g)
{
   
   TI=0;
  // EA=0;
   SBUF=ledcode[g];
   while(!TI);
   TI=0;
   RCLK=0;
   RCLK=1;
   //EA=1;
return   ;
}


  /***********************main**********/
  void main(void)
    {
     while(1)
          {

    unsigned int i;
    unsigned char last;
    //display(10);
    uchar lsb,msb;
    dmsec(1);
    tmstart();        //ds18b20 start convert
    dmsec(1000);
   tmrtemp();   //read temperature
    //msb=last/0x0a+0x30;
    //lsb=last%0x0a+0x30;

        }
    }

⌨️ 快捷键说明

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