最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

LCD1602.C代碼:

2022-04-21 13:12 作者:傅李耶  | 我要投稿

LCD1602.C 代碼如下:(發(fā)評(píng)論太麻煩,需要的自取)

#include <REGX52.H>



//引腳配置:

sbit LCD_RS=P2^6;

sbit LCD_RW=P2^5;

sbit LCD_EN=P2^7;

#define LCD_DataPort P0


//函數(shù)定義:

/**

? * @brief? LCD1602延時(shí)函數(shù),12MHz調(diào)用可延時(shí)1ms

? * @param? 無(wú)

? * @retval 無(wú)

? */

void LCD_Delay()

{

unsigned char i, j;


i = 2;

j = 239;

do

{

while (--j);

} while (--i);

}


/**

? * @brief? LCD1602寫命令

? * @param? Command 要寫入的命令

? * @retval 無(wú)

? */

void LCD_WriteCommand(unsigned char Command)

{

LCD_RS=0;

LCD_RW=0;

LCD_DataPort=Command;

LCD_EN=1;

LCD_Delay();

LCD_EN=0;

LCD_Delay();

}


/**

? * @brief? LCD1602寫數(shù)據(jù)

? * @param? Data 要寫入的數(shù)據(jù)

? * @retval 無(wú)

? */

void LCD_WriteData(unsigned char Data)

{

LCD_RS=1;

LCD_RW=0;

LCD_DataPort=Data;

LCD_EN=1;

LCD_Delay();

LCD_EN=0;

LCD_Delay();

}


/**

? * @brief? LCD1602設(shè)置光標(biāo)位置

? * @param? Line 行位置,范圍:1~2

? * @param? Column 列位置,范圍:1~16

? * @retval 無(wú)

? */

void LCD_SetCursor(unsigned char Line,unsigned char Column)

{

if(Line==1)

{

LCD_WriteCommand(0x80|(Column-1));

}

else if(Line==2)

{

LCD_WriteCommand(0x80|(Column-1+0x40));

}

}


/**

? * @brief? LCD1602初始化函數(shù)

? * @param? 無(wú)

? * @retval 無(wú)

? */

void LCD_Init()

{

LCD_WriteCommand(0x38);//八位數(shù)據(jù)接口,兩行顯示,5*7點(diǎn)陣

LCD_WriteCommand(0x0c);//顯示開,光標(biāo)關(guān),閃爍關(guān)

LCD_WriteCommand(0x06);//數(shù)據(jù)讀寫操作后,光標(biāo)自動(dòng)加一,畫面不動(dòng)

LCD_WriteCommand(0x01);//光標(biāo)復(fù)位,清屏

}


/**

? * @brief? 在LCD1602指定位置上顯示一個(gè)字符

? * @param? Line 行位置,范圍:1~2

? * @param? Column 列位置,范圍:1~16

? * @param? Char 要顯示的字符‘ ’

? * @retval 無(wú)

? */

void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char)

{

LCD_SetCursor(Line,Column);

LCD_WriteData(Char);

}


/**

? * @brief? 在LCD1602指定位置開始顯示所給字符串

? * @param? Line 起始行位置,范圍:1~2

? * @param? Column 起始列位置,范圍:1~16

? * @param? String 要顯示的字符串

? * @retval 無(wú)

? */

void LCD_ShowString(unsigned char Line,unsigned char Column,char *String)

{

unsigned char i;

LCD_SetCursor(Line,Column);

for(i=0;String[i]!='\0';i++)

{

LCD_WriteData(String[i]);

}

}


/**

? * @brief? 返回值=X的Y次方

? */

int LCD_Pow(int X,int Y)

{

unsigned char i;

int Result=1;

for(i=0;i<Y;i++)

{

Result*=X;

}

return Result;

}


/**

? * @brief? 在LCD1602指定位置開始顯示所給數(shù)字

? * @param? Line 起始行位置,范圍:1~2

? * @param? Column 起始列位置,范圍:1~16

? * @param? Number 要顯示的數(shù)字,范圍:0~65535

? * @param? Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~5

? * @retval 無(wú)

? */

void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)

{

unsigned char i;

LCD_SetCursor(Line,Column);

for(i=Length;i>0;i--)

{

LCD_WriteData(Number/LCD_Pow(10,i-1)%10+'0');

}

}


/**

? * @brief? 在LCD1602指定位置開始以有符號(hào)十進(jìn)制顯示所給數(shù)字

? * @param? Line 起始行位置,范圍:1~2

? * @param? Column 起始列位置,范圍:1~16

? * @param? Number 要顯示的數(shù)字,范圍:-32768~32767

? * @param? Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~5

? * @retval 無(wú)

? */

void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length)

{

unsigned char i;

unsigned int Number1;

LCD_SetCursor(Line,Column);

if(Number>=0)

{

LCD_WriteData('+');

Number1=Number;

}

else

{

LCD_WriteData('-');

Number1=-Number;

}

for(i=Length;i>0;i--)

{

LCD_WriteData(Number1/LCD_Pow(10,i-1)%10+'0');

}

}


/**

? * @brief? 在LCD1602指定位置開始以十六進(jìn)制顯示所給數(shù)字

? * @param? Line 起始行位置,范圍:1~2

? * @param? Column 起始列位置,范圍:1~16

? * @param? Number 要顯示的數(shù)字,范圍:0~0xFFFF

? * @param? Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~4

? * @retval 無(wú)

? */

void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)

{

unsigned char i,SingleNumber;

LCD_SetCursor(Line,Column);

for(i=Length;i>0;i--)

{

SingleNumber=Number/LCD_Pow(16,i-1)%16;

if(SingleNumber<10)

{

LCD_WriteData(SingleNumber+'0');

}

else

{

LCD_WriteData(SingleNumber-10+'A');

}

}

}


/**

? * @brief? 在LCD1602指定位置開始以二進(jìn)制顯示所給數(shù)字

? * @param? Line 起始行位置,范圍:1~2

? * @param? Column 起始列位置,范圍:1~16

? * @param? Number 要顯示的數(shù)字,范圍:0~1111 1111 1111 1111

? * @param? Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~16

? * @retval 無(wú)

? */

void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)

{

unsigned char i;

LCD_SetCursor(Line,Column);

for(i=Length;i>0;i--)

{

LCD_WriteData(Number/LCD_Pow(2,i-1)%2+'0');

}

}


LCD1602.C代碼:的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
江津市| 图片| 仪征市| 禹城市| 临高县| 华蓥市| 宜兰县| 平乡县| 彭阳县| 彭水| 大宁县| 仁布县| 桂林市| 和林格尔县| 景德镇市| 达拉特旗| 金坛市| 景德镇市| 江永县| 车致| 博野县| 图木舒克市| 栾川县| 富宁县| 江口县| 门源| 海伦市| 通化市| 大石桥市| 宣汉县| 石台县| 常德市| 潞城市| 焦作市| 清原| 桂阳县| 卓资县| 轮台县| 太原市| 科尔| 隆德县|