《嵌入式系统开发》课程设计 - 图文(6)

2019-05-18 15:22

《嵌入式系统开发》课程设计

开始无线互联编译执行显示电压显示温度显示湿度显示“没有震动”否是是否有震动显示“有震动”否显示“没有人体感应”是否有人体感应是显示“有人体感应”结束 图6.2 ZigBee无线控制显示温湿度电压人体感应等

《嵌入式系统开发》课程设计

6.2.2 ZigBee无线控制显示点阵、数码、蜂鸣器

开始无线互联编译执行数码管显示显示流动的“心”蜂鸣器发声结束 图6.3 ZigBee无线控制显示点阵、数码、蜂鸣器

6.3 实现功能的部分代码(全部代码见附件1)

6.3.1 温湿度及人体感应器主要代码

void scan()

{

int source_addr,father_addr;

char byte4,byte5,byte6,byte7,byte8,byte9,byte10,byte11,byte12,byte13,byte14,byte15, char test,byteCheck; char PacketBuff[50]; int PacketLen;

struct wsn_comm_pkg *pkt = 0; if(sRecDataLen > 0) {

int sFirstPosition = 0;

while(sFirstPosition < sRecDataLen) {

if(Recbuff[sFirstPosition] == 0x2) {

byte16,byte17,byte18,byte19;

《嵌入式系统开发》课程设计

PacketLen = Recbuff[sFirstPosition + 1]+3; if(PacketLen <= sRecDataLen -sFirstPosition) {

printf(\); int i;

for(i = 0; i < PacketLen; i++){ }

printf(\);

if(PacketBuff[7]==0x1){

byte10 = PacketBuff[10]; byte11 = PacketBuff[11]; byte12 = PacketBuff[12]; byte13 = PacketBuff[13]; byte14 = PacketBuff[14]; byte15 = PacketBuff[15]; byte16 = PacketBuff[16]; byte17 = PacketBuff[17]; byte18 = PacketBuff[18]; if((byte10 & 0x7)==0x0) {

printf(\

PacketBuff[i] = Recbuff[sFirstPosition + i]; printf(\,PacketBuff[i]);

Celsius\\n board temperature: %d Celsius \\n temperature and humidity for temperature: %d Celsius\\n temperature and humidity forhumidity: %d %\\n strength of

illumination : %d\\n\,ScanADdata(byte11),byte12,byte13,byte14,byte15,byte16);

}

if((byte10 & 0x7)==0x1)

if(byte17 == 0x00) { }

if(byte17 == 0x01) { }

if(byte18 == 0x00) { }

if(byte18 == 0x01) { }

printf(\); printf(\); printf(\); printf(\);

《嵌入式系统开发》课程设计

{

printf(\A/Dvoltage: %.2f V\\n 2530temperature: %d Celsius\\n

fuel gas: %d\\n alcohol: %d\\n press: %d g\\n Barometric pressure: %d\\n \,ScanADdata(byte11),byte12,byte13,byte14,PressData(byte15),byte16);

}

if((byte10 & 0x7)==0x2) {

printf(\A/Dvoltage: %.2f V\\n 2530temperature: %d Celsius\\n

supersonic wave: %.4f m\\n X-axis acceleration: %d\\n Y-axis acceleration: %d\\n Z-axis acceleration: %d\\n

\,ScanADdata(byte11),byte12,ultrasonicData(byte13),byte14,byte15,byte16);

} else {

} return;

}

for(i = 0; i < sRecDataLen - sFirstPosition - PacketLen; i++) { }

sRecDataLen -= PacketLen + sFirstPosition;

Recbuff[i] = Recbuff[sFirstPosition + PacketLen+i]; }

if((byte10 & 0x7)==0x6) { } { }

save_byte4 = byte4; save_byte5 = byte5; buffer_has_item = 2; buffer_has_send = 0;

printf(\);

printf(\

save_byte4 = byte4; save_byte5 = byte5; buffer_has_item = 1; buffer_has_send = 0;

printf(\);

printf(\

Celsius\\n\,ScanADdata(byte11),byte12);

if((byte10 & 0x7)==0x7)

Celsius\\n\,ScanADdata(byte11),byte12);

printf(\);

《嵌入式系统开发》课程设计

}

}

}

}

sFirstPosition++;

sRecDataLen = 0;

实时检测结果如下:

图6.4 温湿度、振动及人体感应检测结果

6.3.2 LED、数码管及蜂鸣器控制代码

void writer_function(void) {

unsigned char SBuff[21]; int nwrite; int i = 0; int s=0;

pthread_mutex_lock(&mutex);

if(buffer_has_send == 0) {

if(LED) {

SendNum++; if(SendNum == 8)

//控制led矩阵 SBuff[0] = 0x02; SBuff[1] = 0x12;

SendNum = 0;

while(1) {


《嵌入式系统开发》课程设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:eda作业

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: