本帖最后由 codenew 于 2014-9-16 20:46 编辑
先附上程序:
#include<reg51.h>
#include<intrins.h>
typedef unsigned char uchar;
typedef unsigned char uint;
unsigned char code table[]= {"Temp wireless "};
unsigned char code table1[]={"Temp: "};
unsigned char code shuzi[]={"123456789ABCDEFG"};
unsigned char num;
sbit BEEP=P3^6; //蜂鸣器定义引脚IO口
void delays(uint x) //毫秒级延时函数
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
/*******************************************************************************
以下是对液晶模块的操作程序
*******************************************************************************/
/***********1602液晶显示部分子程序****************/
sbit rs=P3^3;//LCD数据/命令选择端(H/L)
sbit rw=P3^4;//LCD读/写选择端(H/L)
sbit en=P3^5;//LCD使能控制
void ready()
{
P0=0xff;
rs=0; //RS(H/L),低电平选择命令
rw=1; //RW(H/L),读操作
en=1;
while(P0&0x80); //当为0时表示不忙,退出循环。
en=0;
}
void write_com(uchar com)
{
ready();
rs=0;//命令
rw=0;
P0=com;
en=1;//ready()执行完后,en为0。形成高脉冲,表示可对液晶读写。
en=0;
}
void write_date(uchar date)
{
ready();
rs=1;//数据
rw=0;
P0=date;
en=1;//ready()执行完后,en为0。形成高脉冲,表示可对液晶读写。
en=0;
}
void init1602() //上电后液晶显示初始化函数
{
write_com(0x38); //设置工作方式
write_com(0x0c); //设置光标
write_com(0x06); //设置输入方式
write_com(0x01); //清屏
write_com(0x80);
for(num=0;num<16;num++)
{
write_date(table[num]);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_date(table1[num]);
}
}
/**************************************************
函数功能:主函数
***************************************************/
void main(void)
{
BEEP=1; //禁止蜂鸣器
en=0;
P0=0xff;
write_com(0x38); //设置工作方式
write_com(0x0c); //设置光标
write_com(0x06); //设置输入方式
write_com(0x01); //清屏
write_com(0x80);
for(num=0;num<16;num++)
{
write_date(shuzi[num]);
}
while(1);
}
|