资源简介
利用DS18B20温度传感器检测温度,再根据温度的变化改变风扇的转速。
也可以利用按键实现手动控制风扇转速。
也可以利用按键实现手动控制风扇转速。
代码片段和文件信息
#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呼吸灯
相关资源
- stc12单片驱动DHT11温湿度传感器
- 基于s51单片机的直流电机测速系统
- 使用定时中断方式与ds18b20通信
- Proteus单片机仿真 万年历支持温度农历
- JR3六维力矩传感器使用说明和使用手
- 温度场云图
- 组态王温度控制课程设计
- 使用数字电流传感器进行功耗和能耗
- ds1302时钟、温度、LCD1602显示,按键设
- 温度传感器NTC 100K3950 温度表 datashee
- 基于单片机的电加热炉温度控制系统
- 基于Kalman滤波的姿态传感器算法代码
- 毕业设计温度监控系统的设计
- AT89C51单片机温度控制系统
- 利用PLL估算器和弱磁技术FW实现永磁同
- ds18b20测温程序
- 温度控制系统
- 超声波传感器数据融合算法的研究
- AD转换MCP9700温度传感器
- stm32控制的PID温度控制系统介绍
- DS18B20关于search rom指令的使用
- mlx90620温度传感器例程
- 红外避障传感器 E18-D80NK
- 基于51单片机的温度控制系统.rar
- DHT11 温湿度传感器1602显示 可用程序
- Labview模拟温度采集监测系统.rar
- 基于ZigBee技术的温度采集系统设计毕
- 气压传感器BMP180驱动stm32f103
- fc37雨滴传感器
- 手机的加速度和陀螺仪传感器数据实
评论
共有 条评论