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

📄 24m点阵时钟.lst

📁 基于C51的点阵时钟显示仿真电路和源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.05a   24M点阵时钟                                                          09/28/2010 07:26:18 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 24M点阵时钟
OBJECT MODULE PLACED IN 24M点阵时钟.OBJ
COMPILER INVOKED BY: F:\Program Files\Keil\C51\BIN\C51.EXE 24M点阵时钟.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          // A B C D 对应P1.0; P1.1 ; P1.2; P1.3
   2          //--------------------------------
   3          #include "reg52.h"
   4          
   5          #define  uchar unsigned char
   6          #define  uint  unsigned int
   7          //========================
   8          //****滚屏事件定义****
   9          #define  MSG_MV_L        1      //左移
  10          #define  MSG_MV_R        2      //右移
  11          #define  MSG_MV_U    3  //上移
  12          #define  MSG_MV_D    4  //下移
  13          #define  MSG_NONE        0      //无
  14          uchar MSG_MV = 0;
  15          //========================
  16          //****显示状态定义****
  17          #define STA_gTIME       1       //滚动显示时间
  18          #define STA_gTEMP       2       //滚动显示温度
  19          #define STA_gWORD       3       //滚动显示文字
  20          #define STA_sTIME       4       //静态显示时间
  21          #define STA_sWEEK       5       //静态显示星期
  22          #define STA_sDATE       6       //静态显示日期
  23          #define STA_sYEAR       7       //静态显示年份
  24          #define STA_sTEMP       8       //静态显示温度
  25          #define STA_sWORD       9       //静态显示文字
  26          #define STA_CHG         10      //校时模式
  27          #define STA_SONG        11      //滚动显示诗歌
  28          #define STA_COPYRIGHT   12      //开机显示
  29          uchar STATE = 1;
  30          //=========================
  31          //****校时状态定义****
  32          #define CHG_HOUR        1       //调整小时
  33          #define CHG_MIN         2       //调整分
  34          #define CHG_SEC         3       //调整秒
  35          #define CHG_MON         4       //调整月
  36          #define CHG_DAY         5       //调整日
  37          #define CHG_WEEK        6       //调整星期
  38          #define CHG_YEAR        7       //调整年
  39          uchar CHANGE = 1;
  40          uchar hide_times = 0;   //校时闪烁时间变量
  41          uchar HIDE = 0;         //隐藏显示标志位
  42          uchar TMP_TIME = 0; 
  43          //=========================
  44          //****按键定义****
  45          sbit  key0 = P1^0;
  46          sbit  key1 = P1^1;
  47          sbit  key2 = P1^2;
  48          sbit  key3 = P1^3;
  49          
  50          #define KEY0    0x0e
  51          #define KEY1    0x0d
  52          #define KEY2    0x0b
  53          #define KEY3    0x07
  54          
  55          #define KEY0_S  0x0e    //KEY0短按下
C51 COMPILER V8.05a   24M点阵时钟                                                          09/28/2010 07:26:18 PAGE 2   

  56          #define KEY1_S  0x0d    //KEY1短按下 
  57          #define KEY2_S  0x0b    //KEY2短按下
  58          #define KEY3_S  0x07    //KEY3短按下
  59          #define KEY0_L  0x1e    //KEY0长按下
  60          #define KEY1_L  0x1d    //KEY1长按下
  61          #define KEY2_L  0x1b    //KEY2长按下
  62          #define KEY3_L  0x17    //KEY3长按下
  63          #define KEY_NONE        0       //无按键
  64          uchar MSG_KEY = KEY_NONE;
  65          uchar key_times = 0;    //持续时间
  66          uchar key_keep_times = 0;
  67          uchar cur_key_val = 0;
  68          uchar key_done = 0;     //按键事件有无做好
  69          uchar exit = 0; //校时状态下长时间无按键退出
  70          //=========================
  71          //uchar time_read_times = 0;    //读时间
  72          //uchar tem_read_times = 0;     //读温度
  73          //=========================
  74          //****引脚定义****
  75          sbit  CLK =P2^5 ;                 //74HC595移时钟 
  76          sbit  STB =P2^4 ;         // 74HC595锁存信号 
  77          sbit  Red=P2^7  ;         //红色数据输出引脚低电平有效      
  78          sbit  Greed=P2^6;        //全屏控制使能0,低电平有效
  79          sbit  OE = P0^7;          //全屏使能
  80          //======================== 
  81          //****DS1302**** 
  82          sbit SCLK=P0^5;   //位定义1302芯片的接口,时钟输出端口定义在P2.4引脚
  83          sbit DATA=P0^6;   //位定义1302芯片的接口,数据输出端定义在P2.5引脚
  84          sbit RST=P0^7;    //位定义1302芯片的接口,复位端口定义在P2.6引脚
  85          
  86          typedef struct __SYSTEMTIME__
  87          {
  88                  uchar Second;
  89                  uchar Minute;
  90                  uchar Hour;
  91                  uchar Day;
  92                  uchar Month;
  93                  uchar Week;
  94                  uchar  Year;
  95          }SYSTEMTIME;    //定义的时间类型
  96          SYSTEMTIME Time;
  97          
  98          
  99          //=========================================
 100          //****18B20****
 101          sbit DQ = P0^4
 102           ;  //定义DS18B20端口DQ  
 103          
 104          unsigned char data  temp_data[2] = {0x00,0x00} ;
 105          unsigned char data  temp_ram[5] =   {0x00,0x00,0x00,0x00,0x00} ;
 106          unsigned char code  ditab[16] =    {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
 107                                              0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
 108          //==========================================
 109          bit presence  ;
 110          uchar SendData;           //要发送的数据变量 
 111          uchar hang;                     //行扫描变量  (半屏只有16行,所以hang=0到15)
 112          uchar move_times = 0;   //左右移动位数
 113          uchar start_word = 0;
 114          
 115          
 116          uchar data h_dispram[10];       //显示缓存
 117          uchar code *disword[26];        //显示文字指针
C51 COMPILER V8.05a   24M点阵时钟                                                          09/28/2010 07:26:18 PAGE 3   

 118          
 119          
 120          void  Keyscan (void); //修改参数按键扫描子程序 
 121          void  Sendping(); //发送半屏子程序
 122          void  Put_Wdispram(uchar first_word);//
 123          void  Put_Hdispram(); //把显示文字放入显示缓存
 124          void  Move_Left();      //左移
 125          void  Move_Right();     //右移
 126          void  RL_Move();
 127          void  UD_Move();
 128          void  Show_Line();
 129          void  Show_Move_Word(uchar code *WORDS[][8]);
 130          void  delay();
 131          void  SendByte(void);
 132          void  RowsCan(void);
 133          void  Disp_Temperature();
 134          void Put_gTEMP();
 135          void Change_obj();
 136          
 137          uchar ReadKey1();
 138          
 139          
 140          
 141          uchar code MY_WORDS[][16]= 
 142                                                  { 
 143          {0x21,0x11,0x11,0x02,0x97,0x52,0x52,0x12,0x2F,0x22,0xE2,0x22,0x23,0x20,0x20,0x20},
 144          {0x00,0x00,0xFE,0x00,0xF8,0x88,0x48,0x08,0xFE,0x88,0x48,0x08,0xFE,0x08,0x28,0x10},/*"海",2*/
 145          {0x22,0x11,0x11,0x07,0x80,0x50,0x57,0x10,0x20,0x2F,0xE0,0x20,0x20,0x20,0x20,0x20},
 146          {0x10,0x10,0x20,0xFC,0x40,0x40,0xFC,0x40,0x40,0xFE,0x40,0x40,0x40,0x40,0x40,0x40},/*"洋",3*/
 147          {0x01,0x10,0x0C,0x08,0x7F,0x40,0x8F,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x02,0x01},
 148          {0x08,0x8C,0xC8,0x90,0xFE,0x04,0xE8,0x40,0x80,0xFE,0x80,0x80,0x80,0x80,0x80,0x00},/*"学",4*/
 149          {0x00,0xF8,0x8F,0x94,0xA0,0xA3,0x90,0x88,0x8F,0xA9,0x91,0x81,0x82,0x82,0x84,0x88},
 150          {0x80,0x40,0xFE,0x04,0x00,0xF8,0x00,0x00,0xFE,0x20,0x20,0x20,0x22,0x22,0x22,0x1E},/*"院",5*/
 151          {0x04,0x0C,0x11,0x3F,0x02,0xFF,0x04,0x09,0x32,0xCC,0x31,0x06,0x18,0x03,0x7C,0x00},
 152          {0x00,0x20,0xF0,0x10,0x00,0xFC,0x40,0x20,0x18,0x6E,0x84,0x18,0x60,0x80,0x00,0x00},/*"参",6*/
 153          {0x01,0x7F,0x44,0xBF,0x04,0x3F,0x04,0x7F,0x08,0x3F,0xC9,0x09,0x09,0x02,0x0C,0x30},
 154          {0x00,0xFE,0x44,0xF0,0x40,0xF8,0x40,0xFC,0x30,0xEE,0x24,0x20,0x20,0xC0,0x38,0x10},/*"赛",7*/
 155          {0x08,0x0C,0x09,0x13,0x12,0x34,0x50,0x90,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},
 156          {0x80,0x80,0x00,0xFE,0x80,0x88,0xFC,0x80,0x80,0x84,0xFE,0x80,0x80,0x80,0x80,0x80},/*"作",8*/
 157          {0x00,0x0F,0x08,0x08,0x08,0x0F,0x08,0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x42,0x00},
 158          {0x00,0xF0,0x10,0x10,0x10,0xF0,0x10,0x00,0xFC,0x84,0x84,0x84,0x84,0xFC,0x84,0x00},/*"品",9*/
 159          
 160          
 161          
 162          
 163          
 164          
 165                                                  };
 166          
 167          uchar code NO_WORDS[][16]={
 168          
 169          {0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00},/*"0",0*/
 170          {0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00},/*"1",1*/
 171          {0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00},/*"2",2*/
 172          {0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00},/*"3",3*/
 173          {0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00},/*"4",4*/
 174          {0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00},/*"5",5*/
 175          {0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00},/*"6",6*/
 176          {0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00},/*"7",7*/
 177          {0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00},/*"8",8*/
 178          {0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00},/*"9",9*/
 179          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",10*/ 
C51 COMPILER V8.05a   24M点阵时钟                                                          09/28/2010 07:26:18 PAGE 4   

 180          {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*":",11*/ 
 181          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"空格",12*/
 182                                                          };
 183          uchar code TMP_WORDS[][16]={
 184          
 185          
 186          {0x02,0x01,0x3F,0x20,0x40,0x3F,0x04,0x08,0x1F,0x01,0x01,0x3F,0x01,0x01,0xFF,0x00},
 187          {0x00,0x00,0xFE,0x04,0x08,0xFC,0x00,0x20,0xF0,0x10,0x00,0xF8,0x00,0x00,0xFE,0x00},/*"室",3*/
 188          {0x40,0x27,0x24,0x07,0x94,0x54,0x17,0x20,0x2F,0xC9,0x49,0x49,0x49,0x49,0x5F,0x40},
 189          {0x00,0xF0,0x10,0xF0,0x10,0x10,0xF0,0x00,0xFC,0x24,0x24,0x24,0x24,0x24,0xFE,0x00},/*"温",4*/
 190          {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00},/*":",5*/
 191          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",6*/
 192          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",7*/
 193          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",8*/
 194          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00},/*".",9*/
 195          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",10*/
 196          {0x00,0xC0,0xC0,0x3E,0x42,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x44,0x38,0x00,0x00},/*"C",11*/
 197                                                                  };
 198          uchar code TIME_WORDS[][16]={
 199          
 200          {0x01,0x01,0x02,0x04,0x08,0x12,0x21,0xC0,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x01},
 201          {0x00,0x00,0x80,0x40,0x20,0x18,0x8E,0x84,0x00,0xF0,0x20,0x20,0x40,0x40,0x80,0x00},/*"今",0*/
 202          {0x00,0x3F,0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x02,0x02,0x04,0x08,0x10,0x20,0x40},
 203          {0x00,0xFC,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x80,0x40,0x20,0x18,0x0E,0x04,0x00},/*"天",1*/
 204          {0x00,0x0F,0x08,0x0F,0x08,0x0F,0x00,0xFF,0x01,0x09,0x09,0x09,0x15,0x23,0x40,0x00},
 205          {0x00,0xF0,0x10,0xF0,0x10,0xF0,0x00,0xFE,0x00,0x00,0xF8,0x00,0x00,0x00,0xFE,0x00},/*"是",2*/
 206          
 207          {0x08,0x0F,0x10,0x10,0x20,0x4F,0x88,0x08,0x08,0x08,0xFF,0x00,0x00,0x00,0x00,0x00},
 208          {0x00,0xFC,0x80,0x80,0x80,0xF8,0x80,0x80,0x80,0x80,0xFE,0x80,0x80,0x80,0x80,0x80},/*"年",1*/
 209          {0x07,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x07,0x04,0x08,0x08,0x10,0x20,0x40,0x00},
 210          {0xF0,0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0x10,0x50,0x20,0x00},/*"月",2*/
 211          {0x00,0x1F,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x10,0x10,0x1F,0x10,0x00,0x00},
 212          {0x00,0xF0,0x10,0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0x10,0x10,0xF0,0x10,0x00,0x00},/*"日",3*/
 213          {0x00,0x1F,0x10,0x1F,0x10,0x1F,0x01,0x11,0x1F,0x21,0x21,0x4F,0x01,0x01,0x7F,0x00},
 214          {0x00,0xF8,0x08,0xF8,0x08,0xF8,0x00,0x00,0xFC,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00},/*"星",4*/
 215          {0x22,0x22,0x7F,0x22,0x3E,0x22,0x3E,0x22,0x22,0xFF,0x00,0x24,0x22,0x43,0x81,0x00},
 216          {0x00,0x7C,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x7C,0x44,0x84,0x84,0x14,0x08,0x00},/*"期",5*/
 217                                                          };
 218          uchar code WEEK_WORDS[][16]={

⌨️ 快捷键说明

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