20121113-1602液晶测试程序1
2012-11-13 21:08
239 查看
本文所用程序均来源于网络,本人只是进行了验证与学习。尊重原作者。
程序如下:
程序如下:
#include <REGX52.H> #define LCD_DB P0 sbit LCD_RS=P2^2; sbit LCD_RW=P2^3; sbit LCD_E=P2^4; //函数定义 #define uchar unsigned char #define uint unsigned int void LCD_init(void); //初始化 void LCD_write_command(uchar command); //写指令 void LCD_write_data(uchar dat); //写数据 void LCD_disp_char(uchar x,uchar y,uchar dat); //显示位置,X(0-16),y(1-2) void delay_n40us(uint n); //延时 void LCD_init(void) //初始化 { LCD_write_command(0x01); //清除屏幕显示 LCD_write_command(0x3c); //设置8位格式,2行,5x7? LCD_write_command(0x0c); //整体显示,关光标,不闪烁? LCD_write_command(0x06); //设定输入方式,增量不移位 delay_n40us(100); } void LCD_write_command(uchar dat) //写指令 { LCD_DB=dat; LCD_RS=0; //指令 LCD_RW=0; //写入 LCD_E=1; //允许 LCD_E=0; delay_n40us(5); } void LCD_write_data(uchar dat) //写数据 { LCD_DB=dat; LCD_RS=1; //数据 LCD_RW=0; //写入 LCD_E=1; //允许 LCD_E=0; delay_n40us(5); } void LCD_disp_char(uchar x,uchar y,uchar dat) //显示一个字符 { uchar address; if(y==0) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat); } void delay_n40us(uint n) //延时函数 { uchar j; for(n=n;n>0;n--) for(j=0;j<2;j++) ; } //主函数 void main(void) { char a; char b[16]="123456789abcdeef"; char c[16]="ABCDEFGHIGKLMNOP"; delay_n40us(200); LCD_init(); for(a=0;a<16;a++) { LCD_disp_char(a,0,b[a]); LCD_disp_char(a,1,c[a]); } while(1); }
相关文章推荐
- 20121113-1602液晶测试程序2
- (原创)液晶的一个最简单的测试程序
- 单片机-1602液晶基本显示程序
- 1602液晶显示程序
- atmega16中的1602液晶程序
- 1602液晶显示程序(C语言详细解说)
- 12.9 1602液晶简单显示程序
- [51]1602液晶程序
- 51单片机1602液晶程序main.c
- DS1602液晶显示程序代码
- 1602液晶显示程序
- 用逻辑扇区号读写软盘的中断例程测试程序
- 测试程序运行时间
- dbm数据库源代码分析(16):测试程序和转换程序
- 传票翻打测试程序 V1.3
- 利用TPTP对Java程序进行性能测试
- 利用Xdebug和WinCacheGrind对PHP程序进行性能测试
- 基于线程的WINCE测试程序
- 1602液晶滚动显示
- 在VMware中测试LDD并口程序时无法加载short模块的解决办法