#include"reg51.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
/***按键定义*****/
sbit KEY_P3_4 =P3^4; //左边拨动开关(拨向左:P3^4==0,表示需要标定电压;否则不需要标定)
sbit KEY_P0_0 =P0^0; //右边红色按钮(按下时:P0^0==0,表示开始标定电压;否则不标定)
sbit led=P1^1;
void ISP_IAP_Disable();
/***程序用到的定义****/
uint i,j,AD_finished=0,pj=0;mj=0,x=5,y;
unsigned char su[8]={1,2,3,4,5,6,7,8};
unsigned char *str=su;
uchar num,result,di,flag;
/**********延时函数*****************/
void delayms(uint xms)
{
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
/*********串口/定时器初始化***************/
void init()
{
TMOD=0x21;//设定T1定时器工作方式2 0010 0001
TH1=0xfd;//T1定时器高8位赋值
TL1=0xfd;//T1定时器低8位赋值
TH0=0x4c;//T0定时器高8位赋值
TL0=0x00;//T0定时器低8位赋值
SCON=0x40;//设定串口工作方式1
EA=1;//开中断
TR0=1;//开启定时器T0
TR1=1;//开启定时器T1
ET0=1;//开定时器0中断
ES=1;//允许串口中断
REN=1;//允许串口接收
}
//==================================================
//函数:void UART1_Send_Char(uchar send_data)
//描述:单片机向串口发送一个字符
//参数:uchar send_data //待发送数据
//返回:无
void UART1_Send_Char(uchar send_data)//1.32===int 1.0//==132
{
ES=0;
SBUF=send_data;//接收数据
while(!TI);
TI=0;
ES=1;
}
// 函数:void UART1_Send_String(uchar *str, uchar len)
//描述:单片机向串口发送一个字符串
//参数:uchar *str //待发送数据
// uchar len //字符串长度
//返回:无
//---------------------------------//
void UART1_Send_String(uchar *str, uchar len)
{
uchar z;
for(z=0;z<len;z++)
{
UART1_Send_Char(*(str+z));
}
}
/*********定时中断***********/
void T0_time() interrupt 1
{
TH0=0x4c;
TL0=0x00;
num++;
if(num>=20)
{
num=0;
pj=1;
}
}
/**主函数***/
void main()
{
init();
while(1)
{
UART1_Send_String(str,8);
}
}
帮忙看一下我串口发送一个数组su【8】={1,2,3,4,5,6,7,8};
为什么在串口助手上看到是00 01 00 02 00 03 00 04
我怀疑是指针指错了; |