久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: LCD1602A顯示圖片功能 [打印本頁]

作者: 海盜船    時間: 2018-7-23 21:37
標題: LCD1602A顯示圖片功能
最近學習51單片機學會LCD1602A顯示圖片功能,這里分享給大家(上傳顯示效果和使用說明)

#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int

sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P2^5;

uchar code table[]={
                         0x03,0x07,0x0f,0x1f,0x1f,0x1f,0x1f,0x1f,
                         0x18,0x1E,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
                         0x07,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
                         0x10,0x18,0x1c,0x1E,0x1E,0x1E,0x1E,0x1E,
                         0x0f,0x07,0x03,0x01,0x00,0x00,0x00,0x00,
                         0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x07,0x01,
                         0x1f,0x1f,0x1f,0x1f,0x1f,0x1c,0x18,0x00,
                         0x1c,0x18,0x10,0x00,0x00,0x00,0x00,0x00
                                        };         //心形圖片       
uchar code table1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};  //自定義字符數據地址

void delay(uchar z)
{
       uint x,y;
       for(x=z;x>0;x--)
              for(y=122;y>0;y--);      
}
void write_cmd(uchar cmd)        //寫命令
{
       lcdrs=0;
       lcdrw=0;   
       lcden=1;
       P0=cmd;     
       delay(5);
       lcden=0;   
       lcden=1;
}
void write_date(uchar date)         //寫入數據
{
       lcdrs=1;
       lcdrw=0;   
       lcden=1;
       P0=date;   
       delay(5);
       lcden=0;   
       lcden=1;
}
void init_lcd1602()          //1602初始化
{
       write_cmd(0x01);  
       write_cmd(0x38);  
       write_cmd(0x0c);  
       write_cmd(0x06);  
       delay(1);
}
void main()
{
       uchar i;
       init_lcd1602();
       delay(1);
              write_cmd(0x40);    //開始寫入你要顯示的自定義字符、漢字代碼
              for(i=0;i<64;i++)
              {
                     write_date(table[i]);
                     delay(5);
              }
              write_cmd(0x80);   
              for(i=0;i<4;i++)     //寫入心形前一半數據
              {
                     write_date(table1[i]);  
                     delay(5);
              }
                                       write_cmd(0xc0);   
              for(i=4;i<8;i++)                      //寫入心形后一半數據
              {
                     write_date(table1[i]);  
                     delay(5);
              }
                                      
       while(1);
}

微信圖片_20180723213232.jpg (84.13 KB, 下載次數: 82)

微信圖片_20180723213232.jpg

參考資料.doc

43.5 KB, 下載次數: 29, 下載積分: 黑幣 -5


作者: wpppmlah    時間: 2019-3-13 10:23
感謝分享,謝謝樓主了.
作者: 7358655    時間: 2019-3-13 22:03
有創意,買了12864,我的那個很久沒用了,頂一下。
作者: ly_zhy    時間: 2025-7-2 19:34
由創意,贊!
作者: keemee    時間: 2025-7-3 03:07
為啥是:write date,而不是write data
作者: joyb    時間: 2025-7-3 09:26
     LCD1602內部有一個64字節的自定義CGRAM,一個字符占8個字節,所以在CGRAM能夠存放8個字符。
CGRAM的地址為0x40.所以當我們要寫入數據時,要先寫入一條地址命令 write_com(0x040);然后把你要寫入的數據通過寫數據命令寫入  write_date( 你要寫得數據);
           write_cmd(0x40);    //開始寫入你要顯示的自定義字符、漢字代碼
              for(i=0;i<64;i++)
              {
                     write_date(table[i]);
                     delay(5);
              }
以上只是把你要顯示漢字的代碼存放在CGRAM里,就相當于其他常用字符一樣固定在LCD里面了,如果不把它讀出來,LCD是不會顯示的。
      常用字符是從0x20開始顯示,而0x00—0x0f都是沒有用的,其實這個正式為我們自定義顯示字符準備的。當你把上面的代碼輸入到CGRAM中,LCD1602會把漢字或字符賦與地址,這個地址是從0x00開始,因為最多只能8個字符,所以當在CGRAM里面輸入8個字符代碼時,這8個字符的代碼的數據地址就是0x00開始到0x07。
     要顯示自定義字符和顯示常用字符一樣的做法了,先寫地址,然后寫數據
自定義字符的數據就是0x00—0x07。
Write_date(0x00) — Write_date(0x07);
作者: ly_zhy    時間: 2025-7-19 10:02
不錯,顯示多樣化,直觀美觀。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 韩日中文字幕 | 亚洲免费黄色 | 国产精品99久久久久久久久久久久 | 欧美日韩在线一区二区三区 | 久久免费视频网站 | 成人免费在线视频观看 | 国产美女久久 | 久久九九国产 | 久久精品欧美一区二区 | 五月天激情综合网 | 美日韩丰满少妇在线观看 | 一级欧美一级日韩 | 日本少妇中文字幕 | 久久久久国产精品夜夜夜夜夜 | japanese极品丰满少妇 | 成人免费毛片aaaaaa片 | 日本中文在线观看 | 一级免费毛片 | 天天精品| 中文字幕观看 | 中文字幕理论片 | 中文字幕在线播放视频 | 成人做爰9片免费视频 | 欧美顶级黄色大片免费 | 国产第二页 | 日本中文字幕一区 | 久久久久人 | 国产一区久久 | 日韩免费在线播放 | 手机看片福利永久 | 欧美激情影院 | 国产做爰免费观看视频 | 干干干操操操 | 日日干狠狠干 | 97精品在线| 国产成人aⅴ | 夜色在线影院 | 97精品在线观看 | 久久久久久久97 | av黄色网| 国产成人在线视频 |