(玩電子) 電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51驅動1602液晶顯示器c程序

作者:佚名   來源:本站原創   點擊數:x  更新時間:2009年10月18日   【字體:

/*
程序效果:單片機控制液晶顯示器1602顯示字母數字,用戶自行更改io
程序版權:http://www.ljflms.live
*/
#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);
}
 
 

發表評論】【告訴好友】【收藏此文】【關閉窗口

文章評論

全天计划时时彩