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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机ADC0832和1602显示电压值 proteus仿真
8 Y1 |5 \) e4 ^- d3 D7 [/ E" K( n. V$ b# N3 w

' \2 L/ G* z0 K7 }+ k0 z* }proteus仿真关于51单片机ADC0832的下面是原理图:( E3 U/ t7 j8 [5 z

; J, p8 ~% D" `* N  A) y

5 @6 V6 K) a; a+ `/ y* g
. d4 r6 O* ^9 }9 A, ]

/ T, v8 O4 A' w单片机源程序:, \+ A, _3 Q$ R4 O8 _0 t
#ifndef ADC0832_H6 F3 p$ U4 ^3 N( P$ M9 m/ M- D
#define ADC0832_H3 q" k$ U/ C1 D8 v, i) j, v
2 T9 p/ n5 [0 M% v  h1 f

; t6 g; k) H$ J; e: I% {
" ^8 t6 P$ B- o7 u
; I5 l; y4 |+ b0 @* Y
sbit CS_0832 = P1^4;5 o% C7 h4 o2 S5 S3 H3 ^) p8 \
sbit CLK_0832 = P1^5;
: f" Y' ?4 b5 ?0 v% z3 }sbit DO_0832 = P1^6;        // DI、DO不同时有效,可共用一个接口: |5 O* e' ~' P1 G1 ^+ y1 {
sbit DI_0832 = P1^7;' s# W* J6 A: E' ~3 H

& Z4 ]3 T# B5 S4 W

. _/ e5 V  @. e3 b
8 i$ k5 y: L8 t! D% S  X1 n+ i
# S" r/ a2 B& {5 O3 y
extern void _nop_ ( void );/ ]* I% E0 ^1 Q: Z  l0 Y$ d
#define pulse0832() _nop_();_nop_();CLK_0832=1;_nop_();_nop_();CLK_0832=0% z$ Y1 T& f' L
                                 
: z9 |# X: X* ], Z7 a//把模拟电压值转换成8位二进制数并返回. {$ K0 W8 \' x' x. c  V  J
unsigned char read0832()8 Q3 \: y7 G& {- d
{* h5 J7 j  V9 O5 E2 V, U& R, c
        unsigned char i, ch = 0, ch1 = 0;
: j6 x7 t" _% y" n        CS_0832=0;                // 片选,DO为高阻态
6 H( j9 I& {+ U        0 F6 J) \: e  Z! u# I( W
        DI_0832=1;
* N) q1 l& L  z* z- O2 s% D" Y; f9 ~        
# y2 ~6 h& `  A0 u        // 此处暂停T-SetUp: 250ns (由pulse0832完成)5 x$ f5 Q  Z; R
        pulse0832();        // 第一个脉冲,起始位,DI置高: N, ]2 Q1 j9 w  t2 d: E
        
5 E" j* H# M" `5 p+ F2 F# q; q# y        DI_0832=1;
& R6 X" \0 y5 g. a/ t) _4 ^& o2 x        pulse0832();        // 第二个脉冲,DI=1表示双通道单极性输入% p; b0 R' V: g, _6 v) [
        , V4 I% e0 \! y! T+ V
        DI_0832=1;3 W! U2 f& I6 j# Q
        pulse0832();        // 第三个脉冲,DI=1表示选择通道1(CH2)1 N+ Q% x' k' l
        
1 l0 _0 S$ C1 C" s; B/ c. U1 A        // 51单片机为准双向IO口:应先写入1再读取6 c0 c' _  m+ s; D9 c
        DI_0832=1;
" L* G* V6 J( S& V, T/ D$ \        
8 t0 u4 T( J5 }: Q' H0 Z* j/ x/ B        // MSB FIRST DATA/ o5 E0 p8 n. U) u6 q0 C6 ?
        for(i = 0; i < 8; ++i) {
5 m/ [! ?9 [& N5 k8 O2 x                pulse0832();
6 q* h. d1 M0 q; N0 s' ~+ {                ch <<= 1;, N+ z3 b8 H$ f4 v1 T# `
                if(DO_0832==1)
% u9 o$ q# v( E" r+ R% m+ i3 t/ e1 H8 P                        ch |= 0x01;; r! \4 _4 B3 A& a- t5 f1 K
        }
+ L7 F! a( z; V3 T2 ^7 S! A        
$ x+ a: y  k. f3 G% ?& n: y        // MSB FIRST输出的最后一位与LSB FIRST输出的第一位是在
* |' G1 v( S8 F9 `+ L" {  A; \! b        // 同一个时钟下降沿之后,故此处先执行读取,后执行pulse
$ y( x/ L8 q( R        // LSB FIRST DATA
+ m! X0 r" S( O" d- s3 e" X9 |1 i# A& K
0 `5 Z9 X% o: {. h6 Z1 j

' W) Z/ @4 ?/ t* w& k9 }. B
/ ]+ ~; c& E0 H4 f- }4 T
…………限于本文篇幅 余下代码请从论坛下载附件…………
9 y# L; C) ]+ ^* y' S5 u0 E' n4 b
游客,如果您要查看本帖隐藏内容请回复
. C; g2 n' h+ F1 t! A5 g

; T: U& s4 U. ?! P1 i* N& Z
  • TA的每日心情
    开心
    2020-4-13 15:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-4-13 14:58 | 只看该作者
    本帖最后由 1234589 于 2020-4-13 15:00 编辑
    3 F: s7 d$ u2 e9 n% g& }* @" e8 r+ I8 l. K
    谢谢楼主分享

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-19 10:53 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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