我想用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);
}
}
}
}
}
|