|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我是一个刚刚学单片机的菜鸡。 想用8*8点阵屏写两个字,然后跟着视频自己摸索着写出的代码。整改后,虽然没有错误了但是有两个警告。下载到单片机后,没有得到理想的结果。自己搞了很久也没有搞明白,所以请各位大神帮帮我!7 Q2 E) a3 u% g/ S6 i
. I! f. [& Q8 \4 x1 h7 d
我用的是74hc595芯片控制点阵屏。这是警告内容:. _, j# ^7 x; Y% f8 `0 B
. B/ b8 @" }8 t( k8 H( B$ w& }8 O
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
* o+ o; O- W7 q7 M! v$ o SEGMENT: ?PR?_SEND_BYTE?FUZATUXING3 B, q6 @5 {4 w: Z
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS9 w4 G: O( q, W( O$ `2 M
SEGMENT: ?CO?FUZATUXING
& `' x% E; C3 A7 d E+ j+ R1 j, U% G& j, J6 u4 X: Y
^! B# v6 z+ S& i5 f: m3 Y. w
这是我的代码:6 O( U9 O; M5 Y# d) ~0 V! b
#include <reg52.h>
4 F. _; l! Z8 ~- `( k( u, s! y& l5 r#include <intrins.h>. W6 q: V, S5 q
sbit R_CLK = P3^6;//串行数据输入口
; Z& H* J3 U% p7 I( ^* \$ _sbit S_CLK = P3^5;//移位寄存器时钟/ l' C2 S0 B. {& N: W8 t1 g
sbit DIO = P3^4; //输出锁存器时钟% B! ]2 D4 K& H1 L; z" w0 W
" K& _: ~) ^" Y& |6 x
unsigned char code table[2][8]={
7 |! c A$ z) P$ u0x0C,0x1E,0x3E,0x7C,0x3E,0x1E,0x0C,0x00,
4 t4 T' v. b1 O7 S3 u% ?7 C, U0x00,0x09,0x29,0x49,0xFD,0x0B,0x09,0x08
1 d- o0 [" D! j4 F, u' K5 e}; //字模代码4 W6 z/ ?9 c8 e% p N' s% e
8 A2 l$ X- P/ G! P
void Send_Byte(unsigned char dat)//发送一个直接数据给点阵模块
) Z: a' q( S" m{# M2 L" d6 K' `8 q' V9 k
unsigned char i;
& w+ _/ N' _7 | S_CLK = 0;
2 H# v. b8 U/ @, ? R_CLK = 0;8 _ n5 O+ Q+ }, Q& v2 b; d
for(i=0; i<8; i++)
% ] _: D7 a# R# ^7 ~7 f {
! R4 X2 z& [2 S: g IF(dat & 0x01)
) {2 b6 y& l% e3 {- _* V# i: n$ { DIO = 1;% O+ a6 J( j9 {: P
else
1 X1 K3 o$ m1 Y% ?" g+ O DIO = 0;$ }; I0 ~0 B* j6 N4 L0 t p4 y' Y
S_CLK = 1;
% Y H0 m0 d1 i2 g0 O dat >>= 1;
' u+ R7 q+ B9 n3 y: `/ T! L! r S_CLK = 0; 9 p) v+ K5 t) y5 L$ G( c
}' L: |9 Y# \$ j% R7 g. Z. X
}
. z" y2 o6 ]/ u6 K0 [9 Ivoid main()
) P ^- B7 m" b0 m1 O* y) h{& o5 U8 n& p5 w% Y7 `6 i
//ROW 0x80, COL 0xfe) |/ W( E9 \/ |$ S8 g
unsigned char j,k, ROW;( `) S8 ^/ i# ?$ X, e$ f$ V9 l
unsigned int z;
_8 p9 `/ l" Q- b: y while(1);
5 s# h1 ?; G* d3 j% j) S: W/ _ {
+ D- K. N9 s6 v( v( [# n( i for(k=0; k<2; k++)//循环2次显示出两个字0 q8 q( ] U5 T
{% r7 K7 \' f0 z9 G. I
for(z=0; z<1000; z++)//让每个字显示一定的时长
* N, S! g6 x* c% \& R+ l {- f, y/ {4 j7 a% V2 P
ROW = 0x80;
8 w" z1 s0 H* k4 O for(j=0; j<8; j++)//循环8次写入一个字节数据* x0 {0 O8 H, d
{ T+ G( f4 R+ J; L" A* |. H
Send_Byte(table[k][j]);
9 w; Z& U/ U. O5 u! Y0 C* ~ Send_Byte(ROW);
: S6 z8 z3 i% V R_CLK = 1;8 Y7 |% G* T; M+ y
R_CLK = 0;
% ~* I$ {8 l1 W% R4 B0 {9 l ROW = _cror_(ROW,1);" q3 N+ T& ]: `" O$ j5 _. Z
}
' j; ?2 @& |0 d }$ H1 {0 E! B% D/ R0 t( S7 Z4 _
}
. \' M" m# H( L/ G }
2 B8 r( p! Z, a3 q f' R; v4 w}
) F2 q- }5 |5 g
6 _9 D1 C- f0 o7 O) L
! R \1 q9 Y w- Z N7 V( @ }8 I( ~% D) ^
( e: T) I5 N) b5 Z. }; k2 R w: y5 G ^
|
|