標題:
LCD1602的單片機庫文件
[打印本頁]
作者:
i66580
時間:
2020-2-13 12:38
標題:
LCD1602的單片機庫文件
寫了一個1602 庫希望可以方便大家開發(fā)
有不足之處請指出,謝謝!
測試機型
STC8A8K64S4A12
單片機源程序如下:
#include "delay.h"
#include "stc8.h"
sbit rs=P3^5;
sbit rw=P3^6; //1602 IO口定義 這里用的數(shù)據(jù)口是P0口
sbit ep=P3^7;
unsigned char lcd_busy() //查忙 這部很重要 否則有的顯示容易出現(xiàn)亂碼
{
unsigned char result;
rs = 0;
delay(100);
rw = 1;
delay(100);
ep = 1;
delay(100);
result = (P0&0x80);
delay(100);
ep = 0;
delay(100);
return result; //返回值
}
void lcd_com(unsigned char com)// 地址
{
while(lcd_busy());
rs=0;
delay(100);
ep=0;
delay(100);
rw=0;
delay(100);
P0=com;
delay(100);
ep=1;
delay(100);
ep=0;
delay(100);
}
void lcd_date(unsigned char date)//采集輸出數(shù)據(jù)
{
while(lcd_busy());
rs=1; //1是些數(shù)據(jù) 0是寫指令
delay(100);
rw=0; // 1是讀 0是寫
delay(100);
ep=0; //E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令
delay(100);
P0=date;
delay(100);
ep=1;
delay(100);
ep=0;
delay(100);
}
void lcd_pos(unsigned char pos)
{
lcd_com(pos+0x80); //數(shù)據(jù)指針=80+地址變量
}
void lcddisplay(int posision,char e[]){
int i=0;
delay(300);
lcd_pos(posision);
while(e[i]!='\0') //顯示字母
{
lcd_date(e[i]);
i++;
}
}
void lcddisplayl2(int posision,char e[]){
lcddisplay(0x40+posision,e);
}
void lcddisplaycodel2(int posision,char e){
delay(300);
lcd_pos(0x40+posision);
delay(300);
lcd_date(e);
}
void lcddisplaycode(int posision,char e){
delay(300);
lcd_pos(posision);
delay(300);
lcd_date(e);
}
void init()//1602初始化
{
unsigned char code v[]={""};
lcd_com(0x38);
delay(50);
lcd_com(0x38);
delay(50);
lcd_com(0x38);
delay(50);
lcd_com(0x0c);
delay(50);
lcd_com(0x06);
delay(50);
lcd_com(0x01);
delay(600);
lcddisplay(0,v);
}
復(fù)制代碼
所有資料51hei提供下載:
LCD - 副本.rar
(59.97 KB, 下載次數(shù): 6)
2020-2-13 12:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
i66580
時間:
2020-2-15 18:38
代碼更新
lcd lib v2添加屏幕清除
u 上
d下
其他 全清
添加延時函數(shù)
LCD lib v2.rar
2020-2-15 18:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
188.79 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5
LCD lib v2.rar
作者:
桃源客
時間:
2020-2-15 21:12
代碼有特色,下來學下。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1