/***********************************************************************************
;功能说明:DHT90与LCD1602的温湿度显示KeilC程序
;文件名称:DHT90.c
;微处理器:AT89S52
;编译环境:Keil uVision V2.38a
;作 者:Huang Yanxiang
;版 权:(c)Huang Yanxiang
;创建日期:2008.08.15
;版 本:V1.2
;修改日期:2008.08.26
;修改说明:添加了一个LCD_disp_str()函数,修改了延时函数的注释。
;***********************************************************************************/
/*************定义接口********************
P0------DB0~DB7 (LCD1602)
P2.0------RS (LCD1602)
P2.1------RW (LCD1602)
P2.2------E (LCD1602)
P2.6------SCK (DHT90)
P2.7------DATA (DHT90)
*****************************************/
#include <AT89x51.h>
#include <intrins.h>
#include <math.h> //Keil library
#include <stdio.h> //Keil library
//*********************第一部分LCD1602设置 START****************************************
#define LCD_DB P0
sbit LCD_RS=P2^0; //P2^0是p2.0的意思;LCD_RS与P2.0等效起来,对LCD_RS 读写,就是对P2.0读写 好处在于LCD_RS含义直接明了,写程序多了就会知道有必要de
sbit LCD_RW=P2^1; //P2^1是p2.1的意思
sbit LCD_E=P2^2; //P2^2是p2.2的意思
/******定义函数****************/
#define uchar unsigned char
#define uint unsigned int
void LCD_init(void); //初始化函数
void LCD_write_command(uchar command); //写指令函数
void LCD_write_data(uchar dat); //写数据函数
void LCD_disp_char(uchar x,uchar y,uchar dat);//在某个屏幕位置上显示一个字符,X(0-15),y(1-2)
void LCD_disp_str(uchar x,uchar y,uchar *str); //LCD1602显示字符串函数
void delay_n10us(uint n); //延时函数
/*--------------------------------------
;模块名称:LCD_init();
;功 能:初始化LCD1602
;占用资源:--
;参数说明:--
;创建日期:2008.08.15
;版 本:FV1.0(函数版本Function Version)
;修改日期:--
;修改说明:--
;-------------------------------------*/
void LCD_init(void)
{
delay_n10us(10);
LCD_write_command(0x38);//设置8位格式,2行,5x7
delay_n10us(10);
LCD_write_command(0x0c);//整体显示,关光标,不闪烁
delay_n10us(10);