无线传感网络课程设计.docx

上传人:b****6 文档编号:7343656 上传时间:2023-01-23 格式:DOCX 页数:67 大小:50.13KB
下载 相关 举报
无线传感网络课程设计.docx_第1页
第1页 / 共67页
无线传感网络课程设计.docx_第2页
第2页 / 共67页
无线传感网络课程设计.docx_第3页
第3页 / 共67页
无线传感网络课程设计.docx_第4页
第4页 / 共67页
无线传感网络课程设计.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

无线传感网络课程设计.docx

《无线传感网络课程设计.docx》由会员分享,可在线阅读,更多相关《无线传感网络课程设计.docx(67页珍藏版)》请在冰豆网上搜索。

无线传感网络课程设计.docx

无线传感网络课程设计

无线传感网络

课程设计报告

 

 

姓名:

胡韶辉胡衎

学号:

139074377139074376

班级:

物131班

指导教师:

卫琳娜

 

2017年1月1日

 

无线传感网络课程设计

实验一、无线传感网络点对点通信实验

1.实验内容

此实验为验证实验,根据实验步骤进行实验,观察结果是否与预期相符

2.实验步骤

用IAR8.1打开路径:

C:

\Users\xs\Desktop\无线传感器网络课程设计\无线传感网实验资料201604\感知RF2-2530WSNV1.2\代码和例子程序\Light_Switch\IDE\Light_Switch\srf05_cc2530\Iar\Light_Switch.eww分别编译并下载至两个节点上,打开节点,左右键选择/,选择完成后按中间键确认,观察LED灯显示情况。

3.实验代码及分析

/*

功能:

查找字符在索引中的哪一个位置

*/

/**************************************************************************************************/

staticu16lookforChar(u8ch)

{

uint16i;

for(i=0;i

{

if(fontList[i]==ch)

returni;

}

returni;

}

//查中文

staticu16lookforChar16(u16ch)

{

uint16i,j;

u16temp16;

for(i=0;i

{

j=i*2;

temp16=fontChar16List[j+1];

temp16<<=8;

temp16|=fontChar16List[j];

if(temp16==ch)

returni;

}

returni;

}

 

/**************************************************************************************************/

/*

功能:

在指定位置输出8*8

*/

/**************************************************************************************************/

staticvoidLcdPutChar8(u8x,u8y,u8ch)

{

LcdBuf[y][x]=ch;

}

/**************************************************************************************************/

/*

功能:

在指定位置输出16*16

*/

/**************************************************************************************************/

/*staticvoidLcdPutChar16(u8x,u8y,u16ch)

{

LcdBuf[y][x]=(u8)ch;//低前高后

LcdBuf[y+1][x]=(u8)(ch>>8);

}

voidLcdPutString8(u8x,u8y,u8*ptru8len,u8op)

{

u8i,*tptr=ptr,xx=x,yy=y;

u16m;

if(x>95)

return;

if(y>1)

return;

for(i=0;i

{

m=lookforChar(*tptr++);

if(m!

=FONTLISTCOUNT)

{

m=m*8;

}

else

return;

xx+=8;

if(xx>88)

return;

}

}

*/

 

voidLcdClearRam(void)

{

u8i;

for(i=0;i<96;i++)

{

LcdBuf[0][i]=0;

}

for(i=0;i<96;i++)

{

LcdBuf[1][i]=0;

}

}

voidLcdClearScrean(void)

{

LcdClearRam();

PutPic((void*)LcdBuf);

}

voidLcdPutString16_8(u8x,u8y,u8*ptr,u8len,u8op)

{

u8i,j,*tptr=ptr,xx=x,yy=y;

u16m;

if(xx>95)

return;

if(yy)

return;

for(i=0;i

{

m=lookforChar(*tptr++);

if(m!

=FONTLISTCOUNT)

{

m=m*16;

for(j=0;j<8;j++)

{

if(op)

{

LcdPutChar8((xx+j),yy,font[m+j]);

LcdPutChar8((xx+j),yy+1,font[m+j+8]);

}

else

{

LcdPutChar8((xx+j),yy,~font[m+j]);

LcdPutChar8((xx+j),yy+1,~font[m+j+8]);

}

}

}

else

break;

xx+=8;

if(xx>96)

return;

}

PutPic((void*)LcdBuf);

}

//显示16*16字符

voidLcdPutString16_16(u8x,u8y,u8*ptr,u8len,u8op)

{

u8i,j,*tptr=ptr,xx=x,yy=y;

u16m;

if(xx>95)

return;

if(yy)

return;

for(i=0;i

{

m=lookforChar(*tptr++);

if(m!

=FONTLISTCOUNT)

{

m=m*32;

for(j=0;j<16;j++)

{

if(op)

{

LcdPutChar8((xx+j),yy,font[m+j]);

LcdPutChar8((xx+j),yy+1,font[m+j+16]);

}

else

{

LcdPutChar8((xx+j),yy,~font[m+j]);

LcdPutChar8((xx+j),yy+1,~font[m+j+16]);

}

}

}

else

break;

xx+=16;

if(xx>80)

return;

}

PutPic((void*)LcdBuf);

}

staticvoidLcdPrint8(u8x,u8y,u8vl,u8op)

{

u8j;

u16m;

m=lookforChar(vl);

if(m!

=FONTLISTCOUNT)

{

m=m*16;

for(j=0;j<8;j++)

{

if(op)

{

LcdPutChar8((x+j),y,font[m+j]);

LcdPutChar8((x+j),y+1,font[m+j+8]);

}

else

{

LcdPutChar8((x+j),y,~font[m+j]);

LcdPutChar8((x+j),y+1,~font[m+j+8]);

}

}

}

}

staticvoidLcdPrint16(u8x,u8y,u16val,u8op)

{

u8j;

u16m;

m=lookforChar16(val);

if(m!

=fontChar16ListCount)

{

m=m*32;

for(j=0;j<16;j++)

{

if(op)

{

LcdPutChar8((x+j),y,fontChar16[m+j]);

LcdPutChar8((x+j),y+1,fontChar16[m+j+16]);

}

else

{

LcdPutChar8((x+j),y,~fontChar16[m+j]);

LcdPutChar8((x+j),y+1,~fontChar16[m+j+16]);

}

}

}

}

voidLcdPutDispBuf(u8x,u8y,OledCodeDataType*ptr,u8op)

{

u8tcount=x;

OledCodeDataType*tptr=ptr;

u16temp16;

if(x>88)

return;

if(y>1)

return;

while((*tptr!

='\0')&&(tcount<=88))

{

if(*tptr<127)//显示ASIC码

{

LcdPrint8(tcount,y,*tptr,op);

tptr++;

tcount+=8;

}

else//显示汉字

{

temp16=tptr[1];

temp16<<=8;

temp16|=tptr[0];

LcdPrint16(tcount,y,temp16,op);

tptr+=2;

tcount+=16;

}

}

PutPic((void*)LcdBuf);

}

//实现中英文混合显示

voidLcdPutDisp(u8x,u8y,OledCodeDataType*ptr,u8op)

{

u8tcount=x;

OledCodeDataType*tptr=ptr;

u16temp16;

if(x>88)

return;

if(y>1)

return;

while((*tptr!

='\0')&&(tcount<=88))

{

if(*tptr<127)//显示ASIC码

{

LcdPrint8(tcount,y,*tptr,op);

tptr++;

tcount+=8;

}

else//显示汉字

{

temp16=tptr[1];

temp16<<=8;

temp16|=tptr[0];

LcdPrint16(tcount,y,temp16,op);

tptr+=2;

tcount+=16;

}

}

PutPic((void*)LcdBuf);

}

//从右往左输出一组字符并移运显示

voidLcdPutScDispRtoL(OledCodeDataType*ptr,u8op,u16dl)

{

OledCodeDataType*tptr=ptr;

u16temp16;

//LcdClearRam();

while(*tptr!

='\0')

{

if(*tptr<127)//显示ASIC码

{

memcpy(LcdBuf[0],&LcdBuf[0][8],88);

memcpy(LcdBuf[1],&LcdBuf[1][8],88);

LcdPrint8(88,0,*tptr,op);

tptr++;

}

else//显示汉字

{

memcpy(LcdBuf[0],&LcdBuf[0][16],80);

memcpy(LcdBuf[1],&LcdBuf[1][16],80);

temp16=tptr[1];

temp16<<=8;

temp16|=tptr[0];

LcdPrint16(80,0,temp16,op);

tptr+=2;

}

PutPic((void*)LcdBuf);

LcdDelay(dl);

}

}

voidLcdPutScDispRtoL12(OledCodeDataType*ptr,u8op,u16dl)

{

OledCodeDataType*tptr=ptr;

u16i,temp16;

for(i=0;i<12;)

{

if(*tptr<127)//显示ASIC码

{

memcpy(LcdBuf[0],&LcdBuf[0][8],88);

memcpy(LcdBuf[1],&LcdBuf[1][8],88);

LcdPrint8(88,0,*tptr,op);

tptr++;

i++;

}

else//显示汉字

{

memcpy(LcdBuf[0],&LcdBuf[0][16],80);

memcpy(LcdBuf[1],&LcdBuf[1][16],80);

temp16=tptr[1];

temp16<<=8;

temp16|=tptr[0];

LcdPrint16(80,0,temp16,op);

tptr+=2;

i+=2;

}

PutPic((void*)LcdBuf);

LcdDelay(dl);

}

}

//从左往右

voidLcdPutScDispLtoR12(OledCodeDataType*ptr,u8op,u16dl)

{

OledCodeDataType*ttptr,*tptr=ptr;

u16temp16;

u8i,len,tempbuf[2][96];

len=12;

tptr=ptr+11;

for(i=0;i

{

if(*(tptr)<127)//显示ASIC码

{

memcpy(&tempbuf[0][0],&LcdBuf[0][0],96);

memcpy(&tempbuf[1][0],&LcdBuf[1][0],96);

memcpy(&LcdBuf[0][8],&tempbuf[0][0],88);

memcpy(&LcdBuf[1][8],&tempbuf[1][0],88);

LcdPrint8(0,0,*tptr,op);

tptr--;

i++;

}

else//显示汉字

{

memcpy(&tempbuf[0][0],&LcdBuf[0][0],96);

memcpy(&tempbuf[1][0],&LcdBuf[1][0],96);

memcpy(&LcdBuf[0][16],&tempbuf[0][0],80);

memcpy(&LcdBuf[1][16],&tempbuf[1][0],80);

ttptr=tptr;

temp16=*ttptr;

temp16<<=8;

ttptr=tptr-1;

temp16|=*ttptr;

LcdPrint16(0,0,temp16,op);

tptr-=2;

i+=2;

}

PutPic((void*)LcdBuf);

LcdDelay(dl);

}

}

voidLcdPutScString(OledCodeDataType*ptr,u8op,u8rl,u16dl)

{

switch(rl)

{

caseLIFT_SC:

LcdPutScDispLtoR12(ptr,op,dl);

break;

caseRIGHT_SC:

LcdPutScDispRtoL12(ptr,op,dl);

break;

default:

break;

}

}

 

voidLcdPutPic(u8x,u8y,u8w,u8h,OledCodeDataType*ptr,u8op)

{

u8i;

OledCodeDataType*tptr=ptr;

if((x>95)||((x+w)>96))

return;

if((y>1)||((y+h)>2))

return;

for(i=0;i

{

if(op)

{

LcdBuf[y][x+i]=*tptr;

if(h==2)

LcdBuf[y+1][x+i]=*(tptr+w);

tptr++;

}

else

{

LcdBuf[y][x+i]=~*tptr;

if(h==2)

LcdBuf[y+1][x+i]=~*(tptr+w);

tptr++;

}

}

PutPic((void*)LcdBuf);

}

 

//整屏滑动显示

voidLcdPutScPic(OledCodeDataType*ptr,u8op,u8qp,u16dl)

{

u8i,j;

u8tempbuf[2][96];

if(qp)

{

for(i=0;i<96;i++)

{

tempbuf[0][i]=*ptr++;

}

for(i=0;i<96;i++)

{

tempbuf[1][i]=*ptr++;

}

}

else

{

for(i=0;i<96;i++)

{

tempbuf[0][i]=~*ptr++;

}

for(i=0;i<96;i++)

{

tempbuf[1][i]=~*ptr++;

}

}

switch(op)

{

caseRIGHT_SC:

//右边

for(i=0;i<8;i++)

{

for(j=0;j<84;j++)

{

LcdBuf[0][95-j]=LcdBuf[0][83-j];

LcdBuf[1][95-j]=LcdBuf[1][83-j];

}

for(j=0;j<12;j++)

{

LcdBuf[0][11-j]=tempbuf[0][95-j];

LcdBuf[1][11-j]=tempbuf[1][95-j];

}

for(j=0;j<84;j++)

{

tempbuf[0][95-j]=tempbuf[0][83-j];

tempbuf[1][95-j]=tempbuf[1][83-j];

}

PutPic((void*)LcdBuf);

}

LcdDelay(dl);

break;

caseLIFT_SC:

//左边

for(i=0;i<8;i++)

{

for(j=0;j<84;j++)

{

LcdBuf[0][j]=LcdBuf[0][j+12];

LcdBuf[1][j]=LcdBuf[1][j+12];

}

for(j=0;j<12;j++)

{

LcdBuf[0][95-j]=tempbuf[0][11-j];

LcdBuf[1][95-j]=tempbuf[1][11-j];

}

for(j=0;j<84;j++)

{

tempbuf[0][j]=tempbuf[0][j+12];

tempbuf[

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1