|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
74hc573-74ls273时钟仿真与C语言程序区别每个数码管子函数(*7)和整体数码管并一类子函数(*1)之间的区别;我们可以看其中数码管显示的停滞与正常之间的差距(proteus的原理图相同,只是稍微了改了下C语言程序)9 Z0 z# _$ F: ^+ v
74hc573-74ls273和单片机数码管的仿真图:. R* ?% ]' I( L
# b% {3 i. @/ T. B; o
# J2 K; r4 ]6 |: m( ~2 T1 w4 j( ?' ~' c8 t5 `
单片机源程序: | $ b+ m6 h0 p8 Y
#include<reg52.h>- z' s4 t6 r* ^0 ]6 B( \0 o
#include<intrins.h>
/ m) u5 P3 B& n5 d7 k, {#define uchar unsigned char
; Y( e& d Q% x4 @#define uint unsigned int: d7 L6 j+ m' E) V+ E" j8 Z, {
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
' O0 ]* _! Q2 \uchar code select[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
: ]. p( B8 h0 S9 |4 s, Asbit dula=P3^6;
, q& [0 K \5 dsbit clk=P3^7;/ K2 F% m5 [% K
uchar miao,fen,shi,adval,a,shih,shil,fenh,fenl,miaoh,miaol;
+ H1 x$ N- A# A. w8 T0 _) e8 `, Pvoid delayms(uint xms)4 y; m3 E' O/ O: q7 M' N" ]
{$ O, B7 @! j( j: G
uint i,j;
0 S1 v' `% K9 ^2 W, X1 e& V3 z+ s for(i=xms;i>0;i--)9 N& N7 F6 v2 O0 E
for(j=110;j>0;j--);
: d( I4 l( |; u" S}7 F4 N; r8 E0 A; V
" l, Y3 e- w: {2 ]9 b6 S
void display_shih(uchar shih)
) t* I7 d8 I a{
. N0 W$ i' [2 F# n% {+ ~: V
. N# C8 A$ U: E3 v- F5 D3 S' p P0=select[0];
" Q! D5 B$ T j+ p. g clk=1;
4 P; S; X6 i' _9 A- B clk=0; 8 K9 S$ `# M; p- V- L: }1 f1 @
dula=1;5 F; j* \3 H$ c, ?5 M
P0=table[shih];) ?! j9 S8 m2 J8 S; b* f
dula=0;$ ^: x1 t/ p& b ]7 j: ]* {% I
delayms(3);2 g* K8 ?3 V* P( t# _
}. S. x$ W0 n$ o; e* n
void display_shil(uchar shil)5 J' D5 l. |8 h( O( p6 w
{
& t5 [. Z4 d& f: K* m- G6 o) `4 c P0=select[1]; ! A! ]" d6 z1 C) z6 e0 p
clk=1; * n% |* i- E X: O9 v- J' q; P
clk=0;/ c1 Q; {$ s2 P/ e0 ?
dula=1;' G: P( H& h" o4 P# b3 _1 f, K/ c
P0=table[shil];
! S" p6 h: @, z; ] e1 s dula=0;
- m2 g C* y, ^# Z delayms(3);: o6 {2 g, N1 A
}
/ G: E f. Q5 ?0 h: a5 n- vvoid display_fenh(uchar fenh)
. s& A B+ y& ^, {# `{% D& X( | N) G0 d; ~7 O
P0=select[3];
, I, f5 U c+ Z' }: l" Y clk=1;
. k6 u5 [5 t/ N5 E, i clk=0; ! g3 {6 E3 u$ s
dula=1;& B9 `2 r" h) r6 J; f9 b
P0=table[fenh];
9 I7 u, S7 A5 P" \% a! p3 R dula=0;+ p% I, B$ o" F/ B% u
delayms(3);
8 {1 W$ _7 E& D1 p) ?}& T# r% P% A" k) p, e# v" q' R
. N: U, y; b- C. R3 C Z+ ~void display_fenl(uchar fenl)- q `/ w- y; |4 t4 P; w @ ^
{
8 M( N n' M" c" \ P0=select[4];
3 H3 M5 a/ P9 p' y# ?# } clk=1;
, a7 I- f+ L& g( b- d$ ? clk=0;
; m: Y* P0 |% V& @2 F: f/ c. C dula=1;
* H8 x) m8 i5 \/ R) F P0=table[fenl];( @) B' r+ Z( `8 Y' D' J! d
dula=0;
- g+ X7 N L8 s' j L delayms(3);- T* t! e- C! e/ s9 w) U
}: N& i5 z; E$ y+ s# w
void display_miaoh(uchar miaoh)/ P) Z& K9 W0 y4 h
{
}1 _1 |) ^' y. N
; D O# u* j6 l5 Y, U+ |0 P6 l P0=select[6];7 {" V4 }. s- W* V5 S
clk=1;
8 u0 d6 X+ S/ ?+ q clk=0; " y) g: |3 E# ~: h' H
dula=1;
( r% S7 C* m6 D5 H P0=table[miaoh];2 P* H T/ M. s0 b. [; y. b
dula=0;
" V6 y1 G3 P( M delayms(3);
5 z( } s2 J$ z% g: O2 h} {/ D4 v6 Z( N: T, A7 J( M
void display_miaol(uchar miaol)
& l, w6 N' l6 j. P6 U{
( F' O. m1 Y! Z: S P0=select[7];
! v/ }1 J8 {6 q2 _9 a clk=1;
6 V2 _! f9 H5 I clk=0; & P6 w- Z1 ]. ~4 w
dula=1;
, b. ?, @' d( T- \% ? g- C P0=table[miaol];
. f, f8 t( H" w: s% l D dula=0;4 V7 K+ k, a; X- D9 I
delayms(3);
2 X# N) q" `- Y1 F7 N4 G* Q5 s}" S% o, ~+ @) Y" N9 T x
void t0() interrupt 1
% Y& b& k& k" e{+ B4 E3 K Y# @6 m# i: d+ a
TH0=(65536-50000)/256;
) Y! J+ x' Q2 E TL0=(65536-50000)%256;
( f3 k) Z- a2 `6 o adval++;
. _6 z0 w9 k9 H7 j. X$ E
/ |& O5 H, J9 C2 _' L}
$ r- h$ k1 M) M& i8 }void main(): j; Y, g& n0 J# |
{* [, E7 c' ^7 y) b
TMOD=0x01;
9 q1 V O- a" A- k: i; h6 q TH0=(65536-50000)/256;
. A' ~' R1 K& i* b8 s3 Z8 x/ Y TL0=(65536-50000)%256;, \! d2 [) k! U" t0 \
EA=1;
. E! r+ n/ ?& g. d' p0 a b/ I ET0=1;( T/ v; E8 K$ d6 ?4 {
TR0=1;
: G [0 I% |; `7 N while(1)
/ ]- S% r% d3 i, E {" C: l9 L, A4 @
if(adval==20)& t. p$ H1 u; Q8 ?
{
+ {0 f5 X! b0 n1 p& A adval=0;
S- C' W4 |, K1 F, H2 Z8 j5 S miao++;! F- S* R, A2 N) ]+ @. E+ }" \ b
if(miao==60)
0 m5 n8 @0 d p- l7 I {) z0 s. ~8 x. K) {( p7 c, K
miao=0;1 ]+ @" M5 ~4 T8 v$ e
fen++;
' i$ B! R. S/ m2 J4 ]5 l if(fen==60)% t+ F1 {. x0 @8 K+ J
{
) r* V$ r6 t8 l fen=0;
2 h& d7 f# f, c6 x5 { shi++;
& R4 Q @5 o0 Q& h+ ^5 S/ g8 q8 N if(shi==24): @9 Z+ T8 m0 T; ?% T ?" P9 @
{ ~/ _" Q% U1 Q% i
shi=0;
$ \0 I7 f! ]% G# U D }: i, W4 r% v4 K3 S
}1 {3 N- Y* O1 I4 ]+ n, ]
}, A% R5 P3 T9 |" V, U4 |
miaoh=miao/10;
) c. T' P0 s% @7 T* U v miaol=miao%10;
& S1 a0 }# ~7 \ Q/ j1 B) d fenh=fen/10;- x/ x8 X! g3 N
fenl=fen%10;2 K5 y$ N: ?9 T, A3 r: M6 n
shih=shi/10;: m; a3 _& J) p# N
shil=shi%10;
3 O3 v9 B7 u( h3 \ i5 p' r' o6 v
, t+ _6 u# C- X" v. h: K3 |2 a6 q }
% L/ k. i2 _4 O8 C( y display_shih(shih);+ d; z* e( O! b0 E3 p* R
: \: J2 B, A, ^8 z% V0 O' J, f& n. W
…………限于本文篇幅 余下代码请从论坛下载附件…………
2 J) k' a v7 U7 ~" [
! k" Z3 Q' x. M( Z
" c9 z, @0 J8 i! f# ]
! n- K8 L$ b) x |
|