源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源;另一种是寄生电源供电方式。Р3.2.4 显示模块Р LCD1602可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。LCD1602的引脚如图3.2.4-1所示。Р图3.2.4-1 LCD1602的引脚图Р4 软件设计Р 4.1 程序流程图РF0=1?РX=X-YРX=X-YР农历日=РY-X+1Р农历年、月、日数据标准化Р子程序出口Р农历日=X+1РX=YРX>Y?Р农历月Р=闰月?Р农历月减1РF0取反Р取农历月天数YР农历年=公历年减1,数据表地址减3,定位到前一年,取农历信息Р转换数据到HEX格式,方便运算Р根据公历年,定位数据表的地址Р从数据表中取得春节的公历日期,并通过计算公历日和春节离元旦的天数算出公历日离春节的天数,记为XР公历日在春节以后Р子程序入口Р农历年=公历年,取农历月信息Р农历月加1,闰月标志F0=0(非闰月)Р农历月=12,闰月标志F0=(非闰月)РF0取反Р农历月加1РF0=1?Р农历月Р=闰月?Р取农历月Р天数YР 否是Р 是Р Р Р图4.1-1 公农历转换程序流程图Р 4.2 DS18B02程序设计方案Р本设计采用电源供电方式,设计电路如图4.2-1所示。Р图4.2-1 DS18B20电路设计图Р通过单线总线端口访问DS18B20的协议如下:Р◆初始化DS18B20(发复位脉冲) Р◆发ROM功能操作命令Р◆发存储器操作命令Р◆处理数据Р第一,初始化DS18B20Р初始化函数时序如下图所示,如图中虚线所示,单片机接收到低电平脉冲说明复位成功,否则需重新进行复位操作。Р 15~60μs 480μsР 400~960μs 60~240μsР t0 t1 t2 t3 t4Р图4.2-2 初始化时序图