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

📄 led.lst

📁 51的万年历程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   LED                                                                   09/28/2008 21:00:12 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN LED.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE LED.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg51.h"
   2          #include "intrins.h"
   3          typedef unsigned char uint8;
   4          typedef unsigned int uint16;
   5          #define LED_Y P2
   6          #define LCD_DATA 1
   7          #define LCD_COMMAND 0
   8          #define WORDNUU 11
   9          sbit Ser_STB=P2^5;
  10          sbit LED_EN=P2^4;
  11          sbit LCD_RS=P1^5;
  12          sbit LCD_RW=P1^6;
  13          sbit LCD_EN=P1^7;
  14          sbit RTC_SDA=P3^6;
  15          sbit RTC_SCL=P3^5;
  16          sbit RTC_RST=P3^4;
  17          sbit KEY1=P1^0;
  18          sbit KEY2=P1^1;
  19          sbit KEY3=P1^2;
  20          sbit KEY4=P1^3;
  21          sbit DQ=P1^4;
  22          uint8 TEMP_ERR;
  23          #define  LCD_PORT P0
  24          uint8 WORDNUM,WORDNUMBER;
  25          uint8 Temp_Value;
  26          uint8 LCD_NO;
  27          uint16 i1,i2;
  28          uint8 bdata AA;
  29          sbit AA7 = AA^7;
  30          #define READ_SECOND     0x81
  31          #define WRITE_SECOND    0x80
  32          #define READ_MINE       0x83
  33          #define WRITE_MINE      0x82
  34          #define READ_HOUR       0x85
  35          #define WRITE_HOUR              0x84
  36          #define READ_DAY                0x87
  37          #define WRITE_DAY               0x86
  38          #define READ_MONTH              0x89
  39          #define WRITE_MONTH             0x88
  40          #define READ_WEEK               0x8b
  41          #define WRITE_WEEK              0x8a
  42          #define READ_YEAR       0x8d
  43          #define WRITE_YEAR              0x8c
  44          uint8 DATE[16];
  45          uint8 TIME[16];
  46          
  47          uint8 const code HZ[][32]=
  48          {
  49                  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
             -,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
  50                  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
             -,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
  51          
  52          {0xFD,0xFF,0xFE,0xFF,0x80,0x01,0xBE,0xFB,0x7E,0xF7,0xFE,0xFF,0x80,0x03,0xFC,0x7F,0xFA,0x7F,0xFA,0xBF,0xF6,
             -0xDF,0xEE,0xEF,0xDE,0xF1,0xBE,0xFB,0xFE,0xFF,0xFF,0xFF},/*"宋",0*/
C51 COMPILER V7.50   LED                                                                   09/28/2008 21:00:12 PAGE 2   

  53          
  54          {0xDF,0xFF,0xEE,0xEF,0xEE,0xEF,0x76,0xEF,0xB4,0x03,0xAE,0xEF,0xEE,0xEF,0xEE,0xEF,0xDE,0xEF,0xD0,0x01,0x1E,
             -0xDF,0xDE,0xEF,0xDD,0xF7,0xDD,0xF3,0xDB,0xFB,0xD7,0xFB},/*"洪",1*/
  55          
  56          {0xFB,0xBF,0xFB,0xBF,0xFB,0xBF,0xFB,0xBB,0xBB,0xB9,0xDB,0xB3,0xDB,0xB7,0xEB,0xAF,0xE3,0xAF,0xEB,0x9F,0xFB,
             -0xBF,0xFB,0xBF,0xFB,0xBB,0x00,0x01,0xFF,0xFF,0xFF,0xFF},/*"业",2*/
  57          
  58          {0xEF,0xFF,0xEE,0x07,0xEE,0xF7,0x02,0x07,0xEE,0xF7,0xEE,0x07,0xE7,0xFF,0xC8,0x03,0xAF,0xBF,0x6D,0xBF,0xED,
             -0x83,0xED,0xBF,0xE9,0xBF,0xEA,0x3F,0xA7,0x81,0xDF,0xFF},/*"提",3*/
  59          
  60          {0xFF,0xFF,0x01,0x03,0xD7,0x7B,0xD7,0x03,0x01,0x7B,0x55,0x03,0x55,0xDF,0x55,0x5F,0x51,0x03,0x3C,0xDF,0x01,
             -0xDF,0x7D,0x03,0x7D,0xDF,0x01,0xDF,0x7E,0x01,0xFF,0xFF},/*"醒",4*/
  61          
  62          {0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x7F,0xFD,0x7F,0xFD,0xBF,0xFB,
             -0xBF,0xFB,0xDF,0xF7,0xEF,0xEF,0xE7,0xDF,0xF1,0xBF,0xFB},/*"大",5*/
  63          
  64          {0xFD,0xFF,0xFE,0xFF,0xC0,0x01,0xBF,0xFB,0xA0,0x17,0xFE,0xFF,0xFD,0xFF,0xF0,0xDF,0x8D,0x4F,0xFB,0x3F,0xE6,
             -0x3F,0x99,0x4F,0xE7,0x71,0x9F,0x7B,0xFA,0xFF,0xFD,0xFF},/*"家",6*/
  65          
  66          {0xFF,0xFF,0x00,0x07,0xED,0xF7,0xED,0xB7,0xED,0xB7,0xED,0xB7,0x81,0xB7,0xED,0xB7,0xED,0xB7,0xED,0x57,0xE3,
             -0x5F,0x1E,0xDD,0xFE,0xDD,0xFD,0xDD,0xFB,0xE1,0xF7,0xFF},/*"现",7*/
  67          
  68          {0xFD,0xFF,0xFD,0xFF,0x80,0x01,0xFB,0xFF,0xFB,0xFF,0xF7,0xBF,0xE7,0xBF,0xE8,0x03,0xCF,0xBF,0xAF,0xBF,0x6F,
             -0xBF,0xEF,0xBF,0xEF,0xBF,0xE8,0x01,0xEF,0xFF,0xFF,0xFF},/*"在",8*/
  69          
  70          {0xFF,0xFF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0F,0xFF,0xFF,0x00,0x01,0xFE,0xFF,0xF6,0xFF,0xF6,
             -0x07,0xF6,0xFF,0xEA,0xFF,0xDC,0xFF,0xBF,0x01,0xFF,0xFF},/*"是",9*/
  71                  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
             -,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
  72                  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
             -,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
  73                  0x55,0xaa,
  74          };
  75          uint8 const code NUM[][16]=
  76          {
  77                  {0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF},/*"0",0*/
  78                  {0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF},/*"1",1*/
  79                  {0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0xFF,0xFF},/*"2",2*/
  80                  {0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"3",3*/
  81                  {0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF},/*"4",4*/
  82                  {0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"5",5*/
  83                  {0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF},/*"6",6*/
  84                  {0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF},/*"7",7*/
  85                  {0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF},/*"8",8*/
  86                  {0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF},/*"9",9*/
  87          };
  88          uint8 const code DATETMP[][32]=
  89          {
  90                  {0xF7,0xFF,0xF0,0x03,0xEF,0x7F,0xEF,0x7F,0xDF,0x7F,0xB0,0x07,0x77,0x7F,0xF7,0x7F,0xF7,0x7F,0xF7,0x7F,0x00
             -,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F},/*"年",0*/
  91                  {0xF8,0x0F,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xF8,0x0F,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xF8,0x0F,0xFB,0xEF,0xF7
             -,0xEF,0xF7,0xEF,0xEF,0xEF,0xDF,0xAF,0xBF,0xDF,0xFF,0xFF},/*"月",1*/
  92                  {0xFF,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF
             -,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xFF,0xFF,0xFF,0xFF},/*"日",2*/
  93                  {0xFE,0xFF,0xFE,0xFF,0xFE,0x07,0xFE,0xFF,0xFE,0xEF,0xE0,0x07,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF
             -,0xEF,0xFE,0xEF,0xD7,0x77,0xDB,0xBB,0xBB,0xBB,0xFF,0xFF},/*"点",3*/
  94                  {0xF7,0x7F,0xF3,0x7F,0xF7,0xBF,0xEF,0xDF,0xEF,0xCF,0xDF,0xE7,0xBF,0xF1,0x60,0x1B,0xFB,0xDF,0xFB,0xDF,0xFB
             -,0xDF,0xFB,0xDF,0xF7,0xDF,0xEF,0x5F,0xDF,0xBF,0xBF,0xFF},/*"分",4*/
  95                  {0xFF,0xFF,0xE0,0x07,0xEF,0xF7,0xE0,0x07,0xEF,0xF7,0xE0,0x07,0xFE,0xFF,0xEE,0xFF,0xE0,0x03,0xDE,0xFF,0xDE
             -,0xFF,0xB0,0x07,0xFE,0xFF,0xFE,0xFF,0x80,0x01,0xFF,0xFF},/*"星",5*/
  96                  {0xDD,0xFF,0xDD,0x83,0x80,0xBB,0xDD,0xBB,0xC1,0xBB,0xDD,0x83,0xC1,0xBB,0xDD,0xBB,0xDD,0xBB,0x00,0x83,0xFF
             -,0xBB,0xDB,0x7B,0xDD,0x7B,0xBC,0xEB,0x7E,0xF7,0xFF,0xFF},/*"期",6*/
C51 COMPILER V7.50   LED                                                                   09/28/2008 21:00:12 PAGE 3   

  97                  {0xE0,0x07,0xFE,0xFF,0x80,0x01,0xBE,0xFB,0xE2,0x8F,0xFE,0xFF,0xE2,0x8F,0xFD,0x7F,0xFB,0x9F,0xE5,0xE1,0x1E
             -,0xF7,0xE0,0x1F,0xFF,0xBF,0xFD,0x7F,0xFE,0xFF,0xFE,0xFF},/*"零",7*/
  98                  {0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x07,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE
             -,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x80,0x01,0xFF,0xFF},/*"上",8*/
  99                  {0xD8,0x03,0xDE,0xEF,0xDE,0x0F,0x06,0xEF,0xDE,0x0F,0xD6,0xE3,0xC8,0x0F,0x9F,0xEF,0x50,0x41,0xDB,0x5D,0xDC
             -,0xEB,0xDE,0xF7,0xDD,0x67,0xDB,0x99,0x56,0x7B,0xBF,0xFF},/*"摄",9*/
 100                  {0xFF,0xFF,0xFF,0x07,0xC0,0xFF,0xDE,0xFF,0xDE,0xFF,0xDE,0xFF,0xC0,0x03,0xDF,0x7F,0xDF,0x7F,0xDF,0x7F,0xDF
             -,0xBF,0xDF,0xBF,0xDB,0xDB,0xD7,0xEB,0xCF,0xF3,0xDF,0xFB},/*"氏",10*/
 101                  {0xFE,0xFF,0xFF,0x7F,0xC0,0x01,0xDD,0xDF,0xDD,0xDF,0xD0,0x03,0xDD,0xDF,0xDC,0x1F,0xDF,0xFF,0xD8,0x07,0xDD
             -,0xEF,0xDE,0xDF,0xDF,0x3F,0xBE,0xCF,0xB9,0xF1,0x67,0xFB},/*"度",11*/
 102          } ;
 103          uint8 const code WEEK[][32]=
 104          {
 105                  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0x80,0x01,0xFF,0xFF,0xFF,0xFF,0xFF
             -,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"一",0*/
 106                  {0xFF,0xFF,0xFF,0xEF,0xC0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
             -,0xFF,0xFF,0xFB,0x80,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"二",1*/
 107                  {0xFF,0xFF,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF
             -,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0xFF,0xFF},/*"三",2*/
 108                  {0xFF,0xFF,0x80,0x03,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xB7,0x7B,0xB7,0x83,0xAF
             -,0xFB,0x9F,0xFB,0xBF,0xFB,0x80,0x03,0xBF,0xFB,0xFF,0xFF},/*"四",3*/
 109                  {0xFF,0xFF,0x80,0x07,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xDF,0xC0,0x0F,0xFB,0xDF,0xFB,0xDF,0xFB
             -,0xDF,0xFB,0xDF,0xFB,0xDB,0x00,0x01,0xFF,0xFF,0xFF,0xFF},/*"五",4*/
 110                  {0xFB,0xFF,0xFC,0xFF,0xFE,0x7F,0xFE,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFB,0x7F,0xF9,0xBF,0xFB,0xDF,0xF7
             -,0xEF,0xF7,0xE7,0xEF,0xF3,0xDF,0xF3,0xBF,0xF7,0xFF,0xFF},/*"六",5*/
 111                  {0xFF,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF
             -,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xFF,0xFF,0xFF,0xFF},/*"日",6*/
 112          };
 113          void TEMP_Delay(uint16 i)
 114          {
 115   1              while(i--);
 116   1      }
 117          void TEMP_INITIALIZE()
 118          {
 119   1              DQ=1;
 120   1              TEMP_Delay(8);
 121   1              DQ=0;
 122   1              TEMP_Delay(80);
 123   1              DQ=1;
 124   1              TEMP_Delay(14);
 125   1              TEMP_ERR=DQ;
 126   1              TEMP_Delay(20);
 127   1      }
 128          
 129          uint8 TEMP_Read_Char()
 130          {
 131   1              uint8 i;
 132   1              uint8 dat;
 133   1              for(i=0;i<8;i++)
 134   1              {
 135   2                      DQ=0;
 136   2                      dat>>=1;
 137   2                      DQ=1;
 138   2                      if(DQ)
 139   2                      dat|=0x80;
 140   2                      TEMP_Delay(4);
 141   2              }
 142   1              return dat;
 143   1      }
 144          
 145          void TEMP_Write_Char(uint8 dat)
 146          {
C51 COMPILER V7.50   LED                                                                   09/28/2008 21:00:12 PAGE 4   

 147   1              uint8 i;
 148   1              for(i=0;i<8;i++)
 149   1              {
 150   2                      DQ=0;
 151   2                      DQ=dat&0x01;
 152   2                      TEMP_Delay(5);
 153   2                      DQ=1;
 154   2                      dat>>=1;
 155   2              }
 156   1      }
 157          
 158          void TEMP_Read()
 159          {
 160   1              uint8 a,b;
 161   1              TEMP_INITIALIZE();
 162   1              TEMP_Write_Char(0xcc);
 163   1              TEMP_Write_Char(0x44);
 164   1              TEMP_Delay(100);
 165   1              TEMP_INITIALIZE();
 166   1              TEMP_Write_Char(0xcc);
 167   1              TEMP_Write_Char(0xbe);
 168   1              TEMP_Delay(100);
 169   1              a=TEMP_Read_Char();
 170   1              b=TEMP_Read_Char();
 171   1              Temp_Value=b<<4;
 172   1              Temp_Value+=(a&0xf0)>>4;
 173   1      }
 174          
 175          void RTC_Write(uint8 dat)
 176          {
 177   1              uint8 i;          
 178   1              for(i=0;i<8;i++)
 179   1              {
 180   2                      RTC_SDA=(bit)(dat&0x01);
 181   2                      RTC_SCL=1;
 182   2                      RTC_SCL=0;
 183   2                      dat>>=1;
 184   2              }
 185   1      }
 186          
 187          uint8 RTC_Read()                                                
 188          {
 189   1          uint8 i;
 190   1          for(i=0; i<8; i++)
 191   1          {
 192   2              AA >>=1;                                //相当于汇编中的 RRC 
 193   2              AA7 = RTC_SDA;
 194   2              RTC_SCL = 1;
 195   2              RTC_SCL = 0;
 196   2          } 
 197   1          return AA; 
 198   1      }
 199          
 200          void RTC_Write_Byte(uint8 addr,uint8 dat)
 201          {
 202   1              RTC_RST=0;
 203   1              RTC_SCL=0;
 204   1              RTC_RST=1;
 205   1              RTC_Write(addr);
 206   1              RTC_Write(dat);
 207   1              RTC_SCL=1;
 208   1              RTC_RST=0;
C51 COMPILER V7.50   LED                                                                   09/28/2008 21:00:12 PAGE 5   

 209   1      }
 210          
 211          uint8 RTC_Read_Byte(uint8 addr)
 212          {
 213   1              uint8 dat;
 214   1              RTC_RST=0;
 215   1              RTC_SCL=0;
 216   1              RTC_RST=1;
 217   1              RTC_Write(addr|0x01);
 218   1              dat=RTC_Read();

⌨️ 快捷键说明

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