找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9161|回复: 13
打印 上一主题 下一主题
收起左侧

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

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:79544 发表于 2015-11-25 13:23 | 只看该作者
感谢分享,值得尊敬!
回复

使用道具 举报

板凳
ID:97811 发表于 2015-12-1 08:16 | 只看该作者
谢谢分享!
回复

使用道具 举报

地板
ID:70877 发表于 2016-2-14 15:38 | 只看该作者

感谢楼主分享。
回复

使用道具 举报

5#
ID:65957 发表于 2017-4-13 13:05 | 只看该作者
正是我所需要的。哎,可是没分
回复

使用道具 举报

6#
ID:192020 发表于 2017-10-15 11:45 | 只看该作者
admux=0x01是什么意思?01不是adc0吗?求解
回复

使用道具 举报

7#
ID:76408 发表于 2018-1-31 16:17 | 只看该作者
感谢分享,我下载保存了。
回复

使用道具 举报

8#
ID:314467 发表于 2018-4-23 14:54 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

9#
ID:76408 发表于 2018-5-8 15:27 | 只看该作者
谢谢楼主,今天下载保存了。
回复

使用道具 举报

10#
ID:79874 发表于 2018-6-19 21:33 | 只看该作者
看看,看看学习下
回复

使用道具 举报

11#
ID:351872 发表于 2018-9-26 16:32 | 只看该作者
为什么我编译以后,就不能仿真了,下载原代.hex就行
回复

使用道具 举报

12#
ID:229361 发表于 2018-10-19 16:35 | 只看该作者
谢谢楼主分享,已下载了
回复

使用道具 举报

13#
ID:76408 发表于 2019-3-4 08:46 | 只看该作者
谢谢楼主,我没有黑币了,下载不了,收藏了。
回复

使用道具 举报

14#
ID:25103 发表于 2019-3-5 18:27 | 只看该作者

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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