服務(wù)熱線
0755-83044319
發(fā)布時(shí)間:2022-03-17作者來源:薩科微瀏覽:1478
GB1616.h//------------------ 漢字字模的數(shù)據(jù)結(jié)構(gòu)定義 ------------------------//struct typFNT_GB16 //漢字字模數(shù)據(jù)結(jié)構(gòu){ unsignedchar Index[3]; //漢字內(nèi)碼索引 unsignedchar Msk[32]; //點(diǎn)陣碼數(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,
這個(gè)結(jié)構(gòu),很簡單的:一個(gè)是內(nèi)碼,一個(gè)點(diǎn)陣序列,以前的點(diǎn)陣庫是按內(nèi)碼順序放的,不需要內(nèi)碼索引的,如果只放部分漢字,就需要內(nèi)碼索引了。(前面的漢字“徐”是為了要輸出“徐”的時(shí)候找到該字的點(diǎn)陣序列,這個(gè)點(diǎn)陣序列是自己寫的,當(dāng)用1602顯示時(shí),因?yàn)樵撔酒瑑?nèi)存在英文的點(diǎn)陣序列,所以就不用寫了)一般內(nèi)碼兩個(gè)字節(jié)就行了,多用1個(gè)字節(jié)是加了個(gè)尾0而已,這樣,漢字內(nèi)碼處直接放漢字字符串就可;
13、12864液晶:
每個(gè)顯示點(diǎn)對(duì)應(yīng)一位二進(jìn)制數(shù),1 表示亮,0 表示滅。存儲(chǔ)這些點(diǎn)陣信息的RAM稱為顯示數(shù)據(jù)存儲(chǔ)器。要顯示某個(gè)圖形或漢字就是將相應(yīng)的點(diǎn)陣信息寫入到相應(yīng)的存儲(chǔ)單元中。
繪圖RAM的地址計(jì)數(shù)器(AC)只會(huì)對(duì)水平地址(X 軸)自動(dòng)加一, 當(dāng)水平地址=0FH 時(shí)會(huì)重新設(shè)為00H 但并不會(huì)對(duì)垂直地址做進(jìn)位自動(dòng)加一,故當(dāng)連續(xù)寫入多筆資料時(shí),程序需自行判斷垂直地址是否需重新設(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個(gè)列地址 { 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++; } } }
對(duì)于C語言,定義的變量,自動(dòng)為其分配空間,其地址為該變量的名稱。通過該名稱,可以在內(nèi)存中招到該數(shù)據(jù),經(jīng)過運(yùn)算得到新數(shù)據(jù),而匯編中需要編程者自己定義存儲(chǔ)空間及把數(shù)據(jù)送到累加器等進(jìn)行運(yùn)算,每一步都需要編程者操作。而C語言這些過程由編譯器去完成。
回答3:一般是自動(dòng)分配的,可以c語言和匯編語言混合編程,也可以用Keil C在線匯編,芯片與外部的數(shù)據(jù)交換都是通過端口進(jìn)行的。
免責(zé)聲明:本文轉(zhuǎn)載自“國際電子商情”,本文僅代表作者個(gè)人觀點(diǎn),不代表薩科微及行業(yè)觀點(diǎn),只為轉(zhuǎn)載與分享,支持保護(hù)知識(shí)產(chǎn)權(quán),轉(zhuǎn)載請(qǐng)注明原出處及作者,如有侵權(quán)請(qǐng)聯(lián)系我們刪除。
公司電話:+86-0755-83044319
傳真/FAX:+86-0755-83975897
郵箱:1615456225@qq.com
QQ:3518641314 李經(jīng)理
QQ:332496225 丘經(jīng)理
地址:深圳市龍華新區(qū)民治大道1079號(hào)展滔科技大廈C座809室
友情鏈接:站點(diǎn)地圖 薩科微官方微博 立創(chuàng)商城-薩科微專賣 金航標(biāo)官網(wǎng) 金航標(biāo)英文站
Copyright ?2015-2024 深圳薩科微半導(dǎo)體有限公司 版權(quán)所有 粵ICP備20017602號(hào)-1