|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
74hc573-74ls273时钟仿真与C语言程序区别每个数码管子函数(*7)和整体数码管并一类子函数(*1)之间的区别;我们可以看其中数码管显示的停滞与正常之间的差距(proteus的原理图相同,只是稍微了改了下C语言程序)9 N- g3 J9 `5 L! [( b" d5 a) k
74hc573-74ls273和单片机数码管的仿真图:
1 X0 N( N3 U, k5 j8 ] 4 ?) v0 @+ b0 t( ^- d# R; j
U( G, {3 q- m' h8 ]( R2 f+ F0 F$ z2 I j& d. B7 N7 J' \
单片机源程序: | ! x4 Z1 [, k }+ f) j' T
#include<reg52.h>/ l+ N) o3 z' ^4 Z4 y
#include<intrins.h>
. Z: b! n6 r# E( z5 S1 z9 x w#define uchar unsigned char ) k1 P" G5 C% W: N% N/ e" g
#define uint unsigned int r% D& k+ b# w+ A5 g" [; F9 L# d
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};. d; v! U4 k7 @1 Q
uchar code select[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- v8 }" I; ` H( }sbit dula=P3^6;
9 `7 f$ H1 s3 Q# E) ?- b! s6 [' e+ ~sbit clk=P3^7;1 t& @3 X% j8 v6 Q5 S: M
uchar miao,fen,shi,adval,a,shih,shil,fenh,fenl,miaoh,miaol;
: [/ w6 d% `8 l4 T* l6 M/ y" d+ Q8 Ivoid delayms(uint xms)
0 T: K% \& R J; ?{
4 `5 b' n, y0 ?8 Q" G) `. I uint i,j;
4 I; S K! {" S7 C for(i=xms;i>0;i--)8 k8 @0 D+ _2 S# U
for(j=110;j>0;j--);- i9 b* _7 }) Q) s
}
7 X2 `, O8 d! K1 C+ O% c, r0 j8 u2 U. x4 F' I+ m
void display_shih(uchar shih)4 r! k" \# T$ L+ v3 ]& d
{, W' r# j+ ]$ d9 D
1 d1 g: C2 |) [' v" B P0=select[0];2 M, N. q: E7 {$ K& n# U
clk=1;' _0 H- n, u6 v2 F+ w
clk=0; 6 A: N' T. I1 F* A5 d) Z# S
dula=1;8 k+ L3 O) W2 K2 l
P0=table[shih];
3 l1 r- C+ k2 R0 I/ w$ b, m dula=0; _4 N6 n8 S" ~$ k% W9 W5 b" y
delayms(3);
' |, |1 a3 G4 g0 u}
( P4 T% h0 b' @, O0 l7 N5 hvoid display_shil(uchar shil)
7 t5 K% e0 d* w. `% ?2 O{% Q, u" }* S" |
P0=select[1];
6 V" L* j! R* V( Z clk=1; + n- y3 q& h) M. t2 I1 b
clk=0;
/ E; G( r1 g* W Z N dula=1;" d- d* }& c# F% I% P7 J- ^! R& n* O
P0=table[shil];/ g- z% y- D* L- y/ }
dula=0;3 D/ e& d$ P- Q$ X; p/ y% N- a
delayms(3);* I! ?6 \7 q& O4 R- ]8 ^
}
8 h; ~. V! U& I. s6 u1 Hvoid display_fenh(uchar fenh)8 h" G9 m6 V P' O2 X
{+ n- }. ?+ T0 ^
P0=select[3];! B! N2 w5 U8 f3 t; ^- A6 _
clk=1;2 {. }( m, c4 W) i
clk=0; 9 x. t; R7 L4 C7 i+ d& n' |
dula=1;
1 W( e1 W- {3 m8 Y% K P0=table[fenh];( X" a9 `6 U; N9 j
dula=0;
: O- F( j0 H' G! c delayms(3);( _. H$ P( `- b5 Y& N/ {) c- a
}
; h' B/ E0 \2 n0 N+ ~: y. g" x
% a8 R7 U4 b; e9 J% Hvoid display_fenl(uchar fenl)
5 \" d, w6 U1 ]; q* `6 @8 P{6 r+ r; Q ~2 W3 @! S0 T# I
P0=select[4];; A2 T" N: t" ^+ ?/ j j1 z
clk=1;: T6 S' X# [$ \8 G
clk=0;
" r- h% O" l1 K0 h dula=1;$ y, R: }6 X; _8 K. Z5 |) H
P0=table[fenl];3 T1 Y3 N2 T1 j5 Y2 J# W" L
dula=0;9 @1 s1 t6 |$ p; d
delayms(3);* c# c" Q$ `- u& n
}
& [! h D$ D, C# f" F- ivoid display_miaoh(uchar miaoh)
" p, A0 Y- ~3 s- }+ D{
9 @! w: ?! C9 p) y8 W0 g: T. u% A$ A; P9 e% \* |8 t* J
P0=select[6];, r9 [/ m) I6 Q6 a
clk=1;
- ]% n3 A% V# j: }$ f3 P" a& Z clk=0; - S$ i9 V0 b6 r
dula=1;
+ f$ F( T3 l) N" y6 ~( v7 Y- Q P0=table[miaoh];$ C1 e, y# ]/ h& {7 @3 b7 i) A* I
dula=0;
, C7 i4 z5 |7 t( q" U3 E delayms(3);
+ ? N5 H1 v5 N. `. n9 B}; z2 G; }. _! D! h3 H: G7 g
void display_miaol(uchar miaol)
- k& N7 w7 D+ V4 Y a+ j{% q% C% s* U9 O6 m
P0=select[7];
+ m% V9 R. F) W6 o. }. e2 N! L3 T clk=1;% f! j/ C4 I, _* ]* I( z
clk=0;
" r# N+ `& c3 K: h& ^! t4 t dula=1;
) y, z4 C3 @$ `3 z5 I P0=table[miaol];) {; ]! u% e- i( ?# C/ e
dula=0;- ?8 s/ j! p! r6 f
delayms(3);
1 F' L% }: {, P9 [( d}. X" o) `& t8 g
void t0() interrupt 1
& X3 [1 q3 Q/ F5 a{/ y, G, s( S4 u; f1 @, R" V
TH0=(65536-50000)/256;( ~- D7 n/ b/ L, G8 `8 u2 F
TL0=(65536-50000)%256;
" o. {3 q" n- T$ I' s: V! Z( C. |! r adval++;4 e6 H. U$ {- ?& K
# v1 b4 M# d0 r1 ?# o6 j$ ^
}
) f b% _# g; b1 b& T) rvoid main()
% x/ O5 g0 d/ r* H# Q+ N{% g2 Z" G7 Y" z; U
TMOD=0x01;2 |% v/ z0 d' d# M1 R' J
TH0=(65536-50000)/256;
1 [1 J3 }1 h4 ]2 J U6 C TL0=(65536-50000)%256;
$ g' R X2 ^# f EA=1;
; _& k$ ]" Y( e( a" g( u ET0=1;
" K( E# R$ _) z( D' B4 r TR0=1;
; [: y9 B+ z3 Y3 c( T$ ` while(1)
, J* p& W7 h7 z2 ]* F6 w8 I {
) }: ]2 @' j/ N if(adval==20)
. {& Y4 l7 k( ~1 F$ v+ R {2 o/ U J1 [/ y e* B% a$ z$ u
adval=0;9 |. p) w/ Y/ [; y6 Y( A
miao++;. A" U% g+ Z+ J" m: j1 @
if(miao==60)
' D' }! U/ a& T( e; i$ l {
# j9 v' n: o; M+ K' S miao=0;
( j f s' ~% g1 f4 c0 D fen++;- P$ w0 K0 y! g8 | y5 a$ A1 F
if(fen==60)
( q3 j+ q: r) }+ \/ [ {
6 N1 \1 p# `, R4 N9 W fen=0;
8 Z) m4 ^, x5 t, a shi++;. J, T* _! s" P" U
if(shi==24)
; [. O: S5 o0 k4 q {
- L, W8 k6 j+ i3 `6 K shi=0; 7 O# |2 |% T! {6 F7 l0 z1 k1 F
}6 D& a/ o& t Z6 D0 O
}/ t* j' c/ f/ H5 v; c
}
) y+ g( f+ d& b; S. S miaoh=miao/10;
! K9 x C/ T7 p0 ]% T7 c! |/ W Y u+ G miaol=miao%10;0 L9 N+ J, U! J6 U" E
fenh=fen/10;
+ p* z) Z4 h! A- p* M fenl=fen%10;
2 G4 [1 N, b2 E) W shih=shi/10;" X. i s, I4 l( z( L; x" ~
shil=shi%10;: w2 y9 x2 I' [/ ~4 B& y
7 \$ i% M$ x7 I' N/ `9 f }
" X+ n2 F3 F! s2 ` display_shih(shih);9 r3 \& g' f$ }5 N% S6 E* j! ]
$ e( s3 _5 b: T8 K4 }
…………限于本文篇幅 余下代码请从论坛下载附件…………
# z6 h& i' ^# B
6 a7 c% p5 [$ o! a" T
, m9 x# \. ^3 q1 k1 v! o2 o5 z; x5 ^# P# z2 k
|
|