Lập Trình Giao Tiếp LCD 16×2(4 Bit) - David Nguyen

Lập trình giao tiếp LCD 16×2(4 bit)

Mạch mô phỏng:

Image Lap trinh giao tiep LCD 16x2 (4 bit)

Code C:

#include <REGX51.H>

#define LCD_DATA P3 #define LCD_EN 0x02 #define LCD_RS 0x01

void delay_ms(unsigned int Time) { unsigned int i,j,t; t=Time; for(i=0;i<t;i++) { for(j=0;j<125;j++); } } void delay_us(unsigned int Time) { unsigned int i,j; for(i=0;i<Time;i++) { for(j=0;j<2;j++); } } void LCD_cmd(unsigned char cmd) { LCD_DATA=(cmd&0xf0)|LCD_EN; LCD_DATA=(cmd&0xf0);

LCD_DATA=((cmd<<4)&0xf0)|LCD_EN; LCD_DATA=((cmd<<4)&0xf0);

delay_us(200); delay_us(200); } void LCD_wirte_chr(char c) { LCD_DATA=((c&0xf0)|LCD_EN|LCD_RS); LCD_DATA=((c&0xf0)|LCD_RS);

LCD_DATA=(((c<<4)&0xf0)|LCD_EN|LCD_RS); LCD_DATA=(((c<<4)&0xf0)|LCD_RS);

delay_us(200); delay_us(200); } void LCD_wirte_string(char *str) { unsigned char i=0; while(str[i]!=0) { LCD_wirte_chr(str[i]); i++; } } void LCD_gotoxy(unsigned char x, unsigned char y) { unsigned char address; if(y==1) address=0x7f; else address=0xbf; address+=x; LCD_cmd(address); } void LCD_reset() { LCD_DATA=0xff; delay_ms(20);

LCD_DATA=0x30+LCD_EN; LCD_DATA=0x30; delay_ms(10);

LCD_DATA=0x30+LCD_EN; LCD_DATA=0x30; delay_ms(1);

LCD_DATA=0x30+LCD_EN; LCD_DATA=0x30; delay_ms(1);

LCD_DATA=0x20+LCD_EN; LCD_DATA=0x20; delay_ms(1); } void LCD_init() { LCD_reset(); LCD_cmd(0x28); LCD_cmd(0x0c); LCD_cmd(0x06); LCD_cmd(0x80); } void main(void) { LCD_init();

while(1) { LCD_gotoxy(3,1); LCD_wirte_string(“BLOG DIEN TU”); LCD_gotoxy(4,2); LCD_wirte_string(“xin chao !”); delay_ms(1000); LCD_cmd(0x01); LCD_gotoxy(4,1); LCD_wirte_string(“LCD 16×2”); LCD_gotoxy(3,2); LCD_wirte_string(“che do 4 bit”); delay_ms(1000); LCD_cmd(0x01); } }

link download: http://ouo.io/nR4WX1

Chia sẻ:

  • X
  • Facebook
Thích Đang tải...

Có liên quan

Từ khóa » Thư Viện 4 Bit