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

2026/4/29 0:18:44

[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文档下载到电脑
搜索更多关于: 红外光通信装置-电赛报告 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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