找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ADC0808采集电压的proteus仿真和代码

[复制链接]
跳转到指定楼层
楼主
内部有程序和仿真图,适合新手学习
ADC0808采集电压仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #include<stdio.h>
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. sbit CLK=P2^0;
  7. sbit ST=P2^1;
  8. sbit EOC=P2^2;
  9. sbit OE=P2^3;
  10. sbit ADDA=P2^5;
  11. sbit ADDB=P2^6;
  12. sbit ADDC=P2^7;
  13. sbit X1=P3^4;
  14. sbit X2=P3^5;
  15. sbit X3=P3^6;
  16. sbit P07=P0^7;
  17. sbit LED=P3^7;
  18. uint temp;
  19. uchar getdata;
  20. uchar b;
  21. uchar s;
  22. uchar g;
  23. uchar code table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  24. void delayus(uchar us){
  25.         uchar i;
  26.         while(us--)
  27.         for(i=0;i<120;i++)       
  28.         ;
  29. }
  30. void init(){
  31.         TMOD=0x21;
  32.         TH0=(65536-200)/256;
  33.         TL0=(65536-200)%256;
  34.         TH1=0XFD;
  35.         TL1=0XFD;
  36.         PCON=0X00;
  37.         SCON=0X50;
  38.         ES=1;
  39.         ET0=1;
  40.         EA=1;
  41.         TR1=1;
  42.         TR0=1;
  43. }
  44. void timer0()interrupt 1
  45. {        TH0=(65535-200)/256;
  46.         TL0=(65535-200)%256;
  47.         CLK=~CLK;
  48. }

  49. void disp(){
  50.                 X1=1;
  51.                 X2=0;
  52.                 X3=0;
  53.                 P0=table[b];
  54.                 P07=0;
  55.                 X1=1;
  56.                 X2=0;
  57.                 X3=0;
  58.                 delayus(5);
  59.                 P0=0XFF;
  60.        
  61.                 P0=table[s];
  62.                 X1=0;
  63.                 X2=1;
  64.                 X3=0;
  65.                 delayus(5);
  66.                 P0=0XFF;

  67.                 P0=table[g];
  68.                 X1=0;
  69.                 X2=0;
  70.                 X3=1;
  71.                 delayus(5);
  72.                 P0=0XFF;
  73. }
  74. void adda(uchar z,uchar x,uchar c){
  75.         ADDA=z;
  76.         ADDB=x;
  77.         ADDC=c;

  78. }
  79. void send(uchar x){
  80.         EA=0;
  81.         SBUF=x;
  82.         while(TI==0);
  83.         TI=0;
  84.         EA=1;
  85. }
  86. void main(){
  87.         P1=0XFF;
  88.         init();
  89.         LED=0;
  90.         P2=0XFF;
  91.         adda(0,0,1);
  92.         while(1){
  93.         ST=0;
  94.         OE=0;
  95.         ST=1;
  96.         ST=0;
  97.         while(EOC==0);
  98.         OE=1;
  99.         getdata=P1;
  100.         send(getdata);
  101.         OE=0;
  102.         temp=getdata*1.0/255*500;
  103.         b=temp/100;
  104.         s=temp/10%10;
  105. ……………………

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

所有资料51hei提供下载:
ADC0808电压采集.zip (39.12 KB, 下载次数: 100)


评分

参与人数 2黑币 +55 收起 理由
qjzyx + 5 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:266116 发表于 2018-1-21 21:13 | 只看该作者
谢谢分享
回复

使用道具 举报

板凳
ID:326025 发表于 2018-5-25 19:51 | 只看该作者
学习一哈
回复

使用道具 举报

地板
ID:571501 发表于 2019-6-25 10:26 | 只看该作者
感谢分享!!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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