找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10734|回复: 20
收起左侧

51单片机ADC0832和1602显示电压值 proteus仿真

  [复制链接]
ID:193566 发表于 2017-4-26 20:35 | 显示全部楼层 |阅读模式
我就来玩玩,proteus仿真关于51单片机ADC0832的下面是原理图:
ZW@AUI)PV8VJ@1Y)I2@M9I5.png
0.png

单片机源程序:
  1. #include <reg52.h>
  2. #include "ADC0832.h"
  3. #include "LCD1602.h"

  4. unsigned char code tab1[] = "CurrentVoltage:";
  5. unsigned char code tab2[] = "    V";

  6. void main()
  7. {
  8.         unsigned char i;
  9.         int v = 0;
  10.         init1602();
  11.        
  12.         write1602_com(0x80);
  13.         for(i = 0; tab1[i]; ++i)
  14.                 write1602_dat(tab1[i]);
  15.        
  16.         write1602_com(0x80 + 0x40);
  17.         for(i = 0; tab2[i]; ++i)
  18.                 write1602_dat(tab2[i]);
  19.        
  20.         while(1) {
  21.                 v = 5.0 * read0832() / 256 * 100;
  22.                 write1602_com(0x80 + 0x40 + 3);
  23.                 write1602_dat('0' + v/100 );
  24.                 write1602_dat('.');
  25.                 write1602_dat('0' + v/10%10 );
  26.                 write1602_dat('0' + v%10 );
  27.         }
  28. }
复制代码

  1. #ifndef ADC0832_H
  2. #define ADC0832_H


  3. sbit CS_0832 = P1^4;
  4. sbit CLK_0832 = P1^5;
  5. sbit DO_0832 = P1^6;        // DI、DO不同时有效,可共用一个接口
  6. sbit DI_0832 = P1^7;


  7. extern void _nop_ ( void );
  8. #define pulse0832() _nop_();_nop_();CLK_0832=1;_nop_();_nop_();CLK_0832=0
  9.                                  
  10. //把模拟电压值转换成8位二进制数并返回
  11. unsigned char read0832()
  12. {
  13.         unsigned char i, ch = 0, ch1 = 0;
  14.         CS_0832=0;                // 片选,DO为高阻态
  15.         
  16.         DI_0832=1;
  17.         
  18.         // 此处暂停T-SetUp: 250ns (由pulse0832完成)
  19.         pulse0832();        // 第一个脉冲,起始位,DI置高
  20.         
  21.         DI_0832=1;
  22.         pulse0832();        // 第二个脉冲,DI=1表示双通道单极性输入
  23.         
  24.         DI_0832=1;
  25.         pulse0832();        // 第三个脉冲,DI=1表示选择通道1(CH2)
  26.         
  27.         // 51单片机为准双向IO口:应先写入1再读取
  28.         DI_0832=1;
  29.         
  30.         // MSB FIRST DATA
  31.         for(i = 0; i < 8; ++i) {
  32.                 pulse0832();
  33.                 ch <<= 1;
  34.                 if(DO_0832==1)
  35.                         ch |= 0x01;
  36.         }
  37.         
  38.         // MSB FIRST输出的最后一位与LSB FIRST输出的第一位是在
  39.         // 同一个时钟下降沿之后,故此处先执行读取,后执行pulse
  40.         // LSB FIRST DATA


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

下载:
51单片机ADC0832和1602显示电压值.zip (1.13 MB, 下载次数: 574)

回复

使用道具 举报

ID:193976 发表于 2017-4-27 09:37 | 显示全部楼层
顶个顶个
回复

使用道具 举报

ID:195141 发表于 2017-5-1 15:11 | 显示全部楼层
资源存在问题
回复

使用道具 举报

ID:202479 发表于 2017-5-19 16:52 | 显示全部楼层
顶一个。。
回复

使用道具 举报

ID:218256 发表于 2017-7-9 14:14 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:270941 发表于 2018-1-3 18:02 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:291698 发表于 2018-3-14 12:01 | 显示全部楼层
谢谢,正好准备做
回复

使用道具 举报

ID:271718 发表于 2018-4-5 21:44 | 显示全部楼层
yas压缩文件和你说的不一样!
回复

使用道具 举报

ID:167522 发表于 2018-4-16 13:20 | 显示全部楼层
正要用,非常感谢楼主,论坛因你更精彩
回复

使用道具 举报

ID:310831 发表于 2018-4-24 19:08 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:389518 发表于 2018-8-28 08:51 | 显示全部楼层
谢楼主分享,论坛因你更精彩
回复

使用道具 举报

ID:389518 发表于 2018-8-28 08:55 | 显示全部楼层
下载了不能用也打不开,楼主,怎么回事啊?
回复

使用道具 举报

ID:430961 发表于 2018-11-28 14:43 | 显示全部楼层
lcd1602第二行无法显示 v 这个单位
回复

使用道具 举报

ID:350104 发表于 2018-12-19 21:30 | 显示全部楼层
非常好的资料  真好用在充电器电路上
回复

使用道具 举报

ID:350104 发表于 2018-12-20 14:57 | 显示全部楼层
aaaaadasd 发表于 2018-11-28 14:43
lcd1602第二行无法显示 v 这个单位

把主函数里面的
unsigned char code tab2[] = "     V";
这个V前面多加几个空格就可以了
回复

使用道具 举报

ID:709595 发表于 2020-3-18 19:30 | 显示全部楼层
非常感谢您的帮助,特别是在ADC0832那个编程。讲的非常详细,我想了10几天的问题终于解决了。
回复

使用道具 举报

ID:695749 发表于 2020-3-18 21:10 | 显示全部楼层
学习中,谢谢分享!
回复

使用道具 举报

ID:729838 发表于 2020-4-15 16:20 | 显示全部楼层
好帖用处很大
回复

使用道具 举报

ID:764536 发表于 2021-5-11 18:53 | 显示全部楼层
太牛了!帮助非常大!
回复

使用道具 举报

ID:764536 发表于 2021-5-11 23:44 | 显示全部楼层
zhouwei0815 发表于 2018-12-20 14:57
把主函数里面的
unsigned char code tab2[] = "     V";
这个V前面多加几个空格就可以了

请问一下如果想让滑动变阻器控制蜂鸣器怎么办
回复

使用道具 举报

ID:998401 发表于 2022-11-21 10:21 | 显示全部楼层
打算做一个51单片机电压检测,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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