標(biāo)題:
液晶1602的外接函數(shù)-頭文件的編寫
[打印本頁]
作者:
全力
時(shí)間:
2017-9-6 17:29
標(biāo)題:
液晶1602的外接函數(shù)-頭文件的編寫
只需要將要顯示的數(shù)據(jù)進(jìn)行小處理就可以
單片機(jī)源程序如下:
//親測(cè)可用
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden = P2^7;
sbit lcdrs = P2^6; //數(shù)據(jù)命令選擇端 為高時(shí)選擇“數(shù)據(jù)” 為低時(shí)選擇“命令”
sbit lcdrw = P2^5; //讀寫選擇端 通常給低電平,將數(shù)據(jù)寫入,再顯示
uchar code table1[]=" 2017-7-29"; //12位
uchar code table2[]=" : :"; //10位
uchar num;
uchar miao,fen,shi; //定義三個(gè)變量:秒、分鐘、小時(shí)
void LCD_init();
void write_com(uchar); //命令子函數(shù)(寫指令)
void write_data(uchar); //數(shù)據(jù)子函數(shù)
void write_sfm(uchar,uchar);
void delay(uint);
void main()
{
LCD_init();
while(1)
{
// miao = TIME[0]; //將從1302寄存器中讀到的時(shí)間賦給三個(gè)變量
// fen = TIME[1]; //假設(shè)是35秒,則通過write_sfm函數(shù)將3和5拆開,分別顯示
// shi = TIME[2];
//實(shí)驗(yàn)
miao = 25; //少個(gè)分號(hào),這咋整
fen = 19;
shi = 16;
write_sfm(10,miao); //以下三行就是對(duì)外的接口
write_sfm(7,fen);
write_sfm(4,shi);
}
}
/*******************************************************************************
* 函數(shù)名 : void delay(uint);
* 函數(shù)功能 : 延時(shí)x ms
* 輸入 : x
* 輸出 : 無
* 備注 : 無
*******************************************************************************/
void delay(uint x) //延時(shí)xms
{
uint i,j;
for (i = x;i > 0;i--)
for (j = 110;j > 0;j--);
}
/*******************************************************************************
* 函數(shù)名 : void LCD_init();
* 函數(shù)功能 : LCD的初始化設(shè)置
* 輸入 : 無
* 輸出 : 無
* 備注 : 無
*******************************************************************************/
void LCD_init()
{
lcden = 0;
lcdrw = 0;
write_com(0x38);
write_com(0x0e);
write_com(0x06); //光標(biāo)加一,為啥要加1呢
write_com(0x01);
write_com(0x80);
//效果:在第一行顯示出2017-7-29字樣,在第二行顯示出16:19:25字樣(實(shí)驗(yàn)結(jié)果成功)
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);
}
}
/*******************************************************************************
* 函數(shù)名 : void write_com(uchar);
* 函數(shù)功能 : 命令子函數(shù)(寫指令)
* 輸入 : com
* 輸出 : 無
* 備注 : 無
*******************************************************************************/
void write_com(uchar com)
{
lcdrs = 0;
P0 = com;
delay(5);
lcden = 1;
delay(5);
lcden = 0;
}
/*******************************************************************************
* 函數(shù)名 : void write_data(uchar);
* 函數(shù)功能 : 將數(shù)據(jù)寫入LCD1602
* 輸入 : date
* 輸出 : 無
* 備注 : 無
*******************************************************************************/
void write_data(uchar date)
{
lcdrs = 1;
P0 = date;
delay(5); //延時(shí)5ms
lcden = 1; //一個(gè)高脈沖把數(shù)據(jù)讀走
delay (5);
lcden = 0;
}
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
液晶1602對(duì)外的接口函數(shù).zip
(34.36 KB, 下載次數(shù): 18)
2017-9-6 17:28 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
520549lhx
時(shí)間:
2020-5-18 00:25
很有用,謝謝
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1