《stm32 点阵移动程序.docx》由会员分享,可在线阅读,更多相关《stm32 点阵移动程序.docx(10页珍藏版)》请在优知文库上搜索。
1、if(S:1“开显示else(1.cdEn_H();1JIvoidGct_HzMai(unsignedchar*cde);ImpDala=*tpBuf;tmpData&=OKfY(X-tmprow);ImPDiKaI=()xfimprow:ImPData&=(*fb11l6x8mpu*16+8=tji)improw:*pBuf=tmpData;elseif(row=8)&(nowimprow;*Buf=CmPDala;elseif(row-8)&(row=0)Iif(j=)ItmpData=*pBuf;ImPDala&=0x00;ImpDala=(-font16x8Imptl*16+8*ej+
2、i)-improw:tmpData=Oxff(8tmprow);fpBuf=tnDa;pBuf-=1.ED.SET.Widh:tmpData=pBut,;tmpData&=0x00;ImpDataI=(-fontl6x8mpu6+8*ji)(8+ImlXDW)I(Oxff-(mprw):tmpData&=(*fontl6x8tmptt*16+i)-tmprow)(0xff(8-16)&(row=-8)Iifj=)ItmpData=pBuf;UnPDataI=Oxfl:pBuf=ImPDala:PBUf-=1.ED_SETWidth;UnPData=*pBf;ImPDala&=0x00;tmpD
3、ata=(-fontl6x8(tmptt*16+8*j+ij)(8+tmprow);*Buf=ImPData;)J)尸*程序名称:voidShowHZ(intl6jrow.intl6jcol.uint8-t4hzk.uint8jback) 输入参数:intl6_trow显示行坐标 *inl6-tcol显示列坐标 *uint8.t*hzk指向指定汉字内码的指针UintSjback指示写入字模的显示援存 输出参数:无 *返回值;无 *描述:在指定位置显示一个16*16汉字.注:运用GBK16字库。 冷山*/voidShow_HZw;Uim8,tmpData:Uinl8,i,j;产纵向取模字库/Gc
4、t.HzMat(hzk,dzk,l6);/取字模tmprow=row%8:i1(!back)(pBuf=ButD;Jelse(pBuf=BufI:J(n=PBUf;for(j=()Jv2J+)for(i=0;i16;i+)(,推断溢出条件,在这里行可以到-15去iR(row+j)=0)&(COIi)=0)&(rowtmprow;高位不变.低位全为(mpDal=8&(row-8)&(row(8Improw);*)Buf=UnPDala:pBuf-=1.ED_SET.Width:tmpData=pBuf;ImPDala&=0x00;ImpDataI=(dzk2*i+(j%2)(8+(mprw)(O
5、xff-t11prow):tmpDta&=(izk2*i(j%2)-1-tmprow)(0xfl,(8tmprow);*pBuf=tmpData;elseif(row-16)&(IOW=8)Iif(j=)QmPDa【a三pBuf;ImpData=Oxff:4pBuf=tmpData:pBuf=1.ED-SETWidih;ImpData=pBuf;tmpData&=0x00:ImPDaIa=(-dzk(2*i(j%2)1)rget_back):“清空要写入的缓存数据未完毕/bHz=l表示是中文中文字符换行符号.忽视WhilC(str!=0)if(!bHz)(ifl!*s(r0x8O)bHz=l;
6、else(if(*str=13)Istr+;)else“有效用部写入ShoW_ChaNyo,x,*Syfclrge1.baCk):str+;Ix+=8;字符,为全字的一半J)else中文(bHz=O:有汉字库Show_HZ(yO,x0.slr.forgel_ba:关显示1else(1.edEn_H();J1.ED-SETQnOff=ON:I/左移显示/voidDisplajzMvoe1.efKvoid*p_arg)(uint8-tst11intl6.(i:uinl!6-tIenght:(voii)p.arg;vhile)str写自己要显示的东西!:sr=p_arg;Iengln=OS_S(r1.en(sir)*8:for(i=-1.ED_SET.Width;iIcnght;i+=2)左移.每次移动2位(Show_Str(0i.