使用普中科技51單片機進行1602液晶顯示

/*51單片機學習打卡*/

/*老師視頻之後,使用普中科技51單片機開發板實現1602液晶顯示*/

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LOVE MCU!";
uchar code table1[]="HI! CHEN SIRAN ";

sbit Lcd1602_en=P2^7;     //使能端,寫數據或命令時,必須先置零,完成指令之後,置1.使指令能發出給液晶
sbit Lcd1602_rs=P2^6;     //確定液晶得到的指令,是命令(0)、還是數據(1)
sbit Lcd1602_rw=P2^5;     //對液晶數據的讀取,由於不用讀取,故設爲低電平0
void Initialize();
void Write_Command(uchar command);
void Write_Data(uchar date);
void Delayms(uint xms);

uchar num;
void main()
{
    Initialize();
    for(num=0;num<11;num++)
         {
            Write_Data(table[num]);
            Delayms(5);
        }
    Write_Command(0x80+0x40);
    for(num=0;num<15;num++)
         {
            Write_Data(table1[num]);
            Delayms(5);
        }     

}

void Write_Command(uchar command)  //寫指令函數
{
    Lcd1602_rs=0;    //確定爲寫指令
    P0=command;
    Delayms(5);
    Lcd1602_en=1;     //使能口爲1,使液晶能得到命令com,因爲初始化時已經置零
    Delayms(5);
    Lcd1602_en=0;     //迴歸初始狀態,等待下一命令的到來

}

void Write_Data(uchar date)  //寫數據函數
{
    Lcd1602_rs=1;
    P0=date;
    Delayms(5);
    Lcd1602_en=1;
    Delayms(5);
    Lcd1602_en=0;
}


void Initialize()
{
    Lcd1602_en=0;
    Lcd1602_rw=0;
    Write_Command(0x38);    //設置16*2顯示,5*7點陣,8位數據口
    Write_Command(0x0c);     //設置打開顯示,且沒有光標
    Write_Command(0x06);     //寫一個字符後地址加1
    Write_Command(0x01);     //顯示清零,數據指針清零
}

void Delayms(uint xms)
{
    uint i;
    uchar j;
    for(i=xms;i>0;i--)
        for(j=110;j>0;j--);

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章