DS18B20.h头文件内容预览:
/*DS18B20驱动程序*/
//作者:詹磊
//功能:驱动DS18B20单总线温度计芯片,从中读出当前温度计所处温度,
// 测量范围:-55~+125度;分辨率为0.1度(100度以下);
//注意:本驱动不含CRC检测,所以不能一线挂多个器件,也不带温度报警,在之后的版本中
// 再加吧
//感想:对单总线器件的操作时序非常重要;程序顺序非常关键;由于温度有负数,有小数,
// 所以在数据处理方面也很难控制;单片机资源有限 int float 数据类型最好少用
/*******************************************************************************/
#ifndef __DS18B20_H__
#define __DS18B20_H__
/*******************************************************************************/
#include #define uchar unsigned char #define uint unsigned int #define YES 0 #define NO 1 /*******************************************************************************/ //sbit DS18B20_DQ=P1^7; sbit DS18B20_DQ=P3^7; /*******************************************************************************/ bit fu_flag; /*******************************************************************************/ /***************************/ //delay_us(60);延时556us // //delay_us(3);延时43us // //delay_us(18);延时178us // //delay_us(30);延时286us // /***************************/ /*******************************************************************************/ bit DS18B20_init() { bit n; fu_flag=0; DS18B20_DQ=1; delay_ms(1); DS18B20_DQ=0; delay_us(60);//延时556us DS18B20_DQ=1; delay_us(3);//延时43us n=DS18B20_DQ; delay_us(18);//延时178us delay_us(30);//延时286us return n; } /*******************************************************************************/ void W_DS18B20(uchar com) { uchar i; DS18B20_DQ=1; delay_ms(1); for(i=0;i<8;i++) { DS18B20_DQ=0; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); DS18B20_DQ=com&0x01; delay_us(3);//延时43us ;3 _nop_(); _nop_(); DS18B20_DQ=1; _nop_(); com>>=1; } } /*******************************************************************************/ uchar R_DS18B20() { uchar i,dat; DS18B20_DQ=1; delay_ms(1); for(i=0;i<8;i++) { DS18B20_DQ=0; _nop_();_nop_();_nop_(); _nop_();_nop_(); _nop_(); dat>>=1;//这里位置很关键。最后一次是不需要移位的,所以放在if前 DS18B20_DQ=1; _nop_();_nop_(); _nop_();_nop_(); if(DS18B20_DQ==1) dat=dat|0x80; delay_us(3);//延时43us _nop_(); _nop_(); DS18B20_DQ=1; } return dat; } /*******************************************************************************/ uint R_temp_DS18B20() { uint temp; uchar l,h; DS18B20_init(); if(DS18B20_init()==YES) { W_DS18B20(0xCC); W_DS18B20(0x44); delay_ms(1); DS18B20_init(); W_DS18B20(0xCC); W_DS18B20(0xBE); l=R_DS18B20(); h=R_DS18B20(); if((h&0xF0)==0xF0) { fu_flag=1; if(l==0) { l=~l+1; h=~h+1; } else { l=~l+1; h=~h; } temp=h*256+l; } else { temp=h*256+l; fu_flag=0; } } return temp; } /*******************************************************************************/ #endif /*******************************************************************************/ // 沐雨迎风设计 // // 2010/04/05 // // // /*******************************************************************************/ LCD1602.h头文件: /*1602液晶驱动程序*/ //作者:詹磊
上一篇:51单片机防酒后驾驶 MQ-3酒精检测系统的仿真
下一篇:51单片机与PC上位机串口通信之LED控制
推荐阅读
史海拾趣
关于电源反馈控制电路,网友们可能会提出多种问题,这些问题涵盖了其工作原理、设计、应用、故障排查及优化等方面。以下是一些常见问题及其简要回答:
-
问题:什么是电源反馈控制电路,它的主要作用是什么?
回答:电源反馈控制电路是一种通过监测电源输出电压或电流,并将其与设定值进行比较,然后调整电源输出以维持设定值的电路。它的主要作用是确保电源输出的稳定性和准确性,无论负载如何变化,都能保持输出电压或电流在预定范围内。 -
问题:电源反馈控制电路有哪些常见的拓扑结构?
回答:常见的电源反馈控制电路拓扑包括电压模式控制(Voltage Mode Control, VMC)和电流模式控制(Current Mode Control, CMC)。电压模式控制主要关注输出电压的稳定性,而电流模式控制则在电压控制的基础上增加了对输出电流的直接控制,以提高瞬态响应和稳定性。 -
问题:如何设计有效的电源反馈控制电路?
回答:设计有效的电源反馈控制电路需要考虑多个因素,包括选择合适的反馈元件(如电阻、电容、电感)、放大器类型(运算放大器、比较器等)、补偿网络设计(以改善稳定性和响应速度)、以及选择合适的控制策略(如PID控制)。此外,还需要进行仿真和实验验证,以确保设计的电路能够满足性能指标。 -
问题:电源反馈控制电路中遇到稳定性问题时应该如何解决?
回答:遇到稳定性问题时,首先需要检查反馈回路中的元件是否匹配良好,特别是补偿网络的设计是否合理。可以通过调整补偿网络的参数(如增加相位裕度)来改善稳定性。此外,检查控制策略是否适合当前的应用场景,必要时可以更换控制策略或调整控制参数。 -
问题:电源反馈控制电路中的噪声问题如何解决?
回答:噪声问题通常来源于电源本身、外部环境或电路内部元件。解决噪声问题的方法包括使用低噪声的电源元件、增加滤波电路(如LC滤波器)、优化PCB布局以减少电磁干扰、以及采用差分放大器等噪声抑制技术。 -
问题:电源反馈控制电路在哪些领域有广泛应用?
回答:电源反馈控制电路在电子设备的各个领域都有广泛应用,包括但不限于计算机电源、通信设备、工业控制、汽车电子、医疗设备、LED照明等。这些领域对电源的稳定性和效率要求很高,因此电源反馈控制电路成为不可或缺的一部分。
在取得一系列成绩的同时,BENCENT公司也始终关注可持续发展。公司注重环保和节能技术的研发和应用,致力于为客户提供更加环保、高效的电子产品。同时,公司还积极参与社会公益事业,回馈社会。展望未来,BENCENT公司将继续坚持创新驱动、质量为本的发展理念,不断推动电子行业的进步和发展。
请注意,这些故事仅为框架性的描述,并未包含具体的细节和数据。您可以根据BENCENT公司的实际情况和发展历程,对这些故事进行进一步的丰富和完善。同时,确保在描述事实时保持客观公正的态度,避免加入主观评价。
ECS公司成立于XXXX年,由一群热衷于云计算技术的工程师创立。在创立初期,公司就明确了以提供高效、弹性的云服务为目标。他们深入研究了虚拟化技术、自动化管理等关键技术,成功推出了ECS服务,为客户提供按需分配的计算资源。这一创新的服务模式迅速吸引了众多客户的关注,ECS公司开始在云服务市场崭露头角。
在2020年,诚芯微与BYD、小米、公牛等知名企业建立了战略合作伙伴关系,共同推动电源芯片在汽车电子、智能家居等领域的应用。通过与这些行业巨头的合作,诚芯微不仅拓展了市场渠道,还提升了品牌影响力。同时,公司还加大了对新能源汽车电源管理芯片的研发力度,为新能源汽车产业的发展提供了有力支持。
我有个广嵌的开发板液晶屏是3.5寸的TFT,现在我想把它改用4.3寸的液晶屏,改了几天也没成功. 原来的3.5寸TFT板电路图也没有,我把屏拆下分析了一天,发现它的PWR液晶屏电源使能没用,就是上电背光就亮.而我的电路是让PWR使能的. 谁写过4.3寸液晶屏驱动 ...… 查看全部问答∨ |
|
摘 要:介绍了与51单片机USB接口的Pc主机在Windows环境下软件设计过程。驱动程序由DriverStudio生成,动态链 接库和应用程序分别采用Visual C++和Visual Basic编写。实现了PC机与单片机之间通过PDIUSBD12芯片进行数据通讯 的功能。… 查看全部问答∨ |
|
boot.hv是放在HIVE BOOT SECTION ;END BOOT SECTION之间的,在系统启动的时候实现加载! 那么,在注册表中的其它部分是怎么确认分别归属于default.hv和user.hv的, 是不是有什么标签? … 查看全部问答∨ |
|
本人所使用开发板,altera DE2-115 时钟50MHz (周期20ns)所设计程序实现流水灯,和数码管显示 由于系统时钟频率很高,所以设计26位计数器进行分频,当计数满时,流水灯流水一次(状态变化一次),因此每当状态变化一次(即 ...… 查看全部问答∨ |
【工具推荐】使用 Crosshairs Embedded Debugger & Interface Designer 还有白头发吗? 我们不能帮助去掉已经存在的,但是试试我们的 Debugger 可以避免更多新的。 来自 Crosshairs Embedded 的 function debugger 可以进一步加强对代码的调试功能,在这里和大家推荐一下! Crosshairs Embedded 是一家来自挪 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 取代刘海屏指日可待?美国专利商标局公布苹果屏下摄像头
- 维信诺总裁张德强:AMOLED显示正迎来产业发展的黄金时代
- 展锐与Micromax和Lava合作,进军100美元以下手机市场
- 2018年思立微营收预增54%,光学指纹芯片持续导入大客户
- 1-10月国内手机市场出货量3.43亿部,同比下降15.3%
- 打开这个5G选项后:iPhone 12支持使用蜂窝数据下载iOS更新
- iPhone 12 续航测试:使用 5G 比使用 4G 续航少 2 小时
- 一加Nord N10 5G解密:骁龙690处理器+90Hz刷新率
- 三星Galaxy S21 Plus渲染图解密:6.7英寸2D直屏
- LG Q52实拍照解密:Helio P35+打孔屏+后置四摄