- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于 51 单片机控制的 1602 液晶电子时钟显示程序
[ 2007-05-31 13:31:45 | By: kevin ]
刚写好的基于 51 单片机控制的 1602 液晶电子时钟显示程序,整理了一下,
并尽量加上的注释,放出来大家共享及交流。
有兴趣的可以参考一下,各管脚定义都比较明显,有一定基础的可稍作修改
即可进行实验。
//基于 51 单片机控制的 1602 液晶电子时钟显示程序
#i nclude <intrins.h>
#i nclude <at89x51.h>
#define uchar unsigned char
#define LCM_RS P2_2 //定义引脚
#define LCM_RW P2_1
#define LCM_E P2_0
#define LCM_Data P0
#define Busy 0x80 //用于检测 LCM 状态字中的 Busy 标识
uchar i, j, k, second, tcount, minute, hour;
void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM,BuysC);
unsigned char ReadDataLCM(void);
unsigned char ReadStatusLCM(void);
void LCMInit(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char
DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code
*DData);
void DisplayqListChar(unsigned char X, unsigned char Y, unsigned char
code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
unsigned char code
table[]={'0','1','2','3','4','5','6','7','8','9'};//数码管数字编码
unsigned char code MyNo[] = {"NAME:Who_am_I?"};
/********************************************************************
**********************
** 函数名称:delay()
** 功能描述:延时子程序,大约延时 n MS
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 作者: kevin
** 日期: 2007 年 5 月 31 日
*********************************************************************
***********************/
delay(uchar n)
{uchar i,j,k;
for(i=2;i>0;i--)
for(j=n;j>0;j--)
for(k=125;k>0;k--);
}
/********************************************************************
**********************
** 函数名称:lcd()
** 功能描述:液晶初始化,然后在液晶屏第二行显示提示信息
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:Delay400Ms(),LCMInit(),DisplayListChar()
** 作者: kevin
** 日期: 2007 年 5 月 31 日
*********************************************************************
***********************/
void lcd(void)
{
Delay400Ms(); //启动等待,等 LCM 讲入工作状态
LCMInit(); //LCM 初始化
Delay5Ms(); //延时片
文档评论(0)