版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十六節(jié):液晶屏第三大類定律任意位置顯示一個(gè)點(diǎn)(彩色320240點(diǎn)陣屏) 第三大類定律:任意位置顯示一個(gè)點(diǎn)的類型。這類液晶屏在任意位置上以一個(gè)點(diǎn)為基本單位,因此X坐標(biāo)數(shù)值的最大范圍就直接是橫向上的點(diǎn)陣數(shù)減去一(因?yàn)閺牧汩_(kāi)始)。而Y坐標(biāo)數(shù)值的最大范圍就直接是縱向上的點(diǎn)陣數(shù)減去一(因?yàn)閺牧汩_(kāi)始)。(1) 開(kāi)場(chǎng)白: 這節(jié) 我以彩色320240點(diǎn)陣屏為例子,來(lái)繼續(xù)深入了解第三大類定律:任意位置顯示一
2、個(gè)點(diǎn)的類型。彩色320240點(diǎn)陣屏跟TFT彩屏有點(diǎn)不一樣,彩色320240點(diǎn)陣屏是低像素的屏,僅僅適合顯示有顏色的圖標(biāo)或者字體,不能顯示照片或者圖像等,單片機(jī)驅(qū)動(dòng)它完全沒(méi)有問(wèn)題。TFT彩屏是高像素的屏,可以顯示照片或者圖像,用單片機(jī)驅(qū)動(dòng)會(huì)顯得力不從心,必須用高級(jí)的芯片,比如ARM系列的。我這節(jié)講的彩色320240點(diǎn)陣屏是用什么驅(qū)動(dòng)IC呢?這個(gè)我也沒(méi)有仔細(xì)去查,反正這類屏很常用,從深圳南頭關(guān)外的107國(guó)道開(kāi)往固戍方向的小型公共汽車上,就可以看到駕駛室儀表上用的就是這個(gè)屏,黑底紅字,視覺(jué)效果非常棒。如果讀者看了鴻哥之前幾節(jié)關(guān)于液晶顯示屏的文章,相信讀者能摸出了我做液晶驅(qū)動(dòng)程序的套路:第一步:當(dāng)我拿
3、到一款新的液晶屏?xí)r,我會(huì)先從液晶廠家要回一個(gè)演示驅(qū)動(dòng)程序,如果廠家沒(méi)有就想辦法在網(wǎng)上下載一個(gè)??靠打?qū)動(dòng)芯片的PDF文檔寫(xiě)驅(qū)動(dòng)程序是最笨的一個(gè)辦法。第二步:廠家或者網(wǎng)上的演示驅(qū)動(dòng)程序大部分都是很亂,沒(méi)有規(guī)則的,但是不用怕,只要根據(jù)“吳堅(jiān)鴻液晶顯示三大類定律“的指導(dǎo)思想,在別人的演示驅(qū)動(dòng)程序中尋找到最核心的東西,也就是顯示的基本單位是屬于三種類型中的哪一種,最后根據(jù)顯示單位的類型自己動(dòng)手編寫(xiě)幾個(gè)最核心的程序void zf_display816, void hz_display1616, void hz_display2424就夠了,其它初始化的寄存器參數(shù)從來(lái)不用管,照抄就可以了。彩色320240液
4、晶屏實(shí)際上就是由一塊彩色320240液晶屏組成的,沒(méi)有分屏合并的概念。彩色320240屏在橫向上是320個(gè)點(diǎn),縱向上是240個(gè)點(diǎn),也就是一個(gè)長(zhǎng)方形的屏。因?yàn)樗鼘儆诘谌箢惖钠?,所以X軸坐標(biāo)數(shù)值的最大范圍是320-1=319,而縱向坐標(biāo)數(shù)值的最大范圍是240-1=239. 正常的操作思路是這樣的,先設(shè)置要顯示的點(diǎn)的顏色,然后就顯示對(duì)應(yīng)的點(diǎn)。要顯示對(duì)應(yīng)的點(diǎn),只要在顯示子程序中發(fā)送X軸與Y軸的位置數(shù)據(jù),就相當(dāng)于顯示某個(gè)具體位置的點(diǎn)。 &
5、#160;橫向取模,字節(jié)正序與倒序的概念解釋:當(dāng)我們一次在橫向上顯示八個(gè)點(diǎn)的基本單位時(shí),實(shí)際上等于我們發(fā)送了一個(gè)字節(jié)的顯示數(shù)據(jù),比如0x01,如果是正序的屏,那么從左到右的八個(gè)點(diǎn)中,只有第8個(gè)點(diǎn)是顯示的,其它的是空白,而如果是倒序的屏,則只有第1個(gè)點(diǎn)是顯示的,其它是空白的。彩色320240這個(gè)屏因?yàn)槭堑谌惖钠?,所以無(wú)論是橫向或者縱向,正序或者倒序都可以操作,關(guān)鍵是看你寫(xiě)的驅(qū)動(dòng)程序是按什么模式來(lái)寫(xiě)的。我這節(jié)是以橫向順序屏的模式來(lái)寫(xiě)彩色320240的驅(qū)動(dòng)程序。
6、0; 取模軟件是必須的,讀者可以在網(wǎng)上自己下載,資料很多。(2)功能需求: 在彩色320240屏上分別顯示8X16的字符,16X16的漢字,24X24的漢字。(3)硬件原理:彩屏不用可調(diào)電阻調(diào)對(duì)比度,其它的跟一般的單色屏差不多。模塊與背光的電源線接上5V,其它數(shù)據(jù)線跟單片機(jī)的IO口連接上。這個(gè)大家都懂。(4)源碼適合的單片機(jī):pic18f4520,晶振為22.1184MHz。(5)源代碼講解如下:#include<pic18.h>#define uchar unsigned char
7、#define uint unsigned int #define ulong unsigned long #define RED 0xf800 /顯示不同的顏色配置參數(shù)#define GREEN 0x07e0#define BLUE 0x001f#define YELLOW 0xffe0#define CYAN 0x07ff#define MAGENTA 0x
8、f81f#define BLACK 0x0000#define WHITE 0xffff#define GRAY 0x8410#define hi_re 0xf800 /顯示不同的顏色配置參數(shù)#define hi_or 0xfc00#define hi_ye 0xffb0#define hi_yg 0x87e0#define hi_gr 0x07e0#define hi_gc 0x07f0#define hi_cy 0x07ff#define hi_cb 0x041f#
9、define hi_bl 0x001f#define hi_bm 0x801f#define hi_ma 0xf8f1#define hi_mr 0xf810/補(bǔ)充說(shuō)明:吳堅(jiān)鴻程序風(fēng)格是這樣的,凡是輸出IO后綴都是_dr,凡是輸入的/IO后綴都/是_sr,凡是數(shù)據(jù)總線后綴都是_bus#define LCDBUS LATD#define _CS_dr LATC4#define _RES_dr LATC5#define A1_dr &
10、#160; LATC3#define _WR_dr LATB2#define _RD_dr LATB1void delay(unsigned int t);/時(shí)序延時(shí)子程序void screen_clear ();/清空屏幕的內(nèi)容,實(shí)際上相當(dāng)于整屏涂上白色背景void SDIN_0(); /液晶驅(qū)動(dòng)程序的一部分,不用知道具體含義,照抄就行void SDIN_1();void SCLK_0();void SCLK_1();void SENA_0();void SENA
11、_1();void write_com(unsigned char cmdcode);/寫(xiě)命令到LCD,,驅(qū)動(dòng)液晶程序的一部分void write_com_pkg(const unsigned char *pkg);/一次寫(xiě)4個(gè)字節(jié)的包裹命令到LCD,,驅(qū)動(dòng)液晶程序的一部分void SetFgColor(uint color);/設(shè)置顯示的顏色,在顯示字體或者任何點(diǎn)陣前,必須先設(shè)置將要顯示的顏色,驅(qū)動(dòng)液晶程序的一部分void Draw_Line(uint x1,uint y1,uint x2,uint y2);/畫(huà)直線,原廠配套的演示驅(qū)動(dòng)程序,不是本節(jié)的重點(diǎn),x1,y1為直線的起點(diǎn)坐標(biāo),x2,
12、y2為直線的終點(diǎn)坐標(biāo),void Draw_Rect(uint x1,uint y1,uint x2,uint y2);/畫(huà)矩形,原廠配套的演示驅(qū)動(dòng)程序,不是本節(jié)的重點(diǎn),x1,y1為矩形的起點(diǎn)坐標(biāo),x2,y2為矩形對(duì)角的終點(diǎn)坐標(biāo),void Fill_Rect(uint x1,uint y1,uint x2,uint y2);/畫(huà)填充矩形,原廠配套的演示驅(qū)動(dòng)程序,不是本節(jié)的重點(diǎn),x1,y1為矩形的起點(diǎn)坐標(biāo),x2,y2為矩形對(duì)角的終點(diǎn)坐標(biāo),/顯示一個(gè)基本單位-在任意一個(gè)位置顯示一個(gè)點(diǎn),正是本節(jié)苦苦尋找的東西,本節(jié)的核心內(nèi)容/x1和y1是要顯示的某個(gè)具體點(diǎn)的坐標(biāo)位置,我們是根據(jù)這個(gè)基本點(diǎn)來(lái)編寫(xiě)我們的各
13、種不同字體的程序void dwg_pixel(uint x1,uint y1);void SdRegVal(uchar RegAdd, uchar RegDat);/配置液晶內(nèi)部驅(qū)動(dòng)寄存器的函數(shù),不是本節(jié)重點(diǎn),在初始化里照抄即可/顯示8X16的字符函數(shù),本節(jié)的核心內(nèi)容。col代表X軸,pag代表Y軸,zk代表顯示相對(duì)應(yīng)的字庫(kù),/因?yàn)槭遣势?,不存在反顯或者正顯,顯示之前要先設(shè)置一下想要顯示內(nèi)容的顏色即可。void zf_display816(unsigned char col, unsigned char pag,const unsigned char *zk);/顯示16
14、X16的漢字函數(shù),本節(jié)的核心內(nèi)容。col代表X軸,pag代表Y軸,zk代表顯示相對(duì)應(yīng)的字庫(kù),/因?yàn)槭遣势?,不存在反顯或者正顯,顯示之前要先設(shè)置一下想要顯示內(nèi)容的顏色即可。void hz_display1616(unsigned char col, unsigned char pag,const unsigned char *zk);/顯示24X24的漢字函數(shù),本節(jié)的核心內(nèi)容。col代表X軸,pag代表Y軸,zk代表顯示相對(duì)應(yīng)的字庫(kù),/因?yàn)槭遣势?,不存在反顯或者正顯,顯示之前要先設(shè)置一下想要顯示內(nèi)容的顏色即可。void hz_display2424(unsigned cha
15、r col, unsigned char pag,const unsigned char *zk);void init_lcd();/初始化LCD屏unsigned char GpioData; / 液晶驅(qū)動(dòng)程序用到的全局變量unsigned char BitData; / 液晶驅(qū)動(dòng)程序用到的全局變量const unsigned char Set_F500=4,0x83,0x00,0xf5,0x00; /一下為配置驅(qū)動(dòng)芯片寄存器的一些參數(shù),照抄即可,不用
16、過(guò)問(wèn)具體含義const unsigned char Set_F504=4,0x83,0x04,0xf5,0x04; const unsigned char Set_F505=4,0x83,0x05,0xf5,0x80; const unsigned char Set_F6C4=4,0x83,0xc4,0xf6,0x10; const unsigned char Set_F080=4,0x83,0x80,0xf0,0xfc; const unsigned char Set_F08E=4,0x83,0x8e,0
17、xf0,0x32; const unsigned char Set_F090=4,0x83,0x90,0xf0,0x12;const unsigned char Set_F091=4,0x83,0x91,0xf0,0x26; const unsigned char Set_F092=4,0x83,0x92,0xf0,0x1f; const unsigned char Set_F094=4,0x83,0x94,0xf0,0x0a; const unsigned char Set_F095=4,0x83,0x95,0xf0,0x06;
18、 const unsigned char Set_F096=4,0x83,0x96,0xf0,0x06; const unsigned char Set_8F=7,0x8f,0x69,0x45,0x61,0x67,0x6c,0x65;const unsigned char Set_F240=4,0x83,0x40,0xf2,0x00; const unsigned char Set_F241=4,0x83,0x41,0xf2,0x3f; /補(bǔ)充說(shuō)明:吳堅(jiān)鴻程序風(fēng)格是這樣的,凡是字庫(kù)內(nèi)容,如果是字符,則前綴用zf,然后緊/跟著點(diǎn)陣數(shù)
19、,接著下劃線,最后緊跟顯示的字符。如果有重復(fù)的,則多加一個(gè)序列號(hào)標(biāo)識(shí)。如果是漢字,則前綴用hz,其它的一樣。const unsigned char zf816_V=/從取模軟件中復(fù)制的字庫(kù),橫向取模,字節(jié)正序/*- 文字: V -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x00,0x00,0xE7,0x42,0x42,0x44,0x24,0x24,0x28,0x28,0x18,0x10,0x10,0x00,0x00,;con
20、st unsigned char zf816_5=/*- 文字: 5 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,;const unsigned char hz1616_hong=/*- 文字: 鴻 -*/*-
21、160; 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x40,0x20,0x20,0x40,0x20,0xFC,0x0E,0xC4,0x84,0xA4,0x54,0xA4,0x54,0x8C,0x24,0x80,0x24,0xFE,0x26,0x02,0xD8,0x02,0x43,0xFA,0x40,0x02,0x40,0x02,0x40,0x0A,0x00,0x04,;const unsigned char hz1616_ge=/*- 文字: 哥 -*/
22、*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x00,0x7F,0xFC,0x00,0x10,0x1F,0x90,0x10,0x90,0x1F,0x90,0x10,0x90,0x00,0x04,0xFF,0xFE,0x00,0x10,0x1F,0x90,0x10,0x90,0x1F,0x90,0x10,0x90,0x00,0x50,0x00,0x20,;const unsigned char hz2424_hong=/*- 文字: 鴻
23、60;-*/*- 宋體18; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=24x24 -*/0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0xC0,0x08,0x00,0x80,0x0C,0x01,0x00,0x00,0x17,0xF8,0x03,0xFC,0x18,0x44,0x44,0x98,0x24,0x44,0xD0,0x34,0x44,0x10,0x14,0x44,0x10,0x08,0x44,0x70,0x08,0x44,0x20,0x08,0x44,0x04,0x08,0x57,0xFC,0x
24、08,0xE0,0x0C,0x33,0x00,0x0C,0x10,0x00,0x6C,0x10,0x3F,0x98,0x10,0x00,0x08,0x10,0x00,0x08,0x18,0x00,0xF8,0x18,0x00,0x30,0x00,0x00,0x00,;const unsigned char hz2424_ge=/*- 文字: 哥 -*/*- 宋體18; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=24x24 -*/0x00,0x00,0x00,0x00,0x0
25、0,0x00,0x00,0x00,0x10,0x1F,0xFF,0xF8,0x00,0x00,0x40,0x02,0x08,0x40,0x03,0xF8,0x40,0x02,0x08,0x40,0x02,0x08,0x40,0x03,0xF8,0x40,0x00,0x00,0x40,0x00,0x00,0x0C,0x1F,0xFF,0xF0,0x00,0x00,0x40,0x07,0xF8,0x40,0x06,0x08,0x40,0x06,0x08,0x40,0x06,0x08,0x40,0x07,0xF8,0x40,0x06,0x08,0x40,0x00,0x00,0x40,0x00,0x0
26、3,0xC0,0x00,0x00,0xC0,0x00,0x00,0x00,;/主程序main() ADCON0=0x00; ADCON1=0x0f; /全部為數(shù)字信號(hào) AD
27、CON2=0xa1; /右對(duì)齊 RBPU=0; SSPEN=0; &
28、#160; /決定RA5不作為串口 TRISD=0x00; /配置驅(qū)動(dòng)液晶IO口為輸出 TRISC4=0; TRISC5=0; TRISC3=0; TRISB2=0; TRISB1=0; /補(bǔ)充說(shuō)明,以上的內(nèi)容為寄存器配置,每種不同的單片機(jī)會(huì)有點(diǎn)差異, /大家不用過(guò)度關(guān)注以上寄存器的配置,只要知
29、道有這么一回事即可 init_lcd(); /初始化液晶屏 screen_clear ();/清空整屏顯示內(nèi)容,相當(dāng)于把整屏涂上白色背景 /左邊,綠顏色,16X16的漢字,鴻哥V5,X軸的范圍是0到319 SetFgColor(GREEN); /設(shè)置字體為綠顏色 hz_display1616(0, 0,hz1616_hong); hz_display1616(
30、16, 0,hz1616_ge); zf_display816(32, 0,zf816_V); zf_display816(40, 0,zf816_5); /右邊,黃顏色,24X24的漢字,鴻哥,X軸的范圍是0到319 SetFgColor(YELLOW); /設(shè)置字體為黃顏色 hz_display2424(310, 0,hz2424_hong); hz_display2
31、424(334, 0,hz2424_ge); while(1) CLRWDT(); /喂看門(mén)狗,大家不用過(guò)度關(guān)注此行 /-時(shí)序延時(shí)子程序-void delay(unsigned int t) unsigned int i; unsigned int j; for(i=0;i<t;i+)
32、; for(j=0; j<109; j+) asm("nop"); /*-清空屏幕的內(nèi)容,實(shí)際上相當(dāng)于整屏涂上白色背景-*/void screen_clear () SetFgColor(WHITE); /先設(shè)置將要顯示的白顏色 Fil
33、l_Rect(0,0,319,239); /填充一個(gè)320X240的白色矩形,相當(dāng)于清屏void SDIN_0() /液晶驅(qū)動(dòng)程序的一部分,不用知道具體含義,照抄就行 GpioData=GpioData&0xf7;void SDIN_1() GpioData=GpioData|0x08;void SCLK_0() GpioData=GpioData&0xfb;void SCLK_1() GpioData=GpioData|0x04;void SENA_0()&
34、#160; GpioData=GpioData&0xfd;void SENA_1() GpioData=GpioData|0x02;/-寫(xiě)命令到LCD,,驅(qū)動(dòng)液晶程序的一部分-void write_com(unsigned char cmdcode) A1_dr = 0; LCDBUS = cmdcode;
35、 _CS_dr = 0; _WR_dr = 0; _WR_dr = 1; _CS_dr = 1; /-一次寫(xiě)4個(gè)字節(jié)的包裹命令到LCD,,驅(qū)動(dòng)液晶程序的一部分-void write_com_pkg(const unsigned
36、char *pkg) uchar i; for(i=*pkg;i;i-) A1_dr = 0; LCDBUS = *(+pkg); _CS_dr=0;&
37、#160; _WR_dr=0; _WR_dr=1; _CS_dr=1; A1_dr = 1; LCDBUS = 1; &
38、#160; _CS_dr = 0; _WR_dr = 0; _WR_dr = 1; _CS_dr = 1; /-設(shè)置顯示的顏色,在顯示字體或者任何點(diǎn)陣前,必須先設(shè)置將要顯示的顏色,驅(qū)動(dòng)液晶程序的一部分-void SetFgColor(uint color) uchar Buffer4; Buffer0=3; Buffer1=0x20; Buffer2=colo
39、r; Buffer3=color>>8; write_com_pkg(Buffer);/畫(huà)直線,原廠配套的演示驅(qū)動(dòng)程序,不是本節(jié)的重點(diǎn),x1,y1為直線的起點(diǎn)坐標(biāo),x2,y2為直線的終點(diǎn)坐標(biāo),void Draw_Line(uint x1,uint y1,uint x2,uint y2) uchar Buffer10; Buffer0=9; Buffer1=0x24; Buffer2=x1; Buffer3=x1>>8;
40、; Buffer4=y1; Buffer5=y1>>8; Buffer6=x2; Buffer7=x2>>8; Buffer8=y2; Buffer9=y2>>8; write_com_pkg(Buffer); delay(20); delay(20);/畫(huà)矩形,原廠配套的演示驅(qū)動(dòng)程序,不是本節(jié)的重點(diǎn),x1,y1為矩形的起點(diǎn)坐標(biāo),x2,y2為矩形對(duì)角的終點(diǎn)坐標(biāo),void Draw_Rect(uint x1,uint y1,uint
41、 x2,uint y2) uchar Buffer10; Buffer0=9; Buffer1=0x26; Buffer2=x1; Buffer3=x1>>8; Buffer4=y1; Buffer5=y1>>8; Buffer6=x2; Buffer7=x2>>8; Buffer8=y2; Buffer9=y2>>8; write_com_
42、pkg(Buffer); delay(20); delay(20);/畫(huà)填充矩形,原廠配套的演示驅(qū)動(dòng)程序,不是本節(jié)的重點(diǎn),x1,y1為矩形的起點(diǎn)坐標(biāo),x2,y2為矩形對(duì)角的終點(diǎn)坐標(biāo),void Fill_Rect(uint x1,uint y1,uint x2,uint y2) uchar Buffer10; Buffer0=9; Buffer1=0x27; Buffer2=x1; Buffer3=x1>>8;
43、60; Buffer4=y1; Buffer5=y1>>8; Buffer6=x2; Buffer7=x2>>8; Buffer8=y2; Buffer9=y2>>8; write_com_pkg(Buffer); delay(20); delay(20);/顯示一個(gè)基本單位-在任意一個(gè)位置顯示一個(gè)點(diǎn),正是本節(jié)苦苦尋找的東西,本節(jié)的核心內(nèi)容/x1和y1是要顯示的某個(gè)具體點(diǎn)的坐標(biāo)位置,我們是根據(jù)這個(gè)基本點(diǎn)來(lái)編寫(xiě)我們的各種不同字體的程
44、序void dwg_pixel(uint x1,uint y1) uchar Buffer6; Buffer0=5; Buffer1=0x23; Buffer2=x1; Buffer3=x1>>8; Buffer4=y1; Buffer5=y1>>8; write_com_pkg(Buffer);/配置液晶內(nèi)部驅(qū)動(dòng)寄存器的函數(shù),不是本節(jié)重點(diǎn),在初始化里照抄即可void SdRegVal(uchar RegAdd, u
45、char RegDat) uchar i, Buffer5; BitData=(RegAdd<<2)+3; for(i=0; i<8; i+) SENA_0();
46、 SCLK_0(); if(BitData&0x80)=0x80) SDIN_1(); else
47、0; SDIN_0(); Buffer0=4; Buffer1=0x83; Buffer2=0x41; Buffer3=0xf2; Buffer4=GpioData; write_com_pkg(Buffer); SCLK_1();
48、; Buffer0=4; Buffer1=0x83; Buffer2=0x41; Buffer3=0xf2; Buffer4=GpioData; write_com_pkg(Buffer); SCLK_0(); Buffer0=4; Buffer1=0x83; Buffer2=0x41; Buffer3=0xf2; Buffer4=
49、GpioData; write_com_pkg(Buffer); BitData=BitData<<1; BitData=RegDat; for(i=0; i<8; i+) SENA_0();
50、0; SCLK_0(); if(BitData&0x80)=0x80) SDIN_1(); else SDIN_0();
51、 Buffer0=4; Buffer1=0x83; Buffer2=0x41; Buffer3=0xf2; Buffer4=GpioData; write_com_pkg(Buffer); SCLK_1(); Buffer0=4; Buffer1=0x83; Buffer2=0x41; Buffer3=0xf
52、2; Buffer4=GpioData; write_com_pkg(Buffer); SCLK_0(); Buffer0=4; Buffer1=0x83; Buffer2=0x41; Buffer3=0xf2; Buffer4=GpioData; write_com_pkg(Buffer); BitData=BitData<<1;
53、 SENA_1(); Buffer0=4; Buffer1=0x83; Buffer2=0x41; Buffer3=0xf2; Buffer4=GpioData; write_com_pkg(Buffer);/顯示8X16的字符函數(shù),本節(jié)的核心內(nèi)容。col代表X軸,pag代表Y軸,zk代表顯示相對(duì)應(yīng)的字庫(kù),/因?yàn)槭遣势?,不存在反顯或者正顯,顯示之前要先設(shè)置一下想要顯示內(nèi)容的顏色即可。void zf_display816(unsigned char col, unsigne
54、d char pag,const unsigned char *zk) unsigned char j=0,i=0,k=0; unsigned char zf_temp=0; for(j=0;j<16;j+) /此處j代表Y軸的數(shù)據(jù),也就是顯示第幾行了,一個(gè)8X16字符只占用16行 for(i=0;i<1;i+) /此處i代表X軸的數(shù)據(jù),一行8個(gè)點(diǎn),共1個(gè)字節(jié),每發(fā)送一個(gè)字節(jié)的顯示數(shù)據(jù),都要把
55、這個(gè)字節(jié)分解成8個(gè)點(diǎn)依次顯示 zf_temp=zkj*1+i; /發(fā)送顯示的字節(jié)數(shù)據(jù),一行1個(gè)字節(jié),因此1*j for(k=0;k<8;k+) /把一個(gè)字節(jié)分解成8個(gè)點(diǎn),一個(gè)點(diǎn)一個(gè)點(diǎn)來(lái)顯示 &
56、#160; if(zf_temp&0x80)=0x80) dwg_pixel(col+i*8+k,pag+j); /顯示一個(gè)點(diǎn)
57、160;zf_temp=zf_temp<<1; /顯示16X16的漢字函數(shù),本節(jié)的核心內(nèi)容。col代表X軸,pag代表Y軸,zk代表顯示相對(duì)應(yīng)的字庫(kù),/因?yàn)槭遣势粒淮嬖诜达@或者正顯,顯示之前要先設(shè)置一下想要顯示內(nèi)容的顏色即可。void hz_display1616(unsigned char col, unsigned char pag,const unsigned char *zk)
58、0;unsigned char j=0,i=0,k=0; unsigned char zf_temp=0; for(j=0;j<16;j+) /此處j代表Y軸的數(shù)據(jù),也就是顯示第幾行了,一個(gè)16X16漢字只占用16行 for(i=0;i<2;i+) /此處i代表X軸的數(shù)據(jù),一行16個(gè)點(diǎn),共2個(gè)字節(jié),每發(fā)送一個(gè)字節(jié)的顯示數(shù)據(jù),都要把這個(gè)字節(jié)分解成8個(gè)點(diǎn)依次顯示
59、160; zf_temp=zkj*2+i; /發(fā)送顯示的字節(jié)數(shù)據(jù),一行2個(gè)字節(jié),因此2*j for(k=0;k<8;k+) /把一個(gè)字節(jié)分解成8個(gè)點(diǎn),一個(gè)點(diǎn)一個(gè)點(diǎn)來(lái)顯示 if(zf_temp&0x80)=0x80)
60、0; dwg_pixel(col+i*8+k,pag+j); /顯示一個(gè)點(diǎn) zf_temp=zf_temp<<1;
61、 /顯示24X24的漢字函數(shù),本節(jié)的核心內(nèi)容。col代表X軸,pag代表Y軸,zk代表顯示相對(duì)應(yīng)的字庫(kù),/因?yàn)槭遣势?,不存在反顯或者正顯,顯示之前要先設(shè)置一下想要顯示內(nèi)容的顏色即可。void hz_display2424(unsigned char col, unsigned char pag,const unsigned char *zk) unsigned char j=0,i=0,k=0; unsigned char
62、zf_temp=0; for(j=0;j<24;j+) /此處j代表Y軸的數(shù)據(jù),也就是顯示第幾行了,一個(gè)24X24的漢字只占用24行 for(i=0;i<3;i+) /此處i代表X軸的數(shù)據(jù),一行24個(gè)點(diǎn),共3個(gè)字節(jié),每發(fā)送一個(gè)字節(jié)的顯示數(shù)據(jù),都要把這個(gè)字節(jié)分解成8個(gè)點(diǎn)依次顯示 zf_temp=zkj*3+i; /發(fā)送顯示的字節(jié)數(shù)據(jù),一行3個(gè)字節(jié),因此3*j for(k=0;k<8;k+) /把一個(gè)字節(jié)分解成8個(gè)點(diǎn),一個(gè)點(diǎn)一個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版牛只運(yùn)輸車輛駕駛?cè)藛T培訓(xùn)與考核合同3篇
- 二零二五年度暖氣設(shè)備安裝工程安全生產(chǎn)管理合同3篇
- 二零二五年度農(nóng)業(yè)科技創(chuàng)新農(nóng)副業(yè)承包合同書(shū)模板4篇
- 美容院與互聯(lián)網(wǎng)平臺(tái)合作開(kāi)展直播帶貨合同4篇
- 公共管理導(dǎo)論知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋西北大學(xué)
- 買(mǎi)賣(mài)雙方2024年蔬菜交易合同3篇
- 2025年度木門(mén)原材采購(gòu)合同4篇
- 二零二五寵物醫(yī)院獸醫(yī)職務(wù)聘任與培訓(xùn)合同4篇
- 2025年度南京市二手房買(mǎi)賣(mài)合同電子版范本4篇
- 二零二五版農(nóng)業(yè)綜合開(kāi)發(fā)農(nóng)資采購(gòu)項(xiàng)目合同4篇
- 基因突變和基因重組(第1課時(shí))高一下學(xué)期生物人教版(2019)必修2
- 內(nèi)科學(xué)(醫(yī)學(xué)高級(jí)):風(fēng)濕性疾病試題及答案(強(qiáng)化練習(xí))
- 音樂(lè)劇好看智慧樹(shù)知到期末考試答案2024年
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 查干淖爾一號(hào)井環(huán)評(píng)
- 案卷評(píng)查培訓(xùn)課件模板
- 2024年江蘇省樣卷五年級(jí)數(shù)學(xué)上冊(cè)期末試卷及答案
- 人教版初中英語(yǔ)七八九全部單詞(打印版)
- 波浪理論要點(diǎn)圖解完美版
- 金融交易數(shù)據(jù)分析與風(fēng)險(xiǎn)評(píng)估項(xiàng)目環(huán)境敏感性分析
- 牛頓環(huán)與劈尖實(shí)驗(yàn)論文
評(píng)論
0/150
提交評(píng)論