① 用51單片機無字型檔的12864顯示漢字怎麼辦
網路上下一個漢字取模軟體,設置好漢字取模方式,輸入漢字,得到字模數據(數組),將數組編入程序,按照取模設置的方式寫顯示輸出函數,而後就順理成章了,這些字模數據數組就是程序內建的字型檔數據,而對於待顯示的漢字的提取方法,需要根據數組的結構設計,如果數組做成普通的數組模式,則應該按照數組順序進行調用,如果數組做成結構體模式,則可以如同有字型檔的模塊一樣,通過字元串調用。
② 單片機控制320240圖形點陣液晶屏 顯示漢字問題
您好,此模塊是由深圳市卓立恩科技公司研發的新型液晶,主控晶元是RA8806,此晶元功能十分強大,不僅自帶中文字型檔,還自帶電阻式觸摸驅動功能,非常適合廣大單片機愛好者學習編程,廢話不多說,現在來介紹這款液晶顯示屏的點亮.
晶元資料見附件(只有英文的),首先我們應該知道怎麼樣去看液晶驅動IC的資料,重點在哪裡?我的經驗是1.讀寫時序,這個要小心,一般液晶控制晶元的時序分為8080,6800,根據規格書寫出讀寫子程序,我們在寫液晶程序時有時候沒有顯示,程序檢查半天發現是讀寫子程序錯誤.2.數據和命令指令寫入規則.3.顯示存儲器的寫入規則.4.指令內容和作用,要點亮屏一般只要用到幾個關鍵的指令就好了.
③ 電腦串口發送中文到單片機,單片機通過帶字型檔的12864顯示出來,如何做到
電腦和單片機的串口都無法收發任何文字,它們只能收發高低電平(高電平為1,低電平為0),當收到8位高低電平後便可以組成了一個位元組,顯示一個漢字要2個位元組。當單片機正確地接收到2個位元組後,通過硬體埠將數據寫入12864,便可以顯示出來。以上只能簡單說明一下,實際實用時還要考慮到12864的硬體介面、和軟體協議等等。
如果你會單片機,我建議你這么做:先寫一個程序,用單片機顯示一句固定的文字,顯示的內容從ROM裡面讀取。然後再調試通信,當通信成功後將接收到的數據復制到顯示所佔的地址上便可,這樣可以節省很多時間。
另外我可以給你提供一些常式,要給分才好,呵呵
④ 單片機點陣漢字顯示需要用漢字取模軟體嗎
通常,用漢字取模軟體生成工程所需所有漢字點陣信息。也可利用字型檔晶元,根據漢字內碼計算字模地址,並從字型檔晶元中導出相關漢字的點陣信息。前者容易簡單,適合漢字信息固定的場合應用。後者靈活,適合任意標准字型檔,方便接收漢字內碼直接生成畫面。根據界面要求,向點陣圖形緩沖區依次寫入相關漢字信息,這個步驟是相同的。
注意選擇字型檔晶元時,同樣需要考慮字模的橫向和縱向取模要求。寫畫面緩沖程序要結合硬體電路的左右高位特徵,以及共陰共陽數據。
⑤ 怎麼在stm32f429 單片機顯示中文文字
不管何種 單片機顯示中文文字,首先要看液晶屏是否自帶字型檔
如果帶字型檔只管送中文文字的Uinicode編碼就行(編譯軟體會自選查找)
如果不帶字型檔,就要製作或復制字模(庫)文件,顯示時計算好要顯示的漢字在字型檔中的位置,讀出該字字模後,逐位判斷是1還是0,從而決定是畫黑點還是白點(當然彩屏還可以是多種顏色)這些在野火和正點原子的STM32教程中都有
⑥ 我用的是帶字型檔的LCD,請問如何用單片機程序顯示漢字我用過的是12864液晶,怎樣讓它顯示五行。
我這有代碼,但不知道與你的12864液晶是不是一個型號
#include "lcd_12864.h"
void LCD_Delayt(unsigned int dtime) {
unsigned int itemp;
for(itemp=0;itemp<dtime;itemp++);
}
void LCD_Init(void) {
SN74LVC_DIR_DIR |= SN74LVC_DIR;
SN74LVC_DIR_LO;
//SN74LVC_OE_DIR |= SN74LVC_OE;
//SN74LVC_OE_LO;
LCD_PSB_DIR |= LCD_PSB; //PSB -> 並行模式
LCD_PSB_HI;
LCD_RST_DIR |= LCD_RST; //RST -> 復位輸出
LCD_RST_LO; //復位狀態
LCD_Delayt(1000);
LCD_DI_DIR |= LCD_DI;
LCD_DI_LO;
LCD_RW_DIR |= LCD_RW;
LCD_RW_LO;
LCD_EN_DIR |= LCD_EN;
LCD_EN_LO;
LCD_Delayt(1000);
LCD_RST_HI; //正常狀態
LCD_WriteComm(0x30);
LCD_WriteComm(0x0c);
LCD_WriteComm(0x01);
LCD_WriteComm(0x02);
LCD_WriteComm(0x06);
}
void LCD_CheckBusy(void) {
unsigned char Flag;
LCD_DI_LO;
LCD_RW_HI;
do {
LCD_EN_HI;
LCD_DATA_DIR = 0x00;
SN74LVC_DIR_HI;
_NOP();
Flag = LCD_DATA_IN;
_NOP();
SN74LVC_DIR_LO;
LCD_DATA_DIR = 0xFF;
LCD_EN_LO;
} while(Flag & 0x80);
}
void LCD_WriteComm(unsigned char wdata) {
LCD_CheckBusy();
LCD_DI_LO;
LCD_RW_LO;
LCD_EN_HI;
LCD_DATA_OUT = wdata;
LCD_EN_LO;
}
void LCD_WriteByte(unsigned char wdata) {
LCD_CheckBusy();
LCD_DI_HI;
LCD_RW_LO;
LCD_EN_HI;
LCD_DATA_OUT = wdata;
LCD_EN_LO;
}
void LCD_SetXY(unsigned char X, unsigned char Y) {
switch(Y) {
case 1:
LCD_WriteComm(0x7F + X);
break;
case 2:
LCD_WriteComm(0x8F + X);
break;
case 3:
LCD_WriteComm(0x87 + X);
break;
case 4:
LCD_WriteComm(0x97 + X);
}
}
void LCD_WriteDEC(unsigned char X, unsigned char Y, unsigned char wdata) {
LCD_SetXY(X,Y);
LCD_WriteByte(wdata);
}
void LCD_WriteString(unsigned char X, unsigned char Y, unsigned char *String) {
unsigned char temp;
LCD_SetXY(X,Y);
temp = *String;
while(temp!=0) {
LCD_WriteByte(temp);
temp = *(++String);
}
}
void Clr_Screen(void)
{
LCD_WriteComm(0x00);
}