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

📄 wannianli.lst

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

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

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

⌨️ 快捷键说明

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