资源简介
这是一个水温水位控制器的程序和仿真,经过几天的编写终于完成,希望和大家分享一下
代码片段和文件信息
#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
- 上一篇:yslow-3.1.0-fx
- 下一篇:改进的指数型内聚力模型uel程序
相关资源
- 改进的指数型内聚力模型uel程序
- 8×8LED点阵屏显示数字程序代码和pro
- USB转串口驱动源代码及单片机程序
- 捕获IP数据包的小程序.rar
- 暗通道先验图像去雾程序
- 小程序剪切头像demo
- 图灵机文档+程序
- SIEMENS S7-200 下沉法 排序程序
- 万年历verilog程序
- 设计一个模拟计算器的程序,要求能
- 2.4G收发模块PCB、原理图、BOM、程序
- 物料管理excel程序
- 热芋头工作室-万能解密程序CDGDeciph
- 2019福州大学计算机863数据结构与程序
- 反译小程序.rar
- Windows服务程序VC源代码
- Intel Fortran IAPWS-IF97水物性Fortran 源程序
- 网络控制系统Truetime仿真源程序
- TI的电机控制基本程序
- 微信小程序AES加密解密相关
- 一个可以定时运行电脑上的程序或者
- 51单片机双机通信程序(含仿真)
- vs2015编译的yolo3图形界面程序源码
- 广工数据结构课程设计实验-二叉树的
- 基于PSO粒子群算法的PID参数自整定程
- 互相关法求信号延时程序
- 程序添加计划任务
- PCI1716L多通道AD采集程序
- 小程序答题demo
- 一款可以直接编译使用的《弹一弹》
评论
共有 条评论