[mw_shl_code=c,true]谁可以帮我看一下,为什么将table数组的元素输出到窜口助手那里会出现乱码,而把字符串“chen_jun”输到那里就没问题
#include<reg52.h> //52系列单片机的头文件,其包含特殊功能寄存器的定义
#include<string.h>
sbit led=P0^0;
typedef unsigned char uchar; //定义uchar 为unsigned char型
typedef unsigned int uint; //定义uint 为unsigned int 型
uchar cmd;
uchar table[4]={0,0,0,0};
/*---------------------------------------------------------------
串行口方式1初始化函数
----------------------------------------------------------------*/
void uart_init()
{
TMOD|=0x20; // TMOD: timer 1, mode 2, 8-bit 自动重装
PCON=0X00; //波特率正常,如PCON=0X80;则波特率加倍
SCON=0x50; // SCON: 模式 1, 8-bit UART, 使能接收
// SM0=0; SM1=1;REN=1; //这三条语句等效于 SCON=0X50;
TH1=0xFD; // TH1: 自动重装值 波特率为9600 晶振 11.0592MHz
TL1=0xFD; // TL1: 自动重装值 波特率为9600 晶振 11.0592MHz
TR1=1;
REN=1;
ES=1; // timer 1 打开
EA=1; //打开总中断
}
void uart_print(char *p,uint len)
{
uint i;
for(i=0;i<len;i++)
{
SBUF=*p++;
while(!TI);
TI=0;
}
SBUF=0x0A;
while(!TI);
TI=0;
}
/*---------------------------------------------------------------
主函数
----------------------------------------------------------------*/
void main()
{
uint t=1831;
uart_init(); //串口初始化函数
table[0]=t/1000;
table[1]=t%1000/100; table[2]=t%100/10;
table[3]=t%10;
uart_print(table,strlen(table));
uart_print("chen_jun",strlen("chen_jun"));
}
void timer1() interrupt 4
{
if(RI)
{
RI=0;
cmd=SBUF;
TI=0;
}
}
[/mw_shl_code]
|