新聞中心

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

        LCD1602驅動顯示實驗STM32

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

        /*********************************************************************
        *名 稱:LCD_Writedata()
        *功 能:寫一字節數據到LCD1602
        *入口參數:dat:無符號字節類型,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] != 主站蜘蛛池模板: 鹿邑县| 阿勒泰市| 巴东县| 若羌县| 通江县| 图们市| 巍山| 泗阳县| 丰原市| 商城县| 祥云县| 阿城市| 锡林郭勒盟| 罗城| 林口县| 黄山市| 泗水县| 涡阳县| 河曲县| 萝北县| 泽州县| 阜新| 彩票| 呼图壁县| 郑州市| 井陉县| 沙雅县| 临沂市| 包头市| 昭觉县| 贺州市| 繁峙县| 江油市| 定陶县| 崇义县| 海淀区| 湖南省| 德惠市| 黄石市| 惠东县| 堆龙德庆县|