资源简介
通过单片机采集外界温度值,并根据采集到的温度调整电机的转速,里面包含有电路图,程序图,简单易懂,非常实用
代码片段和文件信息
#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--);
};
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-11 19:56 基于红外感应的温控转速型风扇设计资料\
目录 0 2017-04-20 22:55 基于红外感应的温控转速型风扇设计资料\1602厂家说明书+例子程序\
文件 356922 2017-03-22 16:22 基于红外感应的温控转速型风扇设计资料\1602厂家说明书+例子程序\LCD1602A-5V厂家说明书.pdf
目录 0 2017-04-20 22:55 基于红外感应的温控转速型风扇设计资料\1602厂家说明书+例子程序\例程-LCD1602(请使用keil uvision3或以上版本打开)\
文件 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
目录 0 2017-04-20 22:56 基于红外感应的温控转速型风扇设计资料\HC-SR501模块新资料\
目录 0 2017-04-20 22:56 基于红外感应的温控转速型风扇设计资料\HC-SR501模块新资料\HC-SR501模块\
文件 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
文件 90867 2017-04-20 00:17 基于红外感应的温控转速型风扇设计资料\作品电路设计图.png
文件 51354 2017-04-20 22:44 基于红外感应的温控转速型风扇设计资料\基于红外感应的温控转速型风扇电路设计图.pdf
目录 0 2018-04-03 23:50 基于红外感应的温控转速型风扇设计资料\控制程序\
文件 18069 2017-04-20 22:53 基于红外感应的温控转速型风扇设计资料\控制程序\1
............此处省略20个文件信息
- 上一篇:fluent UDF马世虎翻译版
- 下一篇:维盟AC控制器
评论
共有 条评论