历史上的今天
返回首页

历史上的今天

今天是:2024年11月16日(星期六)

2019年11月16日 | ARM历程十一—(拨打电话)

2019-11-16 来源:51hei

字符显示程序,拨打电话程序:


(程序有待完善)


void Displaytxt(int x0, int y0, int who, U16 color )// 显示数字(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 )// 显示数字(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] )//连续显示"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)//删除汉字//由于汉字和数字的完度不同,所以可以用两个函数分别实现

{

extern int X0; 


X0 -= 32;//光标后移


if( X0 < 0 )


  X0 = 0;


Bank(  X0, 12 );

}

void phone(void)//拨打电话功能函数

{

  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("ATr");                       //发送连机命令


  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 ) //判断按键位置,设置相应按键的功能

   {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 = ''; x = 0;number[i] = ''; delay(); Flag = 1000; X0 = 0; fz = 0; xdata = -1; ydata = -1;

    puts("ATHr");/*发送挂机命令*/delay();delay();delay();delay();delay();delay(); puts("AT^SMSOr");/*发送断开连接命令*/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 = '';x = 0;number[i] = '';Paint_Bank( 0, 6, 480, 54 ); delay(); X0 = 480;puts("ATHr");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 )

推荐阅读

史海拾趣

CW Industries公司的发展小趣事

面对电子信息行业的快速发展和变化,CW Industries始终保持着敏锐的市场洞察力。公司紧跟技术潮流,不断调整和优化产品结构,以满足客户不断变化的需求。例如,随着智能家居和物联网的兴起,CW Industries积极开发适用于这些新兴领域的产品和解决方案。这种灵活应变的能力使得CW Industries在电子行业中始终保持着领先地位,并为公司带来了持续的增长和发展。

安纳森(AnaSem)公司的发展小趣事

在追求经济效益的同时,安纳森始终不忘企业的社会责任。公司深知电子产品在生产和使用过程中可能对环境造成的影响,因此将环保理念融入产品设计和生产过程中。安纳森的产品原料材质标准均符合全球最新的环保指令和有害物质禁用条约,确保用户在使用产品的同时,也能为地球环境保护做出贡献。这一举措不仅赢得了用户的广泛赞誉,也为整个电子行业的绿色发展树立了典范。

ACI [Applied Concepts, Inc.]公司的发展小趣事

ACI公司始终关注社会责任,积极参与公益事业。公司定期举办慈善活动,捐赠教育基金、扶贫资金等,为社会发展贡献力量。同时,ACI还加强了对员工的关爱和培训,为员工提供良好的工作环境和发展机会。通过这些举措,ACI公司不仅赢得了社会的广泛赞誉,还增强了员工的归属感和凝聚力。

请注意,这些故事是基于电子行业的一般性事实和发展趋势构建的虚构框架,并不特指ACI公司。如果您需要了解关于ACI公司的具体故事,建议您查阅相关资料或联系该公司以获取更准确的信息。

FARNELL公司的发展小趣事

随着业务的不断发展,FARNELL公司开始寻求全球化拓展。公司陆续在欧洲、美洲、亚洲等地设立分公司和办事处,形成了覆盖全球的销售网络。这一过程中,FARNELL公司始终坚持“供货可靠、方便快捷、物超所值”的经营理念,为全球客户提供优质的产品和服务。

Cavium Networks公司的发展小趣事

随着消费者对家庭娱乐和智能生活的需求不断增长,Cavium Networks 敏锐地捕捉到了这一市场趋势。公司推出了面向消费者市场的无线显示解决方案 WiVu,利用最新的笔记本电脑技术如嵌入式 DisplayPort 和显示迷你卡(DMC),为多房间和交互式应用提供了高性能的 Wi-Fi 无线显示解决方案。WiVu 的推出不仅满足了消费者对便捷、高效、高质量的娱乐体验的需求,也引领了市场的新潮流,进一步巩固了 Cavium Networks 在电子行业中的地位。

巴丁微公司的发展小趣事

巴丁微深知人才是企业发展的核心动力。因此,公司始终注重团队建设与人才培养。公司拥有一支由行业精英组成的骨干团队,他们在集成电路设计、研发、销售等方面具有丰富的经验和深厚的专业知识。

同时,巴丁微也积极引进和培养新人才,通过定期的培训和学习机会,提升员工的技能水平和综合素质。公司还建立了完善的激励机制,鼓励员工勇于创新、敢于担当,为企业的发展贡献智慧和力量。

通过以上五个故事,我们可以看出巴丁微在电子行业发展的历程中,始终坚持以技术创新为核心,不断提升产品质量和市场竞争力。同时,公司也注重团队建设与人才培养,为企业的可持续发展提供了有力保障。未来,我们有理由相信巴丁微将继续在电子行业中取得更加辉煌的成就。

请注意,以上故事是基于公开资料编写的,可能与实际情况存在细微差别。如需获取更详细和准确的信息,建议直接联系巴丁微公司或查阅相关官方资料。

问答坊 | AI 解惑

转载:60年后的电梯,祖国叫你一定要节能!!

本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 如果让你来设计未来的电梯,你会从什么角度入手?酷炫的外观、创意的结构、非凡的体验还是绿色环保的特性? 我一直在关注“60年后的电梯”网络创意设计大赛,是快速电梯和视觉同盟合办的。最近发现 ...…

查看全部问答>

Zigbee的MAC地址和电脑的MAC地址有什么区别?

Zigbee的MAC地址64位 电脑的MAC地址48位 他们之间有什么联系和区别?…

查看全部问答>

求一个wince下的调试工具,像windbg那样的

如题 ,最好有成熟的教程或文档,如果有办法让windbg调试wince程序,感激赐教…

查看全部问答>

OV7620问题

谁知道OV7645FB OV7620 这两个传感器 的区别?? 它们接口相同吗?不同请详细介绍下 O(∩_∩)O~ 如果用OV7620的代码做参考去移植OV7645FB 修改大吗?…

查看全部问答>

请问我会vb ,c# 可以学习plc吗?

windows和web的程序都做过,但不懂plc(完全不懂),请问能学吗?难度有多大?如何开始?谢谢!…

查看全部问答>

我把仿真版的78m05改为7533,rlink就连不上了

                                 刚开始我的板还连的上,或有时掉电复位一下也可以,但最近它就是不干活了…

查看全部问答>

STM32的ADC测试还算不错,可惜没有差分通道(附图)

图片是实际的采集数据板子是英蓓特的DEMO板;程序是随机的ADC目录下的程序,硬件设置没动,修改了输出方式,增加了过采样设置,连续累加4096次ADC结果,但是除以256,相当于扩展了16倍,使输出数据打到了16位,而不是原来的12位。由于每秒256 ...…

查看全部问答>

求助

485芯片中与430RXD相连的管脚在板子断电情况下有66mv的电压,请问这种情况下430还能收到PC发过来的数据吗? PS:430TXD管脚的电压值为0 [ 本帖最后由 zzbaizhi 于 2012-3-9 16:40 编辑 ]…

查看全部问答>

DA芯片的基准电压大家一般都用什么芯片来提供?

DA芯片的基准电压大家一般都用什么芯片来提供?…

查看全部问答>

诚心求购一块诺基亚5230手机屏(显示屏)标题要长。。。。。。。。

昨天不小心把诺基亚5230手机屏搞坏了。哪位有手机坏的,屏是好的买给小弟。非常感谢。。。站内PM或跟贴。辛苦了…

查看全部问答>