专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

51驱动1602液晶显示器c程序

作者:佚名   来源:本站原创   点击数:  更新时间:2009年10月18日   【字体:

/*
程序效果:单片机控制液晶显示器1602显示字母数字,用户自行更改io
程序版权:http://www.51hei.com
*/
#include<reg52.h> //头文件
#define uchar unsigned char //宏定义
#define uint  unsigned int
uchar code table[]="51HEI XING XING " ;  //显示的字母
uchar code table1[]="51HEI MCU XUE YUAU" ;
sbit lcdrs=P1^0; //寄存器选择引脚
sbit lcdwr=P1^1; //读写引脚
sbit lcde=P1^2;  //片选引脚
void delay(uchar x) //延时子函数
{
   uchar i,j;
   for(i=x;i>0;i--)
      for(j=110;j>0;j--);
}
void write_com(uchar com) //写指令子函数 
{                   //根据1602液晶显示器协议编写
   P2=com;  
   lcdrs=0;
   lcdwr=0;
   delay(5);
   lcde=0;
   delay(5);
   lcde=1;
}
void write_dat(uchar dat) //写数据子函数
{
   P2=dat;
   lcdrs=1;
   lcdwr=0;
   delay(5);
   lcde=0;
   delay(5);
   lcde=1;
}
void init()    //初始化子函数
{
   write_com(0x01); //清屏
   write_com(0x3f); //功能设置
   write_com(0x0d); //显示控制
   write_com(0x06); //输入方式设置
}
void main()
{
   uchar i;   //定义局部变量
   init();
   write_com(0x80+0x02+0x10); //指针的位置
   for(i=0;i<15;i++)    //显示
   {
      write_dat(table[i]);
      delay(50);    //延时,用于调节速度不匹配
   }
   write_com(0x80+0x40+0x10);
   for(i=0;i<16;i++)
   {
      write_dat(table1[i]);
      delay(50);
   }
   for(i=0;i<16;i++)
   {
      write_com(0x18);
      delay(50);
   }
   while(1);
}
 
 

关闭窗口