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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
数字电压表设计proteus仿真及单片机源代码
4 i% M& _& Y* G  ]8 t$ L  \6 U" x; e  ^# b3 Z" {5 @

# A. a' \+ W9 p  a  d0 t: N4 s单片机源程序:
' _$ h" B1 r0 U1 H. `$ |) \6 H#include <reg52.h>
5 m$ N5 ]/ m0 t3 X) p  ]( ~' C#include <intrins.h>
) i7 T2 T6 g! }+ t1 d4 G" Y! `+ ~9 W: T; v$ T, ^
. x0 I" H4 z. a& j1 l9 S
sbit        EOC=P2^6;) U/ }* m% h8 n% J  x3 b
sbit        START=P2^5;
. e8 m4 Q* l, B5 \% y% F& [sbit        OE=P2^7;7 q! V& o  g6 Q9 h1 ^
sbit        CLK=P2^4;2 ]1 i* I3 k( F
long int    a;$ Q0 e6 u9 g* x
int b,c,d,e,f,g;                                        //定义长度为7的字符串9 h% @. h4 F; E) X1 l+ r6 J  \
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};
" p. n7 e( }2 R void delay_display(unsigned int z)                      //延时子程序% ]  z* b" r- E, y/ x; g7 X1 G( x! }
{
* k! k1 V* b7 F        unsigned int x,y;
; G; r) s7 u) I+ b        for(x=z;x>0;x--)
' m0 [- g: v& b6 }1 b' ]                for(y=110;y>0;y--);# B( u  k# F% c+ f$ K- {( U9 w
}3 `4 s6 A$ [) J9 \  T6 P
void ADC0808()( ]7 b& ^1 |) ?! q# ]# c: j3 T* j* N( c7 A
{
( x' ^# L& z4 d& X, g- ?9 B        if(!EOC) //如果EOC为低电屏,则产生一个脉冲,这个脉冲的下降沿用于启动AD转换
; m9 A3 N$ }6 U' R, x        {! r* h; Z! G( o) J
                START=0;
# f4 \! M. T6 Y+ Z                START=1;
& z6 g+ e0 j2 |0 ^9 @4 l                START=0;  k6 \. B3 o; L8 `/ e
        }. \" N! b3 z4 `4 ]) l: q
        while(!EOC);      //等待AD转换结束
% L. m5 z# B8 Z. V" h: E- S0 hSTART=1;         //转换结束后,再产生一个脉冲,这个脉冲的下降沿用于将EOC置为低电屏,为下一次转换作准备' T! l6 t4 U' z# f3 b
            START=0;! K7 w8 F- m. v, ~( Z/ f
        while(EOC);) L8 l6 }3 i3 L) G
}
$ g$ w0 Y/ S+ \" a1 |void bianma()
# W1 y0 e& G, E' l5 F! o$ E{        
$ b5 \+ r- i+ `- A    START=0;3 ]9 i) j8 ^7 `! b! V) D' `8 A
        ADC0808();/ ]! p% w, R+ d
        a=P1*100;
/ B5 F0 M5 R7 w% ~  T3 [        a=a/51;5 a: y  u( f# }/ G. G' H8 P
}
3 j% Y: K0 m( i; J: m/ cvoid yima()( j: c- ~! o, j: o- `- @) n4 d
{
+ k  u% d3 ?) I4 n                                        //定义整形局域变量
' x0 ~1 _' t: A% ^    b=a/1000;                        //取出千位2 I. ^# I3 J8 b3 h# u
    c=a-b*1000;                      //取出百位、十位、个位  ]( G6 @+ h# t% V6 s& L2 i4 }
    d=c/100;                         //取出百位
9 `3 j6 O1 B/ N; L: P( R1 m    e=c-d*100;                       //取出十位、个位
( Q" b- H- j( z7 ?/ o    f=e/10;                           //取出十位3 p8 P# M0 M* ]* s3 p3 g
    g=e-f*10;                         //取出个位3 V3 j$ ?, t6 q
  a" A( ?* ]8 I$ M1 H
: j. Q- |& I0 m; P; ]: f& A# a, S
}6 D  U: n4 V" `6 a9 T
void display()                       //显示子程序- n8 v# a+ a3 \% u% z. [
{
. I7 ^' ]6 {' C& I    P2 = 0xfe;
0 A7 E/ C4 Y6 R        P0 = table;& R( f8 D$ P" P- c4 H4 w3 [
        delay_display(1);
; g/ G" l6 G) v        
/ _) u( y: K/ z7 Y4 J2 \        P2 = 0xfd;" r. ~6 n' c5 |1 i9 R- \9 y
        P0 = table[d];
3 |% d: L7 m' o" k% c% E        delay_display(1);
! h# S, \$ J9 D4 [2 N/ [        
% h1 T7 i& M8 O# O        P2 = 0xfd;
7 C' C$ y& R' _- r3 K7 O5 k        P0 = table[10];
" S5 ?2 v; g+ {% B: F        delay_display(1);
4 g+ k7 f% L6 ^' z* |
8 j3 d5 C, X7 X+ N
0 |$ v5 |9 d6 [" R8 _
        P2 = 0xfb;
# p% |/ I. u: g* y        P0 = table[f];
/ g1 z2 D0 ?0 ?# k! K# x% V; q        delay_display(1);3 E7 N( H, d* z' ?, V# i
        2 K4 |# X: S: f. _
        P2 = 0xf7;
; M9 b  V! a  E7 j5 P2 }        P0 = table[g];  o* ]4 L7 K, j( L- g
        delay_display(1);% H4 O# N. }2 F
}6 A; W6 O8 l6 [0 ~6 L
void main()
  U" b. P# b( }; N, Q2 e{
! {: K  M* y2 {2 C+ L    EA=1;  C- V" F$ M  ~7 H/ w0 A
        TMOD=0X02;
' D& m/ f2 i% Y1 v) X        TH0=216;
- B; r6 U+ b2 s4 n8 K        TL0=216;
; O3 `3 t+ R+ W; I  G        TR0=1;
8 p0 @* _+ w  [8 {6 Y3 g        ET0=1;% I1 D3 y7 M( C  z7 u
        while(1)
; \) d  A# N6 F0 I  u        {+ j* _7 A) U. F5 G
                bianma();
; h1 T% R) m& O: a# \: C                yima();6 S# h7 I4 V: ~5 E; P5 n
        display();/ k6 @/ H8 Y6 ?( t# U4 d9 R: c1 o
        }
: e. w' V# ]  L% n}$ O8 w' J  r2 {* h$ @8 M
void t0() interrupt 1 using 08 v: f5 F0 {, ?1 T' I7 L( k
{
) X* B3 c, m$ h6 {5 v2 w- V. g    CLK=~CLK;5 Q* o% I7 L# \: O/ z  N& M$ Y9 Q% [
}: |- l6 d" Q' j! O* t9 k

; z, k6 p1 P8 h1 }5 ]5 y$ p# M
游客,如果您要查看本帖隐藏内容请回复
: s$ u  S  y: y4 t8 G

8 }) x4 q+ J" X& [- Z

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 20:50 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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