• 大小: 411KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签:

资源简介

一个自制的温度智能控制系统,有三种模式,有proteus仿真,有C语言程序,有设计报告。

资源截图

代码片段和文件信息

  #include
  #define uchar unsigned char
  #define uint unsigned int
  sbit run=P3^7;
  sbit QD=P3^6;
  sbit rs=P3^4;
  sbit en=P3^5;
  sbit cn=P3^0;
  sbit fen=P2^0;
  sbit m=P2^1;
  sbit sw=P2^4;
  sbit jw=P2^7;
  sbit red=P1^0;
  sbit yellow=P1^4;
  sbit green=P1^7; 
  int bai=0shi=0ge=0ss1s2sHsL;
  int bai1bai2shi1shi2ge1ge2shi3ge3;
  uchar code table1[]={“current T:“};
  uchar code table2[]={“mode:0  choose:0“};
   uchar code table3[]={“set temperature:“};
   uchar code table4[]={“H:000   L:000“};
  uchar data disdata[5];
  uint temptemp2;
  uchar flagflag2flag3flag4n;
  void sheweng();
  void delay1ms(uint ms)
  {                       //此为最小1ms延时
        uint ij;   
        for(i=1;i<=ms;i++)
        for(j=1;j<=123;j++);
  }

 void write_com(uchar com)//写指令//
         {  
    
           rs=0;
           delay1ms(1);
           en=1;
           P0=com;
           delay1ms(1);   //1mS
           en=0;
           delay1ms(1);
           rs=1;
  }

void write_dat(uchar dat)//写数据//
    {     
           rs=1;
           delay1ms(1);
           en=1;
           P0=dat;
           delay1ms(1);
           en=0;
           delay1ms(1);
           rs=0;
}

 void lcd_init()
 {
        delay1ms(15);
        write_com(0x38);
        delay1ms(5);
        write_com(0x0c);
        delay1ms(5);
        write_com(0x06);
        delay1ms(5);
        write_com(0x01);
        delay1ms(5);
 }

 void display(uchar *p)  //特别注意这里指针的运用
 {
        while(*p!=‘\0‘)  //这表示的是定义一个指针变量作为形参
        {                 //在调用函数时是将实参的地址赋值给P而不是
            write_dat(*p);  //将其赋给*P
          p++;
            delay1ms(1);
     }
 }

 init_play()
 {
        lcd_init();
        write_com(0xd0);
        display(table1);
write_com(0x80);
    display(table2);
write_com(0xc0);
display(table3);
write_com(0x90);
display(table4);
    //  write_com(0xc0);
    //  display(table2);  //可有可无的一句
 }

 void delay_18b20(uint i)
 {
        while(i--);   //时钟频率为12MH时此延迟函数最小为25US,每增加一
 }                    //多9US 如果时钟频率为11.0592MH时则最小延时为27US,每增加1则增加9.8us
                      //时钟频率为11.0592MH时如果是uchar型则最小为18.5us每增加1
void ds18b20rst()     //则相应增加6.5us如果是12MH则最小为17US每增加1则增加6US
{
        uchar x=0;
        QD=1;
        delay_18b20(4);
        QD=0;
        delay_18b20(100);
        QD=1;
        delay_18b20(50);
}

uchar ds18b20rd()
{
        uchar i=0;
        uchar dat=0;  //赋值是为了后面简化程序
        for(i=1;i<=8;i++)
     {
         QD=0;
            dat>>=1; //技巧用程序本身做延时,简化程序
         QD=1;          //程序采样都是只动完成的
            if(QD)   //在数字信号中只有0和1;从哪里得来都是一样的
            dat|=0x80;   //在这里程序很巧妙,如果QD==0则dat还是和
            delay_18b20(5);  //本来的值一样,如果QD=1;则与0x80相或
        }                     //从这里得到一个1;另外此程序对时序的操作
        return(dat);          //也是十分经典的,他把读0和读1的时序用一种方式
}                          //合在了一起,即两者都能满足

void ds18b20wr(uchar dat)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1912  2010-08-11 13:19  温度智能控制系统\智能温度控制系统.PWI

     文件      13077  2010-08-11 13:18  温度智能控制系统\example5.c

     文件       7842  2010-08-11 13:15  温度智能控制系统\example5.hex

     文件     180196  2010-08-11 13:14  温度智能控制系统\Last Loaded 智能温度控制系统.DBK

     文件     180219  2010-08-11 13:19  温度智能控制系统\智能温度控制系统.DSN

     目录          0  2010-08-11 13:13  温度智能控制系统

     文件     707072  2010-07-02 19:13  温度智能控制系统\基于单片机控制的温度测量计设计报告书.doc

----------- ---------  ---------- -----  ----

              1090318                    7


评论

共有 条评论

相关资源