/****************lg05128018**************2009-8-19*****************************/
/***************指针,指针数组,数组三者之间的关系*****************************/
/****************lg05128018**************2009-8-19*****************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define BYTE unsigned char
BYTE s0[7]={"data0\r\n"};
BYTE s1[7]={"data1\r\n"};
BYTE s2[7]={"data2\r\n"};
BYTE *p; //指向一维数组的指针
BYTE *q[3]; //包含有3个指针元素,每个元素都可以指向一个BYTE数组或字符串
void send(unsigned char mydata)
{
ES=0;
TI=0;
SBUF=mydata;
while(!TI);
TI=0;
ES=1;
}
/******入口:count数组元素个数*********************************************/
/******入口:data1数组名***************************************************/
void UART1_send(BYTE count,BYTE *data1)
{
BYTE j;
for(j=0;j<count;j++)
{
//send(data1[j]);
send(*(data1+j));
}
}
void InitUART(void)
{
SCON=0x50; //设定串口工作方式
PCON=0x00; //波特率不倍增
TMOD=0x20; //定时器1工作于8位自动重载模式, 用于产生波特率
EA=1;
ES = 1; //允许串口中断
TL1=0xfd;
TH1=0xfd; //波特率9600
TR1=1;
}
/*********************************************************
主函数
*********************************************************/
void main(void)
{
InitUART();
p=s1; //指向数组S1,与p=&s1[0]等价,注意与 p=&s1[1]的区别
UART1_send(7,s0);//打印data0
UART1_send(7,p); //打印data1
q[0]=s0;
UART1_send(7,q[0]);//打印data0
q[2]=s2;
UART1_send(7,q[2]);//打印data2
while(1)
{
}
}
/*********************************************************/
用户1584993 2010-9-1 14:45