《51单片机 LCD1602 简单容易理解解析 程序》由会员分享,可在线阅读,更多相关《51单片机 LCD1602 简单容易理解解析 程序(2页珍藏版)》请在金锄头文库上搜索。
1、#include #include“intrins.h“ typedef unsigned int u16; typedef unsigned char u8;#define DATA P0 sbit RS=P26; sbit RW=P25; sbit EN=P27; void delay(u8 num )u8 x,y; for(x=num;x0;x-); for (y=124;y0;y-); void write_cmd(u8 cmd ) RS=0;/写命令RW=0;EN=0;/写操作DATA=cmd; /delay(5);EN=1; _nop_(); /delay(5);EN =0;del
2、ay(100); void write_data (u8 dat) RS=1;/写数据RW=0; /写操作 EN=0;DATA=dat; /delay(5); EN=1; /先将 EN 拉高,在拉低/ d/elay(5);_nop_();EN =0; delay(100); void lcd_init() write_cmd(0x02);/归位 write_cmd(0x06);/设置输入方式 I/D SH I/D=1 SH =0 ,画面不移动write_cmd(0x0c);/显示开关控制 D=1,开关开,C 为光标,C=1,显示光标,B 光标 是否闪烁,0 不闪烁write_cmd(0x38)
3、; / DL=1,8 位数据口 N=1,显示两行 5*7 的点阵 F=0,F=1,5*10write_cmd(0x01);/清屏 清清除 DDRAM 和 AC 的值 void main () RS=0;/写命令RW=0; /写操作EN=0; lcd_init();write_cmd(0x80);/为位置 0xc0 第二行write_data( ); write_data( ); write_data( ); write_data( ); write_data(2); write_data( ); write_data(0x26); write_data( ); write_data(U);write_cmd(0xc0);/为位置 0xc0 第二行write_data(I); write_data( ); write_data(0x26); write_data( ); write_data(U);while(1); /*字符串显示 void display_string( u8 adress ,u8 *string ) write_cmd(adress); if (*string!=NULl)write_data(I); string+; */