日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LCD1602液晶显示设计

發布時間:2023/12/10 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LCD1602液晶显示设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內容:
(1) LCD1602液晶顯示屏:單片機系統一般采用字符型液晶顯示模塊。因LCD顯示面板較為脆弱,廠商已將LCD控制器、驅動器、RAM 、ROM和液晶顯示器用PCB連接到一起,稱為液晶顯示模塊(LCD Module,LCM)。單片機只需向LCD模塊寫入相應命令和數據就可顯示需要的內容。
LCD 1602工作電壓4.5~5.5V,典型5V,工作電流2mA。標準的14引腳(無背光)或16個引腳(有背光)的外形及引腳分布,如圖。

(2)工作方式:單片機控制LCD1602顯示字符,只需將待顯示字符的ASCII碼寫入顯示數據存儲器(DDRAM),內部控制電路就可將字符在顯示器上顯示出來。
模塊內有80字節數據顯示RAM(DDRAM),除顯示192個字符(5×7點陣)的字符庫ROM(CGROM)外,還有64字節自定義字符RAM(CGRAM),用戶可自行定義8個5×7點陣字符。

#include <reg51.h> #include <intrins.h> //包含_nop_( )空函數指令的頭文件 #define uchar unsigned char #define uint unsigned int #define out P0 sbit RS=P2^0; //位變量開發板6 平時0 sbit RW=P2^1; //位變量開發板5 平時1 sbit E=P2^2; //位變量開發板7 平時2 void lcd_initial(void); //LCD初始化函數 void check_busy(void); //檢查忙標志函數 void write_command(uchar com); //寫命令函數 void write_data(uchar dat); //寫數據函數 void string(uchar ad ,uchar *s); void lcd_test(void); void delay(uint);void main(void) //主函數 {lcd_initial( ); //調用對LCD初始化函數while(1){string(0x80,"chengdu neusoft"); //顯示的第1行字符串,從左邊第5個字符開始顯示 string(0xC2,"CSDN"); //顯示的第2行字符串,,從左邊第2個字符開始顯示 delay(300); //延時write_command(0x01); //寫入清屏命令delay(300); //延時} } void delay(uint j) //1ms延時子程序 {uchar i=250;for(;j>0;j--){while(--i);i=249;while(--i);i=250;} }void check_busy(void) //檢查忙標志函數 {uchar dt;do{dt=0xff;E=0;RS=0; RW=1;E=1;dt=out;}while(dt&0x80);E=0; } void write_command(uchar com) //寫命令函數 { check_busy(); E=0; RS=0; RW=0; out=com; E=1; _nop_( ); E=0; delay(1); }void write_data(uchar dat) //寫數據函數 { check_busy();E=0;RS=1;RW=0;out=dat;E=1;_nop_();E=0;delay(1); }void lcd_initial(void) //液晶顯示器初始化函數 {write_command(0x38); //寫入命令0x38:8位兩行顯示,5×7點陣字符write_command(0x0C); //寫入命令0x0C:開整體顯示,光標關,無黑塊write_command(0x06); //寫入命令0x06:光標右移write_command(0x01); //寫入命令0x01:清屏delay(1); }void string(uchar ad,uchar *s) //輸出顯示字符串的函數 {write_command(ad);while(*s>0){write_data(*s++); //輸出字符串,且指針增1delay(100);} }

圖例:

總結

以上是生活随笔為你收集整理的LCD1602液晶显示设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。