搜索
bottom↓
回复: 11

我整理的T6963控制芯片的液晶驱动的函数 (在51环境中可一运行,AVR没有试,应该可以

[复制链接]

出0入4汤圆

发表于 2004-12-3 19:09:17 | 显示全部楼层 |阅读模式
/********************************************************************************

                                 [文件名]T6963.c

                                 [功能] 240X128液晶驱动程序

                                 [修改时间]:2004-8-18

********************************************************************************/

#include <reg52.h>

#include <math.h>

#include <ctype.h>

#include <stdlib.h>

#include <stdio.h>

#include <absacc.h>





************************************************************



                     数据类型定义



************************************************************/



#define  uchar  unsigned char

#define  uint        unsigned int







/********************************************************************************

                        以8*8字符计算,显示屏横向、纵向可以显示的字符个数

                                  以240*128为例:

********************************************************************************/

#define LineChar 30                     //一行30个字符(8*8)

#define ColumnChar 16                   //总共16列





//指令,数据 读写状态检查

#define RWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x03; } while(sta!=0x03); }

//数据自动读 状态检查

#define AutoRCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x04; } while(sta!=0x04); }

//数据自动写 状态检查

#define AutoWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x08; } while(sta!=0x08); }





/********************************************************************************



                    设置液晶显示器数据地址和指令地址



********************************************************************************/

#define ComPort                 0xfc01

#define DataPort                 0xfc00

#define GraphAddrL                 0xF0                    //图形首地址低8位

#define GraphAddrH                0x01                        //图形首地址高8位

#define GraphicStartAddr        0x01F0                        //图形首地址

#define TextAddrL                 0x00                    //文本首地址低8位

#define TextAddrH                 0x00                    //文本首地址高8位

#define        TextStartAddr                0x00                        //文本首地址





/************************************************************



                      指令代码定义



************************************************************/

#define  CursorPointer 0x21    //光标地址设置

#define  OffsetReg     0x22    //CGRAM偏移地址设置

#define  AddPointer    0x24    //显示地址设置

#define  TextHomeAdd   0x40    //文本首地址

#define  TextArea      0x41    //文本宽度设置

#define  GraHomeAdd    0x42    //图形首地址设置

#define  GraArea       0x43    //图形宽度设置

#define  OrMode        0x80    //或模式显示

#define  ExorMode      0x81    //异或模式显示

#define  AndMode       0x83    //与模式显示

#define  TextAttMode   0x84    //文本属性模式

#define  InterCGROME   0       //内部CGROM

#define  ExCGRAM       0x08    //外部CGRAM

#define  DisplayOff    0x90    //显示关闭

#define  CursorOn      0x92    //光标显示,但不闪烁

#define  CursorBlink   0x93    //光标闪烁

#define  TextOn        0x94    //文本模式打开

#define  GraOn         0x98    //图形模式打开

#define  TGAllOn       0x9c    //文本图形模式都打开

#define  Cursor1       0xa0    //光标形状一行显示

#define  Cursor2       0xa1    //光标形状二行显示

#define  Cursor3       0xa2    //光标形状三行显示

#define  Cursor4       0xa3    //光标形状四行显示

#define  Cursor5       0xa4    //光标形状五行显示

#define  Cursor6       0xa5    //光标形状六行显示

#define  Cursor7       0xa6    //光标形状七行显示

#define  Cursor8       0xa7    //光标形状八行显示

#define  DataAutoWrite 0xb0    //数据自动写

#define  DataAutoRead  0xb1    //数据自动读

#define  ExitAutoRW    0xb2    //退出数据自动读写模式

#define  DataWAddI     0xc0    //数据写,地址加1

#define  DataWAddD     0xc2    //数据写,地址减1

#define  DataWAddNV    0xc4    //数据写,地址不变

#define  DataRAddI     0xc1    //数据读,地址加1

#define  DataRAddD     0xc3    //数据读,地址减1

#define  DataRAddNV    0xc5    //数据读,地址不变

#define  ScreenPeek    0xe0    //屏读

#define  ScreenCopy    0xe1    //屏拷贝



















/********************************************************************************



                            输入/出函数,与T6963通讯



********************************************************************************/

/*自动写状态时向发送数据*/

#define AutoOutPortData(dat){AutoWCheck();XBYTE[DataPort]=dat;}

/*自动写状态时向发送数据*/

#define AutoInPortData(){AutoRCheck();return(XBYTE[DataPort]);}

// 向数据口发Data

#define OutPortData(dat ) { RWCheck(); XBYTE[DataPort]=dat; }



//写有 1 个参数命令

#define OutPortCom1(command) { RWCheck(); XBYTE[ComPort]= command; }



//写有 2 个参数命令

#define OutPortCom2(dat, command) { OutPortData(dat); OutPortCom1(command); }



//写有 3 个参数命令

#define OutPortCom3(data1, data2, command) { OutPortData(data1); OutPortData(data2); OutPortCom1(command);}



//从外部读数据

unsigned char InPortData()

{

         RWCheck(); return(XBYTE[DataPort]);

}





unsigned char Cursor_X,Cursor_Y;                                      //光标的坐标

uchar CtrlData=0;





/********************************************************************************

                       显示8*16字符

                       lin:行(0-29), column: 列(0-111)

                       ch:字符代码(标准ASCII码)

********************************************************************************/

void ShowChar(unsigned char lin,unsigned char column,unsigned char ch)

{

    unsigned char i;

    unsigned char dat;

    unsigned int StartAddr;



     StartAddr=column*LineChar + lin+GraphicStartAddr;                   //定位起始行



    for(i=0;i<16;i++)

    {

      dat=ASCII816[ ch-0x20 ];

      OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);

      OutPortCom2( dat, 0xc4);



      StartAddr=StartAddr + LineChar;

    }

}





/********************************************************************************

函数名:ShowText(unsigned char lin,unsigned char column,unsigned char *ch)

函数功能:显示一字符串

********************************************************************************/

void ShowText(unsigned char lin,unsigned char column,unsigned char *ch)

{

    unsigned char i;

    unsigned char dat;

    unsigned int StartAddr;

    while(*ch)

    {

      ShowChar(lin,column,*ch);

      lin++;

      ch++;

    }



}



/********************************************************************************

函数名:ShowNumber(unsigned char lin,unsigned char column,unsigned char Number)

函数功能:显示一个数字;用CGRAM,暂时不用

********************************************************************************/

/*void ShowNumber(unsigned char lin,unsigned char column,unsigned char Number)

{

        unsigned int         Addr;

        unsigned char        NumberCode;

        NumberCode=0x80+Number*2;

        Addr=column*LineChar+lin;

        OutPortCom3((uchar)Addr,(uchar)(Addr>>8),0x24);

        OutPortCom2(NumberCode,DataWAddNV);

        Addr+=LineChar;

        OutPortCom3((uchar)Addr,(uchar)(Addr>>8),0x24);

        OutPortCom2(NumberCode+1,DataWAddNV);

}*/





/********************************************************************************

函数名: ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)

函数功能:显示一个汉字(16*12点阵),lin:行(0-7), column: 列(0-7),汉字代码(自定义的)

********************************************************************************/

void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)

{

    unsigned char i,temp1,temp2;

    unsigned int StartAddr;



    StartAddr=column*LineChar + lin+GraphicStartAddr;                                 //定位起始行



    for(i=0;i<12;i++)

    {

      OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);

      temp1=HZTable[hzcode][i*2];

    //  temp1=HZTable[hzcode];

      OutPortCom2(temp1, 0xc0);                                 //左半部 地址加一

      temp2=HZTable[hzcode][i*2+1];

    //  temp2=HZTable[hzcode][i+15];

      OutPortCom2(temp2, 0xc4);                                 //右半部 字模地址加一



      StartAddr=StartAddr + LineChar;

    }

}





/********************************************************************************

函数名:void ShowHZ1(unsigned char lin,unsigned char column,unsigned int hzcode)

函数功能:显示一个汉字(16*14点阵),lin:行(0-7), column: 列(0-7hzcode: 汉字代码(自定义的)

********************************************************************************/

void ShowHZ1(unsigned char lin,unsigned char column,unsigned int hzcode)

{

    unsigned char i,temp1,temp2;

    unsigned int StartAddr;



    StartAddr=column*LineChar + lin+GraphicStartAddr;                 //定位起始行



    for(i=0;i<14;i++)

    {

      OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);

      temp1=HZTable1[hzcode][i*2];

      OutPortCom2(temp1, 0xc0);                                 //左半部 地址加一

      temp2=HZTable1[hzcode][i*2+1];

      OutPortCom2(temp2, 0xc4);                                 //右半部 字模地址加一



      StartAddr=StartAddr + LineChar;

    }

}









/********************************************************************************

函数名:void ShowHZ1(unsigned char lin,unsigned char column,unsigned int hzcode)

函数功能:显示一个汉字(16*16点阵),lin:行(0-7), column: 列(0-7hzcode: 汉字代码(自定义的)

********************************************************************************/

void ShowHZ2(unsigned char lin,unsigned char column,unsigned int hzcode)

{

    unsigned char i,temp1,temp2;

    unsigned int StartAddr;



    StartAddr=column*LineChar + lin+GraphicStartAddr;                 //定位起始行



    for(i=0;i<16;i++)

    {

      OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);

      temp1=HZTable2[hzcode][i*2];

      OutPortCom2(temp1, 0xc0);                                 //左半部 地址加一

      temp2=HZTable2[hzcode][i*2+1];

      OutPortCom2(temp2, 0xc4);                                 //右半部 字模地址加一

      StartAddr=StartAddr + LineChar;

    }

}



/********************************************************************************

函数名: ShowHZWord(uchar lin,uchar colum,uchar code,uchar num)

函数功能:显示连续编码的几个汉字

code 汉字编码,  num,汉字个数

********************************************************************************/

void ShowHZWord(uchar lin,uchar col,uchar num,uchar coding)

{

        uchar i;

        for(i=0;i<num;i++)

        {

                ShowHZ1(i*2+lin,col,coding+i);



        }

}



/********************************************************************************

函数名: void ShowLine(unsigned char lin,unsigned char column,unsigned char linehead[])

函数功能:显示一行字符串(汉字,字母混排,一行16字节)

lin:行

lineheadaddr: 此行汉字代码区首地址

********************************************************************************/



/*void ShowLine(unsigned char lin,unsigned char column,unsigned char linehead[])

{

   unsigned char i,j;

   unsigned char byte;

   unsigned int hzcode;



   for( i= column,j=0; i< column+14 ; )

   {

     byte=linehead[j];

     if(byte < 0x80)                                                 //字母

     {

       ShowChar(lin, i , byte);

       i=i+1;j=j+1;

     }

     else                                                        // byte >= 0x80(汉字)

     {

       byte=byte & 0x7f;                                        //最高位置0,即:减去0x8000

       hzcode=byte*256 + linehead[j+1];                         //加低8位,组合成整型数地址

       ShowHZ( lin,i,hzcode);

       i=i+2;j=j+2;

     }

   }

}*/





/********************************************************************************

函数名:ShowPage(unsigned char lin,unsigned char column1,unsigned char pagehead[][14])

函数功能:显示一屏汉字ageheadaddr:此屏汉字代码地址区首地址?

********************************************************************************/

/*void ShowPage(unsigned char lin,unsigned char column1,unsigned char pagehead[][14])

{

   unsigned char i;

   for(i=0;i< 4 ;i++)

   ShowLine((lin+i*20),column1,pagehead);                         //1行8个汉字,16字节

}*/





/********************************************************************************

函数名: ReverseShowChar(unsigned char lin,unsigned char column)

函数功能: 反显一个字符 ,lin:行(0-7), column: 列(0-15)

********************************************************************************/

void ReverseShowChar(unsigned char lin,unsigned char column)

{

   unsigned char i;

   unsigned char dat;

   unsigned int StartAddr;



   StartAddr=lin*LineChar +column+GraphicStartAddr;                 //定位起始行



   for(i=0;i<16;i++)

   {

     OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address

     OutPortCom1( 0xc5 );                                         //数据一次读,地址不变

     dat=InPortData();                                                 //读入数据

     dat=~dat;                                                         //取反

     OutPortCom2( dat, 0xc4);                                         //送回



     StartAddr=StartAddr+ LineChar;

   }

}





/********************************************************************************

函数名: ReverseShowHZ(unsigned char lin,unsigned char column)

函数功能:反显一个汉字 ,lin:行(0-7), column: 列(0-15)

********************************************************************************/

void ReverseShowHZ(unsigned char lin,unsigned char column)

{

   ReverseShowChar(lin,column);

   ReverseShowChar(lin,column+1);

}



/********************************************************************************

函数名: ReverseShowLine(unsigned char lin)

函数功能:反显一行汉字,lin:行(0-7)

********************************************************************************/

void ReverseShowLine(unsigned char lin)

{

   unsigned char column;

   for(column=0; column< ColumnChar; column++) ReverseShowChar(lin,column);

}





/********************************************************************************

函数名:ShowPicture(unsigned char Startline,unsigned char Startcolumn,unsigned char LineWidth,unsigned char ColumnWidth,unsigned int address)

函数功能:

********************************************************************************/

/*void ShowPicture(unsigned char Startline,unsigned char Startcolumn,unsigned char LineWidth,unsigned char ColumnWidth,unsigned int address)

{

   unsigned char i,j;

   unsigned int StartAddr;



   StartAddr=Startline*LineChar + Startcolumn+GraphicStartAddr;                                          //定位起始位置



   for(i=0;i<ColumnWidth;i++)

   {

     OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);     //set address

     for(j=0;j<LineWidth;j++)

     {

       OutPortCom2( CBYTE[address + i*LineWidth+ j ], 0xc0);

     }

     StartAddr=StartAddr + LineChar;

   }

}*/



/********************************************************************************

函数名: Pixel(unsigned char PointX,unsigned char PointY, bit Mode)

函数功能:图形函数,用于描点画图,在指定位置显示一个点;

如果显示屏超过了256*256,请修改这个函数 PointX,PointY的类型;

Mode 1:显示 0:清除该点

********************************************************************************/

Pixel(unsigned char PointX,unsigned char PointY, bit Mode)

{

   unsigned int StartAddr=GraphicStartAddr;

   unsigned char dat;

   StartAddr+=PointY*LineChar + PointX/8;

  // StartAddr=PointY*240 + PointX;

   dat=0xf0+7-PointX%8;

  // dat=0xf0;

   if(Mode) dat=dat|0x08;



   OutPortCom3( (unsigned char)(StartAddr),(unsigned char)(StartAddr>>8),0x24 );

   //设置该点所在单元地址

   OutPortCom1(dat);

}





/********************************************************************************

函数名:Lcd_Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode)

函数功能: 画两点的直线

********************************************************************************/

void Lcd_Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode)

{

   unsigned char x,y;

   float k,b;

      y1=128-y1;

      y2=128-y2;

   if( abs(y1-y2) <= abs(x1-x2) ) // |k|<=1

   {

     k=(y2*1.0-y1*1.0) / (x2*1.0-x1*1.0) ;

     b=y1-k*x1;



     if( x1 <= x2 )

     {

       for(x=x1;x<=x2;x++)

       {

         y=k*x+b;

         Pixel(x, y, Mode);

       }

     }

     else

     {

       for(x=x2;x<=x1;x++)

       {

         y=k*x+b;

         Pixel(x, y, Mode);

       }

     }

   }

   else // abs(y1-y2) > abs(x1-x2) |K|>1

   {

     k=(float)(x2-x1) / (float)(y2-y1) ;

     b=x1-k*y1;



     if( y1 <= y2 )

     {

       for(y=y1;y<=y2;y++)

       { x=k*y+b;

         Pixel( x , y,Mode);

       }

     }

     else

     {

        for(y=y2;y<=y1;y++)

        { x=k*y+b;

          Pixel( x , y,Mode);

        }

     }

   }

}









/********************************************************************************

函数名:Lcd_Box(unsigned char X1, unsigned char Y1, unsigned char X2, unsigned char Y2, bit SetReset)

函数功能:画矩形外框

********************************************************************************/

/*void Lcd_Box(unsigned char X1, unsigned char Y1, unsigned char X2, unsigned char Y2, bit SetReset)

{

   Lcd_Line(X1,Y1,X1,Y2, SetReset);

   Lcd_Line(X1,Y2,X2,Y2, SetReset);

   Lcd_Line(X2,Y2,X2,Y1, SetReset);

   Lcd_Line(X2,Y1,X1,Y1, SetReset);

}*/











/********************************************************************************

函数名: ClearScreen()

函数功能:  函数功能:清除整个屏幕

********************************************************************************/

void ClearScreen(uint ram)

{

    unsigned int i;

                                                                //清显示 RAM 区 0000h--2000h (8k)

    OutPortCom3(0x00,0x00,0x24);                                //设置指针地址0000H

    OutPortCom1(0xb0);                                          //设置自动写状态

    for(i=0x00;i<ram;i++) OutPortData(0x00);                 // data=0;

    OutPortCom1(0xb2);                                          // 自动写结束



}





/********************************************************************************

函数名: uchar ReadCGROMChar(uchar lin, uchar column)

函数功能:返回指定显示地址的ASCII码值;lin代表行,column代表列

********************************************************************************/

/*uchar ReadCGROMChar(uchar lin, uchar column)

{

        uchar Addr;

        Addr=lin*LineChar+column;

        OutPortCom3(Addr, 0x00,AddPointer);

        return(InPortData()+0x20);

}*/



/********************************************************************************

函数名:ShowCGRAMChar(uchar lin, uchar column,uchar ch )

函数功能:显示CGRAOM中的ASCII字符

********************************************************************************/

/*void ShowCGRAMChar(uchar lin, uchar column,uchar ch)

{

    uchar Addr;

    Addr=lin*LineChar+column;

    OutPortCom3(Addr, 0x00,AddPointer);

    OutPortCom2( ch-0x20,DataWAddI);

}*/





/********************************************************************************

函数名:ShowString(uchar lin, uchar column,*ch )

函数功能:显示CGRAM中的ASCII字符串

********************************************************************************/

/*void ShowString(uchar lin, uchar column,uchar *ch)

{

        uchar StartAddr;

        StartAddr=lin*LineChar+column;

        OutPortCom3(StartAddr, 0x00,AddPointer);

        while(*ch)

        {

                OutPortCom2( ch-0x20,DataWAddI);

                ch++;

        }

} */







/********************************************************************************

函数名: Void CursorPosSet(uchar X,uchar Y)

函数功能:  光标位置设置

********************************************************************************/

void CursorPosSet(unsigned char x,unsigned char y)

{

        OutPortCom3(x,y,CursorPointer);                        //X的取值范围0-29;Y的取值范围0-15;

        }

/********************************************************************************

函数名: Void CursorUp()

函数功能:  光标向上移动一格

********************************************************************************/

void CursorUp()

{

        if(Cursor_Y>0)Cursor_Y-=1;

        OutPortCom3(Cursor_X,Cursor_Y,CursorPointer);

}



/********************************************************************************

函数名: Void CursorDown()

函数功能:  光标向下移动一格

********************************************************************************/

void CursorDown()

{

        if(Cursor_Y<15)Cursor_Y+=1;

        OutPortCom3(Cursor_X,Cursor_Y,CursorPointer);

}



/********************************************************************************

函数名: Void CursorRight()

函数功能:  光标向右移动一格

********************************************************************************/

void CursorRight()

{

        if(Cursor_X<29)Cursor_X+=1;

        OutPortCom3(Cursor_X,Cursor_Y,CursorPointer);

}



/********************************************************************************

函数名: Void CursorLeft()

函数功能:  光标向左移动一格

********************************************************************************/

void CursorLeft()

{

        if(Cursor_X>0)Cursor_X-=1;

        OutPortCom3(Cursor_X,Cursor_Y,CursorPointer);

}



/********************************************************************************

函数名: Void CursorEnter()

函数功能:  光标向左移动一格

********************************************************************************/

void CursorEnter()

{

        Cursor_X=0;

        Cursor_Y+=1;

        OutPortCom3(Cursor_X,Cursor_Y,CursorPointer);

}





/********************************************************************************

函数名:void LoadASCII()

函数功能:把8*16点阵的字模顺序写到起始地位为0x1100的外部地址中去;字符代码从0x20开始

********************************************************************************/

/*void LoadASCII()

{

        unsigned char i,j;

        OutPortCom3( 0x00,0x1C,AddPointer);

        for(j=16;j<26;j++)

        {

                for(i=0;i<16;i++)

                {

                        OutPortCom2(ASCII816[j],DataWAddI);

                }

        }

} */













/********************************************************************************

函数名:OutPortCom1(TGAllOn|CursorBlink)

函数功能:关闭光标

********************************************************************************/

void CurOff()

{

        OutPortCom1(TGAllOn);

}



/********************************************************************************

函数名:OutPortCom1(TGAllOn|CursorBlink)

函数功能:打开光标

********************************************************************************/

void CurOn()

{

        OutPortCom1(TGAllOn|CursorBlink);

}







/********************************************************************************

函数名:void InitLCD()

函数功能:初始化LCD ,需要手动设置;

在初始化的时候把字模写到偏置地址开始的RAM中去;

********************************************************************************/



void InitLCD()

{

    OutPortCom3( GraphAddrL,GraphAddrH,0x42 );          //设置图形显示区域首地址

    OutPortCom3( LineChar,0x00,GraArea );               //设置图形显示区域宽度 : LineChar

    OutPortCom3(0x00,0x00,TextHomeAdd);                     //设置文本显示区域首地址GraphAddr

    OutPortCom3( LineChar,0x00,TextArea );              //设置文本显示区域宽度 : LineChar

    OutPortCom1(Cursor8);                               //设置光标形状 cursor size 8x8

    OutPortCom1(OrMode|ExCGRAM);                             //设置显示方式: 外部CGRAM方式 文本\图形 或

    OutPortCom3(0x03,0x00,OffsetReg);                        //偏址地址设在0x02

    OutPortCom1(TGAllOn|CursorBlink);                          //设置显示开关: 1001 1011 图形

    Cursor_X=Cursor_Y=0x00;

    CursorPosSet(Cursor_X,Cursor_Y);

    ClearScreen(0x2000);

    //LoadASCII();

}








-----此内容被ilan2003于2004-12-03,19:11:51编辑过

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2005-1-13 13:52:29 | 显示全部楼层
请问lcd和mcu是什么方式连接?直接连还是间接连

出0入0汤圆

发表于 2005-1-13 14:36:11 | 显示全部楼层
用了XBYTE宏,应该是直接连接。

出0入0汤圆

发表于 2005-1-13 14:54:57 | 显示全部楼层
那就是了,看来有些函数要改改才能用了,

本想偷懒,直接拿过来用的.....

出0入0汤圆

发表于 2005-1-13 16:19:49 | 显示全部楼层
//指令,数据 读写状态检查

#define RWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x03; } while(sta!=0x03); }

//数据自动读 状态检查

#define AutoRCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x04; } while(sta!=0x04); }

//数据自动写 状态检查

#define AutoWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x08; } while(sta!=0x08); }

将以上三个宏根据51的时序用AVR的IO模拟就OK了。

出0入0汤圆

发表于 2009-11-13 16:36:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-13 20:33:26 | 显示全部楼层
很不错

出0入0汤圆

发表于 2010-11-27 13:52:36 | 显示全部楼层
很不错谢谢

出0入0汤圆

发表于 2010-11-27 15:18:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-27 16:10:02 | 显示全部楼层
工整,是用心的

出0入0汤圆

发表于 2012-9-10 22:56:46 | 显示全部楼层
不错啊!

出0入0汤圆

发表于 2013-1-25 12:56:44 | 显示全部楼层
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表