资源简介
本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统选用STC89C52单片机作为控制平台对风扇转速进行控制。可在测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。

代码片段和文件信息
#include
#include
//#include
sbit LCD_RS=P2^0;//定义引脚
sbit LCD_RW=P2^1;
sbit LCD_E=P2^2;
#define LCD_Data P0
#define Busy 0x80 //用于检测LCD状态字中的Busy标识
void WriteDataLCD(unsigned char WDLCD);
void WriteCommandLCD(unsigned char WCLCDBuysC);
unsigned char ReadDataLCD(void);
unsigned char ReadStatusLCD(void);
void LCDInit(void);
void DisplayOneChar(unsigned char X unsigned char Y unsigned char DData);
void DisplayListChar(unsigned char X unsigned char Y unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
unsigned char code uctech[] = {“1111.taobao.co“};
unsigned char code net[] = {“Happy every day!“};
void main(void)
{
Delay400Ms(); //启动等待,等LCD讲入工作状态
LCDInit(); //LCM初始化
Delay5Ms(); //延时片刻(可不要)
DisplayListChar(0 0 uctech);
DisplayListChar(0 5 net);
ReadDataLCD();//测试用句无意义
while(1);
}
//写数据
void WriteDataLCD(unsigned char WDLCD)
{
ReadStatusLCD(); //检测忙
LCD_Data = WDLCD;
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 0; //若晶振速度太高可以在这后加小的延时
LCD_E = 0; //延时
LCD_E = 1;
}
//写指令
void WriteCommandLCD(unsigned char WCLCDBuysC) //BuysC为0时忽略忙检测
{
if (BuysC) ReadStatusLCD(); //根据需要检测忙
LCD_Data = WCLCD;
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 0;
LCD_E = 0;
LCD_E = 1;
}
//读数据
unsigned char ReadDataLCD(void)
{
LCD_RS = 1;
LCD_RW = 1;
LCD_E = 0;
LCD_E = 0;
LCD_E = 1;
return(LCD_Data);
}
//读状态
unsigned char ReadStatusLCD(void)
{
LCD_Data = 0xFF;
LCD_RS = 0;
LCD_RW = 1;
LCD_E = 0;
LCD_E = 0;
LCD_E = 1;
while (LCD_Data & Busy); //检测忙信号
return(LCD_Data);
}
void LCDInit(void) //LCM初始化
{
LCD_Data = 0;
WriteCommandLCD(0x380); //三次显示模式设置,不检测忙信号
Delay5Ms();
WriteCommandLCD(0x380);
Delay5Ms();
WriteCommandLCD(0x380);
Delay5Ms();
WriteCommandLCD(0x381); //显示模式设置开始要求每次检测忙信号
WriteCommandLCD(0x081); //关闭显示
WriteCommandLCD(0x011); //显示清屏
WriteCommandLCD(0x061); // 显示光标移动设置
WriteCommandLCD(0x0C1); // 显示开及光标设置
}
//按指定位置显示一个字符
void DisplayOneChar(unsigned char X unsigned char Y unsigned char DData)
{
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;
X |= 0x80; // 算出指令码
WriteCommandLCD(X 0); //这里不检测忙信号,发送地址码
WriteDataLCD(DData);
}
//按指定位置显示一串字符
void DisplayListChar(unsigned char X unsigned char Y unsigned char code *DData)
{
unsigned char ListLength;
ListLength = 0;
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
while (DData[ListLength]>=0x20) //若到达字串尾则退出
{
if (X <= 0xF) //X坐标应小于0xF
{
DisplayOneChar(X Y DData[ListLength]); //显示单个字符
ListLength++;
X++;
}
}
}
//5ms延时
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}
//400ms延时
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 356922 2017-03-22 16:22 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\LCD1602A-5V厂家说明书.pdf
文件 3189 2017-04-09 23:48 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\1602.c
文件 7972 2017-04-09 23:48 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\1602.OBJ
文件 6705 2017-04-09 23:48 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602
文件 1147 2017-04-09 23:48 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602.hex
文件 51 2017-04-09 23:48 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602.lnp
文件 1013 2012-04-12 16:21 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602.opt.bak
文件 260 2017-04-20 22:55 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602.plg
文件 2115 2012-02-11 13:49 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602.Uv2.bak
文件 75219 2017-04-20 22:55 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602.uvopt
文件 13243 2017-04-10 00:40 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602.uvproj
文件 1015 2012-02-11 13:49 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602_Opt.Bak
文件 1861 2008-04-02 16:30 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602_Uv2.Bak
文件 75193 2017-04-10 17:28 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\LCD1602_uvopt.bak
文件 5115 2002-04-16 14:32 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\STARTUP.A51
文件 9055 2007-03-18 22:23 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\Text1.c
文件 2063705 2011-02-24 15:46 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\DS18b20cn.pdf
文件 717709 2015-12-01 11:43 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\HC-SR501模块新资料\HC-SR501模块\HC-SR501人体感应模块.pdf
文件 48047 2013-06-05 12:42 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\HC-SR501模块新资料\HC-SR501模块\原理图.png
文件 44473 2013-06-05 13:21 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\HC-SR501模块新资料\HC-SR501模块\参考电路.jpg
文件 25600 2017-04-14 00:04 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\HC-SR501模块新资料\HC-SR501模块\热释电传感器基本知识和使用中的常见问题.wps
文件 1141248 2017-04-10 13:37 温控风扇\基于红外感应的温控转速型风扇设计资料\各模块资料\L298N_电机驱动模块_程序书.doc
文件 44 2018-12-07 00:00 温控风扇\基于红外感应的温控转速型风扇设计资料\更多嵌入式资料.txt
文件 51354 2017-04-20 22:44 温控风扇\基于红外感应的温控转速型风扇设计资料\温控风扇电路图\基于红外感应的温控转速型风扇电路设计图.pdf
文件 18069 2017-04-20 22:53 温控风扇\基于红外感应的温控转速型风扇设计资料\温控风扇程序\1
文件 5499 2017-04-20 22:53 温控风扇\基于红外感应的温控转速型风扇设计资料\温控风扇程序\1.hex
文件 85 2017-04-20 22:53 温控风扇\基于红外感应的温控转速型风扇设计资料\温控风扇程序\1.lnp
文件 27070 2017-04-20 22:53 温控风扇\基于红外感应的温控转速型风扇设计资料\温控风扇程序\1.M51
文件 220 2018-04-03 14:54 温控风扇\基于红外感应的温控转速型风扇设计资料\温控风扇程序\1.plg
....... 86429 2019-01-20 20:31 温控风扇\基于红外感应的温控转速型风扇设计资料\温控风扇程序\1.uvgui.Administrator
............此处省略28个文件信息
- 上一篇:数值分析 第二版 王能超 很详细的课件
- 下一篇:max262中文手册
相关资源
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
评论
共有 条评论