[活动专区] 【赛元95F】三,ADC及画点

[复制链接]
611|0
 楼主| ddllxxrr 发表于 2020-4-5 16:09 | 显示全部楼层 |阅读模式
由于本人这次任务是示波器,所以ADC转换及画点少不了。
ADC先用查询,等差不多了再优化。
先ADC转换然后再把转换的值存到两个数组中,这样我可以显示完第一个马上显示第二个,这样做好像不太好。等以后调整。
  1. void ADC_Test(void)
  2. {
  3.         unsigned char i;

  4.         ADC_Init(AIN15);
  5.                 over=0;
  6.         for(i=0;i<160;i++)
  7.         {
  8.                 ADCCON |= 0X40;   //¿ªÊ¼ADCת»»
  9.                 while(!AdcFlag);                                  //µÈ´ý ADCת»»Íê³É;
  10.                 AdcFlag = 0;
  11.                 ADCValue = (ADCVH<<4)+(ADCVL>>4);
  12.                 displaymiddle[i]=ADCValue;
  13.         }
  14.         for(i=0;i<160;i++)
  15.         {
  16.           display[i] = (displaymiddle[i]*128)/4096;       
  17.         }
  18.        
  19.        
  20.         for(i=0;i<160;i++)
  21.         {
  22.                 ADCCON |= 0X40;   //¿ªÊ¼ADCת»»
  23.                 while(!AdcFlag);                                  //µÈ´ý ADCת»»Íê³É;
  24.                 AdcFlag = 0;
  25.                 ADCValue = (ADCVH<<4)+(ADCVL>>4);
  26.                 displaymiddle2[i]=ADCValue;
  27.         }
  28.         for(i=0;i<160;i++)
  29.         {
  30.           display2[i] = (displaymiddle2[i]*128)/4096;       
  31.         }
  32.        
  33.         over=1;
  34. }
然后在主函数中把这些值转成能显示的范围内,我的屏是160*128,我先最大幅度显示:
  1. void main(void)
  2. {
  3.         unsigned char i;

  4.         GPIO_Init();
  5.               Lcd_Init();
  6.               LCD_Clear(BLUE); //ÇåÆÁ
  7.               while(1)
  8.         {
  9. //                for(i=0;i<2;i++)
  10. //                {
  11. //                        //LEDS=(1<<i);
  12. //                        P00=1;
  13. //                                                                              delay();
  14. //                                                                              P00=0;
  15. //                                                                                                delay();       
  16. //                }
  17.                                                                            
  18.                                               //LCD_Clear(BLUE); //ÇåÆÁ
  19.                                               ADC_Test();
  20.                                               if(over)
  21.                                                                 {
  22.                                                                         for(i=0;i<160;i++)
  23.                                                                         LCD_DrawPoint(display[i]);
  24.                                                                         POINT_COLOR = BLUE;
  25.                                                                         for(i=0;i<160;i++)
  26.                                                                         LCD_DrawPoint(display[i],i);
  27.                                                                         POINT_COLOR = WHITE;
  28.                                                                         for(i=0;i<160;i++)
  29.                                                                   LCD_DrawPoint(display2[i],i);
  30.                                                                         POINT_COLOR = BLUE;
  31.                                                                         for(i=0;i<160;i++)
  32.                                                                   LCD_DrawPoint(display2[i],i);
  33.                                                                         POINT_COLOR = WHITE;
  34.                                                                        
  35.                                                                 }                                                                       
  36.                                                                
  37.         }


  38. }
运行效果如下:
我直接把ADC输入插到3.3时在最上边显示一条线,下图为我什么也没插(不接地也不接VCC时的显示),可见还是有一点电压的。
QQ图片20200405154706.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部