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

📄 wannianli.lst

📁 3208LED电子钟的程序及编译文件
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  WANNIANLI                                                              07/04/2007 21:12:52 PAGE 1   


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

stmt level    source

   1          /********************************************************************************************
   2          //3208点阵屏电子钟
   3          //应用程序 C 
   4          //杜洋
   5          //V3.0 2007-5-29
   6          //MCS-51 12MHZ C语言
   7          //接口说明:  DS1302、DS18B20
   8          //源自:http://www.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          *********************************************************************************************/
  23          
  24          
  25          /**********************************************************************************************/	
  26          #include <reg51.h>//定义头文件 MCS-51单片机
  27          /**********************************************************************************************/	
  28          //------------------------------定义缩写字符
  29          #define  uchar unsigned char
  30          #define  uint  unsigned int
  31          //------------------------------定义扬声器接口,低电平使能
  32          sbit Bell_Out  = P1 ^ 5;//扬声器驱动
  33          //------------------------------定义DS18B20音
  34          sbit DQ        = P1 ^ 6;//ds1820data(单总线)
  35          //------------------------------定义DS1302时钟接口
  36          sbit clock_clk = P3 ^ 5;//ds1302_clk(时钟线)
  37          sbit clock_dat = P3 ^ 6;//ds1302_dat(数据线)
  38          sbit clock_Rst = P3 ^ 7;//ds1302_Rst(复位线)
  39          //-----------------------------定义数据口
  40          #define Led_13     P0  //第1、3屏数据口
  41          #define Led_24     P2  //第2、4屏数据口
  42          #define Led_E      P1  //74HC154的BCD列驱动(P1.0~P1.4)
  43          sbit Led_EA    =   P1 ^ 4;//显示列驱动器(74HC154)使能
  44          //-----------------------------独立键盘定义
  45          sbit Add_Key   = P3 ^ 1;//前位加1键
  46          sbit Add2_Key  = P3 ^ 0;//后位加1键
  47          sbit OK_Key    = P3 ^ 2;//确定键
  48          sbit int_Key   = P3 ^ 3;//中断入口
  49          //-----------------------------定义累加器A中的各位
  50          sbit a0   = ACC ^ 0;
  51          sbit a1   = ACC ^ 1;
  52          sbit a2   = ACC ^ 2;
  53          sbit a3   = ACC ^ 3;
  54          sbit a4   = ACC ^ 4;
  55          sbit a5   = ACC ^ 5;
C51 COMPILER V6.12  WANNIANLI                                                              07/04/2007 21:12:52 PAGE 2   

  56          sbit a6   = ACC ^ 6;
  57          sbit a7   = ACC ^ 7;
  58          //------------------------------------定义全局变量
  59          uchar MENU,v;//定义标志位
  60          bit BEEP_bit;//闹钟开关标志
  61          uchar bn;//扫描映射全局变量
  62          static uchar timecount = 0;//定义静态软件计数器变量
  63          //------------------------------------函数声明(按字母顺序排列) 
  64          uchar DL (uchar);
  65          //-----------------------------定义显示缓冲寄存器(32个字节全局变量)
  66          uchar Ledplay [35];//
  67          /**********************************************************************************************/	
  68          uchar code no[][10]={//-定义字符数据表单(二维数组)
  69          //-----------------------------------数字字符表 
  70          {0x7E,0xFF,0x81,0x81,0xFF,0x7E,0},//0
  71          {0x82,0xFF,0xFF,0x80,0}, //1
  72          {0xC6,0xE7,0xB1,0x99,0x8F,0x86,0},//2
  73          {0x42,0xC3,0x89,0x89,0xFF,0x76,0},//3
  74          {0x30,0x28,0xA6,0xFF,0xFF,0xA0,0},//4
  75          {0x4F,0xCF,0x89,0x89,0xF9,0x71,0},//5
  76          {0x7E,0xFF,0x89,0x8B,0xFB,0x70,0},//6
  77          {0x03,0x03,0xF9,0xFF,0x07,0},//7
  78          {0x76,0xFF,0x89,0x89,0xFF,0x76,0},//8
  79          {0x0E,0xDF,0xD1,0x91,0xFF,0x7E,0},//9
  80          //-----------------------------------星期字符表
  81          {0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0},//一10
  82          {0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x40,0},//二
  83          {0x82,0x92,0x92,0x92,0x92,0x92,0x82,0x80,0},//三
  84          {0xFE,0xA2,0x9E,0x82,0x9E,0xA2,0xFE,0},//四
  85          {0x80,0x89,0xFF,0x89,0x89,0x89,0xF9,0x80,0},//五
  86          {0x88,0x68,0x38,0x0E,0x38,0x68,0x88,0},//六
  87          {0xFE,0x92,0x92,0x92,0x92,0xFE,0},//日			10+6
  88          //-----------------------------------特殊字符表
  89          {0x6C,0x6C,0},//“:”								17
  90          {0x18,0x18,0x18,0x18,0},//“-”						  18
  91          {0x06,0x06,0x78,0xFC,0x84,0x84,0x84,0x80,0},//“oC”	19
  92          {0x24,0x3b,0x2a,0xfe,0x2a,0x22,0},//“年”(在调时时表示年)20
  93          {0x80,0x7E,0x15,0x15,0x95,0xFF,0},//“月”21
  94          {0xFE,0x92,0x92,0x92,0x92,0xFE,0},//“日”22
  95          {0x80,0x7f,0x75,0x5f,0x75,0xFF,0},//“周”23
  96          {0x7c,0x54,0x7c,0x04,0x94,0xFF,0x04,0},//“时”24
  97          {0x08,0x94,0x52,0x30,0x93,0xF4,0x08,0},//“分”25
  98          };
  99          /**********************************************************************************************/	
 100          uchar code Mode[]={//”-显示“Mode”
 101          0x7F,0x02,0x0C,0x02,0x7F,0, // -M-
 102          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 103          0x7F,0x41,0x41,0x41,0x3E,0, // -D-
 104          0x7F,0x49,0x49,0x49,0x41,0, // -E-
 105          0x99};
 106          /**********************************************************************************************/	
 107          uchar code Time[]={//”-显示“Time”
 108          0x01,0x01,0x7F,0x01,0x01,0, // -T-
 109          0x41,0x7F,0x41,0x00, // -I-
 110          0x7F,0x02,0x0C,0x02,0x7F,0, // -M-
 111          0x7F,0x49,0x49,0x49,0x41, // -E-
 112          0x99}; 
 113          /**********************************************************************************************/	
 114          uchar code T[]={//”-显示“T”
 115          0x01,0x01,0x7F,0x01,0x01,0, // -T-
 116          0x14,0, // -:-
 117          0x99}; 
C51 COMPILER V6.12  WANNIANLI                                                              07/04/2007 21:12:52 PAGE 3   

 118          /**********************************************************************************************/	
 119          uchar code Pp[]={//”--显示“P”
 120          0x7F,0x09,0x09,0x06,0, // -P-
 121          0x14,0, // -:-
 122          0x99}; 
 123          /**********************************************************************************************/	
 124          uchar code POINT[]={//”-显示“POINT”
 125          0x7F,0x09,0x09,0x09,0x06,0, // -P-
 126          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 127          0x41,0x7F,0x41,0x00, // -I-
 128          0x7F,0x04,0x08,0x10,0x7F,0, // -N-
 129          0x01,0x01,0x7F,0x01,0x01, // -T-
 130          0x99}; 
 131          /**********************************************************************************************/	
 132          uchar code V30[]={//”显示“V30”
 133          4,0,0,0,0,0,				//更新的BUG次数在版本信息第一列用8421表示
 134          0x1F,0x20,0x40,0x20,0x1F,0, // -V-
 135          0x21,0x41,0x49,0x4D,0x33,// -3-
 136          0x00,0x60,0x60,0x00,// -.-
 137          0x3E,0x51,0x49,0x45,0x3E, // -0-
 138          0x99
 139          };
 140          /**********************************************************************************************/	
 141          uchar code ALARM[]={//”-显示“ALARM”
 142          0xFc,0x22,0x22,0xfc,0,//“A”24
 143          0xFe,0x80,0x80,0,//“L”24
 144          0xFc,0x22,0x22,0xfc,0,//“A”24
 145          0xFe,0x12,0x32,0xcc,0,//“R”25
 146          0xFe,0x04,0x08,0x04,0xFe,0,//“M”25
 147          0x99
 148          };
 149          /**********************************************************************************************/	
 150          uchar code A[]={//”--显示“A:”
 151          0x7C,0x12,0x11,0x12,0x7C,0, // -A-
 152          0x14,0, // -:-
 153          0x99
 154          };
 155          /**********************************************************************************************/	
 156          uchar code Aoff[]={//-显示“A:off””
 157          0x7C,0x12,0x11,0x12,0x7C,0, // -A-
 158          0x14,0, // -:-
 159          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 160          0x7F,0x09,0x09,0x09,0x01,0, // -F-
 161          0x7F,0x09,0x09,0x09,0x01, // -F-
 162          0x99
 163          };
 164          /**********************************************************************************************/	
 165          uchar code Aon[]={//”显示“A:on”
 166          0x7C,0x12,0x11,0x12,0x7C,0, // -A-
 167          0x14,0, // -:-
 168          0x3E,0x41,0x41,0x41,0x3E,0, // -O-
 169          0x7F,0x04,0x08,0x10,0x7F,// -N-
 170          0x99
 171          };
 172          /**********************************************************************************************/	
 173          uchar code ONOFF[]={//显示“ON/OFF“
 174          0x3E,0x41,0x41,0x41,0x3E, // -O-
 175          0x7F,0x04,0x08,0x10,0x7F,0, // -N-
 176          0x36,0x49,0x56,0x20,0x50,0, // -&-
 177          0x3E,0x41,0x41,0x41,0x3E, // -O-
 178          0x7F,0x09,0x09,0x09,0x01, // -F-
 179          0x7F,0x09,0x09,0x09,0x01, // -F-
C51 COMPILER V6.12  WANNIANLI                                                              07/04/2007 21:12:52 PAGE 4   

 180          0x99
 181          };
 182          /**********************************************************************************************/	
 183          uchar code DoYoung[]={//-开机画面,显示“DoYoung”
 184          0xfe,0x82,0x82,0x7c,0,//D
 185          0x78,0x84,0x78,0,//o
 186          0x02,0x0c,0xF0,0x0c,0x02,//Y
 187          0x78,0x84,0x78,0,//o
 188          0x7c,0x80,0x80,0x7c,0,//u
 189          0xf8,0x04,0x04,0xf8,0,//n
 190          0x98,0xa4,0xa4,0x78,//g
 191          0x99
 192          }; 
 193          /**********************************************************************************************/	
 194          void key_off (void){//-等待所有键放开(通用)
 195   1      while(OK_Key == 0 || int_Key == 0 || Add_Key == 0 || Add2_Key == 0);//等待键放开
 196   1      }
 197          /**********************************************************************************************/	
 198          void Delay(int num){//--延时函数 2uS/次
 199   1      	for (;num>0;num--);
 200   1      }
 201          /**********************************************************************************************/	
 202          void DelayM(unsigned int a){//-延时函数 1MS/次	
 203   1      	unsigned char i;
 204   1      	while( --a != 0){		
 205   2      		for(i = 0; i < 125; i++);  //一个 ; 表示空语句,CPU空转。
 206   2      	}   				   //i 从0加到125,CPU大概就耗时1毫秒
 207   1      }
 208          /******************************************************************************/
 209          void Init_DS18B20(void)//初始化ds1820
 210          {
 211   1      	unsigned char x=0;
 212   1      	DQ = 1;    //DQ复位
 213   1      	Delay(8);  //稍做延时
 214   1      	DQ = 0;    //单片机将DQ拉低
 215   1      	Delay(80); //精确延时 大于 480us
 216   1      	DQ = 1;    //拉高总线
 217   1      	Delay(14);
 218   1      	x=DQ;      //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
 219   1      	Delay(20);
 220   1      }
 221          /******************************************************************************/
 222          unsigned char ReadOneChar(void)//读一个字节
 223          {
 224   1      	unsigned char i=0;
 225   1      	unsigned char dat = 0;
 226   1      	for (i=8;i>0;i--)
 227   1      	{

⌨️ 快捷键说明

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