lcd1602液晶屏通過4個5*8的矩陣組合點亮某些點,即可觀察到中文(最多8個自定義字符)下面是實驗效果的實物圖
19DB4F0B75913AA1356292008BA0CCF2.jpg (116.64 KB, 下載次數: 33)
下載附件
實例圖片
2018-2-11 14:30 上傳
ED0453300D99B20C63DE7082CC58BAF1.jpg (48.36 KB, 下載次數: 42)
下載附件
實例圖片
2018-2-11 14:30 上傳
單片機源程序如下:
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit lcdrs = P0^7; //液晶引腳定義
- sbit led_cs = P0^6;
- sbit lcden = P0^5;
- uchar num;
- uchar code cg_1602[]={0x00,0x00,0x00,0x01,0x01,0x01,0x05,0x05,
- 0x00,0x00,0x04,0x04,0x04,0x04,0x1f,0x15,
- 0x05,0x05,0x01,0x01,0x01,0x02,0x02,0x00,
- 0x15,0x15,0x15,0x04,0x04,0x04,0x00,0x00, //帥
- 0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x07,
- 0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x1e,
- 0x04,0x04,0x04,0x04,0x06,0x00,0x00,0x00,
- 0x10,0x10,0x10,0x12,0x1e,0x00,0x00,0x00};//比
- //根據5*8的矩陣自己定義字符,通過16進制的數轉化
- /*延時函數*/
- void delay(uint xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=114;j>0;j--);
- }
- /*1602液晶*/
- void write_com(uchar com)//寫命令
- {
- lcdrs=0;
- lcden=0;
- P2=com;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void write_data(uchar date)//寫數據
- {
- lcdrs=1;
- lcden=0;
- P2=date;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void write_cg()//寫入固定漢字和符號
- {
- write_com(0x40); //設定CGRAM地址
- for(num=0;num<64;num++) //將自定義字型碼寫入CGRAM中 最多8個自定義字符,8*8=64 如果是5個自定義字符就是5*8=40
- {
- write_data(cg_1602[num]);
- }
- //第一個字
- write_com(0x80);
- {
- write_data(0);
- }
- write_com(0x81);
- {
- write_data(1);
- }
- write_com(0xc0);
- {
- write_data(2);
- }
- write_com(0xc1);
- {
- write_data(3);
- }
- //第二個字
- write_com(0x82);
- {
- write_data(4);
- }
- write_com(0x83);
- {
- write_data(5);
- }
- write_com(0xc2);
- {
- write_data(6);
- }
- write_com(0xc3);
- {
- write_data(7);
- }
-
- }
- void init_1602()//初始化
- {
- led_cs=0;
- write_com(0x38);
- write_com(0x0c);
- write_com(0x06);
- write_com(0x01);
- write_cg();
- }
- /*主函數*/
- void main()
- {
- led_cs=0;
- …………
- …………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
全部資料51hei下載地址:
1602.docx
(14.01 KB, 下載次數: 7)
2018-2-11 14:29 上傳
點擊文件名下載附件
1602的c文件 下載積分: 黑幣 -5
|