EDA365电子工程师网

标题: 想找人看看这个程序是哪里有问题 [打印本页]

作者: 诸葛翠花    时间: 2018-4-15 23:28
标题: 想找人看看这个程序是哪里有问题
#include "reg51.h"
2 P2 l6 F- y. ~0 i1 ^7 c  {#include"intrins.h"
  h1 V- h! D* K: ?7 D! Z# o7 Mtypedef unsigned char u8;) i9 {0 S! _% y# P! \. ]
typedef unsigned char u16;
- w8 W, N/ C* v' W- _
+ b1 p8 k  @/ A; n$ Y$ V8 p1 {2 _1 \3 Dsbit SRCLK=P3^6;, S; o' M0 M- ?5 {( L
sbit RCLK=P3^5;
/ `$ x" h4 }0 `0 q% _sbit SER=P3^4;
. S$ N, d6 E2 P& k  M+ q( ~ u8 code ledwei1[]=
3 M* d8 i7 ^( ~8 Y7 ? {/ v7 k! _, n8 H4 Z
   0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
* k7 N! Y2 L9 Y1 F   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
2 M2 x; X- C& g6 B };
7 a; k, V- O: M u8 code ledduan1[]=8 w0 C, k" N/ ?/ v6 D
{
/ O3 l. W3 @8 \- P /*--  文字:  普  --*/
" B$ U0 ~- z1 h, w7 D/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
$ T7 s9 A' z: n, V  p8 x0x40,0x44,0x54,0x64,0x45,0x7E,0x44,0x44,0x44,0x7E,0x45,0x64,0x54,0x44,0x40,0x00,
3 f0 Z7 O+ \" o6 v% |0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00
( e* Y, X) S, n6 d' s0 E8 I" y};( q- R6 Y& {2 H3 r2 N3 A* S

/ F) U0 c* i4 P# @' G
; h( f, k6 g# E  ?
( j% ~' c; x3 k4 i7 H2 l
+ |2 |! f- O$ m0 O2 t         void delay(u16 i )
  ]" |- p9 [7 s3 ~8 W  d. @" A         {  E9 V! V8 g; j: ~0 D
            while(i--);
* H0 a# W8 E/ r) |$ n# m# N6 V# h. I( y* W4 D8 q. B0 v! j* R
         0 X& t9 B; u; Z6 j; u
         }
2 z0 h3 h# {/ v* t: Z
+ l4 ^: r1 c2 A" G' N2 N- d, b* g8 f% \1 n
void Hc595sendByte(u8 dat1,u8 dat2,u8 dat3,u8 dat4)+ l0 j7 n- w+ \4 `. ~' q; @- n% G

2 q$ o! Q7 |* W4 X" e8 {9 r {
  _5 K* e; }0 a2 V   u8 a ;5 L# {7 I; G0 B
   SRCLK=1;9 g! t" g- j' q$ p7 t( ^7 \
   RCLK=1;( B. E: e  _  d, F4 ^
   for(a=0;a<8;a++)        //传递四个参数分别移位四次在移位寄存器当中去: @; o+ c% F  d0 _* }
   {
! ]$ A* b+ A  C/ ]/ @        SER =dat1>>7;3 P8 i8 C# y) p# P0 R) `& v
        dat1<<=1;
7 u. M0 S1 o4 ^1 a  ]2 t( A        SRCLK=0;2 A' N! y3 F+ a4 r, v! b, w
        _nop_();- e' L- A/ h7 D( |8 s) P
        _nop_();
; n- C7 y, e& v4 F+ x        SRCLK=1;
4 u' \4 O" D3 c7 h7 R    }/ \# a- _: x" Z; |0 q; K. y
         
4 B' v- F' x" Z5 E       for(a=0;a<8;a++)        2 k0 x7 y. I  ^% X
   {& e! X& \% M0 X* _* \4 O
        SER =dat2>>7;
% k2 U. B, f( a) A        dat2<<=1;8 Q# E2 y8 c$ r  g& ?; M' @( C
        SRCLK=0;
3 f0 H: I! I/ h2 Z! L        _nop_();
4 v# `% Q$ B, q5 h5 a; e) ?  H        _nop_();
  `  o. g# f) L" ]        SRCLK=1;
, B6 N9 I  ^% ~  W3 m( w    }   
4 k' t/ }" L- m# N8 g) c       for(a=0;a<8;a++)        ! B, `) t0 Q9 R. C6 w' w( C
   {
* `0 R/ i: J' k        SER =dat3>>7;                         3 f) o0 b. Z% l2 ~
        dat3<<=1;0 ~" z+ \" V$ a$ ^; A' e
        SRCLK=0;! T2 G+ H0 I; x7 @+ j6 ~
        _nop_();
; r8 ?" z! \% v/ e! O        _nop_();
3 {1 \1 y" ^5 E8 h        SRCLK=1;1 K5 d& V. ~$ Z# k& L; F" y& }8 W1 e
    }
8 z4 O; f9 l4 e. h          for(a=0;a<8;a++)         , k3 H/ c5 {, s" l' M) r: H+ Y# q6 S
   {9 Z' k$ g& m( g- D! q* u
        SER =dat4>>7;8 V1 W$ y4 G0 h
        dat4<<=1;) m' W" S) Q3 c6 S, T6 V' m
        SRCLK=0;1 S9 y! E0 B2 l& u) F9 |4 F5 W
        _nop_();
  c7 Y, m' B1 N* W4 ?        _nop_();
+ ]" S# B6 i  Y        SRCLK=1;6 D1 \7 {6 E7 G2 y0 T1 e6 W
    }
6 n6 A, }/ S6 }) z# p( Y4 |1 ?6 V$ o         
0 _. t! S7 D, A) k$ E( i       RCLK=0;" L  ?: L( `7 f- r$ b
           _nop_();6 }/ c, f4 w) w" i& r5 v
           _nop_();
  ^; k5 g9 G. {8 Z$ d                 RCLK=1;2 a* h' `1 w  C9 |
}
! N( ~; m- ?1 F
$ I! f6 s# q' F* ~+ G
5 X4 `# i( a; u% @* X7 Y* s     void main()
3 K7 a9 r) I7 [) V     {
/ w5 A0 \/ N4 @* ?        u8 i ;7 R5 B2 Q/ Z' ~5 k! Z  ?

6 U; }) T1 p1 j' u        while(1). Z2 g  h6 b/ L
       {
3 x2 L  f3 E* d                 for(i=0;i<16;i++)1 Y" c7 I! C4 U5 y7 b/ y9 o0 V
0 t4 |- [+ @; g# X* |
                  {# ]4 Z; g7 |6 |1 p" O- |/ |3 e) I) i8 U
                          Hc595sendByte(~ledwei1[i+16],~ledwei1,ledduan1[16+i],ledduan1);
0 j- [* a% c& x7 f4 u                            delay(10);: r+ D9 A) g7 \- k! p) m7 K
                  ( w* H9 n( L3 t  \
                  }5 K+ a5 m* ~0 h) G$ _
       * A; Y: E; h: }- f* U
       }
! R3 x2 N5 Z' s5 f6 R# Z4 j9 n                                                       ; Q7 @6 W  d* L( L8 L4 p
     8 z) i8 M/ g8 C
     0 K. t+ ~# W/ P: q" S5 B
     }
! d5 f% e1 q/ h; U' x[img][/img]
作者: 诸葛翠花    时间: 2018-4-15 23:30
程序在调试的时候显示的全是led字, 我只想led灯显示一个普字,跑出来全是灯在闪烁,我不清楚到底是哪里出了问题




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2