LCD1602的11條指令詳解
- FAQ:LCD1602液晶屏的第二行不顯示
- 初始化的時候,寫38寫兩次并且不判忙
- /****************************************************************
- LCD1602 初始化函數 LCD1602_INIT();
- 無形參和返回值
- ****************************************************************/
- void Init_LCD1602(void)
- {
- LCD_EN = 0;
- LCD_BG = 0; // 背光燈 開;
- LCD_RW = 0; // 配置LCD1602為寫入模式
- LCD1602_Write(0x38, 0); // 顯示模式設定: 配置16*2顯示,5*7點陣,8位數據接口
- LCD1602_Write(0x0C, 0); // 設置開顯示,不顯示光標 開關顯示、光標有無設置、光標閃爍設置
- LCD1602_Write(0x06, 0); // 寫字符后地址自動加1 寫一個字符后指針加一
- LCD1602_Write(0x01, 0); // 顯示清0,數據指針清0
- LCD1602_Write(0x38, 0); // 顯示模式設定: 配置16*2顯示,5*7點陣,8位數據接口
- }
- 在LCD 1602 的字符顯示中,如需進行數字轉換 需 + 48;
- 相當是 10進制數 + 48后,轉換成 對應的 ‘0’ 字符 ASCII 碼,方可顯示在 LCD 屏上;
- /*********************************************************
- 函數:Lcd1602_Print_Num(uchar num)
- 輸入:有;數值;
- 輸出:無;
- 說明:液晶輸出數字
- u8 -> 256
- u16 -> 65535
- *********************************************************/
- void LCD1602_Write_Num(u16 num)
- {
- if(num >= 1000) // 4位
- {
- LCD1602_Write(num/1000 + 48, 1); // 千位
- LCD1602_Write(num / 100 % 10 + 48, 1); // 百位
- LCD1602_Write(num / 10 % 10 + 48, 1); // 十位
- LCD1602_Write(num % 10 + 48, 1); // 個位
- }
- else if(num >= 100) // 3位數;
- {
- LCD1602_Write(num/100 + 48, 1); // 百位
- LCD1602_Write(num % 100 / 10 + 48, 1); // 十位
- LCD1602_Write(num % 10 + 48, 1); // 個位
- }
- else if( num >= 10)
- {
- LCD1602_Write(0 + 48, 1); // 補 0缺;
- LCD1602_Write(num/10 + 48, 1); // 十位
- LCD1602_Write(num%10 + 48, 1); // 個位
- }
- else if( num >= 0)
- {
- LCD1602_Write(0 + 48, 1); // 補 0缺;
- LCD1602_Write(0 + 48, 1); // 補 0缺;
- LCD1602_Write(num%10 + 48, 1); // 個位
- }
- }
復制代碼
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|