找回密码
 立即注册

QQ登录

只需一步,快速开始

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

量程自动切换数字电压表proteus仿真+单片机程序资料

  [复制链接]
跳转到指定楼层
楼主
量程自动切换数字电压表proteus仿真+程序资料

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg52.h>
  2. unsigned char code dispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  3. unsigned char dispbuf[4];
  4. unsigned int i;
  5. unsigned int j;
  6. unsigned int getdata;
  7. unsigned int temp;
  8. unsigned int temp1;
  9. unsigned char count;
  10. unsigned char d;
  11. sbit ST=P3^0;
  12. sbit OE=P3^1;
  13. sbit EOC=P3^2;
  14. sbit CLK=P3^3;
  15. sbit P34=P3^4;
  16. sbit P35=P3^5;
  17. sbit P36=P3^6;
  18. sbit P20=P2^0;
  19. sbit P21=P2^1;
  20. sbit P22=P2^2;
  21. sbit P23=P2^3;
  22. sbit P17=P1^7;
  23. //sbit s3=P2^7;  //位定义,控制模拟开关
  24. sbit s2=P2^6;
  25. sbit s1=P2^5;
  26. #define         _v10 {s1=1;s2=0;}
  27. #define         _v20 {s1=0;s2=1;}


  28. unsigned char m;

  29. void TimeInitial();
  30. void Delay(unsigned int i);

  31. void TimeInitial()
  32. { TMOD=0x10;
  33. TH1=(65536-200)/256;
  34. TL1=(65536-200)%256;
  35. EA=1;
  36. ET1=1;
  37. TR1=1;
  38. }
  39. void Delay(unsigned int i)
  40. {
  41.   unsigned int j;
  42.   for(;i>0;i--)
  43.   {
  44.   for(j=0;j<125;j++)
  45.   {;}
  46.   }
  47. }

  48. void Display()

  49. {
  50. P1=dispbitcode[dispbuf[3]];
  51. P20=0;
  52. P21=1;
  53. P22=1;
  54. P23=1;
  55. Delay(10);
  56. P1=0x00;
  57. P1=dispbitcode[dispbuf[2]];
  58. P17=1;
  59. P20=1;
  60. P21=0;
  61. P22=1;
  62. P23=1;
  63. Delay(10);
  64. P1=0x00;
  65. P1=dispbitcode[dispbuf[1]];
  66. P20=1;
  67. P21=1;
  68. P22=0;
  69. P23=1;
  70. Delay(10);
  71. P1=0x00;
  72. P1=dispbitcode[dispbuf[0]];
  73. P20=1;
  74. P21=1;
  75. P22=1;
  76. P23=0;
  77. Delay(10);
  78. P1=0x00;
  79. }
  80. void main()
  81. {
  82. TimeInitial();
  83. P34=0;
  84. P35=0;
  85. P36=0;
  86. _v20;
  87. m=4;
  88. while(1)
  89. {         
  90.         ST=0;
  91.         OE=0;
  92.         ST=1;
  93.         ST=0;
  94.         while(EOC==0);
  95.         OE=1;
  96.         getdata=P0;
  97.         OE=0;

  98.         if ( s1==0&&s2==1 && getdata<128)
  99.         {        
  100.                 _v10;
  101.                 m=2;
  102.                
  103.              
  104.         }
  105.         else if( s1==1&&s2==0&&         getdata>254)
  106.         {
  107.                 _v20;
  108.                 m=4;

  109.         }
  110.         temp=(getdata*1.0/255)*500*m;
  111. ……………………

  112. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
量程自动切换数字电压表proteus仿真 程序资料.zip (177.91 KB, 下载次数: 74)


评分

参与人数 2黑币 +55 收起 理由
a455914479 + 5 绝世好帖!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:294410 发表于 2018-3-21 16:16 | 只看该作者
楼主请问一下这个量程是多少呢?
量程自动切换是怎样切换?
回复

使用道具 举报

板凳
ID:294410 发表于 2018-3-21 16:41 | 只看该作者
大神量程是多少呢?可切换几个量程?
回复

使用道具 举报

地板
ID:287880 发表于 2018-4-1 21:09 | 只看该作者
Cherish纯紫 发表于 2018-3-21 16:16
楼主请问一下这个量程是多少呢?
量程自动切换是怎样切换?

                     量程为0-10V      
回复

使用道具 举报

5#
ID:258584 发表于 2018-4-12 14:28 | 只看该作者
楼主,这个量程可以扩大不,怎么扩大啊
回复

使用道具 举报

6#
ID:310292 发表于 2018-4-18 11:43 | 只看该作者
急。。0~10v分为了哪几个档位
回复

使用道具 举报

7#
ID:317370 发表于 2018-4-28 02:04 | 只看该作者
大佬,这部分电路起什么作用啊

单片机.PNG (21.89 KB, 下载次数: 51)

单片机.PNG
回复

使用道具 举报

8#
ID:318428 发表于 2018-5-9 15:28 | 只看该作者
仿真能成运行成功么?
回复

使用道具 举报

9#
ID:329910 发表于 2018-5-14 20:50 | 只看该作者
好东西,作业要用到学习学习
回复

使用道具 举报

10#
ID:266550 发表于 2018-5-24 20:49 | 只看该作者
大佬,右下角那一块是干什么用的?还有数码管,它的实物对应的是哪个?或者说用哪个可以代替?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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