久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9681|回復: 0
打印 上一主題 下一主題
收起左側

學習LCD1602不帶轉接板和帶轉接板遇到的那些事。大神指點多多指點

[復制鏈接]
跳轉到指定樓層
樓主
ID:233997 發表于 2017-10-15 14:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我的LCD1602是帶轉接板的,DATA 8PIN 同時 也存在 4PIN接口。開始時只寫8PIN狀態下的程序,液晶顯示是錯誤的,研究好久才發現要把4PIN的存在
同時寫進去,用或不用就用#ifndef #else #endif 來解決。
P0口對應數據總線
一下是我寫的

#include<reg52.h>
//#ifndef __LCD_H_
//#define __LCD_H_
/**********************************
當使用的是4位數據傳輸的時候定義,
使用8位取消這個定義
**********************************/
#define LCD1602_4PINS

//---重定義關鍵詞---//
//#ifndef uchar
#define uchar unsigned char
//#endif

//#ifndef uint
#define uint unsigned int
//#endif

uchar code table[]="I LOVE MCU!";
uchar code table1[]="WWW.XTLCU.COM";

sbit lcde=P2^7;
sbit lcdrs=P2^6;
sbit lcdwr=P2^5;

void delay(uint z);

/*******************************************************************************
* 函 數 名         : Write_Com
* 函數功能                   : 向LCD寫入一個字節的命令
* 輸    入         : com
* 輸    出         : 無
*******************************************************************************/
#ifndef         LCD1602_4PINS         //當沒有定義這個LCD1602_4PINS時
void write_com(uchar com)
{               
                lcde=0;
        lcdrs=0;    //選擇發送命令
                lcdwr=0;
        P0=com;    //放入命令
                delay(5);
        lcde=1;      //寫入時序
        delay(5);   //保持時間
        lcde=0;

}
#else
void write_com(uchar com)
{               
                lcde=0;
        lcdrs=0;    //選擇發送命令
                lcdwr=0;
        P0=com;    //放入命令
                delay(5);
        lcde=1;      //寫入時序
        delay(5);   //保持時間
        lcde=0;
                P0=com << 4; //發送低四位
                delay(5);

                lcde=1;         //寫入時序
                delay(5);
                lcde=0;
}
#endif
/*******************************************************************************
* 函 數 名         : Write_Data
* 函數功能                   : 向LCD寫入一個字節的數據
* 輸    入         : dat
* 輸    出         : 無
*******************************************************************************/                  
#ifndef         LCD1602_4PINS       
void write_data(uchar date)
{                lcde=0;
        lcdrs=1;        //選擇輸入數據
                lcdwr=0;
        P0=date;  //寫入數據
                delay(5);
        lcde=1;   //寫入時序
        delay(5); //保持時間
        lcde=0;

}
#else
void write_data(uchar date)
{                lcde=0;
        lcdrs=1;        //選擇輸入數據
                lcdwr=0;
        P0=date;  //寫入數據
                delay(5);
        lcde=1;   //寫入時序
        delay(5); //保持時間
        lcde=0;

        P0=date<<4;  //寫入低四位
                delay(5);
        lcde=1;   //寫入時序
        delay(5); //保持時間
        lcde=0;
}
#endif
/*******************************************************************************
* 函 數 名       : LcdInit()
* 函數功能                 : 初始化LCD屏
* 輸    入       : 無
* 輸    出       : 無
*******************************************************************************/                  
#ifndef                LCD1602_4PINS
void init()
{
        lcde=0;

        write_com(0x38);//設置16x2顯示,5x7點陣,8位數據接口
        write_com(0X0c);//開顯示,顯示光標,光標閃爍
        write_com(0X06);//寫一個字符后地址針加一,光標加一
        write_com(0X01);//數據指針清零,所有顯示清零
                write_com(0X80);

}
#else
void init()
{
        lcde=0;

        write_com(0x32);//將8位總線轉為4位總線
        write_com(0X28); //在四位線下的初始化
        write_com(0X0c);
        write_com(0X06);
                write_com(0X1);
                write_com(0X80);
}
#endif
void main()
{                uchar num;
        init();
        //write_com(0x80);//設置數據地址指針 液晶顯示RAM 有 80個字節 00H~27H 40H~67H,第一行第一個字處
        for(num=0;num<11;num++)
        {
                write_data(table[num]);
                delay(5);
        }
        write_com(0x80+0x40);//第二行第一個字處
        for(num=0;num<13;num++)
        {
                write_data(table1[num]);
                delay(5);
        }

                delay(5);
        while(1);

}

void delay(uint z)
{
        uint i,j;
        for(i=z;i>0;i--)
        for(j=110;j>0;j--);

}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久影院8一贰佰 | 成人在线免费 | 日本免费在线观看视频 | 国产一区二区精品 | 久久99精品久久久 | 激情影院久久 | 国产精品区一区二 | 在线成人www免费观看视频 | 99re在线视频 | 亚洲国产精品一区二区www | 国产一区二区精品在线观看 | 亚洲精品视频在线观看免费 | 国产精品久久久久久福利一牛影视 | 成人精品久久久 | 国产精品成人一区二区 | 91福利电影在线观看 | 精品福利一区 | 青青草视频网站 | 久久99精品久久久久 | 日日干夜夜操 | 国产在线观看 | 欧美久久久网站 | 成人性视频免费网站 | 久久亚洲二区 | 国产福利在线 | 狠狠操电影 | 成人18亚洲xxoo | 一级毛片在线看 | 欧美激情视频一区二区三区免费 | 人人干人人爽 | 日韩精品在线一区 | 久久综合av | 一区二区三区av | 在线天堂免费中文字幕视频 | 成人毛片网站 | 91精品国产乱码麻豆白嫩 | 国产精品久久久久久238 | 亚洲男女视频在线观看 | 女同久久另类99精品国产 | 国产乱码精品一区二区三区中文 | 在线播放日韩 |