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 M
typedef 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 D
sbit 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 x
0x40,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