#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define DELAY_CLOSEDIS 5 //没按键,延时5秒关背光
#define DELAY_INPUT 5 //没按键,延时5秒返回显示温度
#define KEYCODE_UP 0x1 //加温度
#define KEYCODE_DOWN 0x2 //减温度
#define KEYCODE_FAN 0x4 //设置风速
#define KEYCODE_ONOFF 0x8 //开关风机
#define KEYCODE_TIME 0x6 //设置时间
#define KEYCODE_PWM 0xc //设置PWM
#define WAIT_cCurrTemp 0
#define MAX_TEMP 32
#define MIN_TEMP 15
sbit bDQ = P1^0; // DS1820数据线
sbit bLED_light = P1^1; // LED 背光驱动,低有效
sbit bKey1 = P1^2; // 键盘扫描线1,高有效
sbit bKey2 = P1^3; // 键盘扫描线2,高有效
sbit bKey3 = P1^4; // 键盘输入线1,低有效
sbit bKey4 = P1^5; // 键盘输入线2,低有效
sbit bFAN = P0^5; // 开风机PWM, 低有效
sbit bAC_Zero = P3^2; // 过零脉冲输入口
//uchar ucCount1; // 记录过零脉冲宽度
uchar ucCount; // 可控占空比0-95%宽度=10mS-ucCount1
uchar ucPWM; // 输出占空比
uchar bdata ucLED;
sbit bFAN_AUTO = ucLED^3;
sbit bFAN_LOW = ucLED^2;
sbit bFAN_MIN = ucLED^1;
sbit bFAN_HIGH = ucLED^0;
bit bPowerON = 0; // 开机状态=1
uchar ucTimer;
/**************** LED显示相关变量 ********************/
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, C, 度
const uchar code aucLEDNUMCODE[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x7,0x7F,0x6F,0x39,0x63};
const uchar code aucLEDcs[]={0x17,0x1b,0x1d,0x1e,0x0f}; /* LED位选 */
uchar ucScanIndex; /* 数码管位选控制 */
//uchar ucLEDData[4]; /* 临时显示缓冲数组 */
uchar ucLEDFlash[5]; /* 显示缓冲数组 */
bit bNeg; /* 负号标志 */
uchar ucFlashType;
bit bFlash;
uchar ucCurrSec;
uchar ucSystemStatus;
uchar ucDelaySec; //切换延时秒数
uchar ucCloseDelaySec; //关背光延时秒数
uchar aucCurrTime[2];
uchar aucTmpValue[2];
uchar ucFanSpeed;
char cCurrTemp;
char cSetTemp;
/**********************************************************************/
uchar ucLongDelay; //长按键
uchar ucDelayKey;
uint nDelay100uS;
char cKEYCode;
bit bStill;
bit bUpdateDisOK;
/****************************** 函数声明 ******************************/
void DisplayValue(char *Value);
void SetFanStatus(void);
void DisposeKey(void);
void ScanLED(void);
uchar SCANKEY(void);
void DisplayTemp(char Temp);
void Key(uchar k);
void DisposeCurrTime(void);
void DisposeDelay(uchar LType);
void UpdateDis(uchar status);
/**********************************************************************/
bit Init_DS18B20(void)
{
bit sysOK = 0;
bDQ = 0; // 单片机将DQ拉低
nDelay100uS = 6;
while(nDelay100uS != 0); // 精确延时 大于 500us
bDQ = 1; // 拉高总线
nDelay100uS = 4;
while(bDQ && nDelay100uS); // 稍做延时后 如果bDQ=0则初始化成功 bDQ=1则初
ds18b20详解及程序_专业资料。ds18b20的详细资料和程序最近都在学习和写单片机的程序, 今天有空又模仿 DS18B20 温度测量显示实验写了一个 与 DS18B20 基于单...
ds18b20程序详解_信息与通信_工程科技_专业资料 暂无评价0人阅读0次下载举报文档 ds18b20程序详解_信息与通信_工程科技_专业资料。DS18B20很详细的中文资料和...
ds18b20程序 6页 1下载券 DS18B20_C程序 3页 1下载券 ds18b20程序详解 4页 免费 ds18b20的子程序 5页 免费 DS18B20程序1 2页 免费 DS18B20+课设程序...
DS18B20源程序_信息与通信_工程科技_专业资料。程序 16.3.1 使用 TX-1C 实验板上的 DS18B20 温度传感器设计温控系统 C 语言源代码 (part4.3 P349) #...
DS18B20程序-超详细注释_电子/电路_工程科技_专业资料。#include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int ...
[0]=tempval/100; tempval=temh;e[1]=(tempval/10)%10; tempval=temh;e[2]=tempval%10; tempval=teml;e[3]=tempval;*/ } //再在主程序中调用一下 ...
51单片机与ds18b20程序_信息与通信_工程科技_专业资料。DS18B20程序#include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint ...
单片机c语言ds18b20程序_信息与通信_工程科技_专业资料。单片机c语言ds18b20程序#include<reg51.h> #define uchar unsigned char #define uint unsigned int ...
#include "DS18B20.h" #include "OCM12864.h" //extern uchar temp_value; uchar temp_value0; /***ds18b20子程序***/ /***ds18b20延迟子函数(晶振12M...
DS18B20与单片机的程序_信息与通信_工程科技_专业资料。DS18B20与单片机的程序功能:实现对 DS18B20 的温度读取,蜂鸣器提示,数码管显示,同时将温度数据发送到计 ...
闽公网安备 35021102001881号 
热门文档