|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADC0809模数转换与显示仿真
' ?( m9 s! L) H! X3 @3 [( q: _( y3 f3 P7 c' O8 B0 O. Q4 s
7 v8 `( f& s @* X2 g* W8 k* f) ?- H S2 s& f7 R
/*************** writer:shopping.w ******************/+ c- u& l, I* s, g, l% e
#include <reg52.h>) D& p; H& _( T% {, z
#define uint unsigned int. h' p4 K9 F6 ?8 v3 ^% Z
#define uchar unsigned char9 K4 X7 |1 A5 f$ V; h6 o8 E
4 I# {9 P; ~. i$ }) Vuchar code LEDData[]=% L& R* x1 r5 |; a
{9 L( [5 U% Y" [3 {8 F
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
K0 z8 a9 @3 }};4 Y7 K; ^8 \) B0 o5 ]+ o
sbit OE = P1^0;3 D2 m* L. B* M
sbit EOC = P1^1;
% c- T, O! O/ t$ ], Hsbit ST = P1^2;
0 T- B6 H* x( y3 H$ c: n- `sbit CLK = P1^3;! L( O- h5 Z) W. [+ F. D G
2 u5 G' f, u# Z( p3 j
void DelayMS(uint ms)
) P% F) R% z$ T9 t A{
T$ Y* D1 J7 d! j uchar i;
5 _' |! G7 D$ Z. b2 c1 p# ] while(ms--)) p1 s$ Z m# F8 k* L
{' {9 S$ ?/ ?: k V6 |, ` m
for(i=0;i<120;i++);7 b& e. X0 H2 \( M0 f! v3 p
}3 ~/ ?7 {% }& Q
}
2 E! h i0 P! e" u& c
% y& ^4 ]& g# @; Z: D. S$ ~7 Bvoid Display_Result(uchar d)) q# \$ F5 A* X' a3 j5 U
{( Q0 C5 [. k* w. D% J7 D6 C
P2 = 0xf7;4 B1 Y6 N' H6 r+ M4 I, [* b. F. S
P0 = LEDData[d%10];
" w6 w. y" I. J. G' ` DelayMS(5);6 u# ] k% O& t7 i: _3 `
P2 = 0xfb;) E: ]3 h( l7 F+ a& D1 h" } G
P0 = LEDData[d%100/10];
0 x: I" t1 W+ S) F2 M7 x DelayMS(5);
: v# b. x1 O2 M7 I2 U8 o/ C P2 = 0xfd;+ l, r' R- y8 C' u2 q4 B
P0 = LEDData[d/100];2 \5 F6 _& l6 P, ]9 M# t
DelayMS(5);" V$ T+ A! n1 A; `$ Y
}
( k6 _% v- j% S
- J/ S, K. U' }3 L" t" `void main()1 w8 d, x2 j! N9 N( v
{
. Z. E3 e. L$ \' X TMOD = 0x02; //设定定时器0为工作方式2
- h7 r( Y" w8 P1 \$ G TH0 = 0x14; //给定时器装载初值
! ^0 b) e, _4 w" ?. p9 C7 D TL0 = 0x00;
9 B9 l+ H" V/ k" Q) Y- z IE = 0x82; //中断控制寄存器,开总中断,开定时器0中断源
9 d/ `9 l$ t. c" O TR0 = 1; //打开计时器0: u8 H( s( E) {% u
P1 = 0x3f; //初始控制信号
: M; [! @+ b* Z8 G7 L* I7 [ while(1)5 u# Y9 q9 O4 M9 ?% D
{
- q' p: F2 z4 m6 x& E0 j& W ST = 0;
6 C8 T C$ g9 x$ J8 W1 m+ z; { ST = 1;. X; }9 g& K: S& Z7 i9 z, P" c
ST = 0;- W2 a. g ]! \7 k/ Y
while(EOC == 0);- I% X/ G7 g q0 } P4 P
OE = 1;
( a; z; u9 s4 v7 X, J* u9 y; M/ l6 | Display_Result(P3);
3 s2 A) E# j$ I% o7 ~4 i7 i) n OE = 0;( Y) N% @, `, [' K7 m
}
7 T5 u9 n# [7 B) P& M}2 a9 n& w; Q3 o# h3 q0 L7 v. @
- q8 H, }: l2 d6 [# a: Ivoid Timer0_INT() interrupt 1
! c- M4 s, I: u! d) k' E{6 n# Q5 A0 j; J% @0 D
CLK = !CLK;# O9 u$ ]$ v- ]7 `. }- r/ Y- A
}
0 v0 D2 y' f- B: C0 @
% ?$ `3 ]* g2 N) V |
|