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

基于labview的温度采集系统 - 图文(8)

来源:网络收集 时间:2019-04-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

河南师范大学本科毕业论文(设计)

DQ_CLR; delayUs(255);

/*延时500uS(480-960)*/

delayUs(255); delayUs(128); DQ_SET; DQ_IN; delayUs(100);

/*延时80uS*/

i = DQ_R; delayUs(255);

/*延时500uS(保持>480uS)*/

delayUs(255); delayUs(128); if (flag & 0x80) {

/*恢复中断状态*/

SEI(); }

if (i) {

return 0x00; }

else {

return 0x01;

}

}

/*DS18B20字节读取函数*/

unsigned char ds1820_read_byte(void) { unsigned char i; unsigned char value = 0; flag = SREG; /*中断保护*/ CLI();

/*关中断*/

for (i = 8; i != 0; i--) {

value >>= 1; DQ_OUT; DQ_CLR; delayUs(2); /*延时4uS*/

NOP();

NOP();

35

河南师范大学本科毕业论文(设计)

NOP(); NOP(); NOP(); DQ_SET; DQ_IN; delayUs(4);

/*延时10uS*/

delayUs(4); if (DQ_R) { value|=0x80;

}

delayUs(35);

/*延时60uS*/ delayUs(35); }

if (flag & 0x80) {

/*恢复中断状态*/

SEI();

}

return(value);

}

/*DS18B20字节写入函数*/

void ds1820_write_byte(unsigned char value) { unsigned char i; flag = SREG; /*中断保护*/ CLI();

/*关中断*/

for (i = 8; i != 0; i--) {

DQ_OUT; DQ_CLR; delayUs(2); /*延时4uS*/

NOP(); NOP(); NOP(); NOP(); NOP();

if (value & 0x01) {

DQ_SET;

36

河南师范大学本科毕业论文(设计)

}

delayUs(100); /*延时80uS*/ DQ_SET;

/*位结束*/

value >>= 1;

}

if (flag & 0x80) {

/*恢复中断状态*/

SEI();

}

}

/*启动ds1820转换*/ void ds1820_start(void) { ds1820_reset();

ds1820_write_byte(0xCC); /*勿略地址*/ ds1820_write_byte(0x44);

/*启动转换*/

}

/*DS8B20读取温度信息*/

unsigned int ds1820_read_temp(void) { unsigned int i; unsigned char buf[9]; ds1820_reset();

ds1820_write_byte(0xCC); /*勿略地址*/ ds1820_write_byte(0xBE); /*读取温度*/

for (i = 0; i < 9; i++) { buf[i] = ds1820_read_byte();

}

i = buf[1]; i <<= 8; i |= buf[0]; return i;

}

37

河南师范大学本科毕业论文(设计)

//DS18B20用数据位端口初始化 void port_1820(void) {

DDRA=0x00; PORTA=0x80; //DS18B20的数据位接口上拉

}

串口通信函数 #include \#include /*串口初始化函数*/ void Uart_Init(void) { UCSRA = 0x00;

UCSRB = 0x18; /*允许接收和发送*/ UCSRC = 0x06; /*8位数据*/ UBRRH = 0x00; UBRRL = 47;

/*9600*/

}

/*数据发送,查询方式*/

void Uart_Transmit(unsigned char i) { while (!(UCSRA & (1<

UDR = i;

/* 发送数据*/

}

/*数据接收,查询方式*/

unsigned char Uart_Receive( void ) { while (!(UCSRA & (1<

return UDR;

/* 获取并返回数据*/

}

PWM函数 #include #include #define OCR OCR1A

38

河南师范大学本科毕业论文(设计)

int OcrReg = 1024; //OCR1A初始值

int Icr1Reg = 0x7ff; //PWM的计数顶部值 Icr1Reg = 2047 void pwm_init(void) {

//比较匹配时清零,计数到最大时置位OC1A TCCR1A |= (1<

//11位分辨率,快速PWM模式,使用系统时钟作为计数时钟 TCCR1B |= (1<

} 延时函数

#include\#include

/********************************************************************** functionName: void delayUs(BYTE temp) description :延时函数 晶振频率:7.3728MHZ delayUs(1); //2.71us delayUs(2); //3.53us delayUs(4); //5.15us delayUs(8); //8.41us delayUs(16); //14.92us delayUs(32); //27.94us delayUs(64); //53.98us delayUs(128); //106.07us delayUs(255); //209.42us delayUs(18); //16.55us delayUs(34); //29.57us delayUs(35); //30.38us delayUs(100); //83.28 _NOP(); //0.14us

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

void delayUs(unsigned int temp) {

39

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于labview的温度采集系统 - 图文(8)在线全文阅读。

基于labview的温度采集系统 - 图文(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/615842.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: