|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
目的是控制几个数码管依次点亮 第一个显示1,第二个显示2,第三个显示3.。。。。。
! y; x+ g7 G3 v# O W; w Z6 ~ M* G5 {( t% O8 n
#include<reg52.h>7 w3 C ^1 K+ p
#include<intrins.h>! h q8 [* u& A' d S
#define uint unsigned int' @. Y! ]( H G2 [. {0 f- g% V
#define uchar unsigned char
4 l' X' \/ Z' `) g* z: n& j$ U3 ]sbit wela=P2^7;------------------------位控端口,接锁存
7 G1 t# q9 b( @* h, A5 _sbit dula=P2^6; -----------------------段控端口,接锁存. n1 y5 R& V$ t& P" |5 M5 g' n
uchar code teble[]={
" d( g3 K2 s1 ?7 J0x3f,0x06,0x5b,0x4f, G* p' s+ r% X+ k) U
0x66,0x6d,0x7d,0x07,
% ~; |: B4 ]) U4 V& l \0x7f,0x6f,0x77,0x7c,) s& f, t8 X" a! r0 P& A
0x39,0x5e,0x79,0x71}; B% ? _* ?, p% O) {3 k
uchar temp;
1 D. |0 g5 t4 G. s$ E1 ~$ Iuint num;) y, p# [4 U) I R, L1 v. ?: t
void delay(uint)
6 x# Q" Y& @' r, Pvoid main()
' N5 z& G' U4 L{
" n7 Z! E- B+ k; U temp=0xfe;5 F& H3 t! m* O
while(1)
0 \. n+ ]9 X, T {2 z* T* G4 H, X4 T
for(num=0;num<16;num++)
% y# U9 I, G, M( X$ W" G { wela=1;----------------------------位控制,希望依次点亮6 D7 j/ r! T2 X
P0=temp; h" ]5 ` i) @; G7 X: D- z
wela=0;
' u+ M( n# J, W. ^! n temp=_crol_(temp,1);" H) Z) K) {1 Y; B# c3 T
dula=1;----------------------------段控制,依次显示数字1.2.3.......2 i- l% a! j3 z8 ?$ Q K
P0=table(num);
9 H0 B+ S& ~4 F# I. H; |9 ? dula=0;
9 K; |2 |: M# \ ]9 t3 z delay(100);
% k$ {! c. ]/ S9 H6 q6 [; h }; ?4 V, X4 R1 e4 e0 E4 x+ \
}0 r! F- D6 I* U- `
}
# \% q3 I7 T( ^, uvoid delay(uint z)5 L6 J: ?9 p7 @
{( H: ?( R4 M+ Y: \$ z" u" ]
uint x,y;# M1 d/ f3 `7 _/ Y. m" a+ a
for(x=z;x>0;x--)3 V' a0 U, @: I! P9 W
for(y=1000;y>0;y--);
* O* Z. P7 W, z/ g* @} |
-
-
|