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

数字电压表设计proteus仿真及单片机源代码

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
数字电压表设计proteus仿真及单片机源代码! [- _5 ^; O3 d# ~' G1 Q1 G& E

3 ~: s* y' V; C9 q0 X& \

3 Q; L1 R6 b6 \单片机源程序:
- V, c; j9 a8 ?& l: u, I#include <reg52.h>- o/ Y9 _# ~0 l
#include <intrins.h>
' E4 ]) h, X3 w/ Q# g# z, Y3 r
9 C. M. R) ?4 \2 o5 @1 s' C: }
: [( u& ]% ^+ _8 G2 U4 V5 g
sbit        EOC=P2^6;- o+ u( t) \7 T' V% N
sbit        START=P2^5;
+ r7 D, S. g2 Q1 K/ ]sbit        OE=P2^7;
) O# o) w3 W; n) \+ E2 G2 }4 Isbit        CLK=P2^4;
) _! n3 Q% I7 b/ N- e& H+ M, c% e( xlong int    a;
. v6 b2 f+ j6 t: h! Eint b,c,d,e,f,g;                                        //定义长度为7的字符串
/ A2 V: h% H1 R) Z2 J' Nunsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};
2 d  a7 d! y4 j# m, m void delay_display(unsigned int z)                      //延时子程序
  m/ C- }8 M; d8 k- U7 `{. Q7 z: K  Z9 T# f0 D6 `0 G
        unsigned int x,y;
- W8 E3 D- X: O$ J- I        for(x=z;x>0;x--)
$ P1 B2 m2 {) i8 e) B* d                for(y=110;y>0;y--);" s( {# ]# C- L% N, A
}
, y6 j2 h/ X4 avoid ADC0808()
3 O' Z& t- T. m{2 s( Y- a/ a# P8 z- X
        if(!EOC) //如果EOC为低电屏,则产生一个脉冲,这个脉冲的下降沿用于启动AD转换
" s9 C- L& J! }6 ]  Q        {- b, ?9 t& X' G' W6 W6 u
                START=0;9 O# m. z' Q- r" Z+ \8 P
                START=1;
3 V( m5 C' ], m& K7 c                START=0;* d* ]+ @' Q1 c: o) l
        }! g, i! f4 @* ^# a
        while(!EOC);      //等待AD转换结束
3 E* u1 W! Z0 A1 _0 A7 DSTART=1;         //转换结束后,再产生一个脉冲,这个脉冲的下降沿用于将EOC置为低电屏,为下一次转换作准备
! \7 j) Q- y4 }0 \1 f" n7 Y  d            START=0;) m) J* ~+ u3 v2 |1 v3 Q: v, X
        while(EOC);
" R' W$ G$ A' W# _3 L  b5 [}
6 x! f1 J* j1 d7 m3 ~void bianma()
( S* f' j: o4 s: Y, m1 ^{        ; B# `0 K2 n6 w( ~& Y, r& |
    START=0;
1 D- a" v/ c+ O0 ~  r$ t        ADC0808();
; e0 j) o: G. K; F& e( v        a=P1*100;
  t8 L8 J6 |1 R        a=a/51;" n3 M# e% F; B" W7 t
}2 k# e3 l. ?- V$ M' J' y
void yima()
8 y: H. C+ a" O3 X{
7 r  d" t, H) C2 P9 v                                        //定义整形局域变量
- C( u5 G) }$ x1 N/ s9 E) P    b=a/1000;                        //取出千位
) d+ z- Q& q, c; M* O: n    c=a-b*1000;                      //取出百位、十位、个位
1 @* w% f- h( p% ~6 E+ U1 b- h    d=c/100;                         //取出百位7 h/ d2 j7 e0 b) _* m1 G
    e=c-d*100;                       //取出十位、个位
$ V0 s+ Y/ ]9 x  Z) ?+ w$ k0 i    f=e/10;                           //取出十位$ N' X, P5 E( }/ |
    g=e-f*10;                         //取出个位8 d  I+ s, k( q' R4 _

) @" e6 O: r9 [
" C7 P: W5 [" q' T1 t( y9 k
}$ l) y! S! w  E+ K
void display()                       //显示子程序
0 e' H/ p, V" ?' i. c9 T$ n$ C0 V9 B{0 z/ \) Y" N' }6 O0 t' b
    P2 = 0xfe;
' W5 Q* o4 j8 o3 K! w) b' m        P0 = table;
, d7 j) y* Z5 |6 x% {" [! `& A" K% B        delay_display(1);
" u, U$ {% ]0 k% ?: R        
' \8 |) Z" z: [        P2 = 0xfd;
* i) i5 _% o/ r5 M0 V7 n        P0 = table[d];& O( ~$ O. H4 h0 l& N
        delay_display(1);' b/ ?5 d, `& U0 G' H/ G  g% p
        + }/ E) k- @$ ]$ K5 h- O1 Y& \( e
        P2 = 0xfd;
1 w4 c( j7 N+ B$ t* u        P0 = table[10];2 M5 s7 @: F: d" V& H1 U2 u
        delay_display(1);8 ~- t) @! I1 C# {8 m5 M
% c' _+ U( v% F7 ^  q4 v- a1 K
) \3 j! ^  K1 K! z+ \
        P2 = 0xfb;5 }: P* \6 u; n7 z  J: ~' h, ~
        P0 = table[f];+ L9 Z! X! c, R
        delay_display(1);4 `7 y# M0 h  x  \
        + b5 _% |- z5 ?* w7 s' l
        P2 = 0xf7;
! {. }& `- S$ L. Y. J. U2 v        P0 = table[g];, S  ?' m) O- C4 Y1 ]
        delay_display(1);! w" P7 g" z  ^; A1 S8 N
}: X7 U& X8 j; d5 r/ V$ V
void main()( |2 `: ?, a3 h6 k: h% M* j
{# Y  B+ C# G) y1 G2 y
    EA=1;
& C1 r+ X8 w* ]  R        TMOD=0X02;
- l6 h& b( R/ q; P3 |9 F        TH0=216;
# C2 ~) D/ L/ k* a  `- j        TL0=216;7 G9 [% @( J0 }
        TR0=1;& l* ]; y6 s) c- J2 G
        ET0=1;
2 |; o1 F7 \  r9 Z' v2 r        while(1), M5 B$ D/ B/ z, F# a& q
        {, X: V# T9 N4 g% x3 ?5 F1 E
                bianma();
0 N; J2 |- W2 Z2 B% I7 z! q6 ~                yima();
( V2 z- h8 P1 y) s  L        display();
/ c: K$ v1 q1 h% F8 {0 o9 u3 I        }6 i9 ]- G; P8 B2 h
}; j& v7 _6 }: e; M' q
void t0() interrupt 1 using 0" G* N2 e& _; F- w
{
* q+ [9 A+ B/ |  u    CLK=~CLK;  J: r2 C( Q5 F" x( j6 j4 Q
}
2 O9 e& D0 x7 k6 x. |- j/ u6 K8 R6 \- y& f' @8 B
游客,如果您要查看本帖隐藏内容请回复

, {/ a1 x# Q6 {+ F0 m* a
: A8 l2 c' ?( b3 J6 B

该用户从未签到

3#
发表于 2021-3-14 22:28 | 只看该作者
6666666666666666666
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-8 22:54 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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