專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

51驅(qū)動1602液晶顯示器c程序

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2009年10月18日   【字體:

/*
程序效果:單片機控制液晶顯示器1602顯示字母數(shù)字,用戶自行更改io
程序版權(quán):http://www.torrancerestoration.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) //延時子函數(shù)
{
   uchar i,j;
   for(i=x;i>0;i--)
      for(j=110;j>0;j--);
}
void write_com(uchar com) //寫指令子函數(shù) 
{                   //根據(jù)1602液晶顯示器協(xié)議編寫
   P2=com;  
   lcdrs=0;
   lcdwr=0;
   delay(5);
   lcde=0;
   delay(5);
   lcde=1;
}
void write_dat(uchar dat) //寫數(shù)據(jù)子函數(shù)
{
   P2=dat;
   lcdrs=1;
   lcdwr=0;
   delay(5);
   lcde=0;
   delay(5);
   lcde=1;
}
void init()    //初始化子函數(shù)
{
   write_com(0x01); //清屏
   write_com(0x3f); //功能設(shè)置
   write_com(0x0d); //顯示控制
   write_com(0x06); //輸入方式設(shè)置
}
void main()
{
   uchar i;   //定義局部變量
   init();
   write_com(0x80+0x02+0x10); //指針的位置
   for(i=0;i<15;i++)    //顯示
   {
      write_dat(table[i]);
      delay(50);    //延時,用于調(diào)節(jié)速度不匹配
   }
   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);
}
 
 

關(guān)閉窗口