多功能智能控制器
-----------*/
IP = 0x00; // "清除中断优先级"
PS = 0; // "串行中断优先"
PX0 = 0; // "外部中断0"
PT0 = 1; // "定时器中断0"
PX1 = 0; // "外部中断1"
PT1 = 0; // "定时器中断1"
// 定时器控制寄存器TCON
/*----------------------------------------------------
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- - - - - - - - - - - - - - - - - - - - - - - -
| TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
- - - - - - - - - - - - - - - - - - - - - - - -
| 用于定时器 | 用于外中断 |
-----------------------------------------------------*/
TCON = 0x00;
IT0 = 1; // "外部中断0触发方式 0=电平 1=边沿"
IE0 = 0; // "外部中断0申请标志"
IT1 = 0; // "外部中断1触发方式 0=电平 1=边沿"
IE1 = 0; // "外部中断1申请标志"
TR0 = 0; // "T0运行控制"
TF0 = 0; // "T0溢出标志"
TR1 = 0; // "T1运行控制"
TF1 = 0; // "T1溢出标志"
// 定时器模式控制寄存器TMOD
/*----------------------------------------------------
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- - - - - - - - - - - - - - - - - - - - - - - -
|GATE| C/T| M0 | M1 |GATE | C/T | M0 | M1 |
- - - - - - - - - - - - - - - - - - - - - - - -
| 高4位用于T1 | 低4位用于T0" |
-----------------------------------------------------*/
TMOD=0x11; // 定时器T0、T1为16位定时模式1
TH0=0x3C;TL0=0xB0; // 定时器0赋初值
TH1=0x3C;TL1=0xB0; // 定时器1赋初值
ET0=1;TR0=1;EA=1; // 开定时器0
//***************** 变量及引脚初始化 **********************************
hour=0; min=0; sec=0; // 当前时间初始化
armhour=0;armmin=0;armsec=0; // 控制时间初始化
IRIN=1;BEEP=1;RELAY=1; FELAY=1;
W_LED=1;D_LED=1;C_LED=1; // 指示灯初始化
F_LED=1;Y_LED=1;
Adjust_Res(0x5f); // 调整18B20的分辨率 0x1f:0.5; 0x3f:0.25; 0x5f:0.125
}
/*****************************************************
函 数 名:void Delay_50us(uint t)
功 能:延时函数
说 明:系统用延时
入口参数:无
返 回 值:无
*****************************************************/
void Delay_50us(uint t)
{
uchar j;
for(;t>0;t--)
for(j=19;j>0;j--)
;
}
/*****************************************************
函 数 名:void Work_led(uchar count)
功 能:工作指示灯闪烁提示
说 明:闪烁以提示工作状态
入口参数:无
返 回 值:无
*****************************************************/
Work_led(uchar count)
{
while(count--)
{
W_LED=~W_LED; //工作灯取反
Delay_50us(3000);
}
C_LED=1;
}
/*****************************************************
函 数 名:void turn_on_information(void)
功 能:开机显示信息
说 明:第1行显示产品名;第2行动态显示作者信息
入口参数:无
返 回 值:无
*****************************************************/
uchar code string[]=" 2008-1-20";
void turn_on_information(void)
{
uchar num=30;
uchar *cp;
cp=string;
do
{
WriteCommandLCM(0x01,1); // 显示清屏
Delay_50us(100);
DisplayListChar(0,0,"zhao jun");
DisplayListChar(0,1,cp);
Delay_50us(8000);
cp++;
if(*cp==\0)
{
cp=string; // 到达字符的尾部时,改变指针,重新指向字符串的头部
}
}while(num--);
WriteCommandLCM(0x01,1); // 显示清屏
}
#endif
2.温度部分:
/*--------------------------------------------------------------------------
TEMPERATURE.H
The user function is C51.
Copyright (c) 1988-2004 Keil Elektronik GmbH sum zhaojun
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __TEMPERATURE_H__
#define __TEMPERATURE_H__
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^3;//ds18b20与单片机连接口
uchar data Tp[8];//温度显示数据
/******************************ds1820程序***************************************/
/*****************************************************
函 数 名:void Delay_DS(uint useconds)
功 能:DS18B20延时1微秒
说 明:DS18B20时序延时
入口参数:useconds
返 回 值:无
*****************************************************/
//延时
void Delay_DS(uint useconds)//延时1微秒
{
while(useconds--);
}
/***********
多功能智能控制 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)