我想用8*8点阵屏写两个字,然后跟着视频自己摸索着写出的代码。整改后,虽然没有错误了但是有两个警告。然后下载后,没有理想的结果。
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_SEND_BYTE?FUZATUXING
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?CO?FUZATUXING
这是警告的内容,好像是说我有没有引用的变量。但是我总找不出问题,请问有哪位大神能帮我看看嘛???
附上我的代码:
#include <reg52.h>
#include <intrins.h>
sbit R_CLK = P3^6;//串行数据输入口
sbit S_CLK = P3^5;//移位寄存器时钟
sbit DIO = P3^4; //输出锁存器时钟
unsigned char code table[2][8]={
0x0C,0x1E,0x3E,0x7C,0x3E,0x1E,0x0C,0x00,
0x00,0x09,0x29,0x49,0xFD,0x0B,0x09,0x08
};
void Send_Byte(unsigned char dat)
{
unsigned char i;
S_CLK = 0;
R_CLK = 0;
for(i=0; i<8; i++)
{
if(dat & 0x01)
DIO = 1;
else
DIO = 0;
S_CLK = 1;
dat >>= 1;
S_CLK = 0;
}
}
void main()
{
//ROW 0x80, COL 0xfe
unsigned char j,k, ROW;
unsigned int z;
while(1);
{
for(k=0; k<2; k++)
{
for(z=0; z<1000; z++)
{
ROW = 0x80;
for(j=0; j<8; j++)
{
Send_Byte(table[k][j]);
Send_Byte(ROW);
R_CLK = 1;
R_CLK = 0;
ROW = _cror_(ROW,1);
}
}
}
}
}
|