找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ADC0809数字电压表 带PROTEUS仿真和程序

[复制链接]
跳转到指定楼层
楼主
用51单片机实现的ADC0809数字电压表的PROTEUS仿真图:


本实例为AD转换,运用AD芯片将电压模拟量转换成数字量,然后显示在数码管上。

ADC0809数字电压表51单片机程序:
  1. #include<reg52.h>
  2. #include"common.h"
  3. #include"delay.h"

  4. uint8 smg_du[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  5. sbit oe = P1^0;                        //输出使能
  6. sbit eoc = P1^1;                //结束转换
  7. sbit st = P1^2;                        //开始信号
  8. sbit clk = P1^3;                //时钟信号

  9. void smg_display(uint8 dat)
  10. {
  11.         uint8 i;
  12.         dat = (uint16)dat * 50 / 255;
  13.         for(i=0;i<3;i++)
  14.         {
  15.                 P0 = 0x00;
  16.                 switch(i)
  17.                 {
  18.                         case 0:
  19.                                 P0 = smg_du[dat%10];
  20.                                 P2 = 0xf7;
  21.                                 break;
  22.                         case 1:
  23.                                 P0 = smg_du[dat/10%10] + 0x80;
  24.                                 P2 = 0xfb;
  25.                                 break;
  26.                         case 2:
  27.                                 P0 = smg_du[dat/100];
  28.                                 P2 = 0xfd;
  29.                                 break;
  30.                 }
  31.                 delay1ms(5);
  32.         }
  33. }

  34. void main()
  35. {
  36.         TMOD = 0x02;  //定时器中断方式2 自动重装8位定时器
  37.         TH0 = 0;                        //定时256us
  38.         TL0 = 0;
  39.         EA = 1;
  40.         ET0 = 1;
  41.         TR0 = 1;
  42.         P1 = 0x3f;    //通道3
  43.         while(1)
  44.         {
  45.                 st = 0;
  46.                 st = 1;
  47.                 st = 0; //开始转换标志
  48.                 while(!eoc ); //等待转换完成
  49.                 oe = 1;
  50.                 smg_display(P3);
  51.                 oe = 0;
  52.         }
  53. }

  54. void timer0() interrupt 1
  55. {
  56.         clk = ~clk;
  57. }
复制代码



ADC0809数字电压表全部资料下载: 19 ADC0809模数转换与显示电压.rar (48.42 KB, 下载次数: 168)

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:775876 发表于 2020-6-11 10:06 | 只看该作者
厉害厉害0.0.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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