|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADC0809模数转换与显示仿真
4 ` z( x6 ~- B- W5 q5 _" f/ w) y, \+ C; W6 X: o8 T2 |
" E/ e, i. @! O% s$ G9 C: ?6 m3 q& J1 t
/*************** writer:shopping.w ******************/
7 I( L0 y+ i- t6 N" Z#include <reg52.h>
) I1 ^& M* g( ^, Y, y1 {7 o#define uint unsigned int
. D0 _9 N% m8 g#define uchar unsigned char
8 L! ]! Y; |6 } C! l6 K2 G: M1 c; ^
' Z- q7 E( ]' b* H- auchar code LEDData[]=
/ n- b/ c6 Z" f1 M5 Y1 l, G{' W7 N6 V$ G: d. G* r" R9 y) f& [3 }
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
6 L6 H; v) ]. {1 Z};7 F& a* t: R$ x( k: W5 S% X
sbit OE = P1^0;& o2 G" w3 j) A
sbit EOC = P1^1;
' M, ]: E4 \, C! N q4 ~0 tsbit ST = P1^2;
+ w4 t1 L* Y/ } J8 \sbit CLK = P1^3;% X* |" w$ p: A+ P# Z9 t' [1 s
7 x2 Z9 t9 G; Y: z/ p' L: y
void DelayMS(uint ms)( ^! Y- @: }7 W7 N6 u( s: z2 A) B4 z. K
{, _1 V9 v% r1 c" B/ f
uchar i;6 {9 e; C4 ]; U$ A& W% X+ U4 R
while(ms--)* T, B+ F/ Z/ g1 T* [
{
/ S4 C/ W' E1 M for(i=0;i<120;i++);
0 T4 j/ @; M( w( z0 W6 O" {9 X3 z' [ }- ]- U4 ]0 g- [7 o
}
: e# V& D6 B2 X+ |$ j6 ?* v
& Y0 h( ]7 t+ m/ Gvoid Display_Result(uchar d)' @, }; X4 c7 x9 F! x
{
2 s9 \6 U) S+ D! L P2 = 0xf7;/ |2 E) d1 V. X# P
P0 = LEDData[d%10];
2 {( j- ~/ g, H DelayMS(5);
* b* S* r& r b4 x7 g P2 = 0xfb;
- J4 t. P( d4 Z% p4 p! p: Y1 f" H: d P0 = LEDData[d%100/10];2 K& X0 Q9 s6 D
DelayMS(5);% F5 a- U: A& f j7 ]6 F* I
P2 = 0xfd;
" c$ T- q' U% Z. K5 f/ h P0 = LEDData[d/100];
4 q7 d. W4 n& J DelayMS(5);
5 M3 o3 F+ a5 J* C6 n. A X}0 G+ u5 U+ K C+ F) R, o! W6 X
8 k: Z2 o# j# j3 e2 kvoid main()3 v+ h' R5 q" R$ z8 a* V5 ` ~2 ^
{+ G4 _5 @2 ~3 P: G( ^- p) e
TMOD = 0x02; //设定定时器0为工作方式2
* W+ |4 X+ |* Z1 n TH0 = 0x14; //给定时器装载初值* T& \$ k+ |3 O
TL0 = 0x00; * F" L: O) K" U8 `/ A( n5 D
IE = 0x82; //中断控制寄存器,开总中断,开定时器0中断源
2 {* y4 Q+ j* U: F% Y TR0 = 1; //打开计时器0' M6 F, b. C+ W& U7 o
P1 = 0x3f; //初始控制信号' w& A1 A% D0 @' x0 a
while(1)5 l& C! m: f2 ?5 p- B
{% f, a" \9 `- W! H( s2 }- h+ X4 \
ST = 0;
* g+ M* p( K; Q8 P+ x ST = 1;
/ F0 T- g4 B2 u/ G4 x% | ST = 0;4 Y- ~; A" e; N& L6 E! ~7 Y; e
while(EOC == 0);4 ?% D3 _3 m9 X3 Q" d; ?$ p
OE = 1;! w+ K' G2 z3 K' F
Display_Result(P3);
" U3 k& Z9 @: c- I* | OE = 0;
: }# {8 L R( j; r' J! c }- ` j" X1 N3 z
}: L( R t1 p7 P
, p# c7 s5 a) y6 |
void Timer0_INT() interrupt 1) [% W, K) M. m8 c
{, z" }$ ~0 s* E: m0 a
CLK = !CLK;6 M+ f, B7 x- u- _' b- B$ o
}
' n! F. r- i/ P3 n) O7 z7 n7 m1 v2 j& u
|
|