微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 多功能智能控制器

多功能智能控制器

时间:11-18 来源:互联网 点击:

-----------*/

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--);

}

/***********

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top