|
1602字符顯示keil+protues詳細(xì)講解及說明
0.png (18.6 KB, 下載次數(shù): 56)
下載附件
2017-2-22 01:00 上傳
源程序:
- #include<reg52.h>
- typedef unsigned int u16;
- typedef unsigned char u8;
- #define DATA P0 //宏定義,相當(dāng)于 define π 3.14,這里沒有等號(hào)。
- sbit rs = P2^1; //rs,sw,en;可以理解成液晶的幾個(gè)功能開關(guān),無非就只有兩種狀態(tài)
- sbit rw = P1^5; //為0或1,對(duì)應(yīng)的功能詳細(xì)看使用手冊(cè)。這里是把液晶的
- sbit en = P1^6; //這三個(gè)開關(guān)與單片機(jī)引腳定義為鏈接狀態(tài),以便單片機(jī)控制液晶。
- void delay(u16 num)
- {
- u16 x,y;
- for (x=num;x>0;x--)
- for(y=110;y>0;y--);
- }
- void write_cmd(u8 cmd) //寫指令
- {
- rs=0; //選擇指令寄存器
- rw=0; //進(jìn)行寫操作
- DATA = cmd; //把指令傳給單片機(jī)
- delay(5);
- en=1;
- delay(5);
- en=0; //en為使能端,當(dāng)en由高電平跳到底電平時(shí),液晶模塊執(zhí)行命令。
- }
- void write_data(u8 dat)
- {
- rs=1; //選擇數(shù)據(jù)寄存器
- rw=0; //進(jìn)行寫操作
- DATA = dat; // 把數(shù)據(jù)傳給單片機(jī)
- delay(5);
- en=1;
- delay(5);
- en=0;
- }
- void lcd_init() //初始化
- {
- write_cmd(0x02); //歸為
- write_cmd(0x06); //設(shè)置輸入方式
- write_cmd(0x0e); //控制顯示開關(guān)
- write_cmd(0x38); //功能設(shè)置
- write_cmd(0x01); //清屏
- }
- void main()
- {
- rw=0;
- rs=0;
- en=0;
- lcd_init();
- write_cmd(0x80); //0x80,(0xc0)為在液晶上顯示的地址;80為第一排顯示,c0為第二排顯示。
- write_data('x'); //顯示的數(shù)據(jù)
- write_data('i');
- write_data('a');
- write_data('o');
- write_data(' ');
- write_data('p');
- write_data('e');
- write_data('n');
- write_data('g');
- write_data(' ');
- write_data('y');
- write_data('o');
- write_data('u');
- write_cmd(0xc0); //第二排顯示
- write_data('t'); //顯示的數(shù)據(jù)
- while(1);
- }
復(fù)制代碼
0.png (67.07 KB, 下載次數(shù): 50)
下載附件
2017-2-22 00:59 上傳
仿真工程文件及完整源碼下載:
1602字符顯示.rar
(45.29 KB, 下載次數(shù): 31)
2017-2-20 14:51 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|