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

📄 1602.lst

📁 多功能太阳能定时器程序(液晶)
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.02   1602                                                                  04/21/2008 20:44:58 PAGE 1   


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

line level    source

   1          /****************************************************************************
   2          *描述:多功能太阳能热水器设计                                               *
   3          *硬件:AT89S52单片机,晶振为12MHz,KS0108驱动的128*64液晶                   *
   4          *      SPI总线的DS1302时钟,1-WIRE温度传感器DS18B20。                                           *
   5          *作者:李鲲鹏                                                               *                             
             -                    
   6          *文件:1602.c                                                                                                                           *             
   7          *日期:2005-11-10                                                           *
   8          *****************************************************************************
   9          *描述:                                                                     *
  10          ****************************************************************************/
  11          
  12          /****************************************************************************
  13          头文件区
  14          ****************************************************************************/
  15          #include<reg51.h>
  16          #include<intrins.h>
  17          
  18          /****************************************************************************
  19          内存区定义
  20          ****************************************************************************/
  21          sbit BF=P0^7; //12864
  22          sbit DI=P2^0; 
  23          sbit RW=P2^1;
  24          sbit ENABLE=P2^2;
  25          sbit CS1=P2^3;
  26          sbit CS2=P2^4;
  27          sbit TIMECLK=P1^0;      //DS1302
  28          sbit TIMEDATA=P1^1; 
  29          sbit TIMERST=P1^2;
  30          sbit K1=P1^4; //三个按键
  31          sbit K2=P1^5;
  32          sbit K3=P1^6;
  33          sbit LN1=P1^3; //水位控制端口
  34          sbit LN2=P1^7;
  35          sbit DQ=P3^3; //DS18b20*4
  36          sbit DQ1=P3^0;
  37          sbit DQ2=P3^1;
  38          sbit DQ3=P3^2;
  39          sbit HT=P3^4; //温度控制端口
  40          sbit CR=P3^5;
  41          sbit WT=P3^6;
  42          sbit BUZZ=P3^7;//蜂鸣器
  43          
  44          bit SCNF=1;     //秒闪烁标志位
  45          bit tempflag;  //温度标志位
  46          
  47          #define INIT_SECOND 0x00  //年月日星期时间初始值
  48          #define INIT_MINUTE 0x00
  49          #define INIT_HOUR 0x00
  50          #define INIT_DAY 0x01
  51          #define INIT_MONTH 0x01
  52          #define INIT_WEEK 0x01
  53          #define INIT_YEAR 0x00
  54          
C51 COMPILER V8.02   1602                                                                  04/21/2008 20:44:58 PAGE 2   

  55          unsigned char data SECOND; //年月日星期时间
  56          unsigned char data MINUTE;
  57          unsigned char data HOUR;
  58          unsigned char data DAY;
  59          unsigned char data MONTH;
  60          unsigned char data WEEK;
  61          unsigned char data YEAR;
  62          unsigned char count=10; //计数器记数值
  63          unsigned char RF1; //一路闹钟
  64          unsigned char RF2; //二路闹钟
  65          unsigned char MF=0;     //移位设置
  66          unsigned char TMF=0;
  67          unsigned char TPF=0;
  68          unsigned char TRF=0;
  69          unsigned char TN=0x60; //温度初始值
  70          unsigned char n=0;  //音调
  71          unsigned char year_lunar;
  72          unsigned char month_lunar;
  73          unsigned char day_lunar;
  74          
  75          /****************************************************************************
  76          函数声明
  77          ****************************************************************************/
  78          void busyl(void);  //12864
  79          void busyr(void);
  80          void write_cmdl(unsigned char Commandaddr);
  81          void write_datal(unsigned char Dataaddr);
  82          void busyr(void);
  83          void write_cmdr(unsigned char Commandaddr);
  84          void write_datar(unsigned char Dataaddr);
  85          void init_12864(void);
  86          void clear(void);
  87          void write_ascii(unsigned char x,unsigned char y,unsigned char time,bit fanhei);
  88          void write_character(unsigned char x,unsigned char y,unsigned char *ptr,bit fanhei);
  89          void write_week(unsigned char x,unsigned char y,unsigned char weektime,bit fanhei);
  90          void write_ds1302(unsigned char Writeaddr,unsigned char Writedata);     //DS1302
  91          unsigned char read_ds1302(unsigned char Readaddr);
  92          void init_ds1302(void);
  93          void readtime(void);
  94          bit reset_ds18b20(void);  //DS18B20
  95          unsigned char ds18b20(void);
  96          void write_ds18b20(unsigned char value);
  97          unsigned char read_temp(void);
  98          void keyscanf(void);  //按键
  99          void tempdisplay(void);
 100          void ringdisplay(void);
 101          void keyscanf1(void);
 102          void timereset(void);
 103          void ringreset(void);
 104          void tempreset(void);
 105          unsigned char turntobcd(unsigned char x,unsigned char y,unsigned char value,
 106                                  signed char max,signed char min);
 107          void sound(void);
 108          void display1(void);
 109          void display2(void);
 110          void write_yearlunar(unsigned char x,unsigned char y,unsigned char lunar,bit tiandi);//公历
 111          bit get_lunar_day(unsigned char month_p,unsigned int table_addr); 
 112          void solartolunar(void);
 113          void displaylunar(void);
 114          void delayus(unsigned char i); //延时
 115          void delayms(unsigned char j);
 116          void delays(unsigned char k);
C51 COMPILER V8.02   1602                                                                  04/21/2008 20:44:58 PAGE 3   

 117          void initTimer0(void);
 118          void Timer0(void);
 119          void initTimer1(void);
 120          void Timer1(void);
 121          
 122          /****************************************************************************
 123          表格
 124          ****************************************************************************/
 125          unsigned char bcddis[6]; 
 126          unsigned char code divdisplay[] =
 127          {
 128              0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,
 129                  0x05,0x05,0x06,0x06,0x07,0x08,0x08,0x09
 130          };
 131          
 132          /****************************************************************************
 133          ASCII字模的数据表
 134          码表从0x20~0x7e                                                
 135          字库: D:\学习软件\单片机小软件\字模提取\Asc8X16E.dat 纵向取模下高位
 136          ****************************************************************************/
 137          unsigned char code nAsciiDot[] =              // ASCII
 138          {
 139                  0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00,  // -0-
 140                  0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,
 141          
 142                  0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,  // -1-
 143                  0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,
 144          
 145                  0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,  // -2-
 146                  0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,
 147          
 148                  0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,  // -3-
 149                  0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
 150          
 151                  0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,  // -4-
 152                  0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,
 153          
 154                  0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00,  // -5-
 155                  0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
 156          
 157                  0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,  // -6-
 158                  0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
 159          
 160                  0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,  // -7-
 161                  0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,
 162          
 163                  0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,  // -8-
 164                  0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
 165          
 166                  0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,  // -9-
 167                  0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00,
 168          
 169                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // -.-
 170                  0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
 171          
 172                  0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,  // -:-
 173                  0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,
 174          
 175                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // - -
 176                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 177          
 178              0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,  // ---
C51 COMPILER V8.02   1602                                                                  04/21/2008 20:44:58 PAGE 4   

 179                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
 180          };
 181          
 182          /****************************************************************************
 183          星期汉字字模表                                                          
 184          星期汉字库: 宋体16.dot 纵向取模下高位,数据排列:从左到右从上到下         
 185          ****************************************************************************/
 186          unsigned char code characterweek[] =                    // 数据表
 187          {
 188                0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,// 一
 189                0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
 190                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 191                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 192          
 193                0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,// 二
 194                0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x00,
 195                0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
 196                0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00,
 197          
 198                0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,// 三
 199                0x84,0x84,0x84,0xC4,0x86,0x04,0x00,0x00,
 200                0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
 201                0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
 202          
 203                0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,// 四
 204                0x04,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00,
 205                0x00,0x7F,0x20,0x28,0x24,0x23,0x20,0x20,
 206                0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,
 207          
 208                0x00,0x04,0x84,0x84,0x84,0x84,0xFC,0x84,// 五
 209                0x84,0x84,0x84,0xC4,0x86,0x84,0x00,0x00,
 210                0x40,0x40,0x40,0x40,0x78,0x47,0x40,0x40,
 211                0x40,0x40,0x40,0x7F,0x40,0x60,0x40,0x00,
 212          
 213                0x20,0x20,0x20,0x20,0x20,0x22,0x2C,0x38,// 六
 214                0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
 215                0x00,0x40,0x20,0x18,0x06,0x03,0x00,0x00,
 216                0x00,0x01,0x02,0x0C,0x38,0x70,0x00,0x00,
 217          
 218                0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,// 日
 219                0x82,0x82,0x82,0xFF,0x02,0x00,0x00,0x00,
 220                0x00,0x00,0x00,0x7F,0x20,0x20,0x20,0x20,
 221                0x20,0x20,0x20,0x7F,0x00,0x00,0x00,0x00,  
 222                    
 223                    0x00,0x00,0x00,0xFF,0x01,0x02,0x04,0x08,//闹钟图标
 224                0xF0,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,
 225                0x00,0x00,0x00,0xFF,0x80,0x40,0x20,0x10,
 226                0x0F,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,
 227          
 228                    0x00,0x00,0x00,0x18,0x18,0xF8,0xFE,0x0E,//加热图标
 229                    0x0E,0xFE,0xF8,0x18,0x18,0x00,0x00,0x00,
 230                0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0xC0,
 231                    0xC0,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,
 232          
 233                    0x00,0x00,0x00,0xC8,0x64,0xFE,0x64,0x48,//进出水图标
 234                    0x44,0x68,0xFE,0x68,0xC4,0x00,0x00,0x00,
 235                    0x00,0x00,0x00,0x7F,0xF0,0xF3,0xF0,0xF0,
 236                    0xF0,0xF0,0xF3,0xF0,0x7F,0x00,0x00,0x00
 237          };
 238          
 239          // 汉字表:
 240          // 一二三四五六日及几个图标
C51 COMPILER V8.02   1602                                                                  04/21/2008 20:44:58 PAGE 5   

 241          
 242          /****************************************************************************
 243          汉字字模的数据结构定义
 244          ****************************************************************************/
 245          typedef struct typFNT_GB16                 // 汉字字模数据结构
 246          {
 247                 signed char Index[2];               // 汉字内码索引
 248                 char Msk[32];                       // 点阵码数据
 249          };
 250          
 251          /****************************************************************************
 252          汉字字模表                                                          
 253          汉字库: 宋体16.dot 纵向取模下高位,数据排列:从左到右从上到下         
 254          ****************************************************************************/
 255          struct typFNT_GB16 code GB_16[] =          // 数据表
 256          {
 257          "年", 0x00,0x20,0x10,0xCC,0x47,0x44,0x44,0xFC,
 258                0x44,0x44,0x44,0x64,0x46,0x04,0x00,0x00,
 259                0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,
 260                0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,
 261          
 262          "月", 0x00,0x00,0x00,0x00,0xFE,0x22,0x22,0x22,
 263                0x22,0x22,0x22,0xFF,0x02,0x00,0x00,0x00,
 264                0x00,0x80,0x40,0x30,0x0F,0x02,0x02,0x02,
 265                0x02,0x42,0x82,0x7F,0x00,0x00,0x00,0x00,
 266          
 267          "日", 0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,
 268                0x82,0x82,0x82,0xFF,0x02,0x00,0x00,0x00,
 269                0x00,0x00,0x00,0x7F,0x20,0x20,0x20,0x20,
 270                0x20,0x20,0x20,0x7F,0x00,0x00,0x00,0x00,
 271          
 272          "星", 0x00,0x00,0xBE,0x2A,0x2A,0x2A,0x2A,0xEA,
 273                0x2A,0x2A,0x2A,0x2A,0xBF,0x02,0x00,0x00,
 274                0x48,0x44,0x4B,0x49,0x49,0x49,0x49,0x7F,
 275                0x49,0x49,0x49,0x4D,0x49,0x61,0x40,0x00,
 276          
 277          "期", 0x00,0x08,0xFF,0xA8,0xA8,0xA8,0xFF,0x08,
 278                0x00,0xFE,0x22,0x22,0x22,0xFF,0x02,0x00,
 279                0x84,0x44,0x37,0x04,0x04,0x14,0xA7,0x44,
 280                0x24,0x1F,0x02,0x42,0x82,0x7F,0x00,0x00,
 281          
 282          "室", 0x10,0x0C,0x24,0x24,0xA4,0x64,0x25,0x26,
 283                0x24,0x24,0xA4,0x34,0x24,0x14,0x0C,0x00,

⌨️ 快捷键说明

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