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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
数字电压表设计proteus仿真及单片机源代码
( v% `6 V3 j9 A) ]) C! Z) K
) J/ r1 i2 k) V- P

; d" G4 I# w) S4 k单片机源程序:
3 R+ H/ M/ v- u( a4 S#include <reg52.h>0 T0 y% A' W2 @) f& `; R
#include <intrins.h>3 G) {4 o4 K5 f2 e, ?+ i) s
9 ?0 x+ b( t" F6 K
: h, M1 J" [! M0 `2 b# q3 {) X% F9 N% K
sbit        EOC=P2^6;, O  _4 j8 G4 g3 V! f9 A; ^7 f
sbit        START=P2^5;
7 E! V$ h- m5 s7 B! R# asbit        OE=P2^7;
# u: ^) [7 k6 z% esbit        CLK=P2^4;
3 `5 P  ^& ^6 D/ S. n5 e  U3 vlong int    a;
* u9 }) Z& z9 u1 Zint b,c,d,e,f,g;                                        //定义长度为7的字符串' t, m. Y+ R' B/ g' L/ x
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};. y7 b0 L5 ?3 H4 Y/ E/ ?) X
void delay_display(unsigned int z)                      //延时子程序
* T+ s0 a- p: O" V1 j{* J, H: L' t% y
        unsigned int x,y;
6 s9 u" z/ w1 |1 P. f% h        for(x=z;x>0;x--)3 t, C# N2 K7 y6 v; y
                for(y=110;y>0;y--);$ {1 B: g+ Q7 {1 Q  q
}
2 O2 Z8 `& Z5 Dvoid ADC0808()# ~6 X0 b9 O$ ?* p; R, o/ d
{
8 z/ J* G3 z1 t        if(!EOC) //如果EOC为低电屏,则产生一个脉冲,这个脉冲的下降沿用于启动AD转换  ]+ T  I" ^! u1 G) j
        {
' S) P6 G! y5 Y! X1 f* d) u                START=0;4 f6 d8 f/ ^1 q, [: M% v
                START=1;
# S5 P, n' v" e+ ]  l4 c8 j; E3 \4 W                START=0;
- m- A* E! m/ u3 P  q5 i, Y        }) L* p/ D. C  h9 g  C$ ^1 L( L8 Q
        while(!EOC);      //等待AD转换结束
! i+ P/ ?3 y9 P* x9 z3 J1 a; w* FSTART=1;         //转换结束后,再产生一个脉冲,这个脉冲的下降沿用于将EOC置为低电屏,为下一次转换作准备
" {7 h" E/ G) B  r0 G            START=0;
9 a2 X( C& V7 t; F+ Z9 p        while(EOC);, A0 e7 k% C( c- m; N! U  J+ r# p
}  T0 y6 _2 `; _1 ~
void bianma(); L2 y" I0 K/ L- c& J* L, {9 c2 K% U
{        
& d3 @' V: H1 `9 u$ i# ]- S4 x! Z6 R    START=0;
3 R- O% S0 u( h$ X! K        ADC0808();* k( C) N& Q+ z+ I+ V# ^9 ?
        a=P1*100;! P( Y, _# q& N* [+ R. J( D9 R& X9 ^
        a=a/51;
9 }" ?# a6 _4 r. b- w3 ^8 L' Y}
7 K* r- f3 T& u7 j: f1 Bvoid yima()
, \) B8 x( X! E: O3 X  k& R, @! K{' Q. U7 D: O, O
                                        //定义整形局域变量
1 L  n$ }  K9 `' {8 ?  n& T8 k    b=a/1000;                        //取出千位! E# }" S0 y8 Z% ~; b& p" F+ u
    c=a-b*1000;                      //取出百位、十位、个位- n7 V5 H% m6 y$ ?- R" l
    d=c/100;                         //取出百位
$ O- T# K: \4 K; u  x6 W    e=c-d*100;                       //取出十位、个位
7 @+ p& @* R, y% l- g' p" w    f=e/10;                           //取出十位! O, Y/ W0 l! N' S7 X; l3 V. m6 n
    g=e-f*10;                         //取出个位
8 e" U6 _# }7 a* O! V4 `6 L
6 |0 [( J; g- m! z. ]9 |$ h

( L) _* O, C) R) D. v8 d6 e, E& H& g}
" p& T4 c8 \3 }% pvoid display()                       //显示子程序8 m. ]& \- h& N9 g+ h% g3 N
{
$ y' i! t0 e0 W$ ~    P2 = 0xfe;
8 Y- s- J+ Z, |5 P        P0 = table;
. D: |! S2 }( q: S; S6 H        delay_display(1);( }/ y% I1 s) h. O  ]* R  S9 K
        
1 Q2 o0 h7 k/ [' y; T        P2 = 0xfd;
( O2 a* J2 j* A: c3 Q8 k        P0 = table[d];
( [) w9 q6 v$ p, I0 ]3 u; N        delay_display(1);" t9 A* E$ I! q4 J  ^! s+ M
        : [- l1 U* e. m' {  k
        P2 = 0xfd;
  r4 ]( R5 Q* ~5 G* C        P0 = table[10];# A, E7 H% D( u) |+ B
        delay_display(1);; u4 e! Y: u6 j+ Y" H
  z$ M( q$ F8 p

9 g' Z6 x) m6 S! @' G# m4 R        P2 = 0xfb;
7 y+ n+ Y" Z1 X# [1 q        P0 = table[f];
$ I2 U8 E5 A7 R, Y# G        delay_display(1);( ^: Y; M1 v6 M$ }: A% p/ P, O
        
  q+ C5 S% T$ [, f        P2 = 0xf7;
5 E8 F. F% t1 h# O        P0 = table[g];
6 [* b9 q3 x* m, `: O) n2 [        delay_display(1);/ F& _- A; w8 K
}
5 R+ y( e- |/ K  ^7 M- Z" Vvoid main()
9 B/ j/ K$ z/ p! n- n{
& P8 ~& @+ W; m    EA=1;; z' H" R3 ~: H" d. q
        TMOD=0X02;
( |# V- ~& G0 |4 a; G        TH0=216;
5 O& k' Q) P, K        TL0=216;
2 r0 }* ~+ q$ Z* @        TR0=1;
2 s: x* h* _+ q3 X        ET0=1;7 K5 N6 U( W/ p/ {7 f% u( p- y  S
        while(1)1 e5 {1 _# |3 a# n7 B
        {; m! R, a4 Z. D3 G  R
                bianma();. Q4 @5 ]/ f# P$ ]$ N2 K, x: P
                yima();
) m% r+ k" M. J+ @; |! J9 b. o* O        display();6 ^3 d' n9 P# s( {
        }) {/ b( z# c6 Y7 F7 O
}  ^* s8 f) j. v/ ?, C# d9 g3 Z. o
void t0() interrupt 1 using 04 ?7 ?, g% _3 i3 l
{1 v/ \# r- ]: J) X. ]- {2 T
    CLK=~CLK;. x% x0 K1 X/ w5 Z: `5 X* G
}
2 R! t5 l5 V1 B% j4 w# i
0 e& q0 C3 l( H4 z
游客,如果您要查看本帖隐藏内容请回复

: v! G4 L2 }2 `0 ^9 n
# K$ b# a* a5 {

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 14:46 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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