找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9280|回复: 13
收起左侧

AVR单片机电压采样 电压表 pcb+仿真+程序+电路图

  [复制链接]
ID:95076 发表于 2015-11-22 14:11 | 显示全部楼层 |阅读模式
AVR单片机电压采样
0.jpg
以下是源码:
  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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的积分奖励!

查看全部评分

回复

使用道具 举报

ID:79544 发表于 2015-11-25 13:23 | 显示全部楼层
感谢分享,值得尊敬!
回复

使用道具 举报

ID:97811 发表于 2015-12-1 08:16 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:70877 发表于 2016-2-14 15:38 | 显示全部楼层

感谢楼主分享。
回复

使用道具 举报

ID:65957 发表于 2017-4-13 13:05 | 显示全部楼层
正是我所需要的。哎,可是没分
回复

使用道具 举报

ID:192020 发表于 2017-10-15 11:45 | 显示全部楼层
admux=0x01是什么意思?01不是adc0吗?求解
回复

使用道具 举报

ID:76408 发表于 2018-1-31 16:17 | 显示全部楼层
感谢分享,我下载保存了。
回复

使用道具 举报

ID:314467 发表于 2018-4-23 14:54 来自手机 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:76408 发表于 2018-5-8 15:27 | 显示全部楼层
谢谢楼主,今天下载保存了。
回复

使用道具 举报

ID:79874 发表于 2018-6-19 21:33 | 显示全部楼层
看看,看看学习下
回复

使用道具 举报

ID:351872 发表于 2018-9-26 16:32 | 显示全部楼层
为什么我编译以后,就不能仿真了,下载原代.hex就行
回复

使用道具 举报

ID:229361 发表于 2018-10-19 16:35 | 显示全部楼层
谢谢楼主分享,已下载了
回复

使用道具 举报

ID:76408 发表于 2019-3-4 08:46 | 显示全部楼层
谢谢楼主,我没有黑币了,下载不了,收藏了。
回复

使用道具 举报

ID:25103 发表于 2019-3-5 18:27 | 显示全部楼层

感谢分享,值得尊敬!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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