武汉理工大学《能力拓展训练》说明书
/********************************************************* * 清屏函数 */ void clr_screen() {
lcd_wcmd(0x34); //扩充指令操作 delay1(5);
lcd_wcmd(0x30); //基本指令操作 delay1(5);
lcd_wcmd(0x01); //清屏 delay1(5); }
/********************************************************* * 图像上移函数 */ void picture_move_Up(uchar *bmp1,uchar line) { uchar i,j,m; uchar *bmp11=bmp1,*bmp111=bmp1;//保存地址指针 for(m=0;m<64/line;m++) //每幅图像有64行,每次移动8行 { //移动8次 bmp1=bmp11; lcd_wcmd(0x34); //写数据时,关闭图形显示 for(i=0;i<32;i++) { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x80); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp1++); delay1(1); } for(i=0;i<32;i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j<16;j++) lcd_wdat(*bmp1++); delay1(1); } lcd_wcmd(0x36); //写完数据,开图形显? while(flag==0) if(flag==6)flag=1;//图像停止 if(flag!=1)return; delay1(1000); bmp11+=16*line; //每次移动8行--16*line字节 }
21
武汉理工大学《能力拓展训练》说明书
for(m=0;m<32/line;m++) //第一幅的第一行在下半屏 { bmp1=bmp11; lcd_wcmd(0x34); //写数据时,关闭图形显示 for(i=0;i<32;i++) { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x80); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp1++); delay1(1); } for(i=0;i<(32-line*m);i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j<16;j++) lcd_wdat(*bmp1++); delay1(1); } bmp1=bmp111; for(;i<32;i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j<16;j++) lcd_wdat(*bmp1++); delay1(1); } lcd_wcmd(0x36); //写完数据,开图形显? while(flag==0) if(flag==6)flag=1;//图像停止 if(flag!=1)return; delay1(1000); clr_screen(); bmp11+=16*line; //每次移动8行--16*line字节 }
for(m=0;m<32/line;m++) //第一幅的第一行在上半屏 { bmp1=bmp11; lcd_wcmd(0x34); //写数据时,关闭图形显示 for(i=0;i<(32-line*m);i++) { lcd_wcmd(0x80+i);
22
武汉理工大学《能力拓展训练》说明书
lcd_wcmd(0x80); for(j=0;j<16;j++) lcd_wdat(*bmp1++); delay1(1); } bmp1=bmp111; for(;i<32;i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x80); for(j=0;j<16;j++) lcd_wdat(*bmp1++); delay1(1); } for(i=0;i<32;i++) { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x88); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp1++); delay1(1); } lcd_wcmd(0x36); //写完数据,开图形显? while(flag==0) if(flag==6)flag=1;//图像停止 if(flag!=1)return; delay1(1000); clr_screen(); bmp11+=16*line; //每次移动8行--16*line字节 } }
/********************************************************* * 图像下移函数 */
void picture_move_Down(uchar *bmp1,uchar *bmp3,uchar line) { uchar i,j,m; uchar *bmp11=bmp1,*bmp111=bmp1; uchar *bmp333=bmp3,*bmp33=bmp3;//保存地址指针 for(m=0;m<32/line;m++) { lcd_wcmd(0x34); //写数据时,关闭图形显示 bmp1=bmp11; bmp3=bmp33; for(i=0;i 23 武汉理工大学《能力拓展训练》说明书 { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x80); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp3++); delay1(1); } for(;i<32;i++) { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x80); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp1++); delay1(1); } for(i=0;i<32;i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j<16;j++) lcd_wdat(*bmp1++); delay1(1); } lcd_wcmd(0x36); //写完数据,开图形显? while(flag==0) if(flag==6)flag=2;//图像停止 if(flag!=2)return; delay1(1000); clr_screen(); bmp33-=16*line; } for(m=0;m<32/line;m++) //第一幅的第一行在下半屏 { lcd_wcmd(0x34); //写数据时,关闭图形显示 bmp1=bmp11; bmp3=bmp33; for(i=0;i<32;i++) { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x80); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp3++); delay1(1); } 24 武汉理工大学《能力拓展训练》说明书 for(i=0;i for(m=0;m<64/line;m++) //第一幅的第一行在上半屏 { bmp3=bmp33; lcd_wcmd(0x34); //写数据时,关闭图形显示 for(i=0;i<32;i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x80); for(j=0;j<16;j++) lcd_wdat(*bmp3++); delay1(1); } for(i=0;i<32;i++) { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x88); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp3++); delay1(1); } 25