欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
ARM歷程十一—(撥打電話)
[打印本頁]
作者:
daming
時間:
2014-12-29 20:04
標題:
ARM歷程十一—(撥打電話)
字符顯示程序,撥打電話程序:
(程序有待完善)
void Displaytxt(int x0, int y0, int who, U16 color )// 顯示數(shù)字(16*32)
{
U16 txt = 0;
U16 l = 0, h = 0, x = 0, y = 0, z = 0;
for ( h = 0; h < 32; h++ )
{
x = (U16)gImage_number[who][h][z];
y = (U16)gImage_number[who][h][z+1];
txt = y<<8 | x;
for ( l = 0; l < 16; l++ )//L=16的時候跳出
{
if( (txt>>l)%2 == 1 )
LCD_BUFFER[y0+h][x0+l] = color;
}
}
}
void Displaytxtbig(int x0, int y0, int who, U16 color )// 顯示數(shù)字(32*64)
{
U32 txt = 0;
U16 l = 0, h = 0, a = 0, b = 0, c = 0, d = 0, z = 0;
extern int X0;
if ( who == 0 )
who = 10;
who -= 1;
for ( h = 0; h < 64; h++ )
{
a = (U16)gImage_numberbig[who][h][z];
b = (U16)gImage_numberbig[who][h][z+1];
c = (U16)gImage_numberbig[who][h][z+2];
d = (U16)gImage_numberbig[who][h][z+3];
txt = d<<24 | c << 16 | b<<8 | a;
for ( l = 0; l < 32; l++ )//L=16的時候跳出
{
if( (txt>>l)%2 == 1 )
LCD_BUFFER[y0+h][x0+l] = color;
}
}
X0 += 32;
if ( X0 >= 384 )
X0 = 384 - 32;
}
void Displaytxthz(int x0, int y0, int who, U16 color, unsigned char bmp[3][32][4])//顯示漢字32*32
{
U32 txt = 0;
U16 l = 0, h = 0, a = 0, b = 0, c = 0, d = 0, z = 0;
for ( h = 0; h < 32; h++ )
{
a = bmp[who][h][z];
b = bmp[who][h][z+1];
c = bmp[who][h][z+2];
d = bmp[who][h][z+3];
txt = d<<24 | c << 16 | b<<8 | a;
for ( l = 0; l < 32; l++ )//L=16的時候跳出
{
if( (txt>>l)%2 == 1 )
LCD_BUFFER[y0+h][x0+l] = color;
}
}
}
void Displayhz( int x0, int y0, int gs, unsigned char bmp[3][32][4] )//連續(xù)顯示"gs"個漢字
{
int k;
for ( k = 0; k < gs; k++ )
{
Displaytxthz( x0, y0, k, 0x1f, bmp );
x0 = x0 + 32; //光標后移
}
}
void Bank( int x0, int y0 ) //擦除顯示
{
int x, y, m, n;
for ( y = 0, m = y + 54; y < m; y++ )
for ( x = 0, (n = x + 32) && X0 >= 0; x < n; x++ )
LCD_BUFFER[y0+y][x0+x] = 0xffff;
}
void Del(void)//刪除字符
{
extern int X0;
Bank( X0, 12 );
X0 -= 32;
if( X0 < 0 )
X0 = 0;
Bank( X0, 12 );
}
void Delhz(void)//刪除漢字//由于漢字和數(shù)字的完度不同,所以可以用兩個函數(shù)分別實現(xiàn)
{
extern int X0;
X0 -= 32;//光標后移
if( X0 < 0 )
X0 = 0;
Bank( X0, 12 );
}
void phone(void)//撥打電話功能函數(shù)
{
extern volatile int xdata;
extern volatile int ydata;
//extern unsigned char Buffer[20];
extern U16 fz;
extern int i;
int e = 2400000;
int x = -1;
Displayhz( 0, 34, 7, gImage_opengsm );//顯示提示信息
puts("AT\r"); //發(fā)送連機命令
while ( e-- ){rGPBDAT &= 0xffff;} //等待
Paint_Bank( 0, 6, 480, 54 );
Displayhz( 0, 34, 13, gImage_inputnumber ); //顯示連機成功信息
e = 9600000;
while ( e-- ){rGPBDAT &= 0xffff;}
Paint_Bank( 0, 6, 480, 54 );
Displayhz( 382, 34, 3, gImage_input );//輸入提示信息
X0 = 0;
xdata = -1; ydata = -1;
if( fz ==1 )
while( Flag == 2 )
{
if( xdata >= 68+12 && xdata <= 267-12 && ydata >= 545+12 && ydata <= 670-12 ) //判斷按鍵位置,設(shè)置相應(yīng)按鍵的功能
{w = '1'; x = 1; delay();/*去抖*/ Displaytxtbig(X0, 12, 1, 0x6545 ); xdata = -1; ydata = -1; }
if( xdata >= 267+12 && xdata <= 456-12 && ydata >= 545+12 && ydata <= 670-12 )
{w = '2'; x = 1;delay(); Displaytxtbig(X0, 12, 2, 0x6545 ); xdata = -1; ydata = -1; }
if( xdata >= 456+12 && xdata <= 637-12 && ydata >= 545+12 && ydata <= 670-12 )
{w = '3'; x = 1;delay(); Displaytxtbig(X0, 12, 3, 0x6545 ); xdata = -1; ydata = -1; }
if( xdata >= 683+12 && xdata <= 935-12 && ydata >= 545+12 && ydata <= 670-12 )
{x = 1; delay(); Del(); i=i-2; if(i<=0) i=0; xdata = -1; ydata = -1; }
if( xdata >= 68+12 && xdata <= 267-12 && ydata >= 227+12 && ydata <= 401-12 )
{w = '7'; x = 1; delay(); Displaytxtbig(X0, 12, 7, 0x6545 ); xdata = -1; ydata = -1; }
if( xdata >= 267+12 && xdata <= 456-12 && ydata >= 227+12 && ydata <= 401-12 )
{w = '8'; x = 1; delay(); Displaytxtbig(X0, 12, 8, 0x6545 ); xdata = -1; ydata = -1; }
if( xdata >= 456+12 && xdata <= 637-12 && ydata >= 227+12 && ydata <= 401-12 )
{w = '9'; x = 1; delay(); Displaytxtbig(X0, 12, 9, 0x6545 ); xdata = -1; ydata = -1; }
if( xdata >= 683+12 && xdata <= 935-12 && ydata >= 227+12 && ydata <= 401-12 )
{w = '\0'; x = 0;number[i] = '\0'; delay(); Flag = 1000; X0 = 0; fz = 0; xdata = -1; ydata = -1;
puts("ATH\r");/*發(fā)送掛機命令*/delay();delay();delay();delay();delay();delay(); puts("AT^SMSO\r");/*發(fā)送斷開連接命令*/i = 0; }
if( xdata >= 68+12 && xdata <= 267-12 && ydata >= 401+12 && ydata <= 545-12 )
{w = '4';x = 1;delay();Displaytxtbig(X0, 12, 4, 0x6545 );xdata = -1; ydata = -1; }
if( xdata >= 267+12 && xdata <= 456-12 && ydata >= 401+12 && ydata <= 545-12 )
{w = '5';x = 1;delay();Displaytxtbig(X0, 12, 5, 0x6545 );xdata = -1; ydata = -1; }
if( xdata >= 456+12 && xdata <= 637-12 && ydata >= 401+12 && ydata <= 545-12 )
{w = '6';x = 1;delay();Displaytxtbig(X0, 12, 6, 0x6545 );xdata = -1; ydata = -1; }
if( xdata >= 683+12 && xdata <= 935-12 && ydata >= 401+12 && ydata <= 545-12 )
{ w = '\0';x = 0;number[i] = '\0';Paint_Bank( 0, 6, 480, 54 ); delay(); X0 = 480;puts("ATH\r");i = 0;
Delhz(); Delhz(); Delhz(); Displayhz( 382, 34, 3, gImage_over); X0 = 0;xdata = -1; ydata = -1; }
if( xdata >= 68+12 && xdata <= 267-12 && ydata >= 158+12 && ydata <= 272-12 )
{w = '*';x = 1;delay();Displaytxtbig(X0, 12, 11, 0x6545 ); xdata = -1; ydata = -1; }
if( xdata >= 267+12 && xdata <= 456-12 && ydata >= 158+12 && ydata <= 272-12 )
{w = '0';x = 1;delay();Displaytxtbig(X0, 12, 0, 0x6545 );xdata = -1; ydata = -1; }
if( xdata >= 456+12 && xdata <= 637-12 && ydata >= 158+12 && ydata <= 272-12 )
{w = '#';x = 1;delay();Displaytxtbig(X0, 12, 12, 0x6545 );xdata = -1; ydata = -1; }
if( xdata >= 683+12 && xdata <= 935-12 && ydata >= 158+12 && ydata <= 272-12 )
{w = '\0';x = 1;number[i] = '\0';printf("ATD%s;\r",number );/*發(fā)送撥打電話的命令*/delay();Y0 = X0; X0 = 480; Delhz();Delhz();
Delhz();Displayhz( 382, 34, 3,gImage_wait);X0 = Y0;xdata = -1; ydata = -1;i = 0; }
if ( x == 1 ) //輸入信息的處理
{
extern int i;
number[i] = w;
i++;
if (i >= 15 )
i = 15;
x = 0;
}
}
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1