|
51單片機驅動LCD1602液晶屏在兩行顯示字符A和OK實驗的仿真原理圖(proteus工程文件可到本帖附件下載):
0.png (26.89 KB, 下載次數: 71)
下載附件
2017-3-29 23:45 上傳
單片機源程序:
- //-----------------------------------------------------------------------------------
- //程序名: LCD8-2.c
- //程序功能:LCD在兩行顯示字符A和OK
- //-------------------------------------------------------------------------------------
- #include <reg51.h>
- sbit RS=P2^5; // 引腳定義
- sbit RW=P2^6;
- sbit EN=P2^7;
- sbit busy=P0^7; // "忙"標志位
- #define LCD P0 //命令或數據線
- //字符串表
- unsigned char code str2[]={" OK "};
- //---------------------------------- 判斷液晶顯示器是否忙函數 ----------------------------
- CHECK_BF() //判斷是否忙碌
- {
- do
- {
- LCD=0xff;
- RS=0; // RS=0,選擇指令寄存器
- RW=1; // RW=1,選擇讀模式
- EN=0; // 執行顯示命令
- EN=1; // 允許讀/寫
- }
- while(busy); //busy為高電平表示忙,循環等待
- }
- //-------------------------------------- 寫命令函數 -----------------------------------
- WR_COMM() //寫命令
- {
- RS=0; // RS=0,選擇指令寄存器
- RW=0; // RW=0,選擇寫模式
- EN=0; // 執行顯示命令
- CHECK_BF(); // 等待
- EN=1; // E=1,允許讀/寫LCD
- }
- //-------------------------------------- 寫數據函數 -------------------------------------
- WR_DATA() //寫數據
- {
- RS=1; // RS=1,選擇數據寄存器
- RW=0; //準備寫入數據
- EN=0; //執行顯示命令
- CHECK_BF(); //判斷液晶模塊是否忙
- EN=1; // E=1,允許讀/寫LCD
- }
- //------------------------------------- 初始化函數 ---------------------------------
- INIT_LCD() //初始化
- {
- unsigned char i=200;
- {
- while(--i);
- LCD=0x01; //清屏并光標復位
- WR_COMM(); //寫入命令
- LCD=0x38; //設置顯示模式:8位2行5x7點陣
- WR_COMM();
- LCD=0x0f; //顯示器開、光標關、光標禁止閃爍
- WR_COMM();
- LCD=0x06; //文字不動,光標自動右移
- WR_COMM(); //寫入命令
- }
- }
- //---------------------------------------- 主函數 -----------------------------------
- main()
- {
- unsigned char i;
-
- INIT_LCD(); //調用初始化函數
- //-----------------------------
- //寫入第1行字符
- LCD=0x84; //寫入顯示起始地址(第1行第5個位置)
- WR_COMM(); //寫入命令
- LCD=('A'); //寫字符
- WR_DATA();
- // }
- //------------------------------
- //寫入第2行字符
- LCD=0xc7; //寫入顯示起始地址(第2行第6個位置)
- WR_COMM(); //寫入命令
- for(i=0;i<3;i++)
- {
- LCD=str2[i]; //提取字符
- WR_DATA(); //送出
- }
- while(1); //停止到這里
- }
- //---------------------------------------------------------------------------------------
復制代碼
0.png (52.74 KB, 下載次數: 72)
下載附件
2017-3-29 23:48 上傳
該系列源碼包含有很多非常經典,代碼風格十分規范,而且注釋詳細的單片機例程,還帶仿真,對于MCU學習特別是初學者是很有幫助的,全部源碼下載(共25個項目):http://www.zg4o1577.cn/bbs/dpj-79328-1.html
本例程下載(含proteus仿真工程文件與源碼):
單片機LCD1602在兩行顯示字符A和OK實驗.rar
(27.16 KB, 下載次數: 42)
2017-3-29 23:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|