服務(wù)熱線
0755-83044319
發(fā)布時間:2022-03-17作者來源:薩科微瀏覽:1530
GB1616.h//------------------ 漢字字模的數(shù)據(jù)結(jié)構(gòu)定義 ------------------------//struct typFNT_GB16 //漢字字模數(shù)據(jù)結(jié)構(gòu){ unsignedchar Index[3]; //漢字內(nèi)碼索引 unsignedchar Msk[32]; //點陣碼數(shù)據(jù) }; /////////////////////////////////////////////////////////////////////////// 漢字字模表 //// 漢字庫: 宋體16.dot,橫向取模左高位,數(shù)據(jù)排列:從左到右從上到下 ///////////////////////////////////////////////////////////////////////////conststruct typFNT_GB16 codeGB_16[]= //數(shù)據(jù)表{/*------------------------------------------------------------------------------; 源文件 /文字 :徐; 寬×高(像素):16×16------------------------------------------------------------------------------*/ "徐",0x10,0x80,0x10,0x80,0x21,0x40,0x42,0x20,0x94,0x10,0x1B,0xEC,0x20,0x80,0x60,0x80,0xAF,0xF8,0x20,0x80,0x22,0xA0,0x24,0x90,0x2A,0x88,0x21,0x00,0x00,0x00,0x00,0x00,
這個結(jié)構(gòu),很簡單的:一個是內(nèi)碼,一個點陣序列,以前的點陣庫是按內(nèi)碼順序放的,不需要內(nèi)碼索引的,如果只放部分漢字,就需要內(nèi)碼索引了。(前面的漢字“徐”是為了要輸出“徐”的時候找到該字的點陣序列,這個點陣序列是自己寫的,當(dāng)用1602顯示時,因為該芯片內(nèi)存在英文的點陣序列,所以就不用寫了)一般內(nèi)碼兩個字節(jié)就行了,多用1個字節(jié)是加了個尾0而已,這樣,漢字內(nèi)碼處直接放漢字字符串就可;
13、12864液晶:
每個顯示點對應(yīng)一位二進制數(shù),1 表示亮,0 表示滅。存儲這些點陣信息的RAM稱為顯示數(shù)據(jù)存儲器。要顯示某個圖形或漢字就是將相應(yīng)的點陣信息寫入到相應(yīng)的存儲單元中。
繪圖RAM的地址計數(shù)器(AC)只會對水平地址(X 軸)自動加一, 當(dāng)水平地址=0FH 時會重新設(shè)為00H 但并不會對垂直地址做進位自動加一,故當(dāng)連續(xù)寫入多筆資料時,程序需自行判斷垂直地址是否需重新設(shè)定
[cpp] view plain copy// 顯示漢字 voiddispString (uchar X, Y,uchar *msg) //X為哪一行,Y 為哪一列。msg 為漢字 { if(X==0) X = 0x80; // [敏感詞]行,漢字顯示坐標(biāo) else if(X==1) X = 0x90; // 第二行 else if(X==2) X = 0x88; // 第三行 else X = 0x98; //第四行 Y = X + Y; //Y 為1 往右移一位 write_com(Y); // 寫入坐標(biāo) while (*msg) { write_data(*msg++); //顯示漢字 } } //////////////////////////////// //////////////// /////////////// // 顯示圖象 voiddisppicture(uchar code *adder) { uint i,j; //*******顯示上半屏內(nèi)容設(shè)置 for(i=0;i<32;i++) // 上半屏32個列地址 { write_com(0x80 + i); //SET 垂直地址 VERTICALADD write_com(0x80); //SET 水平地址 HORIZONTAL ADD for(j=0;j<16;j++) { write_data(*adder); adder++; } } //*******顯示下半屏內(nèi)容設(shè)置 for(i=0;i<32;i++) // { write_com(0x80 + i); //SET 垂直地址 VERTICALADD write_com(0x88); //SET 水平地址 HORIZONTAL ADD for(j=0;j<16;j++) { write_data(*adder); adder++; } } }
對于C語言,定義的變量,自動為其分配空間,其地址為該變量的名稱。通過該名稱,可以在內(nèi)存中招到該數(shù)據(jù),經(jīng)過運算得到新數(shù)據(jù),而匯編中需要編程者自己定義存儲空間及把數(shù)據(jù)送到累加器等進行運算,每一步都需要編程者操作。而C語言這些過程由編譯器去完成。
回答3:一般是自動分配的,可以c語言和匯編語言混合編程,也可以用Keil C在線匯編,芯片與外部的數(shù)據(jù)交換都是通過端口進行的。
免責(zé)聲明:本文轉(zhuǎn)載自“國際電子商情”,本文僅代表作者個人觀點,不代表薩科微及行業(yè)觀點,只為轉(zhuǎn)載與分享,支持保護知識產(chǎn)權(quán),轉(zhuǎn)載請注明原出處及作者,如有侵權(quán)請聯(lián)系我們刪除。
公司電話:+86-0755-83044319
傳真/FAX:+86-0755-83975897
郵箱:1615456225@qq.com
QQ:3518641314 李經(jīng)理
QQ:332496225 丘經(jīng)理
地址:深圳市龍華新區(qū)民治大道1079號展滔科技大廈C座809室
友情鏈接:站點地圖 薩科微官方微博 立創(chuàng)商城-薩科微專賣 金航標(biāo)官網(wǎng) 金航標(biāo)英文站
Copyright ?2015-2024 深圳薩科微半導(dǎo)體有限公司 版權(quán)所有 粵ICP備20017602號