⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1302.lst

📁 DS1302+DS18B20+LCD1602在51系统上的实时时钟
💻 LST
字号:
C51 COMPILER V8.08   DS1302                                                                07/17/2008 21:44:21 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN DS1302.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE DS1302.c BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1          #include "REG51.H"
   2          #include "intrins.h"
   3          #define uint unsigned int
   4          #define uchar unsigned char
   5          sbit  DS1302_CLK = P2^2;              //实时时钟时钟线引脚 
   6          sbit  DS1302_IO  = P2^3;              //实时时钟数据线引脚 
   7          sbit  DS1302_RST = P2^4;              //实时时钟复位线引脚
   8          sbit  ACC0 = ACC^0;
   9          sbit  ACC7 = ACC^7;
  10          
  11          sbit Set = P1^0;       //模式切换键
  12          sbit Up = P1^1;        //加法按钮
  13          sbit Down = P1^2;      //减法按钮
  14          sbit out = P1^3;       //立刻跳出调整模式按钮
  15          sbit K1=P1^4;
  16          sbit K2=P1^5;
  17          sbit DQ = P2^1;        //温度传送数据IO口
  18          sbit voice=P2^0;
  19          uchar hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;  //秒,分,时到日,月,年位闪的计数
  20          uchar done,temp,addr;
  21          uchar alarm_TimeString[6]="10:01";
  22          uchar temp_value,temp1_value;      //温度值
  23          uchar TempBuffer[5],max_temp[4],min_temp[4],week_value[2];
  24          
  25          
  26          void show_time();   //液晶显示程序
  27          ///////////////////////////////////////////////////
  28          /***********1602液晶显示部分子程序****************/
  29          ///////////////////////////////////////////////////
  30          
  31          //Port Definitions**********************************************************
  32          sbit LcdRs              = P2^5;
  33          sbit LcdRw              = P2^6;
  34          sbit LcdEn      = P2^7;
  35          sfr  DBPort     = 0x80;         //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口        
  36          void delay_key(uint a)
  37          {
  38   1        uint b;
  39   1        for(b=0;b<a;b++);
  40   1      }
  41          //向LCD写入命令或数据********************************************************
  42          #define LCD_COMMAND                     0      // Command
  43          #define LCD_DATA                        1      // Data
  44          #define LCD_CLEAR_SCREEN        0x01      // 清屏
  45          #define LCD_HOMING              0x02      // 光标返回原点
  46            void LCD_Write(bit style, uchar input)   
  47          {
  48   1              LcdRs=style;
  49   1          LcdRw=0;
  50   1              P0=input;
  51   1              delay_key(10);                                                                                         //
             -为什么要延迟??
  52   1              LcdEn=1;
  53   1              delay_key(10);
  54   1              LcdEn=0;
C51 COMPILER V8.08   DS1302                                                                07/17/2008 21:44:21 PAGE 2   

  55   1      }
  56          
  57          //设置显示模式************************************************************
  58          #define LCD_SHOW                        0x04    //显示开
  59          #define LCD_HIDE                        0x00    //显示关          
  60          
  61          #define LCD_CURSOR                      0x02    //显示光标
  62          #define LCD_NO_CURSOR           0x00    //无光标                     
  63          
  64          #define LCD_FLASH                       0x01    //光标闪动
  65          #define LCD_NO_FLASH            0x00    //光标不闪动
  66          
  67          void LCD_SetDisplay(unsigned char DisplayMode)
  68          {
  69   1              LCD_Write(LCD_COMMAND, 0x08|DisplayMode);                                                         
  70   1      }
  71          
  72          //设置输入模式************************************************************
  73          #define LCD_AC_UP                       0x02
  74          #define LCD_AC_DOWN                     0x00      // default
  75          
  76          #define LCD_MOVE                        0x01      // 画面可平移
  77          #define LCD_NO_MOVE                     0x00      //default
  78          
  79          void LCD_SetInput(unsigned char InputMode)
  80          {
  81   1              LCD_Write(LCD_COMMAND, 0x04|InputMode);
  82   1      }
  83          
  84          //初始化LCD************************************************************
  85          void LCD_Initial()
  86          {
  87   1              LcdEn=0;
  88   1              LCD_Write(LCD_COMMAND,0x38);           //8位数据端口,2行显示,5*7点阵                                //为

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -