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

📄 wannianli.lst

📁 0107、32x8 LED点阵屏电子钟设计制作资料
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   WANNIANLI                                                             12/20/2005 21:39:34 PAGE 1   


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

line level    source

   1          /*-------------------------------------------
   2          项目名:   2006年毕业设计项目
   3          程序名:    32*8点阵屏电子钟
   4          编写人:    杜洋 
   5          初写时间:  2005-12-15~2005-12-  
   6          CPU说明:   MCS-51(AT89S52) 12MHZ
   7          接口说明:  DS1302、DS18B20
   8          修改日志:  
   9            NO.1-20051215 完成LED驱动、显示切换、时钟温度读取
  10                  NO.2-20051216 完成整点报时、填加注释信息
  11                 NO.3-20051220 完成了调时、按键音等所以的功能(没有闹钟)
  12          -------------------------------------------*/
  13          
  14          //------------------------------定义头文件
  15          #include <reg51.h>//MCS-51单片机
  16          //------------------------------定义缩写字符
  17          #define  uchar unsigned char
  18          #define  uint  unsigned int
  19          //------------------------------定义扬声器接口,低电平使能
  20          sbit Bell_Out  = P1 ^ 5;//扬声器驱动
  21          //------------------------------定义DS18B20音
  22          sbit DQ        = P1 ^ 6;//ds1820data(单总线)
  23          //------------------------------定义DS1302时钟接口
  24          sbit clock_clk = P3 ^ 5;//ds1302_clk(时钟线)
  25          sbit clock_dat = P3 ^ 6;//ds1302_dat(数据线)
  26          sbit clock_Rst = P3 ^ 7;//ds1302_Rst(复位线)
  27          //-----------------------------定义数据口
  28          #define Led_13     P0  //第1、3屏数据口
  29          #define Led_24     P2  //第2、4屏数据口
  30          #define Led_E      P1  //74HC154的BCD列驱动(P1.0~P1.4)
  31          sbit Led_EA    =   P1 ^ 4;//显示列驱动器(74HC154)使能
  32          //-----------------------------独立键盘定义
  33          sbit Add_Key   = P3 ^ 1;//前位加1键
  34          sbit Add2_Key  = P3 ^ 0;//后位加1键
  35          sbit OK_Key    = P3 ^ 2;//确定键
  36          sbit int_Key   = P3 ^ 3;//中断入口
  37          //-----------------------------定义累加器A中的各位
  38          sbit a0   = ACC ^ 0;
  39          sbit a1   = ACC ^ 1;
  40          sbit a2   = ACC ^ 2;
  41          sbit a3   = ACC ^ 3;
  42          sbit a4   = ACC ^ 4;
  43          sbit a5   = ACC ^ 5;
  44          sbit a6   = ACC ^ 6;
  45          sbit a7   = ACC ^ 7;
  46          //------------------------------------定义全局变量
  47          bit txx = 0,settime = 0;//定义标志位
  48          uchar yy,mo,dd,xq,hh,mm,bn;//定义时间映射全局变量(专用寄存器)
  49          static uchar timecount = 0;//定义静态软件计数器变量
  50          //------------------------------------函数声明(按字母顺序排列) 
  51          void Beep(void);
  52          void Beep_key(void);
  53          void Beep_set(void);
  54          void clearRAM (void);
  55          uchar clock_in(void);
C51 COMPILER V7.50   WANNIANLI                                                             12/20/2005 21:39:34 PAGE 2   

  56          void clock_out(uchar dd);
  57          void Delay(int num);
  58          void DelayM(uint a);
  59          void display (void);
  60          void display_s (void);
  61          void Init_1302(void);
  62          void int1 (void);
  63          void putin (uchar u);
  64          uchar read_clock(uchar ord);
  65          void read_clockS(void);
  66          void Set_time(unsigned char sel);
  67          void setput (uchar k);
  68          void Timer0(void);
  69          void Timer0_Init(void);
  70          void write_clock(uchar ord, uchar dd);
  71          uchar DL (uchar);
  72          uchar DSS (void);
  73          
  74          //-----------------------------定义显示缓冲寄存器(32个字节全局变量)
  75          uchar Ledplay [35];//
  76          //-----------------------------定义字符数据表单(二维数组)
  77          uchar code no[][10]={
  78          //-----------------------------------数字字符表 
  79          {0x7E,0xFF,0x81,0x81,0xFF,0x7E,0},//0
  80          {0x82,0xFF,0xFF,0x80,0}, //1
  81          {0xC6,0xE7,0xB1,0x99,0x8F,0x86,0},//2
  82          {0x42,0xC3,0x89,0x89,0xFF,0x76,0},//3
  83          {0x30,0x28,0xA6,0xFF,0xFF,0xA0,0},//4
  84          {0x4F,0xCF,0x89,0x89,0xF9,0x71,0},//5
  85          {0x7E,0xFF,0x89,0x8B,0xFB,0x70,0},//6
  86          {0x03,0x03,0xF9,0xFF,0x07,0},//7
  87          {0x76,0xFF,0x89,0x89,0xFF,0x76,0},//8
  88          {0x0E,0xDF,0xD1,0x91,0xFF,0x7E,0},//9
  89          //-----------------------------------星期字符表
  90          {0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0},//一10
  91          {0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x40,0},//二
  92          {0x82,0x92,0x92,0x92,0x92,0x92,0x82,0x80,0},//三
  93          {0xFE,0xA2,0x9E,0x82,0x9E,0xA2,0xFE,0},//四
  94          {0x80,0x89,0xFF,0x89,0x89,0x89,0xF9,0x80,0},//五
  95          {0x88,0x68,0x38,0x0E,0x38,0x68,0x88,0},//六
  96          {0xFE,0x92,0x92,0x92,0x92,0xFE,0},//日                  10+6
  97          //-----------------------------------特殊字符表
  98          {0x6C,0x6C,0},//“:”                                                           17
  99          {0x18,0x18,0x18,0x18,0},//“-”                                           18
 100          {0x06,0x06,0x78,0xFC,0x84,0x84,0x84,0x80,0},//“oC”    19
 101          {0x02,0x8E,0xFC,0xFC,0x8E,0x02,0}//“Y”(在调时时表示年)
 102          };
 103          //-----------------------------------开机画面,显示“DYDIY”
 104          uchar code dydiy[]={//显示“DYDIY”
 105          0x82,0xFE,0xFE,0x82,0xFE,0x7C,0,
 106          0x02,0x8E,0xFC,0xFC,0x8E,0x02,0,
 107          0x82,0xFE,0xFE,0x82,0xFE,0x7C,0,
 108          0x82,0xFE,0xFE,0x82,0,
 109          0x02,0x8E,0xFC,0xFC,0x8E,0x02,0,0x99
 110          }; 
 111          //---------------------------------------延时函数 2uS/次
 112          void Delay(int num){
 113   1              for (;num>0;num--);
 114   1      }
 115          //---------------------------------------延时函数 1MS/次
 116          void DelayM(unsigned int a){    
 117   1                      unsigned char i;
C51 COMPILER V7.50   WANNIANLI                                                             12/20/2005 21:39:34 PAGE 3   

 118   1                      while( --a != 0){               
 119   2                              for(i = 0; i < 125; i++);  //一个 ; 表示空语句,CPU空转。
 120   2                      }                                  //i 从0加到125,CPU大概就耗时1毫秒
 121   1              }
 122          //---------------------------------------1302驱动程序(底层协议)
 123          void clock_out(unsigned char dd){
 124   1              ACC=dd;
 125   1              clock_dat=a0; clock_clk=1; clock_clk=0;
 126   1              clock_dat=a1; clock_clk=1; clock_clk=0;
 127   1              clock_dat=a2; clock_clk=1; clock_clk=0;
 128   1              clock_dat=a3; clock_clk=1; clock_clk=0;
 129   1              clock_dat=a4; clock_clk=1; clock_clk=0;
 130   1              clock_dat=a5; clock_clk=1; clock_clk=0;
 131   1              clock_dat=a6; clock_clk=1; clock_clk=0;
 132   1              clock_dat=a7; clock_clk=1; clock_clk=0;
 133   1      }
 134          //---------------------------------------DS1302写入字节(底层协议)
 135          unsigned char clock_in(void){
 136   1              clock_dat=1;
 137   1              a0=clock_dat;
 138   1              clock_clk=1; clock_clk=0; a1=clock_dat;
 139   1              clock_clk=1; clock_clk=0; a2=clock_dat;
 140   1              clock_clk=1; clock_clk=0; a3=clock_dat;
 141   1              clock_clk=1; clock_clk=0; a4=clock_dat;
 142   1              clock_clk=1; clock_clk=0; a5=clock_dat;
 143   1              clock_clk=1; clock_clk=0; a6=clock_dat;
 144   1              clock_clk=1; clock_clk=0; a7=clock_dat;
 145   1              return(ACC);
 146   1      }
 147          //----------------------------------------DS1302读数据(底层协议)
 148          uchar read_clock(uchar ord){
 149   1              uchar dd=0;
 150   1              clock_clk=0;
 151   1              clock_Rst=0;
 152   1              clock_Rst=1;

⌨️ 快捷键说明

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