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