產(chǎn)品動態(tài)
- 群創(chuàng)12.1寸 G121ICE-LM2 對比度1000:1 常黑
- G270QAN01.4 友達27寸 400 cd/m2 分辨率25
- G190ETT01.1 友達19寸 分辨率1280*1024 常白
- 18.5寸G185HAT01.1 友達 對比度1000:1 分辨
- 友達G101EAT02.6 10.1寸 分辨率1280*800 對比
- G156HAN02.303 友達15.6寸 對比度1000:1 霧面
- G057QAN01.1 友達5.7寸 常黑顯示 1000:1 分
- G238HAN04.0 友達23.8寸 常黑顯示 分辨率
- 友達8.4寸 G084SAN01.0 常黑顯示 分辨率
- G057QAN01.0 友達 5.7寸 500 cd/m2 常黑顯示

全國統(tǒng)一服務(wù)熱線:
15382323032
客服QQ:3234659108
手機:15382323032
地址:浙江省杭州市余杭區(qū)五常街道西溪軟件園金牛座B2座4層4118-4119
LCD1602的自定義點陣字符屏
CGRAM 1602能夠存儲8個自定義字符,這8個自定義字符的存儲空間首地址分別是:0X40,0X48,0X50,0X58,0X60,0X68,0X70,0X78。我們以0x40來說,它的存儲空間如下圖所示:
如果是使用的5*7字符的話,那么最左的3位和最后一行的數(shù)據(jù)實際上是沒有用的,通常置0。如果是要自定義一個℃符號,那么就先填框,如圖(紅1白0)
使用時先把這一些編碼填充到CGRAM
隨便使用8*8取模軟件畫了兩個字符下面為示例代碼
#include <reg51.h>
#include <string.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define Data P0 //數(shù)據(jù)口
sbit en=P2^2; //E脈沖控制信號端口
sbit rs=P2^0; //命令控制端口
sbit rw=P2^1; //讀寫控制口
uchar t_code1[]={0x15,0x1F,0x04,0x04,0x1C,0x11,0x1F,0x00};//自定義的一個5*7點陣 截圖里的編碼
uchar t_code2[]={0x15,0x1F,0x04,0x00,0x04,0x1F,0x15,0x00};
void read_sta() //讀狀態(tài)
{
uint j=1000;//超時變量
Data=0x80;
rs=0; //rs=0 rw=1 E=1 讀狀態(tài)
rw=1;
en=1;
while((Data&0x80)&&j--)_nop_();//忙則等待一個nop大概1us配合上面的j=1000 做1ms超時判斷
en=0; //en拉低
}
void write_com(uchar com)
{
read_sta(); //讀忙信號
rs=0; //寫命令rs=0 寫數(shù)據(jù)rs=1
rw=0; //寫rw都為0
Data=com; //把要寫的數(shù)據(jù)放到數(shù)據(jù)口
en=0; //E一個正脈沖寫一個數(shù)據(jù) 所謂一個正脈沖就是指E從0->1->0的一個低高低的變換 所以這里先拉低en=0
en=1;
en=0;
}
void write_data(uchar date)
{
read_sta();
rs=1; //rs=1寫數(shù)據(jù)
rw=0;
Data=date;
en=0; //同上
en=1;
en=0;
}
void lcd1602_init()
{
write_com(0x38); //8位數(shù)據(jù)口,兩行顯示,5*7點陣字符
write_com(0x0c); //無光標不閃爍
write_com(0x06); //讀寫指針加1屏幕不移動 0101
write_com(0x01); //清屏光標返回00H位置
}
void main()
{
uchar flag=0,off_on=1,i;
lcd1602_init();
for(i=0;i<8;i++)
{
write_com(0x40+i); //地址 0x40-0x78 8個對應(yīng)一個字符
write_data(t_code1[i]);
}
for(i=0;i<8;i++)
{
write_com(0x78+i); //地址 0x40-0x78 8個對應(yīng)一個字符 寫第八個字符
write_data(t_code2[i]);
}
for(i=0;i<16;i++)
{
write_com(0x80+i); //一行
write_data(0x00); //0x00是第一個
}
for(i=0;i<16;i++)
{
write_com(0x80+0x40+i); //第二行
write_data(0x07); //0x07是第第8個因為是從0開始
}
while(1)
{
}
}
最新資訊
- 2025-05-27 寬溫型工業(yè)液晶屏的特點與適用環(huán)境
- 2025-05-22 觸摸與非觸摸長條屏的實用性能比較
- 2025-05-20 工業(yè)長條屏的基本結(jié)構(gòu)與技術(shù)特點解
- 2025-05-19 如何根據(jù)環(huán)境光照選擇工業(yè)液晶屏亮
- 2025-05-16 工業(yè)液晶屏接口技術(shù)解析:LVDS與HDM
- 2025-05-15 工業(yè)液晶屏在醫(yī)療設(shè)備中的應(yīng)用:手
- 2025-05-12 工業(yè)液晶屏的高分辨率與色彩還原能
- 2025-05-09 工業(yè)觸控屏在陽光環(huán)境下的可視性解
- 2025-05-08 工業(yè)液晶屏寬溫特性的應(yīng)用場景分析
- 2025-05-08 工業(yè)液晶屏寬溫特性的應(yīng)用場景分析