/*用printf输出各种数据*/
#include"reg52.h"
#include"stdio.h"
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;
void serial_init()
{
SCON=0x50;
TMOD=0X20;//0010 0000B
TR1=1;
TH1=0XFD;
TL1=0XFD;
TI=1;
}
void main()
{
char a;
int b;
long c;
u8 x;
u16 y;
u32 z;
float f,g;
char buf[]="TestString";
char *p=buf;
a=0x3a;
b=-12365;
c=0x7fffffff;
x='A';
y=54321;
z=0x4A6F6E00;
f=10.0;
g=22.95;
serial_init();
printf("char:a=%c;a=%bd\n int:b=%d\n long:c=%ld\n",a,a,b,c);
printf("u8:x=%c;x=%bu\n u16:y=%u\n u32:z=%lu\n",x,x,y,z);
printf("xchar:x=%bx\n xint:y=%x\n xlong:z=%lx\n",x,y,z);
printf("String:buf[]=%s\n is at address:p=%p\n",buf,p);
printf("float:f=%f!=%g\n",f,g);
while(1);
}