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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
数字电压表设计proteus仿真及单片机源代码
/ H" p# p5 e$ c; A. E% [! P0 b" z( `0 s! |. s& m

* ~1 N  n+ D; w+ D单片机源程序:9 L  B2 c$ ^* M
#include <reg52.h>
& \; e8 n3 c: O# l1 @; F' c9 k#include <intrins.h>
8 k& ]  J# g) ^; N* a% o- O
+ L! R8 e# t4 d/ Z" |/ [

8 `0 f! T5 k$ c* Z7 c7 Jsbit        EOC=P2^6;- i. u* i# {/ B
sbit        START=P2^5;0 q% ]3 y" ?4 @+ U. c7 a
sbit        OE=P2^7;
+ e+ w9 x8 s8 }" Q; l2 V+ F, csbit        CLK=P2^4;
* }3 S) G  i  J8 R% ~3 H4 Jlong int    a;0 V( i- d& q, {2 }' }
int b,c,d,e,f,g;                                        //定义长度为7的字符串7 o: x9 c6 t8 H% S& r0 P% s) d6 `
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};/ m* I/ [* b( Q# ?; T2 n  \
void delay_display(unsigned int z)                      //延时子程序
; \8 Q: \/ a; F8 @! P) M{
: i3 ^, Y. p& p        unsigned int x,y;
* a) k6 K& J! a5 E) c: ?        for(x=z;x>0;x--)
& R; c/ V+ F& k2 k0 d- F- {                for(y=110;y>0;y--);
, e) E1 C0 W/ b. M" o}; S1 b8 _0 |; ^* j9 |* W
void ADC0808()/ z0 E' n% u3 z! m$ t- Y, B0 g
{  \' y- [5 g9 L( x$ W; J- |6 C1 z0 w- Z. K) {
        if(!EOC) //如果EOC为低电屏,则产生一个脉冲,这个脉冲的下降沿用于启动AD转换
% W  m4 e, b2 _3 {0 @0 J8 @+ Y2 }5 E        {
) _. v, }- \/ h+ k                START=0;" A/ B$ ]* q# Z: M3 L* u9 Z
                START=1;
4 R6 L! ~$ h3 w                START=0;
7 v. b! l* h, |$ E. Z% I        }' W! J/ d/ X3 s, L0 }
        while(!EOC);      //等待AD转换结束/ q, \: V8 z2 S, L& v
START=1;         //转换结束后,再产生一个脉冲,这个脉冲的下降沿用于将EOC置为低电屏,为下一次转换作准备
& ~* F7 |/ N$ b. @5 ~4 r            START=0;
: R' |4 c) g3 Y# G# M0 [        while(EOC);- r! i* s/ L; A
}1 j  V  B& N8 P3 n- S: q
void bianma(), c6 f7 P- v% y! N+ [- n) _( {
{        
1 p: t" Y$ e: U  B4 O" z2 \    START=0;
: P% }1 R6 [/ B        ADC0808();
8 i' t  @2 d$ d( k. N: E        a=P1*100;
( p8 C7 u( E& A5 h5 M        a=a/51;7 s, `! d) `) v* f
}
# \( P/ G& ~# _" ?+ @void yima()) E9 s% g6 H5 @* F
{% m( t  F: H0 m* w; F
                                        //定义整形局域变量
1 [1 a3 d6 D! F/ H6 X: {; m    b=a/1000;                        //取出千位6 m; A7 S5 |5 ~% z4 g- h1 `
    c=a-b*1000;                      //取出百位、十位、个位" Y7 Y+ ]/ a; {6 M- s
    d=c/100;                         //取出百位6 V- |" |, _9 |  h" W
    e=c-d*100;                       //取出十位、个位# d  n- u* c' v$ [  H
    f=e/10;                           //取出十位
- ^8 _: M6 {" @: z* e! Q4 [. V( [    g=e-f*10;                         //取出个位
! m- Y2 Z" S( @! R* R4 V, v) o( D* v8 C% N. D1 m) Z$ S( Z

! ]0 e) ^3 v3 G' a7 _% g" A* h4 S}# [! c% e  \: e" v$ \! G* U6 \
void display()                       //显示子程序& t! O2 M6 o( ?' R; S' Z6 ~
{
7 C" t0 }3 ^' {5 x9 Q    P2 = 0xfe;) P5 B5 o. _1 _) j8 H3 t! G
        P0 = table;2 J$ J5 o5 j6 O8 X# n) c
        delay_display(1);
" [5 Q  p4 w8 [* Q, D$ a! h        
# v! A& f, r4 i  e- F  M! w) ]        P2 = 0xfd;$ ?% @. R" ~% M& V8 t
        P0 = table[d];+ @" Y' f! H: a! y8 v1 D
        delay_display(1);; S9 O8 {, m* Y* o* y1 D$ D
        2 d2 E. |# j0 S8 O/ ^' l1 D
        P2 = 0xfd;! H0 }: R: W: c
        P0 = table[10];) N$ I! g2 z$ Z* I9 u2 {
        delay_display(1);7 X1 R( u! X# j/ u
: Z: R/ G) i( u5 Z3 ]
: f2 _4 ]9 k5 Q' ~. `! ?) y
        P2 = 0xfb;; c, \: V" ^, X9 ^+ i4 y, l
        P0 = table[f];! Y- A0 J/ A3 y, u
        delay_display(1);6 v; }$ u+ ]: P+ H
        : X' Y- ~" V4 @, z3 P8 J/ p& x# f
        P2 = 0xf7;
$ o, ?& L' u# ]4 d. U$ ]5 t( d        P0 = table[g];' ?+ k: Q5 w+ o& k2 S, M
        delay_display(1);  G$ Z( I  Y; D* S9 A
}
& [' i. {. a+ {6 v4 \- T6 E  dvoid main()
$ r; r! M6 Z+ Y2 F{4 c+ H& ~3 Z4 _2 D6 @
    EA=1;3 m' K, w: x0 j1 o% s, Q! m
        TMOD=0X02;  [* V0 n1 s" ?* J. q, J
        TH0=216;
  g; i0 e8 c/ A8 D$ f4 i% v        TL0=216;
, E$ m5 a9 G& ]* ^! K2 l        TR0=1;
  A- a. l1 S  i6 d2 H- |        ET0=1;4 [& V, _7 x' C# d% s* Q' x0 r
        while(1)
* |% [' T/ d+ E) c) c& {) h        {# P) {# d% y, i0 c* U8 g! w
                bianma();
$ z6 U0 A* K$ u) t0 m( q" E4 Y                yima();
& D- e1 ?* ?- \. t, L& {* k1 W        display();
% L! c$ b1 q* E        }
: H# d3 [# ]0 i: ]  \8 I}
9 t3 |9 m! R  X3 jvoid t0() interrupt 1 using 0
  R9 k' {% L- w% N{
0 J. y3 v, ~- }2 r    CLK=~CLK;* L; p* e/ e* y( B7 k4 l3 F
}3 m8 ~* v+ C0 D6 ^: r+ H* O5 u

2 b, E% v6 ]; }5 t! n. ~
游客,如果您要查看本帖隐藏内容请回复

" W/ [' {3 G  U
# p( m" _' Z, D7 ~7 K5 v! b

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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