| #include <reg52.h> #include <absacc.h>
 #include <intrins.h>
 #include <math.h>
 #define uint unsigned int
 #define uchar unsigned char
 #define LCD_BUS    P2
 sbit RS=P1^1;
 sbit RW=P1^2;
 sbit E=P1^3;
 uchar code AC_TABLE[]={
 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行漢字位置
 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行漢字位置
 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行漢字位置
 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,      //第四行漢字位置
 };
 /*
 //基本指令集預(yù)定義
 #define LCD_DATA                1          //數(shù)據(jù)位
 #define LCD_COMMAND             0    //命令位
 #define LCD_CLEAR_SCREEN        0x01    //清屏
 #define LCD_ADDRESS_RESET       0x02  //地址歸零
 #define LCD_BASIC_FUNCTION    0x30  //基本指令集
 #define LCD_EXTEND_FUNCTION     0x34  //擴(kuò)充指令集
 //擴(kuò)展指令集預(yù)定義
 #define LCD_AWAIT_MODE   0x01   //待命模式
 #define LCD_ROLLADDRESS_ON  0x03  //允許輸入垂直卷動(dòng)地址
 #define LCD_IRAMADDRESS_ON  0x02  //允許輸入IRAM地址
 #define LCD_SLEEP_MODE   0x08   //進(jìn)入睡眠模式
 #define LCD_NO_SLEEP_MODE  0x0c   //脫離睡眠模式
 #define LCD_GRAPH_ON   0x36  //打開繪圖模式
 #define LCD_GRAPH_OFF   0x34  //關(guān)閉繪圖模式
 */
 uchar code liu[32]={
 /*------------------------------------------------------------------------------
 ;  源文件 / 文字 : 劉
 ;  寬×高(像素): 16×16
 ------------------------------------------------------------------------------*/
 //0x30,0x10,0x06,//寬的像素?cái)?shù),高的像素?cái)?shù),寬的字節(jié)數(shù),參數(shù)設(shè)置可選
 0x00,  0x08,       0x7F,        0xFC,        0x01,       0x00,       0x11,        0x10,        0x11,
 0x10,        0x09,       0x20,        0x09,        0x20,        0x01,        0x04,        0xFF,
 0xFE,        0x01,         0x00,          0x01,       0x00,         0x01,
 0x00,      0x01,         0x00,       0x01,        0x00,          0x01,       0x00,          0x01,         0x00
 };
 uchar code str2[]="歡迎光臨北華大學(xué)電氣信息工程學(xué)院" ;
 uchar code str1[]=" I love china!" ;
 uchar code bmp1[];
 void wait_free()
 {
 unsigned char retb;
 do{
 
 LCD_BUS=0xff;
 RS=0;
 RW=1;
 E=1;
 retb=LCD_BUS;
 E=0;
 }while((retb&0x80)!=0);
 
 }
 void LCD12864_Write(bit cd ,unsigned char cmd_dat  ) //0 cmd 1 data
 //void write_comm(bit cd ,unsigned char cmd_dat  )
 {
 wait_free();
 if(cd)RS=1;
 else RS=0;
 RW=0;
 E=1;
 LCD_BUS=cmd_dat;
 
 E=0;
 }
 void PrintBMP(uchar *Prints)
 {
 uint x=0;
 uchar i,j;
 LCD12864_Write(0,0x34);      //8Bit擴(kuò)充指令集,即使是36H也要寫兩次
 LCD12864_Write(0,0x36);      //繪圖ON,基本指令集里面36H不能開繪圖
 for(i=0;i<32;i++)            //12864實(shí)際為256x32
 {
 LCD12864_Write(0,0x80|i);      //行位置
 LCD12864_Write(0,0x80);      //列位置
 for(j=0;j<32;j++)      //256/8=32 byte
 {            //列位置每行自動(dòng)增加
 LCD12864_Write(1,Prints[x]);
 x++;
 }
 }
 }
 void PrintStr(uchar row,uchar col,uchar *Prints)
 {
 LCD12864_Write(0,0x30);      //8BitMCU,基本指令集合
 LCD12864_Write(0,AC_TABLE[8*row+col]);      //起始位置
 while(*Prints != '\0')      //判斷字符串是否顯示完畢
 {
 if(col==8)            //判斷換行
 {            //若不判斷,則自動(dòng)從第一行到第三行
 col=0;
 row++;
 }
 if(row==4) row=0;      //一屏顯示完,回到屏左上角
 LCD12864_Write(0,AC_TABLE[8*row+col]);
 LCD12864_Write(1,*Prints);      //一個(gè)漢字要寫兩次
 Prints++;
 LCD12864_Write(1,*Prints);
 Prints++;
 col++;
 }
 }
 /******************************************************************************************
 * 函數(shù)名稱    :LcmClearTXT
 * 功能描述    :文本區(qū)清RAM函數(shù)
 ******************************************************************************************/
 void LcmClearTXT( void )
 {
 uchar i;
 LCD12864_Write(0,0x30);      //8BitMCU,基本指令集合
 LCD12864_Write(0,0x80);      //AC歸起始位
 for(i=0;i<64;i++)
 LCD12864_Write(1,0x20);
 }
 
 void LcmClearBMP( void )
 {
 uchar i,j;
 LCD12864_Write(0,0x34);      //8Bit擴(kuò)充指令集,即使是36H也要寫兩次,關(guān)閉繪圖
 LCD12864_Write(0,0x36);    //繪圖ON,基本指令集里面36H不能開繪圖
 for(i=0;i<32;i++)            //12864實(shí)際為256x32
 {
 LCD12864_Write(0,0x80|i);      //行位置
 LCD12864_Write(0,0x80);      //列位置
 for(j=0;j<32;j++)            //256/8=32 byte
 LCD12864_Write(1,0);
 }
 }
 void delay(uint z)
 {
 uint t1,y;
 for(t1=z;t1>0;t1--)
 for(y=110;y>0;y--);
 }
 unsigned char LCD12864_Read(void)
 {
 unsigned char uchRevData;
 wait_free();
 RS = 1;
 RW = 1;
 E = 1;
 // delay(1);
 uchRevData = LCD_BUS ;
 // delay(1);
 E=0;
 return uchRevData;
 }
 /**********************************************************
 // 名稱:GUI_Point(unsigned char y,unsigned char x,unsigned colour)
 // 功能:在指定位置上畫點(diǎn)。
 // 入口參數(shù):x  指定點(diǎn)所在行的位置
 //           y  指定點(diǎn)所在列的位置
 //          color      顯示顏色(對(duì)于黑白色LCD12864,為0時(shí)滅,為1時(shí)顯示)
 // 出口參數(shù):無
 **********************************************************/
 void GUI_Point(unsigned char y,unsigned char x,unsigned colour)
 {
 unsigned char GDRAM_hbit,GDRAM_lbit;
 unsigned char x_Dyte,x_byte;                 //定義列地址的字節(jié)位,及在字節(jié)中的哪1位
 unsigned char y_Dyte,y_byte;
 x--;y--;          //定義為上下兩個(gè)屏(取值為0,1),行地址(取值為0~31)
 /***X,Y坐標(biāo)互換,即普通的X,Y坐標(biāo)***/
 x_Dyte=y/16;                                         //計(jì)算在16個(gè)字節(jié)中的哪一個(gè)
 x_byte=y&0x0f;                                     //計(jì)算在該字節(jié)中的哪一位
 y_Dyte=x/32;                                         //0為上半屏,1為下半屏
 y_byte=x&0x1f;
 
 //計(jì)算在0~31當(dāng)中的哪一行
 LCD12864_Write(0,0x34);
 LCD12864_Write(0,0x36);
 LCD12864_Write(0,0x80+y_byte);                     //設(shè)定行地址(y坐標(biāo))
 LCD12864_Write(0,0x80+x_Dyte+8*y_Dyte);         //設(shè)定列地址(x坐標(biāo)),并通過8*y_Dyte選定上下屏
 
 LCD12864_Read();
 GDRAM_hbit=LCD12864_Read();                         //讀取當(dāng)前顯示高8位數(shù)據(jù)
 GDRAM_lbit=LCD12864_Read();                         //讀取當(dāng)前顯示低8位數(shù)據(jù)
 delay(1);
 
 if(colour==1)
 {
 LCD12864_Write(0,0x80+y_byte);                     //設(shè)定行地址(y坐標(biāo))
 LCD12864_Write(0,0x80+x_Dyte+8*y_Dyte);         //設(shè)定列地址(x坐標(biāo)),并通過8*y_Dyte選定上下屏
 delay(1);
 if(x_byte<8)                                             //判斷其在高8位,還是在低8位
 {
 LCD12864_Write(1,GDRAM_hbit|(0X01<<(7-x_byte)));     //顯示GDRAM區(qū)高8位數(shù)據(jù)
 LCD12864_Write(1,GDRAM_lbit);                             //顯示GDRAM區(qū)低8位數(shù)據(jù)
 }
 else
 {
 LCD12864_Write(1,GDRAM_hbit);
 LCD12864_Write(1,GDRAM_lbit|(0x01<<(15-x_byte)));
 }
 }
 else
 {
 LCD12864_Write(0,0x80+y_byte);                     //設(shè)定行地址(y坐標(biāo))
 LCD12864_Write(0,0x80+x_Dyte+8*y_Dyte);         //設(shè)定列地址(x坐標(biāo)),并通過8*y_Dyte選定上下屏
 delay(1);
 if(x_byte<8)                                             //判斷其在高8位,還是在低8位
 {
 LCD12864_Write(1,GDRAM_hbit & ~(0X01<<(7-x_byte)));     //顯示GDRAM區(qū)高8位數(shù)據(jù)
 LCD12864_Write(1,GDRAM_lbit);                             //顯示GDRAM區(qū)低8位數(shù)據(jù)
 }
 else
 {
 LCD12864_Write(1,GDRAM_hbit);
 LCD12864_Write(1,GDRAM_lbit & ~(0x01<<(15-x_byte)));
 }
 }
 
 }
 
 /***********************************************************
 * 名稱:GUI_Line(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char colour)
 * 功能:在指定位置上畫線。
 * 入口參數(shù):x0  指定線起點(diǎn)所在行的位置
 *           y0    指定線起點(diǎn)所在列的位置
 *           x1  指定線終點(diǎn)所在行的位置
 *           y1    指定線終點(diǎn)所在列的位置
 *          color      顯示顏色(對(duì)于黑白色LCM,為0時(shí)滅,為1時(shí)顯示)
 * 出口參數(shù):無
 /**********************************************************/
 void GUI_Line(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char colour)
 {
 int temp;
 int dx,dy;               //定義起點(diǎn)到終點(diǎn)的橫、縱坐標(biāo)增加值
 int s1,s2,status,i;
 int Dx,Dy,sub;
 dx = x1 - x0;
 if(dx >= 0)                 //X的方向是增加的
 s1 = 1;
 else                     //X的方向是降低的
 s1 = -1;
 dy = y1 - y0;                 //判斷Y的方向是增加還是降到的
 if(dy >= 0)
 s2 = 1;
 else
 s2 =- 1;
 
 Dx = abs(x1-x0);             //計(jì)算橫、縱標(biāo)志增加值的絕對(duì)值
 Dy = abs(y1-y0);
 
 if(Dy > Dx)
 {                     //以45度角為分界線,靠進(jìn)Y軸是status=1,靠近X軸是status=0
 temp = Dx;
 Dx = Dy;
 Dy = temp;
 status = 1;
 }
 else
 status = 0;
 
 /*********Bresenham算法畫任意兩點(diǎn)間的直線********/
 sub = Dy + Dy - Dx;                 //第1次判斷下個(gè)點(diǎn)的位置
 for(i = 0;i < Dx;i ++)
 {
 GUI_Point(x0,y0,colour);           //畫點(diǎn)
 if(sub >= 0)
 {
 if(status == 1)               //在靠近Y軸區(qū),x值加1
 x0 += s1;
 else                     //在靠近X軸區(qū),y值加1
 y0 += s2;
 sub -= (Dx + Dx);                 //判斷下下個(gè)點(diǎn)的位置
 }
 if(status == 1)
 y0 += s2;
 else
 x0 += s1;
 sub += Dy + Dy;
 
 }
 }
 /****************************************************************************
 * 名稱:GUI_Full(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char colour)
 * 功能:用繪圖的方法填充一個(gè)矩形
 * 入口參數(shù):x0  起始點(diǎn)橫坐標(biāo)
 *           y0    起始點(diǎn)縱坐標(biāo)
 *           x1  終止點(diǎn)橫坐標(biāo)
 *           y1      終止點(diǎn)縱坐標(biāo)
 *          color      顯示顏色(對(duì)于黑白色LCM,為0時(shí)滅,為1時(shí)顯示)
 * 出口參數(shù):無
 ****************************************************************************/
 void GUI_Full(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char colour)
 {
 unsigned char i,j;
 for(j = y0;j <= y1;j ++)
 for(i = x0;i <= x1;i ++)
 GUI_Point(i,j,colour);
 }
 /****************************************************************************
 * 名稱:plotC(int x,int y,int xc,int yc,unsigned char colour)
 * 功能:八分點(diǎn)畫圓函數(shù)
 * 入口參數(shù):x  指定線起點(diǎn)所在行的位置
 *           y    指定線起點(diǎn)所在列的位置
 *          color      顯示顏色(對(duì)于黑白色LCM,為0時(shí)滅,為1時(shí)顯示)
 * 出口參數(shù):無
 ****************************************************************************/
 void plotC(int x,int y,int xc,int yc,unsigned char colour)
 {
 GUI_Point(xc+x,yc+y,colour);
 GUI_Point(xc+x,yc-y,colour);
 GUI_Point(xc-x,yc+y,colour);
 GUI_Point(xc-x,yc-y,colour);
 GUI_Point(xc+y,yc+x,colour);
 GUI_Point(xc+y,yc-x,colour);
 GUI_Point(xc-y,yc+x,colour);
 GUI_Point(xc-y,yc-x,colour);
 }
 /****************************************************************************
 * 名稱:GUI_Circle(int xc,int yc,int r,unsigned char colour)
 * 功能:畫圓
 * 入口參數(shù):xc  圓心的行坐標(biāo)
 *           yc    圓心的列坐標(biāo)
 *           r  半徑
 *          color      顯示顏色(對(duì)于黑白色LCM,為0時(shí)滅,為1時(shí)顯示)
 * 出口參數(shù):無
 ****************************************************************************/
 void GUI_Circle(int xc,int yc,int r,unsigned char colour)
 {
 int x,y,d;
 y = r;
 d = 3 - (r + r);
 x = 0;
 while(x <= y)
 {
 plotC(x,y,xc,yc,colour);
 if(d < 0)
 d += (x + x + x + x) + 6;
 else
 {
 d+=((x - y) + (x - y) + (x - y) + (x - y)) + 10;
 y = y - 1;
 }
 x = x + 1;
 }
 }
 //******************************************************************************
 //*函數(shù)名稱:void LCD_Point(unsigned char x,unsigned char y,unsigned char color)*
 //*函數(shù)功能:使用繪圖的方法,在(x,y)處畫一個(gè)16*16點(diǎn)陣的圖案,也可以是字符     *
 //*形式參數(shù):unsigned char x,unsigned char y,unsigned char color                *
 //*   x取值范圍:0~127                *
 //*   y取值范圍:0~63 (針對(duì)CM12864-12型液晶)             *
 //*形參說明:坐標(biāo)水平位置,坐標(biāo)垂直位置                     *
 //*液晶屏坐標(biāo)說明:                  *
 //*      ________________128個(gè)像素______________________              *
 //*      |(0,0)                                    (7,0)|             *
 //*      |                                              |             *
 //*   64 |                                              |             *
 //*   個(gè) |(0,31)                                  (7,31)|             *
 //*   像 |(8,0)                                   (15,0)|             *
 //*   素 |                                              |             *
 //*      |                                              |             *
 //*      |(8,31)                                 (15,31)|             *
 //*      |______________________________________________|             *
 //*                                                                   *
 //*返回參數(shù):無                                                              *
 //*使用說明:此函數(shù)適用于CM12864-12型液晶   *
 //******************************************************************************
 void LCD_Draw_16_16(unsigned char x,unsigned char y,unsigned char color)
 {
 unsigned char i,AddrX,AddrY; //寄存器地址
 unsigned char BitTemp;  //該點(diǎn)在16bit的位置
 unsigned char DataH,DataL;
 AddrX = x>>4;    // x/16
 AddrY = y&0x3F;    // y%64
 if(y > 31)
 {
 AddrX += 8;
 AddrY -= 32;
 }
 BitTemp = x&0x0F;   // x%16
 
 LCD12864_Write(0,0x34);  //先關(guān)閉圖形顯示功能
 //LCD_Write(LCD_COMMAND,LCD_EXTEND_FUNCTION);
 
 for(i=0;i<4;i++)
 {
 LCD12864_Write(0,0x30); //LCD_BASIC_FUNCTION
 LCD12864_Write(0,0x80+AddrY);
 LCD12864_Write(0,0x80+AddrX);
 //LCD_Write(LCD_COMMAND,LCD_BASIC_FUNCTION);   //基本指令集
 LCD12864_Read();
 DataH = LCD12864_Read();
 DataL = LCD12864_Read();
 //DataH = LCD_ReadData();
 //DataL = LCD_ReadData();
 }
 if(color ==1)
 {
 if(BitTemp > 7)
 {
 DataL |= (0x80>>(BitTemp-8));
 }
 else
 {
 DataH |= (0x80>>(BitTemp));
 }
 }
 else
 {
 }
 LCD12864_Write(0,0x80+AddrY);
 LCD12864_Write(0,0x80+AddrX);
 LCD12864_Write(1,DataH);
 LCD12864_Write(1,DataL);
 LCD12864_Write(0,0x36);    //最后打開圖形顯示功能
 }
 
 //******************************************************************************
 //*函數(shù)名稱:void LCD_ImgDisplayCharacter(unsigned char x,unsigned char y,unsigned char code *img) *
 //*函數(shù)功能:使用繪圖的方法,在(x,y)處畫一個(gè)16*16點(diǎn)陣的圖案,也可以是字符     *
 //*形式參數(shù):unsigned char x,unsigned char y,unsigned char code *img            *
 //*   x取值范圍:0~7                *
 //*   y取值范圍:0~31 (針對(duì)CM12864-12型液晶)             *
 //*形參說明:坐標(biāo)水平位置,坐標(biāo)垂直位置,要顯示的圖形          *
 //*液晶屏坐標(biāo)說明:                  *
 //*      ________________128個(gè)像素______________________              *
 //*      |(0,0)                                    (7,0)|             *
 //*      |                                              |             *
 //*   64 |                                              |             *
 //*   個(gè) |(0,31)                                  (7,31)|             *
 //*   像 |(8,0)                                   (15,0)|             *
 //*   素 |                                              |             *
 //*      |                                              |             *
 //*      |(8,31)                                 (15,31)|             *
 //*      |______________________________________________|             *
 //*                                                                   *
 //*返回參數(shù):無                                                              *
 //*使用說明:此函數(shù)適用于CM12864-12型液晶   *
 //******************************************************************************
 void LCD_ImgDisplayCharacter(unsigned char x,unsigned char y,unsigned char *img)
 {
 unsigned char i;
 LCD12864_Write(0,0x34);  //8Bit擴(kuò)充指令集,即使是36H也要寫兩次
 LCD12864_Write(0,0x36); //繪圖ON,基本指令集里面36H不能開繪圖
 LCD12864_Write(0,0x30); //LCD_BASIC_FUNCTION
 for(i=0;i<16;i++)
 {
 LCD12864_Write(0,0x80+y+i);
 LCD12864_Write(0,0x80+x);
 LCD12864_Write(1,img[i*2]);
 LCD12864_Write(1,img[i*2+1]);
 }
 LCD12864_Write(0,0x36);    //打開圖形顯示功能
 }
 //********************************************************************
 //函數(shù)名稱:void GUI_FontAnywhere(unsigned char x,unsigned char y,
 //         unsigned char m,unsigned char n,__flash unsigned char img[])
 //函數(shù)功能:使用繪圖的方法,在(x,y)處畫一個(gè)m*n大小的點(diǎn)陣的圖案,也可以是字符
 //形式參數(shù):unsigned char x,unsigned char y,unsigned char m,
 //         unsigned char n,__flash unsigned char img[]
 //   x取值范圍:1~128
 //   y取值范圍:1~64
 //行參說明:坐標(biāo)水平位置,坐標(biāo)垂直位置,要顯示的圖形長 m(只能為8的倍數(shù)),
 //         要顯示的圖形的寬 n,字模
 //液晶屏坐標(biāo)說明:
 //  _______________128個(gè)象素______________________
 //  |(1,1)           (128,1)|
 //  |             |
 // 6 |             |
 // 4 |                   |
 // 個(gè) |                     |
 // 象 |             |
 // 素 |             |
 //  |(1,64)_______________________________(128,64)|
 //
 //返回參數(shù):無
 //使用說明:橫坐標(biāo)必須為8的倍數(shù)
 //***********************************************************************
 void GUI_FontAnywhere(unsigned char x,unsigned char y,unsigned char m,unsigned char n,unsigned char img[])
 {
 unsigned char i,j,count = 0;
 unsigned int a = 0;
 unsigned char p = 0,q = 0;
 unsigned char _bit[8];
 LCD12864_Write(0,0x34); //先關(guān)閉圖形顯示功能
 for(p=0;p<n;p++)
 for(q=0;q<(m/8);q++)
 {
 for(i = 0;i < 8;i ++)
 _bit[i] = ((img[a]<<i)>>7);
 for(i = 0;i < 8;i ++)
 GUI_Point(x+i+(q*8),y+p,_bit[i]);
 a ++;
 }
 
 LCD12864_Write(0,0x36); //最后打開圖形顯示功能
 }
 //*******************************************
 //函數(shù)名稱:void Serial_UseSelfDefiniteCharacterInCGRAM(uchar ucAdd,uchar ucCode)
 //函數(shù)功能:使用自定義的字符
 //形式參數(shù):uchar ucAdd,uchar ucCode
 //行參說明:字符要顯示的位置,自定義的字符對(duì)應(yīng)的編碼
 //  ucCGRAMAdd可以且只可以取的值:  0x40 ,  0x50 ,  0x60 , 0x70
 //   ucCode     對(duì)應(yīng)的顯示編碼為:[0000H],[0002H],[0004H],[0006H]
 //返回參數(shù):無
 //使用說明:無
 //*******************************************
 /*void Serial_UseSelfDefiniteCharacterInCGRAM(uchar ucAdd,uchar ucCode)
 {
 Serial_Write_LCD(COMMAND,BASIC_FUNCTION);    //基本指令集
 Serial_Write_LCD(COMMAND,ucAdd);     //設(shè)定DDRAM位址
 Serial_Write_LCD(DATA,0x00);
 Serial_Write_LCD(DATA,ucCode);
 }
 */
 
 void main()
 {
 
 LcmClearBMP( );
 LcmClearTXT( );
 // PrintBMP() ;
 LcmClearBMP( );
 delay(50);
 while(1)
 {
 //  GUI_FontAnywhere(0,0,40,33,pic2) ;
 
 //  PrintBMP(pic2);
 //  GUI_FontAnywhere(1,1,16,16,liu) ;
 
 GUI_Line(1,1,128,1,1) ;
 GUI_Line(1,16,128,16,1) ;
 GUI_Line(1,32,128,32,1) ;
 GUI_Line(1,48,128,48,1) ;
 GUI_Line(1,64,128,64,1) ;
 //LCD_ImgDisplayCharacter(2,15,liu);
 
 GUI_Line(1,1,1,64,1) ;
 GUI_Line(17,1,17,64,1) ;
 GUI_Line(33,1,33,64,1) ;
 GUI_Line(45,1,45,64,1) ;
 GUI_Line(57,1,57,64,1) ;
 GUI_Line(69,1,69,64,1) ;
 GUI_Line(81,1,81,64,1) ;
 GUI_Line(93,1,93,64,1) ;
 GUI_Line(105,1,105,64,1) ;
 GUI_Line(117,1,117,64,1) ;
 GUI_Line(128,1,128,65,1) ;
 GUI_Line(1,1,17,17,1) ;
 // delay(10) ;
 // PrintStr(0,0,str2);
 PrintStr(2,0,str1);
 //  delay(10)  ;
 GUI_Circle(64,32,25,1);
 GUI_Full(60,30,68,40,1);
 
 }
 }
 |