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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
数字电压表设计proteus仿真及单片机源代码- `0 P. T) q! F* i
- O9 s$ a* u1 p) D1 }/ G
( S0 h/ O  M7 a, U
单片机源程序:# ^* @& y+ m4 ~& J7 F
#include <reg52.h>
+ \% m, `$ J$ P8 g( E, E' @# l2 T#include <intrins.h>
9 B( Q/ K" C& e+ d/ v* X5 ]! P: t7 O! |! v
) j# E3 b) j) h6 ~9 k, j
sbit        EOC=P2^6;% U7 g7 Z7 Z: U. s
sbit        START=P2^5;& R5 I' {& W( X
sbit        OE=P2^7;+ V1 e8 E( t( B) u$ V& d* i% \
sbit        CLK=P2^4;2 ?- U( _1 B4 g" _9 S
long int    a;
* a3 ^3 U. P! R; C: Xint b,c,d,e,f,g;                                        //定义长度为7的字符串
- G9 B( Q7 D! ^) j+ |9 _4 ]unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};- w$ U3 M& P+ G
void delay_display(unsigned int z)                      //延时子程序4 o8 _% _3 B8 F5 C+ Z; C. G
{* W( L8 ]8 J% o; \; S+ E
        unsigned int x,y;
, d0 _' i5 S/ ~* h7 L! d% F% i        for(x=z;x>0;x--)5 o, S* Y! r- P1 i) }$ b
                for(y=110;y>0;y--);" d4 D$ F. t6 `- i* H, _
}
# ~8 H' G# ?4 R+ vvoid ADC0808()
: c. K7 }' i( I{0 y; [- Q+ I& Y( d2 J: e* j) _
        if(!EOC) //如果EOC为低电屏,则产生一个脉冲,这个脉冲的下降沿用于启动AD转换
" t6 h9 @* ?. y        {
/ N9 R  f4 U( W  x' W1 b                START=0;; W: I6 J) |6 q  P0 A6 Y6 @
                START=1;- ^# l" f. y7 E& @: e
                START=0;9 x/ V/ \4 E4 k$ S) ^
        }4 Q% Q5 n$ D' Y9 W  f$ U5 c" m
        while(!EOC);      //等待AD转换结束
# E& }) i- G5 M8 o# |9 v$ }START=1;         //转换结束后,再产生一个脉冲,这个脉冲的下降沿用于将EOC置为低电屏,为下一次转换作准备
' q6 A/ k" N7 ]  z/ {( d            START=0;5 |# F* r, _  y' N7 {0 c: [, K
        while(EOC);
+ R) o3 s9 @, E}2 O! X5 C. \3 D/ F7 Z: m; e  E
void bianma()
9 E/ z$ }5 d4 \2 c{        
3 b- b) S" X% J: Y5 x    START=0;
$ B8 N% W8 D6 D% F+ N9 X, `  X$ J: f        ADC0808();. y' |+ R1 G3 {0 v/ ]/ e
        a=P1*100;9 N4 P$ n2 o- D: j; @- P
        a=a/51;: m8 Z2 G2 R/ _+ v1 p% d$ U
}
2 g0 I4 ?/ [3 L1 }0 i. f4 Cvoid yima()
, Z6 m0 J! C9 x6 ^6 I{+ r6 a2 Z2 ?# C) I. s. n1 @3 O
                                        //定义整形局域变量
4 Y8 J" W; H; V+ {% q% M. M    b=a/1000;                        //取出千位
) O/ O* X  U+ Y' t( t    c=a-b*1000;                      //取出百位、十位、个位
# u% N* k1 k: T% L2 S1 M& B! `; y    d=c/100;                         //取出百位& D$ X& l& Q6 _. p9 R
    e=c-d*100;                       //取出十位、个位
6 L; {/ Z% L: h) o% y, k9 v- m+ T% b    f=e/10;                           //取出十位5 }) c; g1 b7 e- v
    g=e-f*10;                         //取出个位5 `% t& M. \' Z" L* B3 N9 n
2 |8 r& \. }0 L- [- p

& M7 C6 K+ N1 U% k7 u% V! u}3 c7 I. D: @& Y3 ?
void display()                       //显示子程序' B  |$ V* `% g3 ^" d# g' o) ~
{! `. X( e; W. T5 A
    P2 = 0xfe;
# ]0 V3 N: ]0 k$ O% j" T# o        P0 = table;
$ M# |! s: h; v/ ?        delay_display(1);
  j) d# l" P0 g+ E) J; O8 V        
1 q, u3 d8 \; w( F* Q        P2 = 0xfd;
1 d+ U' P9 s  t/ b& R2 _. f        P0 = table[d];
6 {- p- z9 c; f7 K5 d        delay_display(1);  m3 R# r' a8 R; e
        # E5 t! Q# t. A& Q- u# k  E
        P2 = 0xfd;
( E) z1 o! I, [6 L        P0 = table[10];( ^6 I% E" l; F0 Y, T
        delay_display(1);
# y. D% A  H1 b0 ?$ v$ B
' @  N7 {% V/ l! |
; r/ R" X% c0 _" v
        P2 = 0xfb;
( z, e/ f! d* \5 p& ^, k% ~* R/ s        P0 = table[f];
! a4 X; ?7 l: c+ W( b9 v        delay_display(1);% u6 _( |: }6 w! N# {
        
& d+ L* N8 Y! B- L( R5 C7 d        P2 = 0xf7;4 ]0 X; Q5 v4 `) Z& O" A3 y
        P0 = table[g];
* X: p4 l+ x$ C, j# Q+ J        delay_display(1);
9 w/ H8 n/ d0 W, ?" U8 h( Y}
! M0 M9 b/ Z" F7 |9 `- ^" U, hvoid main()/ y" I8 O, c9 e" p. ]
{
; w; @5 W0 y- i' X    EA=1;9 A5 P- y7 j$ s5 F
        TMOD=0X02;
5 G" B# s* P3 [+ X8 ]        TH0=216;
/ n# Y1 e) f6 R9 z) _- O& f# R        TL0=216;; O: v! W3 G* R% C
        TR0=1;
1 ?6 G* c; n6 f4 n# u        ET0=1;
# _; r0 S$ d0 |        while(1)
' u" Z! B4 Z) U        {7 f% p# w% p7 d8 w3 P
                bianma();  x4 z9 z- h7 O2 b  d
                yima();
8 F) n0 E9 ~( W6 _) j2 t9 g  }/ ^) K# O        display();+ i1 K) q! @+ d, `; g+ }
        }5 Y, W" x2 \" u# y( x& Q! |
}/ F2 F5 J* w; k8 T8 ^( ~  [
void t0() interrupt 1 using 0" f  H- V8 t# T0 T( a, E. q
{
7 ^( e: {7 h. l  `$ g9 g4 U+ C& k    CLK=~CLK;' L& B* Y( k4 d! ]* c4 e/ W/ b2 K) b) u7 t
}
: r  ~. {$ _- r: Z8 {
6 M( d8 M6 B" K$ B
游客,如果您要查看本帖隐藏内容请回复
: F7 a& Q5 N! E

$ K: F0 }/ K! S# N$ L  }) _; q0 x

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-11 22:03 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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