|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADC0809模数转换与显示仿真5 I9 y2 _+ k& V, j8 s& |5 F) ~
, u/ j% b7 P R5 \9 E$ o& }
) T- n" }+ ]1 [8 j* v( \ W$ c8 H; ?' R2 }4 N. y+ Z2 O; B
/*************** writer:shopping.w ******************/
' O& x$ s! f. S: B9 x#include <reg52.h>2 ?" n/ O0 P) [2 g4 K1 W
#define uint unsigned int
O2 H! [- ^& m v" {4 p#define uchar unsigned char; Q" t$ J# _' U$ k+ W3 k5 a3 t
2 x: G6 v( N0 `3 T! t% W, ^4 E3 @+ Guchar code LEDData[]= R- J9 F7 ~2 j/ D! o: S& y
{/ r/ F" r4 e, o* M- B
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f5 u4 F" G4 |4 {3 v( E' g% w
};1 q, p) N8 t" {% \! y' X. N
sbit OE = P1^0;+ E3 {1 {- w3 {" L. g5 `* R
sbit EOC = P1^1;
q8 R8 M% r7 H2 e2 j+ X+ b0 m$ Qsbit ST = P1^2;
/ b5 o2 A1 i/ E, S, y$ P8 y. fsbit CLK = P1^3; y) v' T. h8 F: n; k. r2 T0 U. N# q; f
5 [ i/ x/ G/ o0 c# b: \
void DelayMS(uint ms)1 ]5 k# [: k( e7 o: p5 @% J
{1 D8 T& E; M! B' y7 V- y: T* e
uchar i;, X6 c& r7 q0 N) g3 x
while(ms--)# b, G. G; K' a) f8 i
{
- a% \0 W. g3 n' [2 R* o+ C for(i=0;i<120;i++);' x9 J8 A1 @# c$ |+ I) s7 `
}
! ` L4 s; U7 ^$ T6 m6 x0 H}" B1 C! s. ?! \* J+ T
% F; M' h* E2 T, x$ lvoid Display_Result(uchar d)
7 a4 M1 a0 M3 k! r{1 `0 R7 o8 y( Q2 u2 O$ {# g
P2 = 0xf7;
8 q. C& a; E% g9 \& y P0 = LEDData[d%10];8 n: P1 C! L' c# r% M* d- A
DelayMS(5);* e& M+ o% l: [% G
P2 = 0xfb;
) i4 L7 i \6 N2 F# ~% y P0 = LEDData[d%100/10];
: ^0 V) m1 ~8 l1 C4 y5 j$ p DelayMS(5);
; f. I$ a! Q+ H Q0 k P2 = 0xfd;
" e! z J1 A# w7 K* o7 ? P0 = LEDData[d/100];6 K! ]' A0 X, ]+ Y7 k& t, M* l
DelayMS(5);
* _( H/ m. K6 H6 w$ c, e0 T2 ?}
! E$ U, p' l) v! d" {
' [9 ?6 W' u7 I% \void main()
9 V5 T% Y* ?2 X9 R1 m{3 h3 I! c" y! ~6 n) i- A5 ]
TMOD = 0x02; //设定定时器0为工作方式2& ~; T+ v$ t1 w, a
TH0 = 0x14; //给定时器装载初值7 b& B ^8 C( I
TL0 = 0x00;
! Y7 q0 Z) j) i" }$ u7 r IE = 0x82; //中断控制寄存器,开总中断,开定时器0中断源9 N* a0 t, E6 _' |1 Y8 t7 S
TR0 = 1; //打开计时器0
4 y3 h4 H6 y) z+ c9 p P1 = 0x3f; //初始控制信号0 e0 I8 c$ ^% O, _# k
while(1)
4 I3 i" T8 \" h' r! l4 ^0 I0 J {
7 p9 I) Y6 {' `' E0 ?$ x* Q2 t ST = 0;
5 F# _; l1 m) x6 ?) f) {& f8 E ST = 1;2 i. `" q6 ~" n0 p( _$ b
ST = 0;" x" H6 O' a0 j& r; `( R9 L% E
while(EOC == 0);
! ~8 s4 a8 r4 Q1 I0 v+ {' H OE = 1;
, K( W+ r) I" M% S8 Z, H Display_Result(P3);
" Y7 z& i& ~, k7 _/ f6 ] OE = 0;! E* s0 L1 z7 e+ N
}6 G/ M) I- E7 s" F, D
}' r$ a9 |7 v# _; `
5 ^* A" l: G' C4 x% nvoid Timer0_INT() interrupt 1# b. Q9 A9 ^& [6 W& }: ^- W, }& U* Q
{1 v( Q6 O" d, Q1 T. n) d! @4 Z
CLK = !CLK;
' W v2 m! W) C$ B( B- x2 |6 S}
; ^4 k) p; Y! D, b1 c
* G5 ], f/ W" e. {7 | |
|