找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1818|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

12848驅(qū)動(dòng)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:209236 發(fā)表于 2017-6-8 15:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>
#define uchar unsigned char
#define LCMdata P0
#define Busy 0x80
sbit RS=P1^1;
sbit RW=P3^6;
sbit E=P3^7;
sbit REST=P2^7;
void Display_String(uchar line,uchar *string);
void Wr_Data(uchar wrdata); //寫數(shù)據(jù)
void Wr_Command(uchar wrcommand,busyc); //寫指令
void RDbf(void);//讀忙狀態(tài)
void Lcm_Init(void);//液晶初始化
void Delay5Ms(void);//延時(shí) 5ms
uchar code string_1[] = {"勤創(chuàng)電子有限公司"};
uchar code string_2[] = {"勤創(chuàng)電子歡迎您!"};
uchar code string_3[] = {"0755-29188712 "};
void main(void)
{
        Lcm_Init();
        Display_String(1,string_1);
        Display_String(2,string_3);
        Display_String(3,string_2);
        Display_String(4,string_3);
        while(1);
}
void Display_String(uchar line,uchar *string)//顯示字符串
{
        uchar addr,i;
        if(line==1)
        addr=0x80;
        else if(line==2)
        addr=0x90;
        else if(line==3)
        addr=0x88;
        else if(line==4)
        addr=0x98;
        Wr_Command(addr,1);
        for(i=0;i<16;i++)
        {
                Wr_Data(*string++);
        }
}
void Wr_Data(uchar wrdata) //寫數(shù)據(jù)
{
        RDbf();
        RS=1;
        RW=0;
        E=1;
        LCMdata=wrdata;
        E=0;
}
void Wr_Command(uchar wrcommand,busyc) //寫指令
{
        if(busyc)
                RDbf();
        RS=0;
        RW=0;
        E=1;
        LCMdata=wrcommand;
        E=0;
}
void RDbf(void) //讀忙狀態(tài)
{
        while(1)
        {
                RS=0;
                RW=1;
                E=0;
                LCMdata=0xFF;
                E=1;
                if((LCMdata&Busy)==0)
                        break;
        }
}
void Lcm_Init(void)
{
        Delay5Ms();
        REST=1;
        REST=0;
        REST=1;
        Wr_Command(0x30,0);
        Delay5Ms();
        Wr_Command(0x30,0); //2 次顯示模式設(shè)置,不用判忙
        Delay5Ms();
        Wr_Command(0x0C,1); //開(kāi)顯示及光標(biāo)設(shè)置
        Delay5Ms();
        Wr_Command(0x01,1); //顯示清屏
        Delay5Ms();
        Delay5Ms();
        Wr_Command(0x06,1); //顯示光標(biāo)移動(dòng)設(shè)置
        Delay5Ms();
}
void Delay5Ms(void) //延時(shí) 5ms
{
        unsigned int TempCyc=5552;
        while(TempCyc--);
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表