第一范文网 - 专业文章范例文档资料分享平台

红外光通信装置-电赛报告

来源:用户分享 时间:2025/6/1 18:31:17 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

[5]求是科技.8051系列单片机C程序设计完全手册[M].北京:人民邮电出版社,2006.

[6]杨欣,王玉凤,刘湘黔.电子设计从零开始[M].北京:清华大学出版社2005.

附录:源程序

//*************************send message**************************//

#include \#include \

#define uchar unsigned char #define uint unsigned char typedef unsigned char BYTE; typedef unsigned int WORD; uchar code

str1[]={0x28,0xA6,0x4A,0x0E,0x05,0x00,0x00,0x84};//ROM 1

uchar code

str2[]={0x28,0xA5,0x86,0x40,0x04,0x00,0x00,0x80};//ROM 2

sbit D1=P3^7; sbit DQ=P3^3;

/*Define ISP/IAP/EEPROM command*/

#define CMD_IDLE 0 //Stand-By #define CMD_READ 1 //Byte-Read #define CMD_PROGRAM 2 //Byte-Program #define CMD_ERASE 3 //Sector-Erase

/*Define ISP/IAP/EEPROM operation const for IAP_CONTR*/ #define ENABLE_IAP 0x80 //if SYSCLK<30MHz

sfr ADC_DATA = 0XBD; sfr ADC_LOW = 0XBE; sbit CS=P2^0; sbit SCLK=P2^1; sbit DIN=P2^2; sbit left = P1^0; double j; ucharflag,t;

void Delay(BYTE n); voidIapIdle();

BYTE IapReadByte(WORD addr);

voidIapProgramByte(WORD addr, BYTE dat); voidIapEraseSector(WORD addr); uchartvalue;//温度值

13

void Delay999ms() //@30.000MHz {

unsigned char i, j, k;

_nop_(); _nop_(); i = 114; j = 226; k = 60; do {

do {

while (--k); } while (--j); } while (--i); }

/******************************ds1820 *********************/ void Delay1us() //@30.000MHz {

unsigned char i;

i = 5;

while (--i); }

void Delay10us() //@30.000MHz {

unsigned char i;

_nop_(); _nop_(); i = 72;

while (--i); }

void Delay48us() //@30.000MHz {

unsigned char i, j;

i = 2; j = 99; do {

14

while (--j); } while (--i); }

void Delay700us() //@30.000MHz {

unsigned char i, j;

i = 21; j = 106; do {

while (--j); } while (--i); }

void Delay1ms() //@30.000MHz {

unsigned char i, j;

i = 30; j = 43; do {

while (--j); } while (--i); }

void rst_Ds18b20() {

DQ=1;

Delay1us(); DQ=0;

Delay700us();//延迟700us DQ=1;

Delay1ms(); }

void writeDs18b20(uchar date)//写数据 {

uchari; DQ=1;

Delay1us();

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

DQ=0;

15

Delay10us(); DQ=date&0x01; Delay48us(); DQ=1;

date>>=1; Delay1us(); } }

uchar readDs18b20() //读数据 {

uchari,date; DQ=1; _nop_();

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

DQ=0;

Delay10us(); DQ=1;

Delay1us(); Delay1us(); date>>=1; if(DQ==1)

date=date+0x80; Delay48us(); }

return date; }

void MatchromDs18b20(uchar a) //匹配ROM {

char j;

writeDs18b20(0x55); //发送匹配ROM命令 if(a==1) {

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

writeDs18b20(str1[j]); //发送18B20的序列号,先发送低字节

}

if(a==2) {

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

writeDs18b20(str2[j]); //发送18B20的序列号,先发送低字节

}

16

搜索更多关于: 红外光通信装置-电赛报告 的文档
红外光通信装置-电赛报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c25zmi1eqqh6rgfk15sw18xzko02xoc00fxg_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top