• 大小: 179KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: 其他
  • 标签: 水温  水位  程序  C51  

资源简介

这是一个水温水位控制器的程序和仿真,经过几天的编写终于完成,希望和大家分享一下

资源截图

代码片段和文件信息

#include
#include
sbit oe=P1^5;    //输出转换得到的数据端口
sbit st=P1^3;    //启动信号端口
sbit eoc=P1^4;  //转换结束信号端口
sbit set_jia=P1^6;  
sbit set_jian=P1^7;  
sbit key_yushe=P1^0;    //设定温度值的按键
sbit jiare=P0^4;    //加热
sbit dianji=P0^5;    //电机
sbit dishuiwei=P1^2;    //低水位
sbit gaoshuiwei=P1^1;   //高水位

code unsigned char anode_table[]={0xc00xf90xa40xb00x990x920x820xf80x80
                                  0x900x880x830xc60xa10x860x8e};  //共阳数码管 0-F - 空 表
unsigned char led_geshu; //数码管显示的个数
unsigned char led_buff[3];     //设置数码管三个缓冲区
unsigned int set_value; //温度设定值
unsigned char adc_value; //A/D转换的值
unsigned char key_biaozhi;    //按键按下的状态

void delay(unsigned char z)    //延时
{
unsigned char xy;
for(x=100;x>1;x--)
for(y=z;y>1;y--);
}

void value_zhuanhuan(unsigned int value)    //数值转换
{
unsigned int temp1;
if(value>99)
{
led_geshu=3;   //显示三个数码管
}
else
{
if(value>9)
{
led_geshu=2;  //显示两个数码管
}
else
{
led_geshu=1;  //显示一个数码管
}
}
led_buff[2]=value/100;  //将转换的值送入缓冲区2 ,显示百位
temp1=value%100;
led_buff[1]=temp1/10;  //将转换的值送入缓冲区1 ,显示十位
temp1=temp1%10;
led_buff[0]=temp1; //将转换的值送入缓冲区0 ,显示个位
}

void led_display(void) //数码管显示
{
unsigned char i;
for(i=0;i {
P2=anode_table[led_buff[i]]; //将马表中扫到的数值送入P2端口
P0=~(1< delay(1);  //数码管位控制P0口
P0|=(1< }
}


void adc0808(void) //模数转换
{
st=0;    //启动信号
delay(1);
st=1;
    st=0;
while(eoc==0) //转换结束信号,为0代表正在转换,1代表转换结束  
{
oe=1; //OE=1,输出转换得到的数据;
}
adc_value=P3;        //将A/D转换的数值送入P3口
adc_value=adc_value/2.55;    //将0-255转换成0-100
oe=0;
}

void key(void)  //键盘扫描
{
  if(set_jia==0)  //设定预设值的++键
 {
delay(100);
     key_biaozhi=1;   //给按键一个状态
    ++ set_value;  //设定值加1
   
if(set_value>=90)
 {
set_value=90;  //设定的最大值
 }

 }
if(set_jian==0) //设定预设值的--键
{
key_biaozhi=1;

--set_value;

if(adc_value<40)
{
set_value=40;  //设定的最小值
}
}
}

void main(void)    //主函数
{
P0=0xff;
set_value=40;    //设定的初始值
led_geshu=4;
while(1)
{
if(key_yushe==0)
{
    value_zhuanhuan(set_value);    //设定值的转换在数码管上显示
led_display();
}
else
{
 delay(1000);
 key();
 if(key_biaozhi==1)
 { 
   
   value_zhuanhuan(set_value);
   led_display();
   key_biaozhi=0;
 }
 else
     {  
      adc0808();
      value_zhuanhuan(adc_value);  //A/D转换的值在数码管上显示
      led_display();
     }
}
if(set_value>adc_value)   //加热控制
{
jiare=0;
}
if(adc_value>=set_value)
{
jiare=1;
}    
if(dishuiwei==0&gaoshuiwei==0)   //水位控制
{
dianji=0;
if(dishuiwei==1&gaoshuiwei==1)
{
dianji=1;
}
}
else
{
dianji=1;
}
}
}

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

     文件     139495  2003-01-01 12:11  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制仿真.DSN

     文件        768  2003-01-01 12:11  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制仿真.PWI

     文件       3196  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.c

     文件       2661  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.hex

     文件         56  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.lnp

     文件      10608  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.M51

     文件        248  2009-07-11 12:41  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.plg

     文件       2129  2009-07-02 14:17  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.Uv2

    .......      2125  2009-07-02 11:44  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序_Uv2.Bak

     文件       8459  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.LST

     文件       7106  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.OBJ

     文件       6777  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序

     文件     139495  2003-01-01 12:11  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\Last Loaded Last Loaded 水位控制仿真.DBK

     文件     139495  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\Last Loaded 水位控制仿真.DBK

     文件        742  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\Last Loaded 水位控制仿真.PWI

    .......      1175  2009-07-11 12:39  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序_Opt.Bak

     文件       1175  2009-07-11 12:41  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.Opt

    .......    135168  2009-07-02 16:47  桌面333333\桌面22222\桌面\桌面\桌面\调理电路Doc1.doc

     目录          0  2009-07-06 23:25  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序

     目录          0  2009-07-02 19:34  桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序

     目录          0  2009-07-06 22:18  桌面333333\桌面22222\桌面\桌面\桌面

     目录          0  2009-07-07 14:27  桌面333333\桌面22222\桌面\桌面

     目录          0  2003-01-01 10:05  桌面333333\桌面22222\桌面

     目录          0  2003-01-01 11:54  桌面333333\桌面22222

     目录          0  2009-07-11 12:33  桌面333333

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

               600878                    25


评论

共有 条评论