C51的指针,试验
扫描二维码
随时随地手机看文章
C51的指针,试验,===结果:成功
/*********************************************************************/
/* 试指针,假设TL0存在20H,TH0存在21H,下一个TL0存在22H,TH0存在23H, 共存4组。
计算这4组数据的4次累加后和平均值,再分离存入W10,W11,W12,W13等4个8位寄存器
*/
/*********************************************************************/
#include
#include
#include
/*********************************************************************/
#define uint unsigned int
#define uchar unsigned char
uchar W10,W11,W12,W13;
uint xdata temp[]={0,0,0,0};
uchar *PRT=0X20;//定义指针在20H
//uchar code PRT[]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07};
void main(void) //TH0和TL0经4次平均后,分离后存在W12W11W10
{
uchar i;
uint NUM;
PRT[0]=0X00; //TL0 ,存在20H
PRT[1]=0X01; //TH0
PRT[2]=0X02; //TL0
PRT[3]=0X03; //TH0
PRT[4]=0X04;
PRT[5]=0X05;
PRT[6]=0X06;
PRT[7]=0X07;
while(1) //TH0和TL0经4次平均后,分离存在W12W11W10
{
temp[i]=(*(PRT+(i*2)+1)*256)+*(PRT+i*2); //
i++;
if(i>3)
{
i=0;
NUM=(temp[0]+temp[1]+temp[2]+temp[3])/4; //4次累加和平均
W10=NUM&0X000F;//取低4位
W11=(NUM>>4)& 0X000F;//取4-7位
W12= (NUM>>8)& 0X000F;//取8-11位
}
}
}