标题:
液晶1602的外接函数-头文件的编写
[打印本页]
作者:
全力
时间:
2017-9-6 17:29
标题:
液晶1602的外接函数-头文件的编写
只需要将要显示的数据进行小处理就可以
单片机源程序如下:
//亲测可用
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden = P2^7;
sbit lcdrs = P2^6; //数据命令选择端 为高时选择“数据” 为低时选择“命令”
sbit lcdrw = P2^5; //读写选择端 通常给低电平,将数据写入,再显示
uchar code table1[]=" 2017-7-29"; //12位
uchar code table2[]=" : :"; //10位
uchar num;
uchar miao,fen,shi; //定义三个变量:秒、分钟、小时
void LCD_init();
void write_com(uchar); //命令子函数(写指令)
void write_data(uchar); //数据子函数
void write_sfm(uchar,uchar);
void delay(uint);
void main()
{
LCD_init();
while(1)
{
// miao = TIME[0]; //将从1302寄存器中读到的时间赋给三个变量
// fen = TIME[1]; //假设是35秒,则通过write_sfm函数将3和5拆开,分别显示
// shi = TIME[2];
//实验
miao = 25; //少个分号,这咋整
fen = 19;
shi = 16;
write_sfm(10,miao); //以下三行就是对外的接口
write_sfm(7,fen);
write_sfm(4,shi);
}
}
/*******************************************************************************
* 函数名 : void delay(uint);
* 函数功能 : 延时x ms
* 输入 : x
* 输出 : 无
* 备注 : 无
*******************************************************************************/
void delay(uint x) //延时xms
{
uint i,j;
for (i = x;i > 0;i--)
for (j = 110;j > 0;j--);
}
/*******************************************************************************
* 函数名 : void LCD_init();
* 函数功能 : LCD的初始化设置
* 输入 : 无
* 输出 : 无
* 备注 : 无
*******************************************************************************/
void LCD_init()
{
lcden = 0;
lcdrw = 0;
write_com(0x38);
write_com(0x0e);
write_com(0x06); //光标加一,为啥要加1呢
write_com(0x01);
write_com(0x80);
//效果:在第一行显示出2017-7-29字样,在第二行显示出16:19:25字样(实验结果成功)
for (num = 0;num < 12;num++) //首先输出
{
write_data(table1[num]);
delay(20);
}
write_com(0x80+0x40);
for (num = 0;num < 10;num++) //首先输出
{
write_data(table2[num]);
delay(20);
}
}
/*******************************************************************************
* 函数名 : void write_com(uchar);
* 函数功能 : 命令子函数(写指令)
* 输入 : com
* 输出 : 无
* 备注 : 无
*******************************************************************************/
void write_com(uchar com)
{
lcdrs = 0;
P0 = com;
delay(5);
lcden = 1;
delay(5);
lcden = 0;
}
/*******************************************************************************
* 函数名 : void write_data(uchar);
* 函数功能 : 将数据写入LCD1602
* 输入 : date
* 输出 : 无
* 备注 : 无
*******************************************************************************/
void write_data(uchar date)
{
lcdrs = 1;
P0 = date;
delay(5); //延时5ms
lcden = 1; //一个高脉冲把数据读走
delay (5);
lcden = 0;
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
液晶1602对外的接口函数.zip
(34.36 KB, 下载次数: 18)
2017-9-6 17:28 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
520549lhx
时间:
2020-5-18 00:25
很有用,谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1