日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 利用LCD1602實(shí)現(xiàn)數(shù)字和英文字符的顯示實(shí)驗(yàn)原理圖實(shí)驗(yàn)程序#include#include#include#include#include#define busy 0x80 //用于檢測(cè)LCD 狀態(tài)字中的Busy 標(biāo)識(shí)#define RSaddr 0x1000#define RWaddr 0x2000#define CSadd

 利用LCD1602實(shí)現(xiàn)數(shù)字和英文字符的顯示

實(shí)驗(yàn)原理圖

實(shí)驗(yàn)程序

#include

#include

#include

#include

#include

#define busy 0x80 //用于檢測(cè)LCD 狀態(tài)字中的Busy 標(biāo)識(shí)

#define RSaddr 0x1000

#define RWaddr 0x2000

#define CSaddr 0x0400

#define adtn 0xc8ff

#define wc 0xcfff

#define wd 0xdfff

#define rc 0xefff

unsigned char code homepage[] = {"www.ispdown.com"};

unsigned char code email[] = {"ispdown@21cn.com"};

//5ms 延時(shí)

void delay5ms(void)

{

unsigned int TempCyc = 5552;

while(TempCyc--);

}

//----------------------------------

//400ms 延時(shí)

void delay400ms(void)

{

unsigned char TempCycA = 5;

unsigned int TempCycB;

while(TempCycA--)

{

TempCycB=7269;

while(TempCycB--);

};

}

//--------------------------------

void waitLcd()

{

char temp;

bit flag=1;

while(flag==1)

{

//temp=XBYTE[CSaddr+RWaddr+adtn];

temp=XBYTE[rc];

if (temp>>7==0) flag=0;

P1=temp;

}

P1=0xff;

}

//---------------------------------

void WC_Lcd(bit isCheck,char c)

{

if (isCheck==1) waitLcd();

//XBYTE[CSaddr+adtn]=c;

XBYTE[wc]=c;

}

//--------------------------------

void WD_Lcd(char c)

{

waitLcd();

//XBYTE[CSaddr+RSaddr+adtn]=c;

XBYTE[wd]=c;

}

//----------------------------------

void LcdInit()

{

delay5ms();

delay5ms();

delay5ms();

WC_Lcd(0,0x38); //三次顯示模式設(shè)置,不檢測(cè)忙信號(hào)

delay5ms();

WC_Lcd(0,0x38);

delay5ms();

WC_Lcd(0,0x38);

delay5ms();

WC_Lcd(1,0x38); //顯示模式設(shè)置,開(kāi)始要求每次檢測(cè)忙信號(hào)

WC_Lcd(1,0x08); //關(guān)閉顯示

WC_Lcd(1,0x01); //顯示清屏

WC_Lcd(1,0x06); // 顯示光標(biāo)移動(dòng)設(shè)置

WC_Lcd(1,0x0C); // 顯示開(kāi)及光標(biāo)設(shè)置

}

//-------------------------------------------------------------------------

//按指定位置顯示一個(gè)字符

void displayOneChar(unsigned char X, unsigned char Y, unsigned char DData)

{

Y &= 0x1;

X &= 0xF; //限制X 不能大于15,Y 不能大于1

if (Y) X |= 0x40; //當(dāng)要顯示第二行時(shí)地址碼+0x40;

X |= 0x80; //算出指令碼

WC_Lcd(0,X); //這里不檢測(cè)忙信號(hào),發(fā)送地址碼

WD_Lcd(DData);

}

//-------------------------------------------------------------------------------

//按指定位置顯示一串字符

void displayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)

{

unsigned char ListLength;

ListLength = 0;

Y &= 0x1;

X &= 0xF; //限制X 不能大于15,Y 不能大于1

while (DData[ListLength]>0x20) //若到達(dá)字串尾則退出

{

if (X <= 0xF) //X 坐標(biāo)應(yīng)小于0xF

{

displayOneChar(X, Y, DData[ListLength]); //顯示單個(gè)字符

ListLength++;

X++;

}

}

}

//====================================

void main(void)

{

delay400ms();

LcdInit();

displayListChar(0, 0, homepage);

displayListChar(0, 1, email);

while(1);

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉