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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机ADC0832和1602显示电压值 proteus仿真8 k3 q% d0 q4 }

' o2 a" |$ \! L; R, i8 ?% w

: ^3 O/ B6 |6 H2 _; Vproteus仿真关于51单片机ADC0832的下面是原理图:+ q/ w: y$ {/ v) h

3 q) `# J- q! I) ~5 _' z" t! f
) Q" {  [! X0 a# `+ c
8 _) }8 K/ l) S+ V, h( x+ l9 l3 Q

( W. }6 W# ^8 U3 S* O. u单片机源程序:
% F' A" w& R4 C9 U- R+ d#ifndef ADC0832_H
8 U9 a2 d8 B6 `  y#define ADC0832_H& e- o5 Z2 B! |& J8 a* w* X( O
3 ^" ^6 J  `* k$ n* ]' `; }8 W

! W6 ^' b# J! p- `$ h( F/ J: [9 o9 X

( x$ J2 ]$ ~- x" x/ ssbit CS_0832 = P1^4;
) ^5 ~9 g9 f7 k6 c. v% Rsbit CLK_0832 = P1^5;
: D8 v% [2 J* d1 Hsbit DO_0832 = P1^6;        // DI、DO不同时有效,可共用一个接口
& \* ]8 W* `: f* Z) N, @0 @sbit DI_0832 = P1^7;. P" }( K. p( L+ ^3 w  B7 E3 Q
' {) n# Q. h7 p3 C- v- x% z( h; I, ^
9 G% t! O; a1 _$ f9 R

8 n% b0 y' s! ]
% h* ~3 `) l/ k
extern void _nop_ ( void );$ R) U3 i+ f1 Z' l; \( B; i9 L
#define pulse0832() _nop_();_nop_();CLK_0832=1;_nop_();_nop_();CLK_0832=0
" ^( O, D5 K( t) u+ S- ]" k                                 
/ z/ a0 E7 J! a//把模拟电压值转换成8位二进制数并返回7 v& n) C/ C/ c, D
unsigned char read0832()3 g8 f' i, o# X
{  W; G6 Y4 c  J' j* z
        unsigned char i, ch = 0, ch1 = 0;1 j, \) D1 J1 \
        CS_0832=0;                // 片选,DO为高阻态7 `8 M- h, u; s' W9 @3 g8 Q9 R
        
# p; P: B+ V1 c" N2 }: f        DI_0832=1;2 S/ i2 N# M  [% g* e% B5 w- S' a
        " {' x( r9 s  l5 j; Q5 P& B
        // 此处暂停T-SetUp: 250ns (由pulse0832完成)' s3 V& ?5 `$ h; ~
        pulse0832();        // 第一个脉冲,起始位,DI置高. ]% C: O/ k( N$ G
        ; D7 u# _/ v  n; V5 u
        DI_0832=1;
" ]9 d" B$ s+ `4 n        pulse0832();        // 第二个脉冲,DI=1表示双通道单极性输入! L& l! s" ~, q8 ]8 c
        
1 `9 s/ A6 v- Q* Q6 Y% w        DI_0832=1;
; u4 t. S0 \1 w" z        pulse0832();        // 第三个脉冲,DI=1表示选择通道1(CH2)- J" A# R* Q" e/ N  V  d6 c- u& r* s
        
3 }6 e1 J/ t7 j* e# |3 a: P        // 51单片机为准双向IO口:应先写入1再读取
! g9 k4 P0 a6 @! p4 n+ d% d        DI_0832=1;
3 r# @) F2 I0 J  d* h  h4 g) ~        
, ^5 o% k5 o# K3 Y4 d- ?* Q        // MSB FIRST DATA' v3 y: s" c( d, t$ Y
        for(i = 0; i < 8; ++i) {
4 F7 G/ u: P9 P                pulse0832();
8 ^, j- {; q  H                ch <<= 1;
. @8 i( w2 T8 _" t9 [                if(DO_0832==1)
7 C/ ^+ U$ L: f0 a9 k                        ch |= 0x01;5 c  i% K1 h4 t0 U
        }
3 @4 \- ?3 u% I7 ]6 y9 c4 t        ) {7 J0 _, o$ s
        // MSB FIRST输出的最后一位与LSB FIRST输出的第一位是在
( H( W2 [7 j: x  N/ q2 \2 ~4 B        // 同一个时钟下降沿之后,故此处先执行读取,后执行pulse
& j; n) w$ Z( k6 Q        // LSB FIRST DATA. t# c! N, g. o3 z( r" I

. V4 ~6 U& g$ C* {
' N8 j% T- |6 e% F
0 v+ W* F3 d7 P, u+ u

/ B0 D1 F0 ?! L6 u% U1 R2 w2 V  v…………限于本文篇幅 余下代码请从论坛下载附件…………
5 Y5 k3 ~. X8 U) H" p  ?
游客,如果您要查看本帖隐藏内容请回复
3 f% y0 ^8 a0 `+ `: i7 u1 C
1 @5 g5 t5 X/ Y. Q) A! b- Q* }. h
  • TA的每日心情
    开心
    2020-4-13 15:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-4-13 14:58 | 只看该作者
    本帖最后由 1234589 于 2020-4-13 15:00 编辑
    $ V6 f4 B2 U, k; L9 Q2 R0 r( G2 ~) ^0 r$ ?4 L2 J8 l7 O5 p
    谢谢楼主分享

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-5 21:09 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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