|
這里將我寫(xiě)的STC12C5A60S2單片機(jī)控制OLED12864顯示屏的程序共享一下,如有不足,敬請(qǐng)指出!
1.jpg (3.52 MB, 下載次數(shù): 29)
下載附件
2021-4-20 16:06 上傳
測(cè)試視頻:見(jiàn)文章尾
代碼結(jié)構(gòu)圖:
3.jpg (11.07 KB, 下載次數(shù): 54)
下載附件
2021-4-20 16:06 上傳
程序下載鏈接:https://download.csdn.net/download/yagnruinihao/16746777
測(cè)試程序:OLED12864測(cè)試.c
- #include "OLED12864.h"
- #include "OLED12864WordCode.h"
- #include "common.h"
-
- void DisplayLogoTest(void);
- void DisplayAsciiTest(void) ;
- void DisplayScrollTest(void);
- void DisplayGrid(void);
- void DisplayBmp(void);
-
- void main(void)
- {
- unsigned char i=0;
- unsigned char j=0 ;
-
- OLED12864_Init(); //OLED初始化
- while(1)
- {
- DisplayAsciiTest();//ASCII顯示實(shí)驗(yàn)
- OLED12864_CleanAll();
-
- DisplayScrollTest();//滾動(dòng)屏顯示實(shí)驗(yàn)
- OLED12864_CleanAll();
-
- DisplayGrid();//畫(huà)棋盤(pán)實(shí)驗(yàn)
- OLED12864_CleanAll();
-
- DisplayBmp();//圖片顯示實(shí)驗(yàn)
- }
-
- }
-
- void DisplayLogoTest(void)
- {
- unsigned char i ;
-
- //"微創(chuàng)電子"
- OLED12864_WriteFont16x16(0,8,0);
- OLED12864_WriteFont16x16(0,24,1);
- OLED12864_WriteFont16x16(0,40,2);
- OLED12864_WriteFont16x16(0,56,3);
- OLED12864_WriteFont16x16(0,72,29);
- OLED12864_WriteFont16x16(0,88,30);
- OLED12864_WriteFont16x16(0,104,31);
-
- //橫線
- for(i=0 ; i<16 ; i++)
- OLED12864_WriteFont16x08(2,i*8,13);
- }
- void DisplayAsciiTest(void)
- {
- unsigned char i ;
- unsigned char bai,shi,ge ;
-
- //"微創(chuàng)電子工作室"+橫線
- DisplayLogoTest();
-
- //"ASCII"
- OLED12864_WriteFont16x08(4,0,33) ;
- OLED12864_WriteFont16x08(4,8,51) ;
- OLED12864_WriteFont16x08(4,16,35) ;
- OLED12864_WriteFont16x08(4,24,41) ;
- OLED12864_WriteFont16x08(4,32,41) ;
-
- //"值演示實(shí)驗(yàn)"
- OLED12864_WriteFont16x16(4,48,4);
- OLED12864_WriteFont16x16(4,64,5);
- OLED12864_WriteFont16x16(4,80,6);
- OLED12864_WriteFont16x16(4,96,7);
- OLED12864_WriteFont16x16(4,112,8);
-
- //"For:""Value="
- OLED12864_WriteFont16x08(6,0,38);//F
- OLED12864_WriteFont16x08(6,8,79);//o
- OLED12864_WriteFont16x08(6,16,82);//r
- OLED12864_WriteFont16x08(6,24,26);//:
- OLED12864_WriteFont16x08(6,56,54);//V
- OLED12864_WriteFont16x08(6,64,65);//a
- OLED12864_WriteFont16x08(6,72,76);//l
- OLED12864_WriteFont16x08(6,80,85);//u
- OLED12864_WriteFont16x08(6,88,69);//e
- OLED12864_WriteFont16x08(6,96,29);//=
-
- //ASCII字符及其數(shù)值
- for(i=0 ; i<95 ; i++)
- {
- OLED12864_WriteFont16x08(6,32,i);
- bai = (i+32)%1000/100 ;
- shi = (i+32)%100/10 ;
- ge = (i+32)%10 ;
- if(bai)
- OLED12864_WriteFont16x08(6,104,bai+16);
- else
- OLED12864_WriteFont16x08(6,104,0);
-
- OLED12864_WriteFont16x08(6,112,shi+16);
- OLED12864_WriteFont16x08(6,120,ge+16);
- Delay_SomeNop(10000);
- }
- }
-
- void DisplayScrollTest(void)
- {
- unsigned char i ;
-
- DisplayLogoTest();
-
- //"滾屏顯示實(shí)驗(yàn)"
- OLED12864_WriteFont16x16(4,16,9);
- OLED12864_WriteFont16x16(4,32,10);
- OLED12864_WriteFont16x16(4,48,11);
- OLED12864_WriteFont16x16(4,64,12);
- OLED12864_WriteFont16x16(4,80,13);
- OLED12864_WriteFont16x16(4,96,14);
-
- //"倒計(jì)時(shí):"
- OLED12864_WriteFont16x16(6,32,23);
- OLED12864_WriteFont16x16(6,48,24);
- OLED12864_WriteFont16x16(6,64,25);
- OLED12864_WriteFont16x08(6,80,26);
- for(i=0 ; i<=3 ; i++)
- {
- OLED12864_WriteFont16x08(6,88,3-i+16);
- Delay_SomeNop(40000);
- }
-
- //清除最后一行漢字
- for(i=0 ; i <16 ; i++)
- {
- OLED12864_WriteFont16x08(6,i*8,0);
- }
-
- //開(kāi)始橫向滾屏
- OLED12864_HorizontalScrollDisplay(OLED12864_HORIZONTAL_SCROLL_LEFT,OLED12864_PAGE2, OLED12864_PAGE5, OLED12864_INTERVAL_2_FRAMES);
- Delay_SomeNop(120000);
- OLED12864_HorizontalScrollDisplay(OLED12864_HORIZONTAL_SCROLL_RIGHT,OLED12864_PAGE2, OLED12864_PAGE5, OLED12864_INTERVAL_2_FRAMES);
- Delay_SomeNop(120000);
- OLED12864_HorizontalScrollDisplay(OLED12864_HORIZONTAL_SCROLL_RIGHT,OLED12864_PAGE2, OLED12864_PAGE5, OLED12864_INTERVAL_2_FRAMES);
- Delay_SomeNop(120000);
- OLED12864_HorizontalScrollDisplay(OLED12864_HORIZONTAL_SCROLL_LEFT,OLED12864_PAGE2, OLED12864_PAGE5, OLED12864_INTERVAL_2_FRAMES);
- Delay_SomeNop(120000);
-
-
- OLED12864_StopScroll();
- Delay_SomeNop(120000);
-
- //開(kāi)始縱向滾屏
- OLED12864_VerticalScrollArea(32,32);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE7,OLED12864_PAGE7, OLED12864_INTERVAL_2_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE7,OLED12864_PAGE7, OLED12864_INTERVAL_2_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_StopScroll();
- Delay_SomeNop(120000);
-
- //開(kāi)始斜向滾屏
- OLED12864_VerticalScrollArea(0,64);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_StopScroll();
- Delay_SomeNop(120000);
-
-
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE4,OLED12864_PAGE7, OLED12864_INTERVAL_2_FRAMES, 0x01);
- Delay_SomeNop(200000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE4,OLED12864_PAGE7, OLED12864_INTERVAL_2_FRAMES, 0x01);
- Delay_SomeNop(200000);
- OLED12864_StopScroll();
- Delay_SomeNop(200000);
- }
-
- void DisplayGrid(void)
- {
- unsigned char i,j,k;
-
- OLED12864_Fill(0x0f);
- OLED12864_Fill(0xf0);
-
- for(k=0;k<8;k++)
- {
- for(i=0 ; i<8;i++)
- {
- for(j=0;j<8;j++)
- {
- OLED12864_SetPosition(i , j+k*16);
- OLED12864_WriteData(0xff);
- }
- }
- }
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_INVERSE_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_NORMAL_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_INVERSE_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_NORMAL_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_INVERSE_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_NORMAL_DISPLAY);
- }
- void DisplayBmp(void)
- {
- OLED12864_DrawBmp(0, 0,7,127 ,BMP1);
-
- OLED12864_VerticalScrollArea(0,64);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_StopScroll();
- OLED12864_CleanAll();
-
- OLED12864_DrawBmp(0, 0,7,127 ,BMP2);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_INVERSE_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_NORMAL_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_INVERSE_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_DisplayNormalOrInverse(OLED12864_SET_NORMAL_DISPLAY);
- Delay_SomeNop(120000);
- OLED12864_CleanAll();
-
- OLED12864_DrawBmp(0, 0,7,127 ,BMP4);
- Delay_SomeNop(120000);
-
- OLED12864_VerticalScrollArea(0,64);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_RIGHT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x3f);
- Delay_SomeNop(120000);
- OLED12864_VHScrollDisplay(OLED12864_V_H_SCROLL_LEFT,OLED12864_PAGE0,OLED12864_PAGE7, OLED12864_INTERVAL_3_FRAMES, 0x01);
- Delay_SomeNop(120000);
- OLED12864_StopScroll();
- OLED12864_CleanAll();
-
- OLED12864_DrawBmp(0, 0,7,127 ,BMP3);
- Delay_SomeNop(120000);
- OLED12864_CleanAll() ;
- }
復(fù)制代碼
/*################OLED12864.c部分代碼分析################*/
這里重點(diǎn)分析書(shū)寫(xiě)1
- /*行列式(為了便于理解,未優(yōu)化,已實(shí)驗(yàn)成功),注意這里需要配合取模軟件和OLED12864WordCode中數(shù)組*/
- unsigned char temp ;
- OLED12864_SetPosition(Page,Column);
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
- OLED12864_SetPosition(Page+1,Column);
- addr +=8 ;
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
- addr +=8 ;
- OLED12864_SetPosition(Page,Column+8);
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
- addr +=8 ;
- OLED12864_SetPosition(Page+1,Column+8);
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
復(fù)制代碼
6x16中文漢字的四種算法(逐行式、逐列式、列行式、行列式)
算法一:逐行式
- /*逐列式,已實(shí)驗(yàn)成功,注意這里需要配合取模軟件和OLED12864WordCode中數(shù)組*/
- for(j=0;j<16; j++)
- {
- OLED12864_SetPosition(Page,Column+j);
- OLED12864_WriteData(Font16x16[addr++]);
- OLED12864_SetPosition(Page + 1 , Column+j);
- OLED12864_WriteData(Font16x16[addr++]);
- }
復(fù)制代碼 算法二:逐列式
- /*逐行式(為了便于理解,未優(yōu)化),已實(shí)驗(yàn)成功,注意這里需要配合取模軟件和OLED12864WordCode中數(shù)組*/
- unsigned char temp ;
- OLED12864_SetPosition(Page,Column);
- for(j=0;j<8 ;j++)
- {
- temp =(((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+2]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+4]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+8]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+10]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+12]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+14]&(0x01<<j))>>j)<<7) ;
- OLED12864_WriteData(temp);
- }
- ++addr;
- for(j=0;j<8 ;j++)
- {
- temp =(((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+2]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+4]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+8]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+10]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+12]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+14]&(0x01<<j))>>j)<<7) ;
- OLED12864_WriteData(temp);
- }
- addr += 15;
- OLED12864_SetPosition(Page+1,Column);
- for(j=0;j<8 ;j++)
- {
- temp =(((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+2]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+4]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+8]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+10]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+12]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+14]&(0x01<<j))>>j)<<7) ;
- OLED12864_WriteData(temp);
- }
- ++addr;
- for(j=0;j<8 ;j++)
- {
- temp =(((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+2]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+4]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+8]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+10]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+12]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+14]&(0x01<<j))>>j)<<7) ;
- OLED12864_WriteData(temp);
- }
復(fù)制代碼
算法三:列行式(作者最后采用的方式)
- /*列行式,已實(shí)驗(yàn)成功,注意這里需要配合取模軟件和OLED12864WordCode中數(shù)組*/
- OLED12864_SetPosition(Page,Column);
- for(j=0;j<16; j++)
- OLED12864_WriteData(Font16x16[addr++]);//寫(xiě)字上半部分
- OLED12864_SetPosition(Page+1,Column);
- for(j=0;j<16; j++)
- OLED12864_WriteData(Font16x16[addr++]);//寫(xiě)字下半部分
復(fù)制代碼 算法四:行列式
- /*行列式(為了便于理解,未優(yōu)化,已實(shí)驗(yàn)成功),注意這里需要配合取模軟件和OLED12864WordCode中數(shù)組*/
- unsigned char temp ;
- OLED12864_SetPosition(Page,Column);
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
- OLED12864_SetPosition(Page+1,Column);
- addr +=8 ;
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
- addr +=8 ;
- OLED12864_SetPosition(Page,Column+8);
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
- addr +=8 ;
- OLED12864_SetPosition(Page+1,Column+8);
- for(j=0;j<8; j++)
- {
- temp = (((Font16x16[addr+0]&(0x01<<j))>>j)<<0) | (((Font16x16[addr+1]&(0x01<<j))>>j)<<1) |(((Font16x16[addr+2]&(0x01<<j))>>j)<<2) | \
- (((Font16x16[addr+3]&(0x01<<j))>>j)<<3) | (((Font16x16[addr+4]&(0x01<<j))>>j)<<4) |(((Font16x16[addr+5]&(0x01<<j))>>j)<<5) | \
- (((Font16x16[addr+6]&(0x01<<j))>>j)<<6) | (((Font16x16[addr+7]&(0x01<<j))>>j)<<7);
- OLED12864_WriteData(temp) ;
- }
復(fù)制代碼
【注意】這里采用那種算法,需要和取模軟件相配套。
2.jpg (46.32 KB, 下載次數(shù): 27)
下載附件
2021-4-20 16:06 上傳
測(cè)試視頻(自行替換):
v.qq點(diǎn)com/x/page/g3240xbfvbj.html?start=18
|
評(píng)分
-
查看全部評(píng)分
|