版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十八章HD61830液晶显示器驱动控制
3/18/2023118.1HD61830液晶显示器概述
1.液晶显示控制器 HD61830是图形液晶显示控制器,可直接与MCS-51系列时序的MPU接口。2.指令集HD61830具有专门的指令集,可完成文本显示或图形显示的功能设置,以及实现画面卷动、光标闪烁、位操作等功能。3.HD61830内存管理
HD61830可管理64K显示RAM,其中图形方式为64K,字符方式为4K;4.内部字符发生器CGROM HD61830内部字符发生器CGROM共有192种字符,其中5×7字体160种,5×11字体有32种,HD61830还可外接字符发生器,使字符量达到256种。3/18/202325.占空比HD61830具有较高占空比,可以静态方式显示至1/128占空比的动态方式显示。6.HD61830封装和引脚HD61830封装为60个引脚,管脚排列如图示,管脚功能如表示。3/18/202333/18/202347.多种组合功能当为低电平时,RS,R/W,E的各种组合所实现的功能如表示:3/18/202358.HD61830的电气参数HD61830的电气参数如表示。内嵌HD61830控制器的显示模块有很多,如:MGLS-8032B、MGLS240128、MGLS-8464、MGLS12864等等,它们的电气参数基本相同,指令系统是一样的。因此它们的显示控制程序编制均可参考本章介绍的方法进行。3/18/202363/18/2023718.2HD61830的指令系统
HD61830有13条指令,指令是由一个指令代码和一个功能参数组成。指令代码类似参数寄存器的地址代码,而参数才是实质的功能值。MPU向HD61830指令寄存器写入指令代码来选择参数寄存器,再通过数据寄存器向参数寄存器写入参数值,以实现功能的设置。HD61830向MPU提供一个忙(BF)标志位:BF=1表示当前HD61830处于内部运行状态,不接受MPU的访问(读状态标志位除外),BF=0表示HD61830允许MPU的访问。MPU在访问HD61830时都要判断BF是否为0。MPU可在RS=1下从数据总线D7位上读出BF标志值。3/18/2023818.2.1方式控制指令
1.方式控制,指令代码为0x00 该指令参数定义了显示方式。其参数格式为:D0:字符发生器选择,D0=0为CGROM,D0=1为EXCGROM;D1:显示方式选择,D1=0为文本方式,D1=1为图形方式;D3与D2组合实现如表功能:D4:工作方式选择,D4=0为从方式,D4=1为主方式;D5:显示状态选择,D5=0为禁止显示,D5=1为启用显示。3/18/20239需要注意的是,使用图形方式(D1=1)时,只能使D0=D2=D3=0。一般情况下,HD61830采用主方式D4=1。当有两片HD61830并联时,则其中一片为主方式,一片为从方式。3/18/2023102.字体设置,指令代码0x01该指令设置文本方式下字符的点阵大小,指令参数格式:VP:字符点阵行数,取值范围1~16;HP:字符点阵列数,图形方式表示一字节显示数据的有效位数,HP的取值范围为6,7,8。3/18/2023113.帧设置,指令代码0x03该指令的指令参数格式如下NX为显示时的帧扫描行数,其倒数即为占空比。对单屏结构的显示模块,NX即为其有效显示行数;对双屏显示结构的模块则2NX为其有效显示行数。:3/18/20231218.2.2显示域设置指令
4.显示域设置,指令代码0x02指令参数格式如下:HN为一行显示所占的字节数,其取值范围为2~128内的偶数值,由HN和HP可得显示屏有效显示点列数N=HN×HP。3/18/2023135.显示缓冲区起始地址低8位SADL设置,指令代码0x08该指令的指令参数格式如下:3/18/2023146.显示缓冲区起始地址高8位SADH设置,指令代码0x09该指令的指令参数格式如下:以上两条指令设置了显示缓冲区起始地址,它们的指令参数分别是该地址的低位和高位字节。该地址对应显示屏上左上角显示位,显示缓冲区单元(即RAM单元)与显示屏上的显示位的对应关系如表所示:3/18/2023153/18/20231618.2.3光标设置指令
7.光标位置设置,指令代码0x04文本方式下的光标为一行(8×1)点阵显示,该指令用来指明光标在字符位中第几行,指令参数格式如下:其中CP表示光标在字符体中的行位置,CP取值范围在1~VP之问。CP>VP时光标将被禁止。3/18/2023178.设置光标地址指针低8位CACL指令,指令代码0x0a该指令的指令参数格式如下:9.设置光标地址指针高8位cach指令,指令代码0x0b该指令的指令参数格式如下:3/18/202318以上两条指令设置光标地址指针,它们的指令参数即是该光标地址指针的低位和高位字节。其作用一是用来指示当前要读、写显示缓冲区单元的地址;二是用在文本方式下,指出光标或闪烁字符在显示屏上的位置。由于光标地址计数器是16位加1计数器,当第N位从1变到0时,会引起第N+1位自动加1,因此当设置低8位地址时,若最高位MSB从1变为0就会引起高8位地址的最低位LSB加1。因此设置时应先设置低8位,再设置高8位,而且即使只需修改地址低8位,其高位也要跟着重新设置一次,以确保地址指针设置的万无一失。3/18/20231918.2.4数据读写指令
10.数据写指令代码0x0c该指令将随后写入数据寄存器的数据送入光标地址指针指向的显示RAM单元。光标地址指针将随着每次数据的写入而自动加一修改。该指令功能的终止将由下一条指令的输入来完成。
11.数据读指令代码0x0d该指令代码写入后,紧跟着一次“空读”操作后,则可以连续读出光标地址指针所指向单元的内容。光标地址指针将随着每次数据的读出而自动加一修改,该指令功能的终止将由下一条指令的输入来完成。3/18/20232018.2.5“位”操作指令
12.“位清”零,指令代码0x0e 13.“位置”1,指令代码0x0f以上两条指令的功能是将光标地址指针所指向的显示RAM单元中的某一位清零或置1。指令执行一次,光标地址指针自动加一。指令参数格式为:3/18/20232118.3.1HD61830液晶显示器显示RAM结构
正常16×16汉字的显示RAM是按图18.5所示,而HD61830汉字显示RAM是按图18.6排列;同时正常16×16汉字的字模字节排列是高位在前,低为在后,如图示,而HD61830显示时字节排列是高位在后,低为在前,如图示。所以编写显示程序时要按此规律进行,按图首先显示0号字节,显示完0号字节后,字模偏移量要加16,在同一行上显示16号字节;然后显示1号字节,17号字节,以此类推。显示时每个字节都先要调convert()按图所示进行转换,然后送HD61830。3/18/2023223/18/2023238×8和8×16ASCII字符字膜、16×16点阵、24×24、12×12、48×48点阵汉字字膜在内存中都是高位在前,低位在后存放的。所以8×8和8×16ASCII字符,16×16、24×24、12×12、48×48点阵汉字在写入HD61830时都要用程序转换。原理可参看具体程序和注释。3/18/20232418.3.2软件程序
HD61830液晶显示器驱动控制程序用C语言给出,完整程序、头文件、文档均在随书文件夹中,其中经KeilC调试通过。//----------------------------------------------------------------------------------------------------//----------------------------------------------------------------------------------------------------#include<reg51.h>#include<stdio.h>#include<string.h>#include<ctype.h>#include<absacc.h>3/18/202325#include<intrins.h>#include<math.h>#include<def.h> //常用变量定义#include<chn12.h>//个种字体小字库定义#include<syb16.h>#include<asc816.h>#include<asc88.h>#include<chn16.h>#include<chn24.h>#defineDW_ADDXBYTE[0x8000] //写数据口地址#defineDR_ADDXBYTE[0x8200] //读数据口地址#defineCW_ADDXBYTE[0x8100] //写指令口地址#defineCR_ADDXBYTE[0x8300] //读状态口地址3/18/202326#defineCOMXBYTE[0x30] //指令代码寄存器#defineDATXBYTE[0x31] //数据寄存器U8ROW; //LCD地址指针高8位U8CUL; //LCD地址指针低8位//程序声明:voidW_DOT(U8i,U8j); //绘点函数voidC_DOT(U8i,U8j); //清点函数voidDrawHorizOntalLine(U8xstar,U8xend,U8ystar); //画水平线voidDrawVerticalLine(U8xstar,U8ystar,U8yend); //画垂直线voidLinexy(U8stax,U8stay,U8endx,U8endy); //画斜线3/18/202327voidClearHorizOntalLine(U8xstar,U8xend,U8ystar); //清水平线voidClearVerticalLine(U8xstar,U8ystar,U8yend); //清垂直线voidShowSinWave(void); //显示正弦曲线voiddisdelay(void); //延时voidDrawOneChn2424(U8x,U8y,U8chnCODE); //显示24×24汉字voidDrawChnString2424(U8x,U8y,U8*str,U8s); //显示24×24汉字串voidDrawOneSyb1616(U8x,U8y,U16chnCODE); //显示16×16标号voidDrawOneChn1212(U8x,U8y,U16chnCODE); //显示12×12汉字voidDrawOneChn1616(U8x,U8y,U16chnCODE); //显示16×16汉字3/18/2023283/18/202329voidDrawOneChn16160(U16x,U16y,U8chncode);voidDrawChnString1616(U8x,U8y,U8*str,U8s); //显示16×16汉字串voidDrawOneAsc816(U8x,U8y,U8charCODE); //显示8×16ASCII字符voidDrawAscString816(U8x,U8y,U8*str,U8s); //显示8×16ASCII字符串voidDrawOneAsc88(U8x,U8y,U8charCODE); //显示8×8ASCII字符voidDrawAscString88(U8x,U8y,U8*str,U8s); //显示8×8ASCII字符串voidFillColorScnArea(U8x1,U8y1,U8x2,U8y2); //画充添矩形voidDrawOneBoxs(U8x1,U8y1,U8x2,U8y2); //画矩形voidObtuseAngleBoxs(U8x1,U8y1,U8x2,U8y2,U8arc); //钝角方形voidReDrawOneChn1616(U8x,U8y,U16chnCODE); //显示汉字,反白voidPr0(void); //读LCD状态3/18/202330voidPr1(void); //写指令代码voidPr2(void); //写指令参数和数据voidPr3(void); //读显示数据voidINT(void); //初始化子程序voidSetLocat(U16x,U16y); //定位子程序voidCLEAR(void); //清屏子程序voidDrawCGRAMChar(U16x,U16y,U8charcode); //显示一个CGRAM字符voidDrawCharString(U16x,U16y,U8*str,U8s); //显示CGRAM字符串voidTDrawCharString(void); //显示一个字符串实例voidReadByte(x,y); //读某显示单元内容voidTDrawOneChn1616(void); //显示16×16点阵汉字voidconvert(void); //字膜转换3/18/202331U8stringp[]={0,1,2,3,4,5,6,7,8,9,10};U8ascstring816[]={"1"
,"2","3","a","s","d","A","B","C"};U8cctab[]={//按字节正常存放的16×16点阵字模例子,在HD61480上显示要转换。0x000,0x004,0x07F,0x0FE,0x040,0x004,0x04F,0x0E4,0x048,0x024,0x04F,0x0E4,0x040,0x004,0x05F,0x0F4,0x050,0x014,0x051,0x014,0x051,0x014,0x052,0x094,0x044,0x044,0x048,0x024,0x07F,0x0FC,0x040,0x004, //圆0x041,0x020,0x031,0x024,0x01F,0x0FE,0x001,0x020,0x080,0x008,0x06F,0x0FC,0x021,0x020,0x001,0x024,0x01F,0x0FE,0x029,0x024,0x0E9,0x024,0x02A,0x0D4,3/18/2023320x02C,0x00C,0x028,0x004,0x028,0x014,0x028,0x008, //满0x000,0x080,0x000,0x0A0,0x000,0x090,0x03F,0x0FC,0x020,0x080,0x020,0x080,0x020,0x084,0x03E,0x044,0x022,0x048,0x022,0x048,0x022,0x030,0x02A,0x020,0x024,0x062,0x040,0x092,0x081,0x00A,0x000,0x006, //成0x000,0x080,0x000,0x080,0x008,0x080,0x0FC,0x080,0x010,0x084,0x017,0x0FE,0x010,0x084,0x010,0x084,0x010,0x084,0x010,0x084,0x01D,0x004,0x0F1,0x004,3/18/2023330x041,0x004,0x002,0x044,0x004,0x028,0x008,0x010, //功};U8ctab[]={//*注10x53,0x75,0x70,0x70,0x6F,0x72,0x74,0x20,0x54,0x45,0x4C,0x20,0x3A,0x20,0x30,0x31,0x30,0x2D,0x36,0x32,0x37,0x38,0x30,0x33,0x37,0x39};//SupportTEL:010-627803793/18/202334//读LCD状态//--------------------------------------------------------------------------------------------------------------voidPr0(void){U8lcd_stat;lcd_stat=0x80;while(lcd_stat&0x80)lcd_stat=CR_ADD;}3/18/202335//--------------------------------------------------------------------------------------------------------------//写指令代码//--------------------------------------------------------------------------------------------------------------voidPr1(void){Pr0();CW_ADD=COM;}//--------------------------------------------------------------------------------------------------------------//写指令参数和数据//--------------------------------------------------------------------------------------------------------------voidPr2(void){Pr0();DW_ADD=DAT;}3/18/202336//读显示数据//------------------------------------------------------------------------------------------------------------voidPr3(void){Pr0();DAT=DR_ADD;}//------------------------------------------------------------------------------------------------------------//初始化子程序//------------------------------------------------------------------------------------------------------------voidINT(void){COM=0x00;Pr1();//DAT=0x3c; //开显示,主方式,文本方式DAT=0x32; //开显示,主方式,图形方式Pr2(); //写参数3/18/202337COM=0x01; //字符体设置Pr1();DAT=0x77; //字符体为8x8点阵Pr2();COM=0x02; //显示域宽度设置Pr1();DAT=0x27; //一行占显示RAM40个字节Pr2();COM=0x03; //帧设置Pr1();DAT=0x3f; //64行扫描行Pr2();COM=0x04; //光标形状设置3/18/202338Pr1();DAT=0x07; //光标为底线形式Pr2();COM=0x08; //显示起始地址设置Pr1();DAT=0x00; //低字节为00HPr2();COM=0x09; //显示起始地址设置Pr1();DAT=0x00; //高字节为00HPr2();}3/18/202339//清屏子程序//------------------------------------------------------------------------------------------------------------voidCLEAR(void){U16i,j;COM=0x0a;Pr1();DAT=0x00;Pr2();COM=0x0b;Pr1();DAT=0x00;Pr2();COM=0x0c;Pr1();DAT=0x00;for(j=0;j<10;j++)for(i=0;i<=256;i++){Pr2();}}3/18/202340//定位子程序//------------------------------------------------------------------------------------------------------------voidSetLocat(U16x,U16y)//*注2{U16r;r=y*40+x;ROW=r/256;CUL=r%256;COM=0x0a;Pr1();DAT=CUL;Pr2();COM=0x0b;Pr1();DAT=ROW;Pr2();}3/18/202341//显示一个CGRAM字符//---------------------------------------------------------------------------------------------------------voidDrawCGRAMChar(U16x,U16y,U8charcode)//*注3{SetLocat(x,y);COM=0x0C;//写数据指令代码Pr1();DAT=charcode;//写数据Pr2();}3/18/202342//显示一个CGRAM字符串//--------------------------------------------------------------------------------------------------------voidDrawCharString(U16x,U16y,U8*str,U8s) //s是字符串长度{U8i;staticU16x0,y0;x0=x;y0=y;for(i=0;i<s;i++){DrawCGRAMChar(x0,y0,(U8)*(str+i));x0+=8; -//水平串,如垂直串Y0+8}}3/18/202343//显示一个CGRAM字符串实例//-----------------------------------------------------------------------------------------------------------voidTDrawCharString(void)//*注4{DrawCharString(0,0,ctab,26);}//----------------------------------------------------------------------------------------------------------//读某显示单元内容//---------------------------------------------------------------------------------------------------------voidReadByte(x,y)//*注5{SetLocat(x,y);COM=0x0d;Pr1();Pr3();//“空读”Pr3();//读得数据?DAT}3/18/202344//写16×16点阵汉字一个,字模按字节正常存放,转换后在HD61480上显示//------------------------------------------------------------------------------------------------------voidDrawOneChn16160(U16x,U16y,U8chncode)//*注6{U8i;U8*p;p=cctab+chncode*32;for(i=0;i<16;i++){SetLocat(x,y);COM=0x0c;Pr1();DAT=*p;convert();//转换Pr2(); //显示一行的左半部字节DAT=*(p+16);convert();Pr2();//显示一行的右半部字节p+=1;y+=1;}}3/18/202345//字膜转换//--------------------------------------------------------------------------------------------------------voidconvert(void)//*注7{U8v1,v2,i;v1=0;v2=0;for(i=7;i>=0;i=i-1){v1=(DAT<<i)&0x80;v2=v2|(v1>>(7-i));}DAT=v2;}3/18/202346//显示16×16点阵汉字实例//-------------------------------------------------------------------------------------------------------voidTDrawOneChn1616(void){DrawOneChn16160(0,0,0);DrawOneChn16160(16,0,1);DrawOneChn16160(32,0,2);DrawOneChn16160(64,0,3);}3/18/202347//绘点函数//------------------------------------------------------------------------------------------------------voidW_DOT(U8i,U8j)//*注8{U16n;U8m;n=i/8;m=i%8;SetLocat(n,j);//移地址指针COM=0x0f;Pr1();//m=0x07-m;DAT=m&0x07;Pr2();}3/18/202348//清点函数//----------------------------------------------------------------------------------------------------voidC_DOT(U8i,U8j){U8n,m;n=i/8;m=i%8;SetLocat(n,j);//移地址指针COM=0x0e;Pr1();//m=0x07-m;DAT=m&0x07;Pr2();}3/18/202349//画水平线//----------------------------------------------------------------------------------------------------voidDrawHorizOntalLine(U8xstar,U8xend,U8ystar){U8i;for(i=xstar;i<=xend;i++){W_DOT(i,ystar);}}//----------------------------------------------------------------------------------------------------voidDrawVerticalLine(U8xstar,U8ystar,U8yend){U8i;for(i=ystar;i<=yend;i++){W_DOT(xstar,i);}}3/18/202350//清水平线//---------------------------------------------------------------------------------------------------voidClearHorizOntalLine(U8xstar,U8xend,U8ystar){U8i;for(i=xstar;i<=xend;i++){C_DOT(i,ystar);}}//----------------------------------------------------------------------------------------------------//清垂直线线//----------------------------------------------------------------------------------------------------voidClearVerticalLine(U8xstar,U8ystar,U8yend){U8i;for(i=ystar;i<=yend;i++){C_DOT(xstar,i);}}3/18/202351//画斜线//-------------------------------------------------------------------------------------------------------voidLinexy(U8stax,U8stay,U8endx,U8endy)
{U8t;U8col,row;//行,列值U8xerr,yerr,deltax,deltay,distance;U8incx,incy;xerr=0;yerr=0;col=stax;row=stay;W_DOT(col,row);3/18/202352deltax=endx-col;deltay=endy-row;if(deltax>0)incx=1;elseif(deltax==0)incx=0;elseincx=-1;if(deltay>0)incy=1;elseif(deltay==0)incy=0;elseincy=-1;deltax=abs(deltax);deltay=abs(deltay);if(deltax>deltay)distance=deltax;elsedistance=deltay;for(t=0;t<=distance+1;t++){W_DOT(col,row);3/18/202353xerr+=deltax;yerr+=deltay;if(xerr>distance){xerr-=distance;col+=incx;}if(yerr>distance){yerr-=distance;row+=incy;}}}3/18/202354//显示一个正弦曲线//------------------------------------------------------------------------------------------------------------voidShowSinWave(void){unsignedintx,j0,k0;doubley,a,b;j0=0;k0=0;DrawHorizOntalLine(1,159,32); //画坐标x范围(0160)DrawVerticalLine(0,0,63); //y范围(063)for(x=0;x<=160;x++){a=((float)x/160)*2*3.14;y=sin(a);b=(1-y)*32;W_DOT((U16)x,(U16)b);disdelay();}}3/18/202355//显示一个24×24汉字//------------------------------------------------------------------------------------------------------------voidDrawOneChn2424(U8x,U8y,U8chnCODE){U8i,j,k,tstch;U8*p;p=chn2424+72*(chnCODE);for(i=0;i<24;i++){for(j=0;j<=2;j++){ tstch=0x80; for(k=0;k<8;k++){if(*(p+3*i+j)&tstch)W_DOT(x+i,y+j*8+k);tstch=tstch>>1;}}}}3/18/202356//显示24×24汉字串//--------------------------------------------------------------------------------------------------------voidDrawChnString2424(U8x,U8y,U8*str,U8s){U8i;staticU16x0,y0;x0=x;y0=y;for(i=0;i<s;i++){DrawOneChn2424(x0,y0,(U8)*(str+i));x0+=24; //水平串,如垂直串Y0+24}}3/18/202357//显示16×16标号(报警和音响)//------------------------------------------------------------------------------------------------------voidDrawOneSyb1616(U8x,U8y,U16chnCODE){inti,k,tstch;unsignedint*p;p=syb1616+16*chnCODE;for(i=0;i<16;i++){ tstch=0x80; for(k=0;k<8;k++) { if(*p>>8&tstch) W_DOT(x+k,y+i); if((*p&0x00ff)&tstch) W_DOT(x+k+8,y+i); tstch=tstch>>1; } p+=1; }}3/18/202358//延时//-------------------------------------------------------------------------------------------------------voiddisdelay(void){unsignedlongi,j;i=0x01;while(i!=0){j=0xffff;while(j!=0)j-=1;i-=1;}}3/18/202359//显示12×12汉字一个//------------------------------------------------------------------------------------------------------voidDrawOneChn1212(U8x,U8y,U16chnCODE){U16i,j,k,tstch;U8*p;p=chn1212+24*(chnCODE);for(i=0;i<12;i++){for(j=0;j<2;j++){ tstch=0x80; for(k=0;k<8;k++){if(*(p+2*i+j)&tstch)W_DOT(x+8*j+k,y+i);tstch=tstch>>1;}}}x+=12;}3/18/202360//显示16×16汉字一个//------------------------------------------------------------------------------------------------------voidDrawOneChn1616(U8x,U8y,U16chnCODE){U8i,k,tstch;U16*p;p=chn1616+16*chnCODE;for(i=0;i<16;i++){tstch=0x80;for(k=0;k<8;k++){if(*p>>8&tstch)W_DOT(x+k,y+i);if((*p&0x00ff)&tstch)W_DOT(x+k+8,y+i);tstch=tstch>>1;}p+=1;}}3/18/202361//反白显示16×16汉字一个//------------------------------------------------------------------------------------------------------voidReDrawOneChn1616(U8x,U8y,U16chnCODE){U16i,k,tstch;U16*p;p=chn1616+16*chnCODE;for(i=0;i<16;i++){tstch=0x80;for(k=0;k<8;k++){if(((*p>>8)^0x0ff)&tstch)W_DOT(x+k,y+i);if(((*p&0x00ff)^0x00ff)&tstch)W_DOT(x+k+8,y+i);tstch=tstch>>1;}p+=1;}}3/18/202362//显示16×16汉字串//------------------------------------------------------------------------------------------------------voidDrawChnString1616(U8x,U8y,U8*str,U8s){U8i;staticU8x0,y0;x0=x;y0=y;for(i=0;i<s;i++){DrawOneChn1616(x0,y0,(U8)*(str+i));x0+=16;//水平串,如垂直串Y0+16}}3/18/202363//显示8×16字母一个(ASCIIZ字符)//----------------------------------------------------------------------------------------------------voidDrawOneAsc816(U8x,U8y,U8charCODE){U8*p;U8i,k;intmask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};p=asc816+charCODE*16; for(i=0;i<16;i++) { for(k=0;k<8;k++) {if(mask[k%8]&*p) W_DOT(x+k,y+i);} p++;}}3/18/202364//显示8×16ASCII字符串//------------------------------------------------------------------------------------------------------------voidDrawAscString816(U8x,U8y,U8*str,U8s){U8i;staticU8x0,y0;x0=x;y0=y;for(i=0;i<s;i++){DrawOneAsc816(x0,y0,(U8)*(str+i));x0+=8;//水平串,如垂直串Y0+16}}3/18/202365//显示8×8字母一个(ASCIIZ字符)//--------------------------------------------------------------------------------------------------------voidDrawOneAsc88(U8x,U8y,U8charCODE){U8*p;U8i,k;intmask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};p=asc88+charCODE*8; for(i=0;i<8;i++) { for(k=0;k<8;k++) {if(mask[k%8]&*p) W_DOT(x+k,y+i);} p++; }}3/18/202366//显示8×8字符串//-----------------------------------------------------------------------------------------------------voidDrawAscString88(U8x,U8y,U8*str,U8s){U8i;staticU8x0,y0;x0=x;y0=y; for(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版家电产品消费者满意度调查服务合同2篇
- 二零二五版房地产融资居间代理合同范本3篇
- 二零二五年电影联合制作与市场推广合同2篇
- 二零二五版茶叶茶具专卖店加盟管理合同3篇
- 二零二五版汽车购置贷款保证担保合同3篇
- 二零二五年度化肥原料进口与分销合同3篇
- 二零二五年度航空航天股权买卖合同范本3篇
- 二零二五版户外广告牌定期检查与维修合同3篇
- 二零二五年度驾校车辆购置税承包合同3篇
- 国际贸易第六章出口合同订立2025年绿色贸易标准与认证3篇
- 水泥厂钢结构安装工程施工方案
- 2023光明小升初(语文)试卷
- 三年级上册科学说课课件-1.5 水能溶解多少物质|教科版
- GB/T 7588.2-2020电梯制造与安装安全规范第2部分:电梯部件的设计原则、计算和检验
- GB/T 14600-2009电子工业用气体氧化亚氮
- 小学道德与法治学科高级(一级)教师职称考试试题(有答案)
- 河北省承德市各县区乡镇行政村村庄村名居民村民委员会明细
- 实用性阅读与交流任务群设计思路与教学建议
- 应急柜检查表
- 通风设施标准
- 酒店市场营销教案
评论
0/150
提交评论