亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2996|回復(fù): 0
收起左側(cè)

80c52驅(qū)動LCD1602程序(proteus仿真驗證通過)

[復(fù)制鏈接]
ID:814673 發(fā)表于 2020-8-17 15:09 | 顯示全部樓層 |閱讀模式
本帖最后由 yangwanxue99 于 2020-8-17 15:12 編輯

#include<reg52.h>
#include <stdio.h>
    int init();    //聲明初始化函數(shù)
    int write_com(unsigned char);//聲明寫命令函數(shù)
    int write_date(unsigned char);//聲明寫數(shù)據(jù)函數(shù)
    int delay(unsigned char);//聲明延遲函數(shù)
    unsigned char x;
    sbit RS = P1^0;
    sbit RW = P1^1;
    sbit EN = P1^2;
    unsigned char code table[]="Welcome to the";
    unsigned char code table1[]="MCU learning!";

        void LcdWaitReady()         //判忙子程序
{
        unsigned char sta;

    P0 = 0xFF;
        RS = 0;
        RW = 1;
           EN = 0;
        EN = 0;        
        EN = 1;
        delay(5) ;
         
         
//while((P2&0x80));//proteus仿真時將該行注釋掉,實際板上運(yùn)行時去掉注釋即可
  EN = 0;
}           




int main(void)//主函數(shù)                          
{  char a,b;

    init();
    write_com(0x80);//第一行
         a =sizeof(table); //計算字符串的長度
    for(x=0;x<a;x++)
    {
         write_date(table[x]);
        delay(150);
    }
    write_com(0x80+0x40);//第二行
        b =sizeof(table1); //計算字符串的長度
    for(x=0;x<b;x++)
    {
         write_date(table1[x]);
        delay(150);
    }
    while(1);
    return 0;
}

int init()//初始化函數(shù)體
{
    EN = 0;
    write_com(0X38);//設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
    write_com(0X0C);//設(shè)置開顯示,不顯示光標(biāo)
    write_com(0X06);//寫一個字符時,整屏右移
    write_com(0X01);//顯示清零
    return 0;
}

int write_com(unsigned char com)//寫命令的函數(shù)體
{
   //EN=0;
           LcdWaitReady();
    RS = 0;
    RW = 0;
    P2 = com;
    delay(5);
    EN = 1;
    delay(5);
    EN = 0;
    return 0;
}

int write_date(unsigned char date)//寫數(shù)據(jù)的函數(shù)體
{
    LcdWaitReady();
        RS = 1;
    RW = 0;
    P2 = date;
    delay(5);
    EN = 1;
    delay(5);
    EN = 0;
    return 0;
}

int delay(unsigned char xms)
{
    unsigned char x,y;
    for(x=xms;x>0;x--)
        for(y=110;y>0;y--);
    return 0;
}

相關(guān)帖子

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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