模块化51库程序1602液晶显示,保证好用,有需要的拿走吧!!!!!
单片机源程序如下:
- #include <REGX52.H>
- #define io P0 // 1602的宏定义。
- //=======1602显示位申明========//
- sbit dula=P2^6;
- sbit wela=P2^7;
- sbit lcden=P3^4;
- sbit rs=P3^5;
- //=====1602显示位申明完成=====//
- //===============================================//
- //====11.0592Mhz晶振前提下,延时1毫秒左右=====//
- void delay1ms(unsigned int ms)
- {
- unsigned int x,y;
- for(x=ms;x>0;x--)
- for(y=112;y>0;y--);
- }
- //================延时1毫秒完毕==============//
- //=======1602显示的函数申明=========//
- void write_1602com(unsigned char com);
- void write_1602dat(unsigned char dat);
- void add_1602(unsigned char line,unsigned char list);
- void display_1602(unsigned char *p);
- void init_1602(void);
- //=======1602显示的函数申明完成=========//
- //=======1602显示需要的函数=========//
- void write_1602com(unsigned char com)
- {
- delay1ms(15);
- rs=0;
- io=com;
- lcden=0;
- lcden=1;
- lcden=0;
- }
- void write_1602dat(unsigned char dat)
- {
- delay1ms(15);
- rs=1;
- io=dat;
-
- lcden=0;
- lcden=1;
- lcden=0;
- }
- void add_1602(unsigned char line,unsigned char list)
- {
- if(line==1)
- {
- write_1602com(0x80+list);
- }
- else
- {
- write_1602com(0x80+0x40+list);
- }
- }
- void display_1602(unsigned char *p)
- {
- while(*p!='\0')
- {
- write_1602dat(*p);
- p++;
- }
- }
- void init_1602(void)
- {
- dula=0;
- wela=0;
- delay1ms(15);
- write_1602com(0x38);
- delay1ms(5);
- write_1602com(0x38);
- delay1ms(5);
- write_1602com(0x38);
- write_1602com(0x08);
- write_1602com(0x01);
- write_1602com(0x0c);
- write_1602com(0x06);
- }
- //=======1602显示需要的函数完成=========//
- void main()
- {
- init_1602();
- while(1)
- {
- add_1602(1,1);
- display_1602("hello!");
- }
- }
复制代码
所有资料51hei提供下载:
1602显示.rar
(17.85 KB, 下载次数: 17)
|