|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADC0809模数转换与显示仿真
1 n: Z# c/ B$ d. a% K5 G. S7 |% I, ^+ O& q9 O
; M( B! r- N2 t( \+ ]1 J
; v- N8 ]* L7 N3 Z/*************** writer:shopping.w ******************/
2 {2 @" Z. y! J+ V' o#include <reg52.h> V( S/ Q& x' v
#define uint unsigned int# O& j" f) }' f
#define uchar unsigned char
0 ^6 Q) X/ b# S, _) y/ \& O% G: ~# B8 \& q
uchar code LEDData[]=! E$ B. j8 X4 R2 J8 f( g7 A
{
. G1 W* J. i7 m* L3 L 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f7 u! ]+ G: K8 d$ d9 t5 Y! i
};
2 e- f7 s6 ]. k2 E- b9 c3 Hsbit OE = P1^0;
* f, b! S% y( v9 ysbit EOC = P1^1;3 ]2 M( J& M8 e
sbit ST = P1^2;. \7 X/ A) E3 c* w7 n& q
sbit CLK = P1^3;* l2 N% X# e3 q& b! z
3 a/ g0 T5 ?) D& N
void DelayMS(uint ms)
, g7 h2 g2 b3 t; C8 ]! g) v{
E E& O: m8 x6 C0 z0 w uchar i;4 R- _4 R) i8 K
while(ms--) J7 ^0 C6 K# G/ H6 ^( q2 V2 E
{4 ]& B! s0 M7 {8 l1 x- K
for(i=0;i<120;i++);
7 }+ h/ X, \3 O' I }4 u0 x* Z+ A- i. E5 u
}
0 k& e/ e5 ^3 p, @$ `! e: |7 \* m ~9 q) S4 Q! m) i( s
void Display_Result(uchar d)
( @, B5 r. u9 j: U{- Y8 C8 ~+ t) C& k1 O
P2 = 0xf7;
% w: F$ R* K5 }' U( c5 B) N4 c! a5 T% } P0 = LEDData[d%10];/ q) A' D3 {( D2 q2 ~
DelayMS(5);: ^9 `4 T9 s) b" V% r
P2 = 0xfb;! p9 f7 F& R" @1 S/ Z" ^+ X
P0 = LEDData[d%100/10];
/ W# Z2 A5 V' y0 }7 \6 \7 v DelayMS(5);
% G* m2 _- L4 A" a. i7 m4 }% D P2 = 0xfd;. G: T/ n" d/ N8 x% y
P0 = LEDData[d/100];
* l! B* G. C/ O; d$ q DelayMS(5);
6 Z# k% Y/ j6 B% r3 e}- N; I: B. A+ G
; ?6 B; ^$ }9 P: E$ |. ovoid main() d# s7 ~0 j3 n4 Z {
{" o1 j: n0 \& m3 A- D
TMOD = 0x02; //设定定时器0为工作方式2
8 F; O1 ^( a: x3 v TH0 = 0x14; //给定时器装载初值
& F8 j7 g- q+ Y* D6 J- _ TL0 = 0x00;
9 K; N* l4 Q4 ?( {3 V! y IE = 0x82; //中断控制寄存器,开总中断,开定时器0中断源
! {, g5 `$ o3 b* O2 K0 u4 ? TR0 = 1; //打开计时器0
. Q2 w3 i* U6 v6 C P1 = 0x3f; //初始控制信号
! L7 S$ u M6 Z, i. Z" [ J8 c4 x while(1)
; R& z; \# J: |1 v& i5 x1 Z {0 M! i7 k R9 i5 S& N1 m( W
ST = 0;
* U6 a* L+ z7 ?) b ST = 1;
1 V* ]* y4 p9 R% \7 N7 l ST = 0;/ s& `7 y, l, {) W5 j2 n! Q
while(EOC == 0);' n3 J8 [/ A1 T" z+ J7 L% \0 p
OE = 1;1 c/ g$ \7 U- {$ Y& X
Display_Result(P3);' u+ s( d9 H- b2 z6 O* S% L) Y
OE = 0;3 s6 {3 c9 q, q! m- T
}
2 y: D' n. f) p6 c7 S}, q& j- N2 x0 q. p3 k: O. x
3 R. g: O4 t, f; q0 }8 N Vvoid Timer0_INT() interrupt 1
0 z' P# T* V* T9 b& L) X{! z% z5 U4 J( B+ e+ p$ L( @
CLK = !CLK; E* Y) f) G4 y0 f
}
! q+ a1 s- Q9 w
) f5 |6 @6 H# z$ @6 C3 B0 q5 J |
|