标题: AVR单片机电压采样 电压表 pcb+仿真+程序+电路图 [打印本页]

作者: huang0620    时间: 2015-11-22 14:11
标题: AVR单片机电压采样 电压表 pcb+仿真+程序+电路图
AVR单片机电压采样

以下是源码:
  1. #include<iom16v.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int


  4. uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. uchar Data[4]={0,0,0,0};

  6. void DelayMs(uint i)  //0.25ms
  7. {uchar j;
  8. for(;i!=0;i--)
  9.   {for(j=250;j!=0;j--) {;}}
  10. }

  11. void Display(uchar *p) //间隔5ms显示
  12. {uchar i,sel=0x01;
  13. for(i=0;i<4;i++)
  14.   {PORTD=sel;
  15.    PORTB=0xff-Table[p[i]];
  16.    DelayMs(10);
  17.    sel=sel<<1;
  18.   }
  19. }

  20. uint ADC_Convert(void)
  21. {uint temp1,temp2;
  22. temp1=(uint)ADCL;
  23. temp2=(uint)ADCH;
  24. temp2=(temp2<<8)+temp1;
  25. return(temp2);
  26. }

  27. void Process(uint i,uchar *p)
  28. {p[0]=i/1000;
  29. i=i%1000;
  30. p[1]=i/100;
  31. i=i%100;
  32. p[2]=i/10;
  33. i=i%10;
  34. p[3]=i;
  35. }

  36. void main(void)
  37. {uint i;
  38. DDRA=0x00;                    //设置A口为不带上拉输入;
  39. PORTA=0x00;
  40. DDRB=0xff;                    //设置B口为推挽1输出;
  41. PORTB=0xff;
  42. DDRD=0xff;                    //设置C口为推挽1输出;
  43. PORTD=0xff;
  44. PORTB=0x00;                   //B口初始化输出1;C口初始化输出0;点亮全部数码管;
  45. PORTD=0xff;
  46. ADMUX=0x01;                   //选择第二通道ADC1;
  47. ADCSR=0xe6;                   //125K转换速率,自由转换模式;启动AD转换器;
  48. DelayMs(3000);                //延时待系统稳定;
  49. while(1)
  50. {//i=ADC_Convert();
  51.         i = (int)((long)ADC_Convert() * 5010 / 1024);        //将获得的AD值转换为电压值,单位为mv
  52.   Process(i,Data);
  53.   Display(Data);
  54. }
  55. }
复制代码


M16_AD转换电压表.zip

102.48 KB, 下载次数: 217, 下载积分: 黑币 -5


作者: 腾飞的龙    时间: 2015-11-25 13:23
感谢分享,值得尊敬!
作者: 数码家园    时间: 2015-12-1 08:16
谢谢分享!
作者: lmds    时间: 2016-2-14 15:38

感谢楼主分享。
作者: tzyjf    时间: 2017-4-13 13:05
正是我所需要的。哎,可是没分
作者: Graves    时间: 2017-10-15 11:45
admux=0x01是什么意思?01不是adc0吗?求解
作者: 成森林    时间: 2018-1-31 16:17
感谢分享,我下载保存了。
作者: gwuyu    时间: 2018-4-23 14:54
感谢分享
作者: 成森林    时间: 2018-5-8 15:27
谢谢楼主,今天下载保存了。
作者: pengyongnet    时间: 2018-6-19 21:33
看看,看看学习下
作者: 5100103    时间: 2018-9-26 16:32
为什么我编译以后,就不能仿真了,下载原代.hex就行
作者: 51单片机1234    时间: 2018-10-19 16:35
谢谢楼主分享,已下载了
作者: 成森林    时间: 2019-3-4 08:46
谢谢楼主,我没有黑币了,下载不了,收藏了。
作者: huaishang    时间: 2019-3-5 18:27

感谢分享,值得尊敬!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1