找回密码
 注册
关于网站域名变更的通知
查看: 696|回复: 3
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-6 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
51单片机ADC0832和1602显示电压值 proteus仿真2 Y) s& @6 K+ F4 S+ o1 ?- |# b

  L7 Z0 G6 v& O8 |- Q7 ^  `4 }* Q  k
" Q; f7 A3 a  E5 i" c) g( @: }. |# j
proteus仿真关于51单片机ADC0832的下面是原理图:
2 p/ t2 ^& y9 A2 {3 ]- _
: J3 D& N' k" F" u

, f, F4 m" x( z- i& k( F5 I6 r% w
0 z4 `/ U7 P7 c7 H( X  C

, G6 z+ B" y2 H" M8 T' f单片机源程序:
0 T- m2 o, q  ^6 B* x#ifndef ADC0832_H, |3 j3 L' i0 u3 c- g/ V4 k2 H7 H1 R- F1 }
#define ADC0832_H
3 p, s2 H% e+ }
  B, |0 D7 J# K
8 P' o5 C: c; I1 D+ t5 ?4 A8 J

% M2 V$ B& V4 C$ n9 L

- M8 o8 d) y/ ~' l1 wsbit CS_0832 = P1^4;$ r( ]& O7 B8 t& S3 F9 s0 `
sbit CLK_0832 = P1^5;
( s/ S) D8 T" ]) `1 I. a) n& fsbit DO_0832 = P1^6;        // DI、DO不同时有效,可共用一个接口
2 |" Z7 V1 Y/ ?' _; r$ Usbit DI_0832 = P1^7;6 i% O9 O% @, [, r2 z
" E, c7 w) L5 c: p9 \

- `7 U% |! P$ I3 D
. f- r  E3 Z' v8 @/ _4 G

) D# S2 H3 U, G3 E4 a+ Nextern void _nop_ ( void );
2 n0 a0 C* ?& x- o- ?#define pulse0832() _nop_();_nop_();CLK_0832=1;_nop_();_nop_();CLK_0832=0
" T# q3 b' R8 ]( B5 u& J                                  6 G' A- u& ^" {0 b+ H
//把模拟电压值转换成8位二进制数并返回
" e1 ]2 f9 E% e/ J1 eunsigned char read0832()
( B- g  k3 T% M1 {2 u{
5 [, G, |3 R9 B. D5 r        unsigned char i, ch = 0, ch1 = 0;* I* @9 _' o8 V
        CS_0832=0;                // 片选,DO为高阻态
6 W- z- {3 `8 x- H# l  f% W        
0 }& q& @3 o4 a+ i( z        DI_0832=1;
6 B; A6 i4 T; F; e- }0 r$ z        
6 T% P# O0 _/ h0 w        // 此处暂停T-SetUp: 250ns (由pulse0832完成)6 Z4 I* j; T+ k) E. ]8 `
        pulse0832();        // 第一个脉冲,起始位,DI置高
+ T4 @1 w0 \8 l+ ^2 g8 h! \        
9 t$ Y, z  N* \& n  j9 C4 {  X" X        DI_0832=1;
# }. W( J& s( g' B: z1 N0 u: [        pulse0832();        // 第二个脉冲,DI=1表示双通道单极性输入& p' G9 }$ z# W% {( E5 F  u; E
        
; G! B, J1 ]6 o$ Y7 d: A        DI_0832=1;
3 H' e" z/ o& z7 r, W& n; z; z: a        pulse0832();        // 第三个脉冲,DI=1表示选择通道1(CH2)
; t7 i9 D5 U5 v. G. [' Y% ~        & q+ M6 |% J: H5 Y# Q
        // 51单片机为准双向IO口:应先写入1再读取
+ A0 q2 x4 s9 D  Q* r        DI_0832=1;
! H' i1 b( C9 C4 X3 [* x' t+ N+ ^. G/ G        
: q  N9 d  A  S( V        // MSB FIRST DATA9 U8 k' O" j+ t; \5 V2 N% e/ e& F6 I
        for(i = 0; i < 8; ++i) {
* Q& M% A5 y1 U+ a                pulse0832();
0 m3 `" _! |7 v+ H8 m- j                ch <<= 1;3 E: v' ?+ M% Y) a& K6 a
                if(DO_0832==1)
8 z' l1 Q' `) U+ M/ U' |                        ch |= 0x01;& h1 J; P# U8 X) ?% a. Z; H$ |
        }+ h# d4 q* z8 Y. z$ U$ z
        
7 w) d! w( T9 P7 C2 ~        // MSB FIRST输出的最后一位与LSB FIRST输出的第一位是在5 f+ f" D/ d' K6 c
        // 同一个时钟下降沿之后,故此处先执行读取,后执行pulse
' g" T. e9 C8 `: q9 V: l        // LSB FIRST DATA3 ^4 n8 z: C8 `7 B
: @, G6 ]4 ]7 i" b0 R4 W

* Q/ G3 F2 k, t# V, R5 ]; R; w7 f' t

0 P2 }' h' C- z…………限于本文篇幅 余下代码请从论坛下载附件…………  }5 R2 @( ~- B6 {: @8 _) }
游客,如果您要查看本帖隐藏内容请回复
2 b: X* E6 R, Q: R! @& G# U+ s/ j. W; K

" q9 o5 n$ ?: D; d3 a  ~. f8 S9 }
  • TA的每日心情
    开心
    2020-4-13 15:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-4-13 14:58 | 只看该作者
    本帖最后由 1234589 于 2020-4-13 15:00 编辑
    6 E  s0 V1 j6 p6 ~) A" N+ e; U' j/ |1 t3 K
    谢谢楼主分享

    该用户从未签到

    4#
    发表于 2021-2-20 23:56 | 只看该作者
    谢谢分享  收藏
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 11:16 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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