編譯有六個警告 不知道是哪里出現問題?
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
/*******************************************************************************
* 函數名 :UsartInit()
* 函數功能 :設置串口
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
code smgduan[17]={0x80,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示.~F的值
char x[17]={'.','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char a[5];
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
void UsartInit()
{
SCON=0X50; //設置為工作方式1
TMOD=0X20; //設置計數器工作方式2
PCON=0X80; //波特率加倍
TH1=0XF3; //計數器初始值設置,注意波特率是4800的
TL1=0XF3;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數器
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void delay(int u)
{
while(u--);
}
int i,m,j;
void main()
{
UsartInit(); // 串口初始化
while(1);
for(i=4;i>=0;i--)
{
switch(j) //位選,選擇點亮的數碼管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//顯示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//顯示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//顯示第2位
case(3):
LSA=1;LSB=1;LSC=0; break;//顯示第3位
case(4):
LSA=0;LSB=0;LSC=1; break;//顯示第4位
}
P0=smgduan[m];//發送段碼
delay(100); //間隔一段時間掃描
P0=0x00;//消隱
}
}
/*******************************************************************************
* 函數名 : Usart() interrupt 4
* 函數功能 : 串口通信中斷函數
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
unsigned char SendByte;
int amani()
{
if(x[m]==SBUF)
{
smgduan[m];
}
return smgduan[m];
}
void Usart() interrupt 4
{
for(i=0;i<5;i++)
{
a[i]=(int) SendByte;
SBUF=a[i];
for(m;m<19;m++)
{
amani;
}
RI = 0;//清除接收中斷標志位
while(!TI); //等待發送數據完成
TI=0; //清除發送完成標志位
}
}
|