|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
74hc573-74ls273时钟仿真与C语言程序区别每个数码管子函数(*7)和整体数码管并一类子函数(*1)之间的区别;我们可以看其中数码管显示的停滞与正常之间的差距(proteus的原理图相同,只是稍微了改了下C语言程序)2 y4 K5 M! {& a! ]
74hc573-74ls273和单片机数码管的仿真图:
- f' v7 ]& B4 ^/ p; M% I+ P1 H + y* K: @6 W: D+ C6 K9 u
9 P4 ~7 l5 T# p6 a& @ m# C9 s2 ~) t+ f; o' B V7 Y
单片机源程序: |
3 ~# g/ H$ \& s% k8 N#include<reg52.h>
! c7 L0 D3 H0 H3 g5 U#include<intrins.h>
( m) H( ^- W/ m9 \6 |1 G#define uchar unsigned char
' @$ Q8 ]- n2 ]( M! J( N, o' b#define uint unsigned int& x1 K6 ?) u1 y. T9 r @
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
! \( ^# }" z) J5 d0 e) ~4 J! Z2 {uchar code select[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};$ f% M! F( ]# l% H ^$ D/ ^
sbit dula=P3^6;
L/ S7 [! \' ]! y6 Ssbit clk=P3^7;
0 e0 ]4 n s0 s% g% fuchar miao,fen,shi,adval,a,shih,shil,fenh,fenl,miaoh,miaol;
, S$ a P% y/ e9 Evoid delayms(uint xms)$ N* F' j+ s% J( D' A8 F7 ?4 h4 t0 _
{3 G7 ~, d8 m2 z' u
uint i,j;$ L3 H, F4 R, O3 t. }
for(i=xms;i>0;i--)* `; t* ^3 R- E9 T- t- [1 W
for(j=110;j>0;j--);( g9 ]6 [. X+ R* A
}6 i8 x) F7 B) j
7 Y4 Q' j( z9 E( u( l' s6 F0 rvoid display_shih(uchar shih)
- I* M9 q2 _, d{7 [" i+ o, e- u9 J4 ]& L/ N, z
! N6 l- G, |3 P P0=select[0];
4 n) G. N+ F6 s* G5 F clk=1;
/ Q2 x1 S% k r7 o- g clk=0; 4 k' N. s3 i( C3 b
dula=1;' L) K, K( ^* o8 y- {6 u6 b
P0=table[shih];$ @. q' h( g% \9 X, M5 j. t! U
dula=0;; `0 [2 t9 Z U% [$ O
delayms(3);" u: q7 N/ O. N; T6 t* W
}. F9 @/ E0 b" b. [. h H4 Y
void display_shil(uchar shil)+ V i4 T$ z4 m. X4 v6 w
{1 @* }0 c. l! E2 _" d
P0=select[1];
+ ]/ V1 {3 V; y clk=1;
8 l4 J; X4 z; p; [6 V clk=0;
1 _2 \$ U$ Y# N; b4 S0 F dula=1;
, S" @) v: T. F! E5 d; p P0=table[shil];
, o! C) K3 l3 ]! y dula=0;8 U8 r6 v& y' a$ q4 O
delayms(3);) n5 Q* ^5 S' {
}
( X# @: Z, J3 z- s: Qvoid display_fenh(uchar fenh)6 s0 ~6 ?4 u* }. K. V3 W' F3 F- u
{
9 K* M6 x$ g- ^; g5 ~1 s& A P0=select[3];4 C- N% r5 z! t* E+ e
clk=1;) K. z' B" V; D4 d+ J9 i5 M
clk=0; ' p1 |4 \' |$ m0 v
dula=1;6 e4 W8 w4 {: P
P0=table[fenh];
9 g0 P& ^7 n P dula=0;
" c6 X- N% O" U, b+ `* K6 {3 T' T delayms(3);6 z5 C6 R5 a( Z. g. L: x4 \
}
" y- B8 q9 m# R' a- ~( y* X3 H& |# `. g% e+ m. j9 w
void display_fenl(uchar fenl): `9 n4 k. I* T
{
7 ?$ X! F+ F) p P0=select[4];
* t ?2 _* L8 |8 g% `5 Y0 d clk=1;+ W$ f7 s O$ B6 _& j* i; `( b8 \
clk=0; 1 j0 V5 s' ~# M5 B
dula=1;5 Q2 y. c1 m' d
P0=table[fenl];
( N! T: v5 a; B dula=0;
# D3 f" V0 p/ g# W7 f+ N. i6 T5 x( N delayms(3);$ _3 r& h \+ }7 r) f( E* X& c7 L* a1 w
}# s+ V% M6 k* }3 `4 M* f. A
void display_miaoh(uchar miaoh)- y8 O; z- S+ s
{. s9 ?2 d. K8 ~; f7 V
# _2 B; M3 H& N/ f- _& _ P0=select[6];/ `0 C2 c1 E6 Q$ |
clk=1;% b, E2 X; {) t- `
clk=0; % Q j6 [6 J9 ~1 W. l* L
dula=1;# H9 N7 O% J9 W; m8 M3 Q
P0=table[miaoh];
& ?7 M/ ]8 m7 {, O; d ^ dula=0;
?$ k. K4 J }# r2 [& ] d delayms(3);
* Z% @' m2 v0 _% J) n$ s6 ^2 w2 R: ?}2 u8 {; k8 n$ q- b. J, n
void display_miaol(uchar miaol) o: S% U I! ?3 Q
{
% N) Y: n. X0 J* d; Y P0=select[7];
5 x4 R5 I: d: T# m8 U% D5 U( k. C clk=1;
/ X5 d$ z) |/ L P0 ^/ Q# f clk=0;
3 g7 [5 j; @! ]2 b/ j dula=1; @) L& }; @8 v: T: j7 }6 u
P0=table[miaol];; B$ {# f, p$ T+ F( f% {
dula=0;
; v$ v- b3 T9 A5 a7 E delayms(3);5 d& R/ {/ J4 f: z3 q" v
}- x4 Z8 q: r4 V; {8 |1 h
void t0() interrupt 17 X& p; d/ ~$ o, X4 g
{! F9 w$ a! }4 N5 l' w$ |
TH0=(65536-50000)/256;
k9 {% \2 I4 u6 t* g) _1 Q5 J TL0=(65536-50000)%256;2 p# d# C* l8 F. i
adval++;
+ J4 L# Q* N8 d+ T
5 p" d* g, U# r}1 z3 K d; C) b% ^9 ?. E3 S
void main()8 ?" s6 [( ~' P7 ?2 S9 w7 Q' m
{
7 F9 \$ `- ^& {+ S0 x4 T8 p& n6 v TMOD=0x01;- {( m* ?: ]- ?* r& H5 @: z x
TH0=(65536-50000)/256;1 A8 m0 k/ _. S0 N
TL0=(65536-50000)%256;! \8 e$ U* Q/ w2 N8 z' ]
EA=1;3 w% ]8 `' {- b* u5 \) E
ET0=1;' }! d0 B3 _( P5 n- j! B; ^
TR0=1;, E' ]" p5 V8 l! ^
while(1)
3 R$ \- F* K& U& o% g {( R) U# k4 r" h$ w- w
if(adval==20)
w8 l/ P1 p1 r k& d+ u0 e* y {! q8 i: T G' s" h0 }% y5 k5 `
adval=0;% T f! C- O1 D
miao++;
4 X% x4 }& L4 _8 y if(miao==60)& \3 i& I) H2 {+ T9 I& J
{- H! j' M) B! `1 |% \
miao=0;: g0 B3 m: T# V$ N- V* l1 i
fen++;- Y# a# ` f6 S4 d
if(fen==60)0 T) B- @, B+ e7 N9 e9 {
{
+ x0 z: d1 t; H' T0 R fen=0;: T6 k6 z, j4 w! p# B2 Z7 w- t
shi++;
7 q# Q/ m+ c: P( D& l if(shi==24)
" f: O# ~- L8 Z: f) T {9 k& b7 g- z2 S2 q' X* ]
shi=0; + t2 [$ |3 ~, E. Y2 O
}
" S& Q* ~7 s, }5 Y }* F9 ?3 S- E5 H v* i
}2 \9 W0 U. Q* s) g9 ^ G
miaoh=miao/10;7 h8 h9 o0 G ?/ |8 I( A
miaol=miao%10;% o9 Z% k$ r; R4 {* Y9 }! s& z
fenh=fen/10;
" w: b1 ]5 }8 s( g8 v$ ~ fenl=fen%10;
& q: x: D0 u6 r4 N |$ H- s4 s shih=shi/10;
& M( L; q5 X+ g( Y4 ^, @ shil=shi%10;* \% m( q" L0 p) A- T$ L5 V
5 b W: X, _. B: M0 r! e
}- L; B) i, [; s X* V
display_shih(shih);: g7 D7 J0 W! }, m0 ^, N
. d, ]( k1 Y, ]& y5 ?8 @1 u
…………限于本文篇幅 余下代码请从论坛下载附件…………& G- ]5 g8 R3 ^/ U5 _
; N' A$ L) i. Q+ B
5 S7 u. y( ~# b! s* C
& n3 c' \- Q ?3 C! K
|
|