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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这个程序流水灯循环的时候,不按照循环走,按下按键就全部亮了,我加过延时函数了,也是一次全部亮。求助各位学霸。
' H" t( s4 o8 s. {
7 I# A+ U/ [4 k2 {6 ]/ D% h单片机源程序如下:
7 f3 h  i3 T# y+ q% d3 {#include<reg52.h>4 r  I, j. D& P: j
#define u8 unsigned char
, E% o/ g7 n9 z+ V8 Z) Isbit S7=P3^0;
1 C$ _8 U5 m9 U, x- tsbit S6=P3^1;
4 ~1 r+ }. [3 Hsbit S5=P3^2;
% \" l& F. C. ^6 V7 Ksbit S4=P3^3;
  T4 d# C. ?( w
5 t4 h8 y7 R3 Q$ s$ {; ?u8 code LedChar[18] =
) `9 `( f  Z7 C4 E( O
  ?7 C/ ?1 h* d! h0 o- j5 e8 x    {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
* ]0 {/ |8 D1 W2 H, q) n' u& v; ]7 J( _- {
     0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
: j' q+ |7 N* s7 R, T$ e- E" S6 m2 j0 d$ w7 y) i) B
     0xbf,0x7f};# W9 g) G; }! R  ?7 w
: v/ Q2 d, u! J
void LedXun_huan();
: @. {8 }8 k; z; F8 B$ F+ Uvoid InitSystem();
% B6 t5 G* [: X% J+ h$ d. qvoid Chosse573(u8 i);0 L0 J, D& e7 d! H' ^' x

; n" ~* j! B; v, q: [" F" Q) Svoid InitSystem()- V: q1 P: W9 \  t" V5 w2 p4 t7 H
{
0 m; i" q5 w6 w        Chosse573(5);
5 R9 Q/ a- F# E& G! c8 |4 v        P0=0X00;
0 _$ _7 F' p, a- Y4 U- b* d}
5 _6 O/ I8 |9 _* I  u- Q! C; e+ k4 `. ~4 Y
void Delay(u8 t)
* F6 @6 I: U" D0 L{% h, f& T$ @: E6 L# }, W
        while(t), a( @3 \; |! t+ X& g  F1 ^) G# M
        {
. a) `1 T8 H, m, y/ {! S, m) V( b                t--;
/ Y3 V1 G( s$ ]& Y0 b8 l8 _! s        }
* ~+ r/ t5 O* J# d# O# M3 I7 l}/ ?; c9 N+ E1 _

( n. ?" x8 ^4 O8 J7 Z7 Z1 evoid Chosse573(u8 i)
3 X9 b' g) G! ?2 u$ _& t{0 W- h1 c+ V; }: K- x$ S
        switch(i); S% [$ F+ O. p- u" S
        {
" p; t) ]8 `" N2 X7 F4 i                case 4:        P2=(P2&0X1F)|0X80;break;9 [) C* C' f4 J
                case 5:        P2=(P2&0X1F)|0XA0;break;
6 E1 v6 O$ j: S) |                case 6:        P2=(P2&0X1F)|0XC0;break;2 x8 S0 F+ E& f$ r2 y( `
                case 7:        P2=(P2&0X1F)|0XE0;break;8 o: n) l+ D6 j) k
        }
7 z2 I" E8 ^1 o' z) d2 @$ e}$ D! a/ I' |6 ~9 }$ S; ]
# ?% E* T5 H8 m+ o6 I
void KeyDriver()1 m7 h: m: t5 j1 T5 u# \* q" Y! u( Y+ b1 J
{
* e2 S4 Y/ S$ V& a        if(S7==0)/ \$ @0 W$ l' ~+ J& Y2 Y* n
        {
; c0 N( |- i5 g) {4 m% d                Delay(500);  G; U# z/ @  Q/ k9 A5 y. b0 O
                if(S7==0)* h7 G  s# @2 i$ S3 O% [
                LedXun_huan();
$ B9 F# f: T  X: C+ o        }
. W( O, ], l# e( J}
3 X1 X5 c: \$ u9 h5 i  [0 H3 M/ S% U5 \- v6 p
void LedXun_huan()
3 J0 k6 i1 G# p! }6 z% R{
  E2 ^& t# p4 e4 V        u8 i;
5 w' K. Q/ w% V6 i& \2 i& N' r        Chosse573(4);
. O) |9 ?) E" d+ |, T$ I        for(i=0;i<8;i++)
; a& i& |. q1 d7 x5 \  x: y$ t        {2 V1 K- ~3 H) u/ ]0 e  K3 J, c* r
                P0=~(0x01<<i);" l1 a6 G) u5 l' U$ z
        }' f+ I* l4 A' S6 g
}
: p1 {/ E+ W0 r3 w6 k
! @- F7 M6 @9 I: Wvoid main()% V1 X) x2 e/ J6 k9 k+ y
{
/ L1 b; v! M6 @/ j+ `" t- R+ F        InitSystem();
  F7 X. _! O( ~8 `+ b        while(1); h. s1 v& k8 v  d' `0 [
        {
$ {7 Y9 E+ B& a0 i. {                KeyDriver();6 `! K7 J  V( m4 E2 \  |" Y
        }3 O  m5 D, N* ~5 {2 D
}
5 ~/ ~8 F* C$ C' Q

该用户从未签到

2#
发表于 2022-1-25 13:53 | 只看该作者
       7 ^* b3 A; ~* l/ [
延时放错地方了
3 j6 [' D" T9 K" m) m而且延时间太短了  [3 Z" U# |  \7 s% ?3 s
6 Y, r0 ^# t! g- f
void Delay1ms(u8 x)                //@11.0592MHz  D; g, A" E0 _1 y% p
{
# x4 T+ H2 {$ \; ]5 t7 w        unsigned char i, j;5 X0 `$ Z) H5 i& N% k) }( r
        do
& r7 A: c. g: c        {- x+ k/ E; }* k2 @8 ^
                _nop_();
+ O& b& Y/ d+ ?( L. s+ O                i = 2;
6 _  v# W6 K, J4 m                j = 199;1 A" ^" j8 W  S2 G
                do1 c0 M. s6 S; K4 J
                {8 O; @+ v( {0 ?. [' H
                        while (--j);( `( W2 a+ s9 h- }4 Q# E
                } while (--i);# }2 {7 g" a8 U0 R
        }while(--x);& E! r) G# Z" ~5 V& K6 ^
}
3 {0 e6 z" T2 l
7 D( G3 z$ t- W7 v' ?4 Q略。。。8 M8 ]" a- Z" m5 f  i- Y* S

4 D" N. |7 v6 Nvoid LedXun_huan(), j0 Y( `5 t) j& Z- D7 M) q! B
{
1 O( C5 B& `7 |2 l& ]        u8 i;
  N" j$ a; D5 y- M5 o& K/ e        Chosse573(4);% i/ Q* }/ E% F2 x# m( |6 M
        for(i=0;i<8;i++)3 o: @: t% x7 w6 Y) T$ [
        {: l% X3 V* F7 Y( p$ ~( h
                P0=~(0x01<<i);& G4 H  w, q+ J: ~4 x6 x  E
                                Delay1ms(200);
2 K. N+ h( s6 w5 w* P, T! C        }+ l* O. r8 h! x
}
( ]0 m" u: g4 R" Q4 f/ W. T1 V7 r" [2 m
略。。。

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 18:22 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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