资源简介
给予模糊控制单片机温度控制系统的设计,本设计主要通过采用模糊控制的方法实现对温度的事实控制和检测
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P1^0;//ds18b20与单片机连接口
sbit RS=P3^0;
sbit RW=P3^2;
sbit EN=P3^1;
sbit dw=P3^3;//加“1”
sbit up=P3^4;// 减“1”
sbit fun=P3^5;//功能键
sbit hot=P1^6;//加热
sbit cool=P1^7;//降温
uchar code str1[]=“SV:“;
uchar code str2[]=“PV:“;
uchar data disdata[7];
uchar data disth[2];
uchar code chaxunbaoUt[21][11]={
{55555543211}{55555542211}{55555542211}
{55555542111}{55555542111}{55555542111}
{55544432111}{55544432111}{55444322100}
{55443211100}{44332111000}{33221110000}
{22221110000}{22211000000}{22211000000}
{11111000000}{11111000000}{11111000000}
{11111000000}{11111000000}{11111000000}
}; //模糊控制表
uint th=25; //初始温度
uchar fnumcount0count1;
//uchar shige;
uchar flagdat;//当前温度符号位
uint tvaluek;//温度值
uchar tflag;//温度正负标志
void delay1ms(uint ms)//延时1毫秒(不够精确的)
{
uint ij;
for(i=0;i for(j=0;j<100;j++);
}
void wr_com(uchar com)//写指令//
{
RS=0;
RW=0;
EN=0;
P2=com;
delay1ms(1);
EN=1;
delay1ms(1);
EN=0;
}
void wr_dat(uchar dat)//写数据//
{
RS=1;
RW=0;
EN=0;
P2=dat;
delay1ms(1);
EN=1;
delay1ms(1);
EN=0;
}
void lcd_init()//初始化设置//
{
//delay1ms(15);
wr_com(0x38);
delay1ms(5);
wr_com(0x08);
delay1ms(5);
wr_com(0x01);
delay1ms(5);
wr_com(0x06);
delay1ms(5);
wr_com(0x0c);
delay1ms(5);
}
void display(uchar *p)//显示//
{
while(*p!=‘\0‘)
{
wr_dat(*p);
p++;
delay1ms(1);
}
}
init_play()//初始化显示
{
lcd_init();
wr_com(0x80);
display(str1);
wr_com(0x80+0x40);
display(str2);
}
void delay_18B20(uint i)//延时1微秒
{
while(i--);
}
void ds1820rst()//ds1820复位
{
uchar x=0;
DQ = 1; //DQ复位
delay_18B20(4); //延时
DQ = 0; //DQ拉低
delay_18B20(100); //精确延时大于480us
DQ = 1; //拉高
delay_18B20(40);
}
uchar ds1820rd()//读数据
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; //给脉冲信号
dat>>=1;
DQ = 1; //给脉冲信号
if(DQ)
dat|=0x80;
delay_18B20(10);
}
return(dat);
}
void ds1820wr(uchar wdata)/*写数据*/
{unsigned char i=0;
for (i=8; i>0; i--)
{ DQ = 0;
DQ = wdata&0x01;
delay_18B20(10);
DQ = 1;
wdata>>=1;
}
}
void read_temp1()
{
ds1820rst();
ds1820wr(0xcc);//*跳过读序列号*/
ds1820wr(0x44);//*启动温度转换*/
ds1820rst();
}
read_temp2() /*读取温度数据并处理*/
{
uchar ab;
ds1820wr(0xcc);//*跳过读序列号*/
ds1820wr(0xbe);//*读取温度*/
a=ds1820rd();
b=ds1820rd();
tvalue=b;
tvalue<<=8;
tvalue=tvalue|a;
if(tvalue<0x0fff)
tflag=0;
else
{
tvalue=~tvalue+1;
tflag=1;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 23824 2011-07-10 08:55 程序\zongtiaoshi
文件 8126 2011-07-10 08:55 程序\zongtiaoshi.hex
文件 30 2011-07-10 08:55 程序\zongtiaoshi.lnp
文件 32781 2011-07-10 08:55 程序\zongtiaoshi.M51
文件 1344 2011-07-10 08:57 程序\zongtiaoshi.Opt
文件 217 2011-07-10 08:58 程序\zongtiaoshi.plg
文件 2105 2011-05-21 21:57 程序\zongtiaoshi.Uv2
....... 1133 2011-07-09 19:19 程序\zongtiaoshi_Opt.Bak
文件 0 2011-05-21 19:46 程序\zongtiaoshi_Uv2.Bak
文件 11990 2011-05-25 09:12 程序\zt.c
文件 27135 2011-07-10 08:55 程序\zt.LST
文件 27317 2011-07-10 08:55 程序\zt.OBJ
目录 0 2011-07-10 08:57 程序
----------- --------- ---------- ----- ----
136002 13
- 上一篇:PCommLite.NET2.0
- 下一篇:G2553 12864的程序
相关资源
- FuzzyTECH模糊控制
- 用于单片机的模糊控制算法程序
- 模糊控制倒立摆实验源程序、讲解p
- C实现模糊控制算法
- 基于PLC的温度模糊控制系统设计.pdf
- 模糊控制算法——模糊控制系列
- PID控制系统和模糊自适应PID控制系统
- 模糊控制算法 C程序
- 基于模糊控制的人工势场算法
- 模糊控制外文翻译英文原文+译文 带作
- 基于模糊控制的智能数控冰箱
- 模糊控制,模糊pid源码
- 基于VC智能控制倒车及其仿真
- 基于遗传算法的模糊控制器动态优化
- 基于模糊控制和PID控制的自主车辆速
- 模糊自适应PID控制器设计
- 模糊控制技术在全自动洗衣机的应用
- 直流电机模糊控制实验
- 基于LQR的二级倒立摆模糊控制
- 一级倒立摆模糊控制
- 双容水箱实验报告(采用PID+模糊控制
- 自主水下航行器模糊自校正航迹控制
- SIRM模糊算法控制一级直线倒立摆
- 模糊控制算法C程序源码
- CSTR模糊PID控制
- 基于模糊控制和PID结合的倒立摆仿真
- 模糊自整定PID控制算法
- 模糊控制技术在双容水箱液位中的应
- labview模糊控制
- 基于模糊控制的PID参数优化
评论
共有 条评论