资源描述:
《DS1302时钟+DS18B20用LCD1602显示(系统很简单)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DS1302时钟+DS18B20用LCD1602显示(系统很简单)看仔细点啊 貌似很多这样的图但可不一样喔 最小系统是用AT89s52搭建的!记得回去自己用protues和Keil仿真一下,这样有利于进一步了解!故未将仿真好的代码上传,如果真的需要的话可以和我联系!程序代码:#include#include//#include"LCD1602.h"//#include"DS1302.h"#defineuintunsignedint#defineucharunsignedcharsbit DS1302_CLK=P1^7; //
2、实时时钟时钟线引脚 sbit DS1302_IO =P1^6; //实时时钟数据线引脚 sbit DS1302_RST=P1^5; //实时时钟复位线引脚sbit wireless_1=P3^0;sbit wireless_2=P3^1;sbit wireless_3=P3^2;sbit wireless_4=P3^3;sbit ACC0=ACC^0;sbit ACC7=ACC^7;charhide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时
3、到日,月,年位闪的计数sbitSet=P2^0; //模式切换键sbitUp=P2^1; //加法按钮sbitDown=P2^2; //减法按钮sbitout=P2^3; //立刻跳出调整模式按钮sbitDQ=P1^0; //温度传送数据IO口chardone,count,temp,flag,up_flag,down_flag;uchartemp_value; //温度值ucharTempBuffer[5],week_value[2];voidshow_time(); //液晶显示程序/***********1602液晶显示部
4、分子程序****************///PortDefinitions**********************************************************sbitLcdRs =P2^5;sbitLcdRw =P2^6;sbitLcdEn =P2^7;sfr DBPort =0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口//内部等待函数**************************************************************************unsignedcha
5、rLCD_Wait(void){ LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); LcdEn=0; returnDBPort; }//向LCD写入命令或数据************************************************************#defineLCD_COMMAND 0 //Command#defineLCD_DATA 1 //Data#defineLCD_CLEAR_SCREEN 0x01 //清屏#defineLCD_HOMING 0x02
6、 //光标返回原点voidLCD_Write(bitstyle,unsignedcharinput){ LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();//注意顺序 LcdEn=1; _nop_();//注意顺序 LcdEn=0; _nop_(); LCD_Wait(); }//设置显示模式************************************************************#defineLCD_SHOW 0x04 //显示开#defineLCD_HIDE 0
7、x00 //显示关 #defineLCD_CURSOR 0x02 //显示光标#defineLCD_NO_CURSOR 0x00 //无光标 #defineLCD_FLASH 0x01 //光标闪动#defineLCD_NO_FLASH 0x00 //光标不闪动voidLCD_SetDisplay(unsignedcharDisplayMode){ LCD_Write(LCD_COMMAND,