久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LCD1602驅動顯示實驗STM32

LCD1602驅動顯示實驗STM32

作者: 時間:2016-12-01 來源:網絡 收藏

/*********************************************************************
*名 稱:LCD_Writedata()
*功 能:寫一字節(jié)數據到LCD1602
*入口參數:dat:無符號字節(jié)類型,0~255 包括各個ASCII碼字符
*出口參數:無
*********************************************************************/
void LCD_Writedata(uchar dat)
{
while(LCD_busy());//等待LCD1602空閑
LCD_RS_1;
delay_nus(1);
LCD_RW_0;
delay_nus(1);
DATAOUT = dat;
LCD_EN_1; //先拉高
delay_nus(300); //很重要的延時,經調試,延時300us以上才可以
LCD_EN_0; //下降沿,開始寫入有效數據
}
/*********************************************************************
*名 稱:LCD_pos()
*功 能:設定顯示位置
*入口參數:pos:顯示位置,值的范圍如下:
* 0x00----------------0x0f 0x10-------0x27 第一行(一次顯示16個字符)
* 0x40----------------0x4f 0x50-------0x67 第二行
*出口參數:無
*********************************************************************/
void LCD_pos(uchar pos)
{
LCD_Writecmd(pos | 0x80);
}
/*********************************************************************
*名 稱:LCD_Setpos()
*功 能:根據習慣設定顯示位置
*入口參數:row:行,row=1表示第一行,row=2表示第二行
* col:列,0~15,用于指定顯示的列,范圍可以是0~40
*出口參數:無
*********************************************************************/
void LCD_Setpos(uchar row,uchar col)
{
if(row==1) LCD_Writecmd(col | 0x80);
else LCD_Writecmd(col | 0xC0);
}
/*********************************************************************
*功 能:顯示一個字符
*入 口:ch:待顯示的字符
*********************************************************************/
void LCD_DispChar(char ch)
{
LCD_Writedata(ch);
}
/*********************************************************************
*功 能:在指定位置顯示一個字符
*入 口:row:行 1或2 col:列,0~15
* ch:待顯示的字符
*********************************************************************/
void LCD_Setpos_DispChar(uchar row,uchar col,char ch)
{
LCD_Setpos(row,col);
LCD_Writedata(ch);
}
/*********************************************************************
*名 稱:LCD_DispString()
*功 能:使LCD1602顯示一個字符串,顯示位置需提前設定
*入口參數:str[]:待顯示的字符串
*出口參數:無
*********************************************************************/
void LCD_DispString(char str[])
{
uchar i=0;
while(str[i] !=