还是闪,是不是这种程序里不适合if语句呀,我用除余数的方法如下程序就好了。, K4 R0 {, ~- K: [' H, d- I
#include <AT89X51.H>7 d5 X* K% H8 Y! x* q1 F9 |
unsigned char code led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
$ Y* ^5 o) \( Y& G+ j% sint i=0,j=0,k=1,a=0,js;: C: r: m( k( ]
sbit beep=P2^1;
5 x& Z7 K0 p B% ^3 ~7 v& u4 P" t E6 Gsbit P35=P3^5;* l0 L5 Q4 G! e6 O3 I
sbit P36=P3^6;
: `, s4 f8 @1 Fsbit P37=P3^7;; N" j# K" V4 I1 h0 S+ s
void delay(int aa)
/ ~( w) ?3 H. {{int y,z;% q5 l) X1 B0 e, Z* E3 I/ M
for(y=0;y<aa;y++)
8 P9 \: f* H; m* }6 d; g ~for(z=0;z<60;z++);
4 E7 K( z1 Z5 @/ M9 i) Y8 ]7 U, k}0 Q! n9 j% h4 D# x" @
5 k, W5 {: e8 `+ h
void main(void)5 `* D4 x& \8 L" f0 n
{3 {0 a$ ?$ B( _' W) r" E6 D
EA=1;& U, t- \+ L0 s" n. k8 W/ Q2 L8 ]
ET0=1;. ?9 L* C1 j! t. t. ` P6 X( E8 J
TMOD=0x01;
: r9 G* g# `; GTH0=0xff;. Q6 g% v0 z/ n- e {: f
TL0=0xff;3 u# e* I! u, k' P: K% R
TR0=1;7 W2 t4 J6 j+ @( k- d5 e( {
while(1)
' N# u; }% O' X5 j{
3 @5 k' U2 _7 i3 w. b1 zfor(i=100;i>=0;i--)& J U( p: b/ h1 q& N
{- X+ K, [+ u5 l5 W5 d: @ |3 W
js=i;
' B* [; s+ I& ~ delay(500); } & |% c3 u6 N$ p: m5 ]' p: R5 f
} }
, a$ S- q3 j% W- N
, j A" K/ a! X8 r( c1 s
; y, E& M& Z2 zvoid timer0() interrupt 18 l4 L: M0 P" x! H1 c L
{) t$ U! v5 \7 {
P0=led[js/100];7 @% w d+ a! e% U0 n2 g
P35=0;) _, O% o, [5 o- f
delay(5);
6 {4 s% V1 C# Y$ r# y( a P35=1;
4 p8 a$ X+ j6 M P0=led[(js-(js/100)*100)/10];
+ x# y c5 P2 u. IP36=0;
. P a) S7 O7 j7 u$ \ delay(5);
" I) s; v! ?# y P36=1;
' B5 g7 N& m7 X& h8 |( C3 ? P0=led[(js-(js/100)*100)-((js-(js/100)*100)/10)*10];
0 D1 j% o8 e, z+ |P37=0;
, s1 ?, b' m/ B% l# A: x. p" @ delay(5);
* S1 Y9 S; t3 t" J! t. B P37=1;
& |4 J. a+ R4 Y% ] ?
* j# ?+ u1 H6 p- o) {TH0=0xB1;
; f1 G- N R7 W% P; i8 U1 q8 `/ r( cTL0=0xE0;
: u/ O! U# Y% Z5 u3 G, _; M2 {8 k8 R* c1 W0 s
} |