久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1648|回復(fù): 0
收起左側(cè)

單片機(jī)OLED漢字圖片左右循環(huán)移動(dòng) 程序無(wú)法實(shí)現(xiàn)效果

[復(fù)制鏈接]
ID:1040821 發(fā)表于 2022-7-29 11:17 | 顯示全部樓層 |閱讀模式
仿真及完整代碼
51hei.gif

#include <reg51.h>                                                                //51通用頭文件        
#include <oled.h>                                                                        //OLED庫(kù)函數(shù)

#define uchar unsigned char                                //用uchar 表示 unsigned char類型
#define uint unsigned int                                        //用uint 表示 unsigned int類型
//#define UP 0
//#define DOWN 1
#define LEFT 2
#define RIGHT 3

extern uchar code BMPclr[];                                //圖片清屏用
extern uchar code BMP0[];                                        //oledfont.h中,圖片0取模數(shù)組,做外部變量聲明
extern uchar code BMP1[];                                        //oledfont.h中,圖片1取模數(shù)組,做外部變量聲明(如用到更多圖片,均需要聲明)

void HZmove(uchar *sz,uint sudu,uchar fx);        //漢字移動(dòng)函數(shù)
//3個(gè)形參分別為:漢字?jǐn)?shù)組名,移動(dòng)速度,移動(dòng)方向

void BMPmove(uchar BMPx1,uchar BMPy1,uchar BMPx2,uchar BMPy2,uchar *BMPn,uchar BMPfx);//圖片移動(dòng)函數(shù)
//6個(gè)形參分別為:圖片起始列坐標(biāo),起始頁(yè)坐標(biāo),結(jié)束列坐標(biāo),結(jié)束頁(yè)坐標(biāo),圖片名,移動(dòng)方向

uchar hzsz[9]={0,0,0,0,0,5,6,7,8};//移動(dòng)漢字?jǐn)?shù)組,支持1-8個(gè)漢字,需要顯示移動(dòng)效果的文字序號(hào),按順序填入數(shù)組,從1開(kāi)始,hzsz[0]不可用

uchar bx,by,hx,hy;//圖片移動(dòng)坐標(biāo),漢字移動(dòng)坐標(biāo)變量

void main(void)
{        
        OLED_Init();                                                                                                //初始化OLED  
        OLED_ShowCHinese(hx,0,hzsz[8]);
        while(1);
//        while(1)
//        {        
//                HZmove(hzsz,0,LEFT);                                                        //漢字,移速0(最快),右移               
//                BMPmove(0,2,64,8,BMP0,LEFT);                        //BMP0,初始:0-64列,2-8頁(yè),循環(huán)左移
//                BMPmove(0,2,64,8,BMP1,LEFT);                        //BMP1,初始:0-64列,2-8頁(yè),循環(huán)左移  //BMP0和BMP1兩圖合成為動(dòng)畫(huà)效果
//        }
}

void HZmove(uchar *sz,uint sudu,uchar fx)        //漢字移動(dòng)函數(shù)(數(shù)組名,移動(dòng)方向)
{        
        if(fx == RIGHT)                                                                                                        //右移
        {
                if(hx >= 128) hx = 0;                                                                        
                if(hx <= 128)                                                                                                        //128列范圍內(nèi)移動(dòng)
                {
                        OLED_ShowCHinese(hx,0,sz[8]);                                //按當(dāng)前坐標(biāo)更新漢字        
                        OLED_ShowCHinese(hx+16,0,sz[7]);
                        OLED_ShowCHinese(hx+32,0,sz[6]);
                        OLED_ShowCHinese(hx+48,0,sz[5]);                                
                        OLED_ShowCHinese(hx+64,0,sz[4]);
                        OLED_ShowCHinese(hx+80,0,sz[3]);
                        OLED_ShowCHinese(hx+96,0,sz[2]);
                        OLED_ShowCHinese(hx+112,0,sz[1]);        //漢字逆向顯示(從右往左顯示)
                        delay_ms(sudu*10);                                                                //速度暫時(shí)用delay控制
                        hx +=8;                                                                                                                //每次右移8列像素
                }        
        }
        if(fx == LEFT)                                                                                                //左移
        {
                if(hx <= 0) hx = 120;
                if(hx >= 8)                                                                                                        //128列范圍移動(dòng)
                {
                        OLED_ShowCHinese(hx,0,sz[1]);                        //按當(dāng)前坐標(biāo)更新漢字
                        OLED_ShowCHinese(hx+16,0,sz[2]);
                        OLED_ShowCHinese(hx+32,0,sz[3]);
                        OLED_ShowCHinese(hx+48,0,sz[4]);                                
                        OLED_ShowCHinese(hx+64,0,sz[5]);
                        OLED_ShowCHinese(hx+80,0,sz[6]);
                        OLED_ShowCHinese(hx+96,0,sz[7]);
                        OLED_ShowCHinese(hx+112,0,sz[8]);        //正向顯示漢字(從左往右顯示)
                        delay_ms(sudu*10);                                                                //速度暫時(shí)用delay控制
                        hx -=8;                                                                                                                //每次左移8列像素
                }
        }
}
void BMPmove(uchar BMPx1,uchar BMPy1,uchar BMPx2,uchar BMPy2,uchar *BMPn,uchar BMPfx)//圖片循環(huán)移動(dòng)函數(shù)
{
        if(BMPfx == LEFT)                                                                                        //左移
        {
                if(bx <= 0) bx = 128;
                if(bx >= 8)                                                                                                        //128列范圍
                {        
                        OLED_DrawBMP(bx+BMPx1,BMPy1,bx+BMPx2,BMPy2,BMPn);                        //按當(dāng)前坐標(biāo)更新圖形
                        OLED_DrawBMP(bx+BMPx2,BMPy1,bx+BMPx2+8,BMPy2,BMPclr);        //擦除部分圖像
                        bx -= 8;
                }
        }
        if(BMPfx == RIGHT)                                                                                //右移
        {
                if(bx >= 128) bx = 0;
                if(bx <= 128)                                                                                                //128列范圍
                {
                        OLED_DrawBMP(bx+BMPx1,BMPy1,bx+BMPx2,BMPy2,BMPn);                        //按當(dāng)前坐標(biāo)更新圖形
                        OLED_DrawBMP(bx+BMPx1,BMPy1,bx+BMPx1+8,BMPy2,BMPclr);        //擦除部分圖像
                        bx +=8;
                }
        }        
}

代碼有錯(cuò)誤 求幫助:
OLED漢字圖片左右循環(huán)移動(dòng).zip (1.93 MB, 下載次數(shù): 6)


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美福利久久 | 久久丝袜视频 | 九九热在线免费视频 | www..com18午夜观看 | 中文字幕伊人 | 精品国产精品一区二区夜夜嗨 | 91精产国品一二三区 | 成人免费区一区二区三区 | 成人激情免费视频 | 3级毛片| 国产日韩欧美在线 | 亚洲综合电影 | 精品一二三区 | 台湾a级理论片在线观看 | 一区二区不卡 | 日韩一区二区三区视频 | 亚洲国产精久久久久久久 | 久久精品99国产精品 | 欧美a区| 91啪亚洲精品 | 在线成人av | 中文字幕日韩专区 | 精品国产青草久久久久96 | 密色视频 | 毛片的网址 | 黄视频欧美 | 日本精品999| 日韩成人一区 | 精精国产xxxx视频在线 | va在线| 337p日韩 | 99pao成人国产永久免费视频 | 欧美日韩大片 | 久久精品视频播放 | 日韩一区二区三区视频在线观看 | 欧美中文在线 | 国产高清免费 | 四虎影音 | 日韩精品在线一区 | 国产精品爱久久久久久久 | 91国内外精品自在线播放 |