• 大小: 125KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: DS1302  LCM1602  

资源简介

DS1302 LCM1602 protues仿真

资源截图

代码片段和文件信息

/* 本程序所使用CPU为51单片机,时钟为24MHZ,程序主体网上所得,稍加修,念在下初学,还请原作者见谅。特此声明*/
  #include 
  #include   
  #include “LCM1602.h“
  #include “DS1302.h“ 
  
sbit Add_Key   = P3 ^ 3;//加1键
sbit Dec_Key   = P3 ^ 4;//减1键
sbit OK_Key    = P3 ^ 5;//确定键
 struct TimerStruct          //定义时钟的数据结构
{
  unsigned char Year;
  unsigned char Month;
  unsigned char Day;
  unsigned char Week;
  unsigned char Hour;
  unsigned char Minute;
  unsigned char Second;
};
  unsigned char  DateBuffer[] ={“2000/12/20“};   // 随便设置,不表示显示的初始值,只为方便子程序调用  
  unsigned char  TimeBuffer[] = {“21:49:00“};   //初始值在主程序中设置  
  unsigned int SecondCounter;//秒计数器(无符号整型)
  unsigned char Keyboard_Clock_Number;
  unsigned char Temp;
  struct TimerStruct RealClock;
void timer0(void) interrupt 1 //定时T0溢出中断每25mS产生一次中断   方式1    9E58
{    unsigned char Temp; 
 //    struct 
     TH0=0x9e;//(65536-46080)/256;         //重新装入定时25mS的初值到TH0TL0
     TL0=0x58;//(65536-46080)%256;     
     SecondCounter++;               //秒计数器加1
     if(SecondCounter==40)          //到40表示1S时间到
    {
     SecondCounter=0;
 /****--以下是读取DS1302的时钟信息并将结果存储到显示缓冲区中****/
      Temp=Read_DS1302_RTC(0x81);   //读秒信息
      RealClock.Second=Temp;
      TimeBuffer[7]=(Temp%16)|0x30;
      TimeBuffer[6]=(Temp>>4)|0x30;
      Temp=Read_DS1302_RTC(0x83);   //读分信息
      RealClock.Minute=Temp;
      TimeBuffer[4]=(Temp%16)|0x30;
      TimeBuffer[3]=(Temp>>4)|0x30;
      Temp=Read_DS1302_RTC(0x85);  //读时信息
      RealClock.Hour=Temp;
      TimeBuffer[1]=(Temp%16)|0x30;
      TimeBuffer[0]=(Temp>>4)|0x30;    
      Temp=Read_DS1302_RTC(0x87);  //读日信息
      RealClock.Day=Temp;
      DateBuffer[9]=(Temp%16)|0x30;
      DateBuffer[8]=(Temp>>4)|0x30;
      Temp=Read_DS1302_RTC(0x89);   //读月信息
      RealClock.Month=Temp;
      DateBuffer[6]=(Temp%16)|0x30;
      DateBuffer[5]=(Temp>>4)|0x30;
      Temp=Read_DS1302_RTC(0x8d);   //读年信息
      RealClock.Year=Temp;
      DateBuffer[3]=(Temp%16)|0x30;
      DateBuffer[2]=(Temp>>4)|0x30;
/*****************---送到LCD上显示出来***********************/
      DisplayListChar(00DateBuffer);//刷新LCD上的日期信息
      DisplayListChar(01TimeBuffer);//刷新LCD上的时间显示信息
    }
}
void main(void){
  TMOD=0x01;                     //T0工作于16位定时功能
  TH0=(65536-46080)/256;          //T0定时25mS的初值装入TH0TL0
  TL0=(65536-46080)%256;
  EA=1;                           //CPU开中断
  ET0=1;                         //允许T0溢出中断
  Delay400Ms();
  LCMInit();                      //初始化LCD
/************ Init_DS1302_RTC();//初始化DS1302*************/
  Init_1302();
  TR0=1;                         //启动T0开始工作
  while(1)
  {
    OK_Key = 1;
Add_Key = 1;
Dec_Key = 1;
  if (OK_Key == 0) // 设置和选择项目键
       {
        Delay5Ms();
        Delay5Ms();
        EA = 0;
         if(OK_Key == 0)
    {
     Keyboard_Clock_Number++;if(Keyboard_Clock_Number>5)Keyboard_Clock_Number=0;
    }
         while(OK_Key == 0);
 }
      switch( Keybo

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      68578  2007-11-23 11:41  DS1302\DS1302.DSN

     文件       2431  2007-11-23 11:28  DS1302\DS1302.h

     文件        484  2007-11-23 11:41  DS1302\DS1302.PWI

     文件      64284  2007-11-22 19:31  DS1302\Last Loaded DS1302.DBK

     文件       2424  2006-04-15 22:22  DS1302\LCD\LCD

     文件       2693  2006-04-15 22:22  DS1302\LCD\LCD.BIN

     文件       2120  2006-04-15 22:22  DS1302\LCD\LCD.C

     文件       2763  2006-04-15 22:28  DS1302\LCD\LCD.DSK

     文件       6505  2006-04-15 22:22  DS1302\LCD\LCD.HEX

     文件       7186  2006-04-15 22:22  DS1302\LCD\LCD.LST

     文件       8950  2006-04-15 22:22  DS1302\LCD\LCD.M51

     文件       3790  2006-04-15 22:22  DS1302\LCD\LCD.OBJ

     文件       2636  2006-04-14 22:38  DS1302\LCD\lcd.PRJ

     文件      59312  2007-06-22 21:54  DS1302\LCD\LCD四线\000.JPG

     文件      13101  2007-06-22 21:52  DS1302\LCD\LCD四线\LCD1602

     文件       4837  2007-10-15 10:11  DS1302\LCD\LCD四线\LCD1602.h

     文件       5029  2007-06-22 21:52  DS1302\LCD\LCD四线\LCD1602.hex

     文件         43  2007-06-22 21:52  DS1302\LCD\LCD四线\LCD1602.lnp

     文件      18821  2007-06-22 21:52  DS1302\LCD\LCD四线\LCD1602.M51

     文件        992  2007-06-22 21:45  DS1302\LCD\LCD四线\LCD1602.Opt

     文件        855  2007-06-22 21:52  DS1302\LCD\LCD四线\LCD1602.plg

     文件       1681  2007-06-22 21:40  DS1302\LCD\LCD四线\LCD1602.Uv2

     文件        992  2007-06-22 21:45  DS1302\LCD\LCD四线\LCD1602_Opt.Bak

     文件       1681  2007-06-22 21:40  DS1302\LCD\LCD四线\LCD1602_Uv2.Bak

     文件        247  2007-06-22 21:45  DS1302\LCD\LCD四线\Main.c

     文件       1169  2007-06-22 21:52  DS1302\LCD\LCD四线\Main.LST

     文件      15376  2007-06-22 21:52  DS1302\LCD\LCD四线\Main.OBJ

     文件      58059  2007-06-22 21:53  DS1302\LCD\LCD四线\Proteus\Last Loaded LCD1602.DBK

     文件      58070  2007-10-11 21:05  DS1302\LCD\LCD四线\Proteus\LCD1602.DSN

     文件        386  2007-11-22 19:07  DS1302\LCD\LCD四线\Proteus\LCD1602.PWI

............此处省略14个文件信息

评论

共有 条评论