|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我是一个刚刚学单片机的菜鸡。 想用8*8点阵屏写两个字,然后跟着视频自己摸索着写出的代码。整改后,虽然没有错误了但是有两个警告。下载到单片机后,没有得到理想的结果。自己搞了很久也没有搞明白,所以请各位大神帮帮我!
$ j! x6 i9 x$ z. \6 g. l
6 d% ?# O0 ] H 我用的是74hc595芯片控制点阵屏。这是警告内容:
# y8 k" V9 G) B! b( R) i6 d$ m4 R3 M' D7 ]
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
( Q" Z l5 p+ v9 O) o+ a* t! f SEGMENT: ?PR?_SEND_BYTE?FUZATUXING
* [! i3 f. O) m" O" l; A*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS- I% s+ f: @ Z8 [: b1 D6 h
SEGMENT: ?CO?FUZATUXING1 I: }8 n/ D% g, U" I @) B- k! ?! d
9 U7 H( V$ O5 e4 j
$ s9 @& _& V! z$ }5 L
这是我的代码:
5 f5 d1 s: r; L7 F8 p/ i) u# U) o. v#include <reg52.h>
$ h( l( P( r6 n% K0 p2 E, ]8 G#include <intrins.h>0 \ L6 A$ W" ^7 v: O
sbit R_CLK = P3^6;//串行数据输入口
* q% n& q) C0 \7 {; s, _% W( @# jsbit S_CLK = P3^5;//移位寄存器时钟7 z& m5 d0 E( k3 K8 ?
sbit DIO = P3^4; //输出锁存器时钟
7 W* C$ I2 i7 @) Y d5 r$ a2 y6 x+ A' O) ]0 [
unsigned char code table[2][8]={7 F7 T* b( A: p* G' ?
0x0C,0x1E,0x3E,0x7C,0x3E,0x1E,0x0C,0x00,! q n! \5 @, _: s; T1 ]
0x00,0x09,0x29,0x49,0xFD,0x0B,0x09,0x08( P, q0 S6 a; k1 a- j- j* P3 p
}; //字模代码
9 D/ g1 T: W, H- S! v, E3 q% m* V8 H0 W! w% O5 s
void Send_Byte(unsigned char dat)//发送一个直接数据给点阵模块
' }1 ?; U* k8 ]: l{
: k% a( }5 @/ y- ~! A6 T unsigned char i;
- F! I; t) D, ]0 h, z- V3 ^* i! F' V S_CLK = 0;
8 |, o/ g/ B* F R_CLK = 0;
6 Q6 R/ ~, r# {) t for(i=0; i<8; i++)" |! _+ e8 P6 @: e' x/ d; q# r
{3 L0 M. R0 t ?* F5 j& C
IF(dat & 0x01)9 ^) C& D9 j) q! x" t! F
DIO = 1;
% ~/ H- G) f, _ else- k. U& ^2 i( G% J. [
DIO = 0;: ]& Z% c5 h0 H8 m+ G
S_CLK = 1; k: g8 e) E6 L+ W. ~. m" E5 t
dat >>= 1;
4 P7 Z- F$ e: h! V3 B% L9 J! _7 Y. Y8 V) F S_CLK = 0;
. p$ q4 ]: V0 L0 v }
& i! k* z: V- f2 L& Y, z}6 |: X4 @8 ~8 ^4 u
void main()
- i# e8 X3 e2 S0 }9 w{
6 v7 l/ @2 e5 n! H. q. { //ROW 0x80, COL 0xfe
" C$ y/ \8 t( I$ i- Z% q2 ?: Z unsigned char j,k, ROW;
& D1 f- G4 d, q( I2 |, c unsigned int z;
" J5 t5 P6 G7 [5 g# [5 y while(1);
K5 k. `8 `- F, H. J8 \ {
4 t* ]1 h' U" q' B7 X9 V for(k=0; k<2; k++)//循环2次显示出两个字3 s) y7 s# g! Q3 R
{9 a4 j6 V8 C7 c `( a3 J
for(z=0; z<1000; z++)//让每个字显示一定的时长+ E2 l3 U- Z8 v! Q' X$ `
{0 X; E- D9 \7 Z7 C3 q
ROW = 0x80;
& l l% [- q& E5 d2 n for(j=0; j<8; j++)//循环8次写入一个字节数据
: C# j/ G. ?3 H$ f8 T2 m% Q {
$ k/ {$ D7 |7 s& y+ y; h Send_Byte(table[k][j]);/ [! a/ b3 u6 [0 c; V( L0 P
Send_Byte(ROW);% L [3 d1 o4 p$ e. f. i* f
R_CLK = 1;
1 J% w4 [5 d% x1 G, c5 ] R_CLK = 0;
+ ?8 J n: y$ M) V$ H8 w6 U8 h* s ROW = _cror_(ROW,1);
- u0 [4 A1 F% k }) v7 J* k! O3 s& t- v* W# x
}1 |8 D. O* P+ L( i7 n% @9 Q
}
8 C0 J# A. O/ z% m2 A }2 Y, h1 c4 x5 [! P+ C7 X) S+ V8 }
}
% [. u( |, X3 Z/ S3 M
) G* a4 d# C" z. W+ A1 G/ y( S3 E- S" }
. N: v/ E( Z) v: I4 Q
3 U9 e" A5 v6 z- i
4 j. Z4 l; G5 F% z2 i) L4 V$ Q |
|