资源简介
利用DS18B20温度传感器检测温度,再根据温度的变化改变风扇的转速。
也可以利用按键实现手动控制风扇转速。
也可以利用按键实现手动控制风扇转速。
![](http://www.nz998.com/pic/42252.jpg)
代码片段和文件信息
#include “reg52.h“
#define uchar unsigned char
#define uint unsigned int
#define Disdata P0 // 段码入口
sbit DQ=P3^4; // 温度输入口
sbit BUZ=P2^0;
sbit BUZ1=P3^7;
sbit DC1=P2^2; //直流电机输入口
sbit DC2=P2^3;
sbit KEY1=P2^4;
sbit KEY2=P2^5;
sbit KEY3=P2^6;
uint temp; // variable of temperature 定义一个变量
char tem1=35tem2=0;
uchar flag1flag=0timer=0flag3=1; // 定义一个标志标志温度是负还是正1为负0为正
sbit DIN=P0^7; // 小数点控制
#define discan P1 // 数码管位选扫描
uchar h; // 定义变量
unsigned char code table[]={0xc00xf90xa40xb00x990x920x820xf80x800x900xff0xbf};
//共阳数码管段码表 “0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“ “灭“ “-“
unsigned char code table1[]={0x400x790x240x300x190x120x020x780x000x10};//带小数点的编码
//共阳数码管带小数点段码表 “0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“
uchar data temp_data[2]={0x000x00};//读出温度暂放
uchar data Dis_play[5]={0x000x000x000x000x00};//显示单元数据,共4个数据和一个运算暂用
uchar code ditab[16]={0x000x010x010x020x030x030x040x040x050x060x060x070x080x080x090x09};
//小数部分对应十进制 “0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“ “A“ “B“ “C“ “D“ “E“ “F“
uchar code scan_con[4]={0x010x020x040x08}; //列扫描控制字
uchar data temp_wea[]={0x000x00};
/***************************************/
/* 延时子程序 */
/***************************************/
void delay(uint i) //delay
{
while(i--);
}
/************************************************/
/* 初始化ds18b2子函数* */
/************************************************/
void Init_DS18B20(void)
{
uchar x=0;
DQ = 1; //DQ复位
delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(80); //精确延时 大于 480us
DQ = 1; //拉高总线
delay(14);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(20);
}
/*************************************************/
/* 读字节子函数 */
/*************************************************/
ReadOneChar(void)
{
uchar i = 0;
uchar dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1; // 数据右移一位
DQ = 1; // 给脉冲信号
if(DQ) // DQ为1
dat|=0x80; // 读出数据
delay(4); // 延时
}
return(dat);
}
/*************************************************/
/* 定时器0初始化 */
/*************************************************/
void timer0_init(void)
{
TMOD=0x01; //定时器0工作于方式1
TH0=(65536-100)/256;
TL0=(65536-100)%256;
TR0=1;
ET0=1;
EA=1;
}
/*************************************************/
/* 写字节子函数 */
/*************************************************/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 129290 2012-04-09 20:39 温控风扇\Backup Of 原理图.DBK
文件 128823 2012-04-09 20:05 温控风扇\Last Loaded 原理图.DBK
文件 132725 2012-04-10 21:46 温控风扇\原理图.DSN
文件 1054 2012-07-31 13:01 温控风扇\原理图.PWI
文件 14339 2012-04-18 21:17 温控风扇\温控风扇
文件 10532 2012-04-18 21:16 温控风扇\温控风扇.c
文件 3493 2012-04-18 21:17 温控风扇\温控风扇.hex
文件 33 2012-04-18 21:17 温控风扇\温控风扇.lnp
文件 22497 2012-04-18 21:17 温控风扇\温控风扇.LST
文件 22579 2012-04-18 21:17 温控风扇\温控风扇.M51
文件 16950 2012-04-18 21:17 温控风扇\温控风扇.OBJ
文件 156 2012-07-31 09:44 温控风扇\温控风扇.plg
....... 55230 2012-07-31 09:44 温控风扇\温控风扇.uvopt
文件 13248 2012-03-06 21:24 温控风扇\温控风扇.uvproj
....... 55232 2012-06-26 11:29 温控风扇\温控风扇_uvopt.bak
文件 0 2012-03-06 21:22 温控风扇\温控风扇_uvproj.bak
目录 0 2012-07-31 13:01 温控风扇
----------- --------- ---------- ----- ----
606181 17
- 上一篇:豆瓣电影爬虫、豆瓣电影推荐系统
- 下一篇:STM8S_PWM_LED呼吸灯
相关资源
- 激光位移传感器的特点及应用解析
- 位移传感器应用全面解析
- LCD显示温度+串口接收温度.rar
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- HX711 称重传感器 C程序
- 51单片机读取温度数据存储到SD卡中并
- ADNS-3080光流传感器测试程序Arduino
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- 28335写的用spi读取传感器数据并用CA
- DS18B20分布式多点测温的Proteus仿真
- 铂电阻温度测量系统的设计
- 单片机 DS18B20 温度控制系统
- SCA60角度检测传感器模块程序
- 课程设计蔬菜大棚自动控制系统,包
- 带时间温度显示的室内灯光控制系统
- 制作万年历 日期 农历 温度显示
- 基于ABAQUS的TC4钛合金电阻热热处理温
- 基于能量和距离的无线传感器网络分
- 无线传感器网络基于分簇的路由协议
- (温度PID)实验指导书(三菱)
- 基于LabVIEW模拟的温度报警器.vi
- 软壁AdS / QCD模型中有限温度手性相变
- ADXL362中文说明手册
- 有限密度和零温度下的手性密度波与
- 传感器应用七十二变
- 在各城市的窄带物联网中传感器起到
- 物联网家居系统中基于单片机的多路
- 基于PIC的TCP/IP网络协议和zigbee无线传
评论
共有 条评论