|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
目的是控制几个数码管依次点亮 第一个显示1,第二个显示2,第三个显示3.。。。。。1 J/ D5 A# f! I$ l4 X+ E
3 [% L' L6 F+ n5 n
#include<reg52.h>
* d/ n7 r; V/ y% g, E#include<intrins.h>
1 c! U# f! V" ?2 L$ q) l6 ~, E# q* Q#define uint unsigned int
- D5 I5 C9 d6 l: `' W8 c#define uchar unsigned char3 B y* \- S, x, R/ l
sbit wela=P2^7;------------------------位控端口,接锁存- x2 M0 E+ t9 W- r/ V
sbit dula=P2^6; -----------------------段控端口,接锁存
W- E% d% P; y3 B' H8 Vuchar code teble[]={
. O( r# ^. T- A- o0x3f,0x06,0x5b,0x4f,
; w# l2 d; I9 r) J0x66,0x6d,0x7d,0x07,
( r1 a& v0 k+ Z2 y0x7f,0x6f,0x77,0x7c,
9 X; {2 C$ n6 R6 L4 @" H0x39,0x5e,0x79,0x71};7 j, i4 W8 j& D4 t B
uchar temp;1 T- `* T3 {$ z6 d7 J- Q# w7 \
uint num;" L1 u1 E9 |. ^ V# Q
void delay(uint)4 I% J8 r! p3 p( `
void main(); ]8 e' p# [& ~8 h/ Y
{
" k$ z& @# I/ M o6 ~% B temp=0xfe;
' |8 w/ L% H$ z$ ?* ? while(1)- Q6 y8 B2 x" y8 e! T4 d* @
{7 b* S1 ?7 M6 \2 g& i
for(num=0;num<16;num++)
6 P: m+ U G9 @2 _ { wela=1;----------------------------位控制,希望依次点亮
a' S) d9 w% N U+ C. l P0=temp;
; i3 W9 r7 Y% ?* Y1 n wela=0;8 `5 s% H8 _, A
temp=_crol_(temp,1);
" _- j7 g, ?9 G# _ dula=1;----------------------------段控制,依次显示数字1.2.3.......
( `5 O7 {4 L( K) n1 s$ ` P0=table(num);$ @3 o8 O1 h/ `) D' f
dula=0;
. r2 M' S/ a0 j' h delay(100);4 t& X* n, j# { S. ^
}
2 o; O; g# d/ @. J2 y$ J& F }& w4 ]: n) z. Q! b2 b
}4 E! Z1 i5 \1 Q
void delay(uint z)( x: ?6 C' _( y- }( S
{
8 W5 n8 Z0 @* k, s8 z1 L uint x,y;
" O+ d l5 _$ y# } for(x=z;x>0;x--)
2 l, Y' A/ P1 m# p4 g for(y=1000;y>0;y--);
1 K8 y8 Y! B5 U} |
-
-
|