左图是原图,右图是
仿真出来的图
用LCD12864显示图片的时候,水平方向只有屏幕左边16个点会显示,垂直方向能够全部显示,大家能够帮忙回答一下吗?谢谢
- void v_Lcd12864DrawPicture_f( unsigned char code *pPicture )
- {
- unsigned char i, j, k ;
- v_Lcd12864SendCmd_f( 0x34 );
- for( i = 0 ; i < 2 ; i++ )//·ÖÉÏÏÂÁ½ÆÁд
- {
- for( j = 0 ; j < 32 ; j++ )
- {
- v_Lcd12864SendCmd_f( 0x80 + j ) ;//дY×ø±ê
- if( i == 0 ) //дX×ø±ê
- {
- v_Lcd12864SendCmd_f( 0x80 ) ;
- }
- else
- {
- v_Lcd12864SendCmd_f( 0x88 ) ;
- }
- for( k = 0 ; k < 16 ; k++ ) //дһÕûÐÐÊý¾Ý
- {
- v_Lcd12864SendData_f( *pPicture++ ) ;
- }
- }
- }
- v_Lcd12864SendCmd_f( 0x36 ) ;
- v_Lcd12864SendCmd_f( 0x30 ) ;
- }
复制代码
- void v_Lcd12864DrawPicture_f( unsigned char code *pPicture )
- {
- unsigned char i, j, k ,test1,test2;
- v_Lcd12864SendCmd_f( 0x34 );//开扩展指令,同时关绘图显示
- for( j = 0 ; j < 32 ; j++ )
- {
- for( i = 0 ; i < 8 ; i++ )//水平坐标地址
- {
- v_Lcd12864SendCmd_f( 0x80 + j ) ;//写Y坐标
- v_Lcd12864SendCmd_f( 0x80+i ) ; //写X坐标
- for (k = 0 ; k < 2 ; k++) //写16位数据
- {
- v_Lcd12864SendData_f( *pPicture++ ) ;
- // v_Lcd12864SendData_f( 0XFF ) ;
- // v_DelayMs_f(5);
- }
- }
- }
- for( j = 0 ; j < 32 ; j++ )
- {
- for( i = 8 ; i < 16 ; i++ )//水平坐标地址
- {
- v_Lcd12864SendCmd_f( 0x80 + j ) ;//写Y坐标
- v_Lcd12864SendCmd_f( 0x80+i ) ; //写X坐标
- for (k = 0 ; k < 2 ; k++) //写16位数据
- {
- v_Lcd12864SendData_f( *pPicture++ ) ;
- // v_Lcd12864SendData_f( 0XFF ) ;
- // v_DelayMs_f(5);
- }
- }
- }
- v_Lcd12864SendCmd_f( 0x36 ) ;//开绘图显示
- v_Lcd12864SendCmd_f( 0x30 ) ;//回到基本指令
- }
复制代码一周热门 更多>