资源简介
本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统选用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中文手册
相关资源
- 基于AT89C51单片机LED显示控制系统的设
- VC串口通信上位机控制单片机led灯亮灭
- 基于单片机的自动售货机系统设计(
- 单片机c51编译器COMP51
- 基于单片机的温度控制系统,包括P
- 51单片机电流电压测量
- 步进马达驱动
- 单片机模糊控制系统设计与应用
- Keil实用功能与串口动态调试
- 利用矩阵键盘控制51单片机LCD12864显示
- ATmega128单片机入门与提高
- MCS-51单片机原理、系统设计与应用
- 基于STM32控制的可调PWM输出+LCD显示
- 单片微型机原理、应用与实验(第五
- 51单片机课程设计和100个
- 毕业设计关于基于单片机全自动洗衣
- STM32温控风扇
- 格力空调遥控码接收程序,51单片机做
- 基于单片机的灯光自动控制系统
- 常用dxp库文件包含51单片机
- 单片机多任务实现
- 字库制作软件和图片取模工具
- 基于51单片机的超声波测距LCD1602显示
- 基于51单片机的TIM1控制蜂鸣器模拟电
- STC单片机控制MFRC522的完整资料,包括
- 电动智能小车完整论文[用过的参考文
- MFRC522原理图和程序
- qt 写的绘制串口接收到数据的实时曲
- stm32f1控制电磁阀+舵机+ADC推杆
- 单片机控制的智能台灯
评论
共有 条评论