生活随笔
收集整理的這篇文章主要介紹了
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>
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit RS
=P2
^0;
sbit RW
=P2
^1;
sbit E
=P2
^2;
void lcd_initial(void);
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( ); while(1){string(0x80,"chengdu neusoft"); string(0xC2,"CSDN"); delay(300); write_command(0x01); delay(300); }
}
void delay(uint j
)
{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); write_command(0x0C); write_command(0x06); write_command(0x01); delay(1);
}void string(uchar ad
,uchar
*s
)
{write_command(ad
);while(*s
>0){write_data(*s
++); delay(100);}
}
圖例:
總結
以上是生活随笔為你收集整理的LCD1602液晶显示设计的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。