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

📄 3208_v4.01.00.lst

📁 《爱上单片机》配书光盘
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V6.12  3208_V4_01_00                                                          11/03/2008 14:44:34 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 3208_V4_01_00
OBJECT MODULE PLACED IN 3208_V4.01.00.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3208_V4.01.00.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /********************************************************************************************
   2          //3208点阵屏电子钟
   3          //作者:杜洋
   4          //V4.01.00 2007-5-29
   5          //MCS-51 12MHZ C语言
   6          //接口说明:DS1302、DS18B20
   7          //注意:V4.1适合于V2.0/V3.0的硬件升级到V4.0则请使用V4.1正式版。
   8          //源自:http://www.doyoung.net (DoYoung.net 杜洋个人空间)
   9          
  10          修改日志:  
  11          V2.0	NO.1-20051215 完成LED驱动、显示切换、时钟温度读取
  12          V2.1	NO.2-20051216 完成整点报时、填加注释信息
  13          V2.2	NO.3-20051220 完成了调时、按键音等所以的功能(没有闹钟)
  14          V2.3	NO.3-20051221  增加了十位为0时的消隐功能
  15          V3.0	NO.4-20070529  增加闹钟功能并进一步完善系统(1,完成菜单界面)
  16          		NO.5-20070530  增加闹钟项目,完成基本程序,开始测试功能
  17          		NO.6-20070602  修改了闹钟小时值=59的一处失误
  18          		NO.7-20070617  修改了整点报时处的一处错误,该错误使报时不准
  19          		NO.8-20070617  将MODE最大值由7改为6,设置时7是没有用的,编程的失误
  20          		NO.9-20070703  修改了手动停止闹钟会再响的一处BUG
  21          /*-------------------------------------------------------------------------------------------
  22          V4.0	NO.1-20080123  开始进行V4.0的升级。
  23          		NO.2-20080125  完成流动显示功能及流动速度调整功能。闹钟改为6路。
  24          		NO.3-20080126  解决了闹铃时不能闪烁显示闹铃时间的问题。
  25          		NO.4-20080228  继续进行升级。
  26          		NO.5-20080228  完成时间校准功能及显示模式功能。
  27          		NO.6-20080303  修改了切换显示模式后可能会有一屏的乱码情况。
  28          		NO.7-20081103  修改了初始化黑屏现象。
  29          		NO.8-20081103  将oC改小,加入“周”字显示。
  30          		NO.9-20081103  重新优化排版和注释。
  31          V4.1	NO.1-20081103  驱动改为适合原来V2.0和V3.0版本的硬件电路升级。
  32          		NO.2-20081103  加入汇编的数据反转程序。
  33          		NO.3-20081103  修改显示版本号为V4.1
  34          -------------------------------------------------------------------------------------------*/
  35          
  36          /*********************************************************************************************/
  37          //0- 此闹钟独立关闭,1- 此闹钟鸣响一次后自动关闭,2- 此闹钟常响,3- 此闹钟周一~五鸣响周六、日除外
  38          //4- 此闹钟周一~六鸣响,5- 此闹钟周六、日鸣响,6- 此闹钟周日鸣响 
  39          /*********************************************************************************************/
  40          
  41          /**********************************************************************************************/	
  42          #include <reg51.h>//定义头文件 MCS-51单片机
  43          /**********************************************************************************************/	
  44          //------------------------------定义缩写字符
  45          #define  uchar unsigned char
  46          #define  uint  unsigned int
  47          //------------------------------定义扬声器接口,低电平使能
  48          sbit Bell_Out  = P1 ^ 5;//扬声器驱动
  49          //------------------------------定义DS18B20温度传感器数据接口
  50          sbit DQ        = P1 ^ 6;//ds1820data(单总线)
  51          //------------------------------定义DS1302时钟接口
  52          sbit clock_clk = P3 ^ 5;//ds1302_clk(时钟线)
  53          sbit clock_dat = P3 ^ 6;//ds1302_dat(数据线)
  54          sbit clock_Rst = P3 ^ 7;//ds1302_Rst(复位线)
  55          //-----------------------------定义数据口
C51 COMPILER V6.12  3208_V4_01_00                                                          11/03/2008 14:44:34 PAGE 2   

  56          #define Led_13     P0  //第1、3屏数据口
  57          #define Led_24     P2  //第2、4屏数据口
  58          #define Led_E      P1  //74HC154的BCD列驱动(P1.0~P1.4)
  59          sbit Led_EA    =   P1 ^ 4;//显示列驱动器(74HC154)使能
  60          //-----------------------------独立键盘定义
  61          sbit Add_Key   = P3 ^ 1;//前位加1键
  62          sbit Add2_Key  = P3 ^ 0;//后位加1键
  63          sbit OK_Key    = P3 ^ 2;//确定键
  64          sbit int_Key   = P3 ^ 3;//中断入口
  65          //-----------------------------定义累加器A中的各位
  66          sbit a0   = ACC ^ 0;
  67          sbit a1   = ACC ^ 1;
  68          sbit a2   = ACC ^ 2;
  69          sbit a3   = ACC ^ 3;
  70          sbit a4   = ACC ^ 4;
  71          sbit a5   = ACC ^ 5;
  72          sbit a6   = ACC ^ 6;
  73          sbit a7   = ACC ^ 7;
  74          //------------------------------------定义全局变量
  75          uchar DL (uchar);//2和4屏数据反转(用DL的汇编实现)
  76          uchar MENU,v;//定义标志位
  77          bit BEEP_bit;//闹钟开关标志
  78          uchar bn;//扫描映射全局变量
  79          uchar hour_renew;//定义静态小时更新用数据变量
  80          static uchar timecount = 0;//定义静态软件计数器变量
  81          
  82          uchar disbuf_flag=1;
  83          uchar left_move_time=0;
  84          uchar ty = 0;//定义温度寄存器变量
  85          //-----------------------------定义显示缓冲寄存器(32个字节全局变量)
  86          data uchar Ledplay [32];//data和idata用来解决内存溢出的问题!!!!!!
  87          //-----------------------------定义待显缓冲寄存器(80个字节全局变量)
  88          idata uchar Ledplay_buf [80];//
  89          /**********************************************************************************************/	
  90          uchar code no[][10]={//-定义字符数据表单(二维数组)
  91          //-----------------------------------数字字符表 
  92          {0x7E,0xFF,0x81,0x81,0xFF,0x7E,0},//0
  93          {0x82,0xFF,0xFF,0x80,0}, //1
  94          {0xC6,0xE7,0xB1,0x99,0x8F,0x86,0},//2
  95          {0x42,0xC3,0x89,0x89,0xFF,0x76,0},//3
  96          {0x30,0x28,0xA6,0xFF,0xFF,0xA0,0},//4
  97          {0x4F,0xCF,0x89,0x89,0xF9,0x71,0},//5
  98          {0x7E,0xFF,0x89,0x8B,0xFB,0x70,0},//6
  99          {0x03,0x03,0xF9,0xFF,0x07,0},//7
 100          {0x76,0xFF,0x89,0x89,0xFF,0x76,0},//8
 101          {0x0E,0xDF,0xD1,0x91,0xFF,0x7E,0},//9
 102          //-----------------------------------星期字符表
 103          {0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0},//一10
 104          {0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x40,0},//二
 105          {0x82,0x92,0x92,0x92,0x92,0x92,0x82,0x80,0},//三
 106          {0xFE,0xA2,0x9E,0x82,0x9E,0xA2,0xFE,0},//四
 107          {0x80,0x89,0xFF,0x89,0x89,0x89,0xF9,0x80,0},//五
 108          {0x88,0x68,0x38,0x0E,0x38,0x68,0x88,0},//六
 109          {0xFE,0x92,0x92,0x92,0xFE,0},//日			10+6
 110          //-----------------------------------特殊字符表
 111          {0x6C,0x6C,0},//“:”								17
 112          {0x18,0x18,0x18,0x18,0},//“-”						  18
 113          {0x01,0x0E,0x0A,0},//“oC”	19
 114          {0x24,0x3b,0x2a,0xfe,0x2a,0x22,0},//“年”(在调时时表示年)20
 115          {0x80,0x7E,0x15,0x15,0x95,0xFF,0},//“月”21
 116          {0xFE,0x92,0x92,0x92,0xFE,0},//“日”22
 117          {0xff,0x75,0x5f,0x75,0xFF,0},//“周”23
C51 COMPILER V6.12  3208_V4_01_00                                                          11/03/2008 14:44:34 PAGE 3   

 118          {0x7c,0x54,0x7c,0x04,0x94,0xFF,0x04,0},//“时”24
 119          {0x08,0x94,0x52,0x30,0x93,0xF4,0x08,0},//“分”25
 120          };
 121          /**********************************************************************************************/	
 122          uchar code Mode[]={//”-显示“Mode”
 123          0x7F,0x02,0x0C,0x02,0x7F,0, // -M-
 124          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 125          0x7F,0x41,0x41,0x41,0x3E,0, // -D-
 126          0x7F,0x49,0x49,0x49,0x41,0, // -E-
 127          0x99};
 128          /**********************************************************************************************/	
 129          uchar code Time[]={//”-显示“Time”
 130          0x01,0x01,0x7F,0x01,0x01,0, // -T-
 131          0x41,0x7F,0x41,0x00, // -I-
 132          0x7F,0x02,0x0C,0x02,0x7F,0, // -M-
 133          0x7F,0x49,0x49,0x49,0x41, // -E-
 134          0x99}; 
 135          /**********************************************************************************************/	
 136          uchar code T[]={//”-显示“T”
 137          0x01,0x01,0x7F,0x01,0x01,0, // -T-
 138          0x14,0, // -:-
 139          0x99}; 
 140          /**********************************************************************************************/	
 141          uchar code Pp[]={//”--显示“P”
 142          0x7F,0x09,0x09,0x06,0, // -P-
 143          0x14,0, // -:-
 144          0x99}; 
 145          /**********************************************************************************************/	
 146          uchar code POINT[]={//”-显示“POINT”
 147          0x7F,0x09,0x09,0x09,0x06,0, // -P-
 148          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 149          0x41,0x7F,0x41,0x00, // -I-
 150          0x7F,0x04,0x08,0x10,0x7F,0, // -N-
 151          0x01,0x01,0x7F,0x01,0x01, // -T-
 152          0x99}; 
 153          /**********************************************************************************************/	
 154          uchar code V30[]={//”显示“V4.0”
 155          0,0,0,0,0,0,
 156          0x1F,0x20,0x40,0x20,0x1F,0, // -V-
 157          0x18,0x14,0x12,0x7f,0x10,//-4-
 158          0x00,0x40,0x00,// -.-
 159          0x02,0x7f, // -1-
 160          0x99
 161          };
 162          /**********************************************************************************************/	
 163          uchar code ALARM[]={//”-显示“ALARM”
 164          0xFc,0x22,0x22,0xfc,0,//“A”24
 165          0xFe,0x80,0x80,0,//“L”24
 166          0xFc,0x22,0x22,0xfc,0,//“A”24
 167          0xFe,0x12,0x32,0xcc,0,//“R”25
 168          0xFe,0x04,0x08,0x04,0xFe,0,//“M”25
 169          0x99
 170          };
 171          /**********************************************************************************************/	
 172          uchar code A[]={//”--显示“A:”即ALARM,表示闹钟设置
 173          0x7C,0x12,0x11,0x12,0x7C,0, // -A-
 174          0x14,0, // -:-
 175          0x99
 176          };
 177          /**********************************************************************************************/	
 178          uchar code Aoff[]={//-显示“A:off”即闹钟关
 179          0x7C,0x12,0x11,0x12,0x7C,0, // -A-
C51 COMPILER V6.12  3208_V4_01_00                                                          11/03/2008 14:44:34 PAGE 4   

 180          0x14,0, // -:-
 181          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 182          0x7F,0x09,0x09,0x09,0x01,0, // -F-
 183          0x7F,0x09,0x09,0x09,0x01, // -F-
 184          0x99
 185          };
 186          /**********************************************************************************************/	
 187          uchar code Aon[]={//”显示“A:on”即闹钟开
 188          0x7C,0x12,0x11,0x12,0x7C,0, // -A-
 189          0x14,0, // -:-
 190          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 191          0x7F,0x04,0x08,0x10,0x7F,// -N-
 192          0x99
 193          };
 194          /**********************************************************************************************/	
 195          uchar code ONOFF[]={//显示“ON/OFF”是设置项,表示总闹钟的开关设置
 196          0x3E,0x41,0x41,0x41,0x3E, // -O-
 197          0x7F,0x04,0x08,0x10,0x7F,0, // -N-
 198          0x36,0x49,0x56,0x20,0x50,0, // -&-
 199          0x3E,0x41,0x41,0x41,0x3E, // -O-
 200          0x7F,0x09,0x09,0x09,0x01, // -F-
 201          0x7F,0x09,0x09,0x09,0x01, // -F-
 202          0x99
 203          };
 204          /**********************************************************************************************/
 205          uchar code SPEED[]=//显示“SPEED”即速度设置字样
 206          {
 207          	0x26,0x49,0x49,0x49,0x32,0,//S
 208          	0x7F,0x09,0x09,0x09,0x06,0,//P
 209          	0x7F,0x49,0x49,0x49,0x41,0,//E
 210          	0x7F,0x49,0x49,0x49,0x41,0,//E
 211          	0x7F,0x41,0x41,0x41,0x3E,//D
 212           	0x99
 213          };
 214          /**********************************************************************************************/
 215          uchar code LEVEL[]=//显示"LEVEL"
 216          {
 217          	0xFE,0x80,0x80,0x00,//L
 218          	0xFE,0x92,0x92,0x82,0x00,//E
 219          	0x7E,0x80,0x80,0x7E,0x00,//V
 220          	0xFE,0x92,0x92,0x82,0x00,//E
 221          	0xFE,0x80,0x80,0,0,//L
 222           	0x99
 223          };
 224          /**********************************************************************************************/
 225          uchar code TIMEADJ[]=//显示"TIMEADJ"即时钟精度调整
 226          {
 227          	0x01,0x01,0x7F,0x01,0x01,0x00,//T
 228          	0x7F,0x00,//I
 229          	0x7F,0x02,0x04,0x02,0x7F,0x00,//M
 230          	0x7F,0x49,0x49,0x41,0x00,//E
 231          	0x7E,0x11,0x11,0x7E,0x00,//A

⌨️ 快捷键说明

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