找回密码
 注册
关于网站域名变更的通知
查看: 240|回复: 2
打印 上一主题 下一主题

这个单片机流水灯程序不按照循环走,按下按键就全部亮了.我加过延时函数了

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-1-25 13:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
这个程序流水灯循环的时候,不按照循环走,按下按键就全部亮了,我加过延时函数了,也是一次全部亮。求助各位学霸。0 g% v. a7 U2 Q  Y4 H
5 C2 ]; A: L( w; L
单片机源程序如下:( c9 D) K7 L5 @) h7 h
#include<reg52.h>
5 X1 k4 x5 V) p1 X, N+ \$ l* R#define u8 unsigned char* h" c6 q0 M% h" H5 L/ a# z
sbit S7=P3^0;
( r/ v2 T7 |) fsbit S6=P3^1;
& |$ O: }7 J4 Z$ E+ I0 U3 u7 L1 {+ vsbit S5=P3^2;
1 {- |$ j; p/ V' ]1 Nsbit S4=P3^3;
- F" d' O. Q  |' E7 V: V, U
4 {7 ~: x) ~4 L7 u+ |( ]u8 code LedChar[18] =; P3 o+ \, p5 O' R, D9 b
& P5 |3 K* I' B) d4 ^
    {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,3 F. @7 |$ [/ z( ?  \$ t

/ ]1 ^+ W+ e. C0 T     0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,4 \* @- K5 R: |

+ ~/ |" o- q# @4 `  E( |/ H     0xbf,0x7f};
: T5 `( `! {' Y. k- Y" f. M/ m- q" l6 \) T( {0 _
void LedXun_huan();- |( k/ D' @6 @: D  M- {
void InitSystem();
, S+ }+ ~* P( z3 _& R% |2 K5 j# `* F# Svoid Chosse573(u8 i);
& L! [- B/ Y5 d4 w8 H. m9 P/ L& ~
& |1 i( ?! n- u/ Z) V( Gvoid InitSystem()
! m8 z+ a# P* }* j2 o# E. a{2 V  N/ x7 j! q
        Chosse573(5);
9 x2 d+ t0 U/ `( `% L        P0=0X00;
, ?* O8 L/ P1 [. m0 L: @9 a$ N}0 X! G; h/ b) M
# v0 u; l0 ~. ~( B1 i
void Delay(u8 t)/ w( L. o1 A  P- }
{
* }% {) [9 n9 y* p! [        while(t). P2 Q% W& ?2 }; p; {$ \
        {
: a0 s) i& X' ~9 }8 h                t--;2 b; D0 o* R- Y) E/ E2 ^
        }0 t" C& H* Q; r4 g# w/ I
}1 c2 O" `: R4 k# }: O
1 H3 J" E" g* W
void Chosse573(u8 i)8 w+ n$ a0 b: S, ^6 H
{# @( O- {# M9 F+ p+ n7 Z& o' {4 ]* `
        switch(i)
! x7 L4 ^6 F" M4 I        {$ _  v7 C7 @7 N+ U4 g0 k
                case 4:        P2=(P2&0X1F)|0X80;break;' Q: y- c  k. x9 @$ C
                case 5:        P2=(P2&0X1F)|0XA0;break;
5 n$ ]) E" z7 V8 d& w" l1 [                case 6:        P2=(P2&0X1F)|0XC0;break;5 o9 @& O; W# i" U) G4 Y
                case 7:        P2=(P2&0X1F)|0XE0;break;1 [1 w8 O. m" \. F
        }
( h9 l9 k6 l( O8 t3 ~}
1 Z5 z6 z" t6 p. r" B9 P
8 f9 s; X2 n1 f- U* l  dvoid KeyDriver()7 C4 U" j4 j4 E
{: S) M0 v$ _( \$ R8 K2 G
        if(S7==0)
; T$ E) M4 s1 i0 |- d* Q        {
8 ^$ Y' J5 U8 j: s                Delay(500);, F2 Q! c5 ~5 p% n3 v
                if(S7==0)
) L- |/ c) r2 U  F                LedXun_huan();' k# R* Z! v" e+ {" C4 m
        }( |6 h; G2 ^" ?5 s$ ^5 j
}
) T" W0 K" I3 h3 d
0 F1 \$ }5 D; g: T! i2 D& Jvoid LedXun_huan()
2 l! C: ^. e, e9 s4 _{+ i- ]6 X- R+ d3 g0 ?6 Y/ [3 Q" Q  d
        u8 i;# ~8 v6 Q0 Z6 r. u
        Chosse573(4);$ `. q" W% C" b& X: S# P
        for(i=0;i<8;i++)
+ y* F4 n; u5 w* d1 z* g" P        {% w& K% ~& ?  l9 A; y2 ^
                P0=~(0x01<<i);- L* j! R9 o$ \2 ]2 E) C( E
        }
& K& j( P$ V, q0 A/ [* y% i}) D4 |0 T  W  t* m$ b& }! K- R

7 L# W, V7 o3 yvoid main()
" [1 {  x. Q9 h: U& ~( ]8 A{5 X, V/ l+ V7 M  }
        InitSystem();& t, A1 @- ?: ~! v
        while(1)
; h4 i! N& j- r# m  |  h4 M( a        {/ W: e+ e0 w/ i
                KeyDriver();) z3 O5 f  O' w! j* v6 N# @
        }2 S" [3 x% A5 |6 ]/ s
}/ y" L) H; E* P* [( [

该用户从未签到

2#
发表于 2022-1-25 13:53 | 只看该作者
      
8 w, k- p3 k% t% \延时放错地方了* ^3 `8 x- \+ b! J  \3 ^& z+ d
而且延时间太短了( X! Y4 t8 o- X% h* ?
5 h; ?- j; R% J& ?; @( \5 |
void Delay1ms(u8 x)                //@11.0592MHz
  n4 d3 F4 L4 p* Z: q$ j: q{
+ d$ N6 j4 B; w7 n3 N        unsigned char i, j;
* L& T" d- |% V; z# F9 J4 ?- H( R        do/ z4 X( X. o5 W8 m1 R! Q# K
        {; h* w. a2 ^( n2 F
                _nop_();
- e9 z" j( ^2 T  [: ^                i = 2;
% h3 p; ~( s& O2 T$ c# K/ _                j = 199;+ ]# k5 I2 ~! Y" S1 _- d( q" I
                do5 I5 w' }9 g5 h0 s- G  W" C+ u
                {
3 }1 G' T1 q( [! F5 F                        while (--j);' Q" Z! s. k+ B+ g5 j: y1 }
                } while (--i);
# e' O' g/ a5 A' M9 t        }while(--x);
; [& Y5 C9 B: _4 Q}
! E. n$ l  J) ~8 l; I
; y3 r- o% [( e  U0 [/ q, n$ @+ V+ E略。。。
* z5 M& w* s9 ~
2 T  J/ u  t' }$ O7 |1 Tvoid LedXun_huan()5 _$ ]# ]2 n8 g5 J2 {" p
{
! K' `, R* S5 ^4 i$ ]' Z        u8 i;0 I6 G2 j4 A6 D4 P# d6 d
        Chosse573(4);3 L$ [4 v% L9 v# U
        for(i=0;i<8;i++)
' j, j- z/ Z0 M" h5 F9 R- m        {/ |$ N/ [- C6 S. h6 Q* ^. S
                P0=~(0x01<<i);. z0 h% K/ c- t% t
                                Delay1ms(200);- e" L) a8 o. N0 b( C
        }, N& I: Z8 _- N9 N  G, Q" ]
}. _$ J: F. g& E( |8 k
1 \9 e0 @# V5 R0 _% s% P
略。。。

该用户从未签到

3#
发表于 2022-1-25 14:16 | 只看该作者
延时放错地方,延时间太短了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-16 06:44 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表