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

📄 6416+1302电子钟.lst

📁 6416led+ds1302+8951电子钟,完整源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   6416_1302电子钟                                                       08/18/2008 19:06:56 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 6416_1302电子钟
OBJECT MODULE PLACED IN 6416+1302电子钟.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 6416+1302电子钟.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************
   2                 4字LED点阵屏+DS1302万年历电子钟 C 程序
   3          ******************************************************
   4          声明:
   5               本程序中DS1302读写部分是直接引用网上网友提供的共享程序,
   6                    本程序供大家学习之用,用勿用于商业用途。尊重作者版权。
   7                   
   8                   编写:邓椿薪
   9                   时间:2006年6月9日 晚
  10                   邮箱:love2151@xinhuanet.com
  11                   网址:www.89s51diy.com
  12          *******************************************************
  13          
  14           DS1302 接线图
  15          
  16                   Vcc2  CLK I/O  /RST 
  17                     
  18                      |   |   |   |
  19                     -------------------
  20                    | 8   7   6   5  |
  21                    |   DS1302       |
  22                    |                |
  23                    | 1   2   3   4  |
  24                     -------------------
  25                      |   |   |   |
  26                   VCC1           GND
  27          
  28          1 脚接+5V    2,3脚32768HZ晶振  4脚接地  5脚接S51的P02 6脚接S51的P01 7接S51的P00
  29          8脚接后备电源,可以接老计算机主板上的3.6V电池,也可以通过二级管隔离接一个大容量电解电容
  30          电压在2.5V以上即可维持
  31          
  32          
  33          595连级输出数据,138行驱动。*/
  34          
  35          
  36          
  37          #include <AT89c51.H>
*** WARNING C318 IN LINE 37 OF 6416+1302电子钟.c: can't open file 'AT89c51.H'
  38          #define uchar unsigned char
  39          #define uint unsigned int
  40          
  41          uchar code hanzi[];                                         //汉字字模
  42          
  43          uchar code timer[11][16];                               //0~9数字
  44          uchar code sw[];                            //138驱动数据
  45          
  46          void Show_word();                      //待机显示按三秒间隔分别显示年、月日、星期、时分秒。
  47          void Show_pass();                                  //不显示一个字
  48          void Send_data(unsigned char *d);      /*串口发送一行*/
  49          
  50          
  51          
  52          /******************************************/
  53          sbit resget=P1^3;                       //时钟复位
*** ERROR C202 IN LINE 53 OF 6416+1302电子钟.C: 'P1': undefined identifier
C51 COMPILER V7.50   6416_1302电子钟                                                       08/18/2008 19:06:56 PAGE 2   

  54          sbit key_moda=P1^0;                     //模式转换
*** ERROR C202 IN LINE 54 OF 6416+1302电子钟.C: 'P1': undefined identifier
  55          sbit key_up=P1^1;                       //时钟加
*** ERROR C202 IN LINE 55 OF 6416+1302电子钟.C: 'P1': undefined identifier
  56          sbit key_Down=P1^2;                     //时钟减
*** ERROR C202 IN LINE 56 OF 6416+1302电子钟.C: 'P1': undefined identifier
  57          
  58          sbit T_CLK=P1^7;                    //DS1302引脚连接
*** ERROR C202 IN LINE 58 OF 6416+1302电子钟.C: 'P1': undefined identifier
  59          sbit T_IO =P1^6;
*** ERROR C202 IN LINE 59 OF 6416+1302电子钟.C: 'P1': undefined identifier
  60          sbit T_RST=P1^5;
*** ERROR C202 IN LINE 60 OF 6416+1302电子钟.C: 'P1': undefined identifier
  61          
  62          sbit ACC0=ACC^0;           //1bit数据存储位
*** ERROR C202 IN LINE 62 OF 6416+1302电子钟.C: 'ACC': undefined identifier
  63          sbit ACC7=ACC^7;
*** ERROR C202 IN LINE 63 OF 6416+1302电子钟.C: 'ACC': undefined identifier
  64          
  65          uchar starts_time[7]={0x00,0x10,0x22,0x11,0x06,0x07,0x06};       //初始化后设置
  66          uchar Move,Speed,Flicker,line,Sec,Cent,Hour,Year,Month,Day,Week;  //时间变量
  67          uchar a,b,f,h,msec,id,x;           //标志计数器 a为自动转换显示时间,b为手动与自动标志
  68          uint zimuo;                                //字模计数器
  69          uchar BUFF[10];                            //缓存
  70          
  71          void   RTInputByte(uchar);         /* 输入 1Byte */
  72          uchar  RTOutputByte(void);         /* 输出 1Byte */
  73          void   W1302(uchar, uchar);        // 向DS1302写入一个字节
  74          uchar  R1302(uchar);               // 从DS1302读出一个字节
  75          void   Set1302(uchar *);           // 写DS1302时间
  76          void   du1302();                   // 读时间  
  77          void   DelayMs(void);              // 延时
  78          void   Set(uchar,uchar );          // 变量调整
  79          void   in_data();                                  // 调整移动数据
  80          void   rxd_data();                                 // 串口发送移动数据
  81          
  82          /*主函数*/
  83          void main()
  84          {
  85   1         Move=0;
  86   1         zimuo=0;
  87   1         TMOD=0x01;   //16位定时
*** ERROR C202 IN LINE 87 OF 6416+1302电子钟.C: 'TMOD': undefined identifier
  88   1         TH0=0x3c;    //25ms晶振为24M
*** ERROR C202 IN LINE 88 OF 6416+1302电子钟.C: 'TH0': undefined identifier
  89   1         TL0=0xb0;
*** ERROR C202 IN LINE 89 OF 6416+1302电子钟.C: 'TL0': undefined identifier
  90   1         EA=1;
*** ERROR C202 IN LINE 90 OF 6416+1302电子钟.C: 'EA': undefined identifier
  91   1         TR0=1;
*** ERROR C202 IN LINE 91 OF 6416+1302电子钟.C: 'TR0': undefined identifier
  92   1         ET0=1; 
*** ERROR C202 IN LINE 92 OF 6416+1302电子钟.C: 'ET0': undefined identifier
  93   1         SCON=0;             //初始化串口为工作方式0(同步通信方式,TxD输出同步脉冲)
*** ERROR C202 IN LINE 93 OF 6416+1302电子钟.C: 'SCON': undefined identifier
  94   1      
  95   1         while(zimuo<512)
  96   1          { 
  97   2               while(Move<16)                                      //数据移位。
  98   2             {
  99   3                   for(Speed=0;Speed<10;Speed++)       //移动速度
 100   3                    { 
C51 COMPILER V7.50   6416_1302电子钟                                                       08/18/2008 19:06:56 PAGE 3   

 101   4                          for(line=0;line<16;line++)
 102   4                                {
 103   5                               in_data();                                  //调整移动数据
 104   5                           rxd_data();
 105   5                                   P2_7=1;                                     //锁存为高,595锁存信号
*** ERROR C202 IN LINE 105 OF 6416+1302电子钟.C: 'P2_7': undefined identifier
 106   5                           P2=sw[line];                                //输出行信号
*** ERROR C202 IN LINE 106 OF 6416+1302电子钟.C: 'P2': undefined identifier
 107   5                           DelayMs();                  //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现
             -象。*/
 108   5                           P2=0x7f;                        //关闭显示。
*** ERROR C202 IN LINE 108 OF 6416+1302电子钟.C: 'P2': undefined identifier
 109   5                        }
 110   4                       }
 111   3             Move++;                                           //移动一步
 112   3                }
 113   2           Move=0;
 114   2               zimuo=zimuo+32;
 115   2          }   
 116   1         zimuo=0;
 117   1         while(1)             //重复循环显示
 118   1          {
 119   2                if(resget==0)
*** ERROR C202 IN LINE 119 OF 6416+1302电子钟.C: 'resget': undefined identifier
 120   2                   {  DelayMs();
 121   3                  if(resget==0)
*** ERROR C202 IN LINE 121 OF 6416+1302电子钟.C: 'resget': undefined identifier
 122   3                          Set1302(starts_time);    //初始化 
 123   3                      W1302(0x8e,0x00);            //控制命令,WP=0,写操作                
 124   3                      W1302(0x90,0xa5);            //打开充电二级管  一个二级管串联一个2K电阻 
 125   3                  }  
 126   2                du1302();                           //读取 秒 分 时 日 月 星期 年             
 127   2                if (key_moda==0)                       //设置和选择项目键
*** ERROR C202 IN LINE 127 OF 6416+1302电子钟.C: 'key_moda': undefined identifier
 128   2               {  DelayMs();
 129   3                      if(key_moda==0)
*** ERROR C202 IN LINE 129 OF 6416+1302电子钟.C: 'key_moda': undefined identifier
 130   3                         {
 131   4                            if(id++==9) {id=0;}
 132   4                                        h=0;msec=0;            //清闪烁标志
 133   4                                while(key_moda==0){ Show_word();}    
*** ERROR C202 IN LINE 133 OF 6416+1302电子钟.C: 'key_moda': undefined identifier
 134   4                     }                                                   
 135   3                   }
 136   2      
 137   2                
 138   2            if(id!=0)
 139   2                {
 140   3            if (key_up==0)                  //增加
*** ERROR C202 IN LINE 140 OF 6416+1302电子钟.C: 'key_up': undefined identifier
 141   3               {
 142   4                  DelayMs();
 143   4                  if(key_up==0)
*** ERROR C202 IN LINE 143 OF 6416+1302电子钟.C: 'key_up': undefined identifier
 144   4                         {
 145   5                                while(key_up==0)
*** ERROR C202 IN LINE 145 OF 6416+1302电子钟.C: 'key_up': undefined identifier
 146   5                                                      {Show_word();}   //调用显示
 147   5                                h=0;msec=0;            //清闪烁标志
 148   5                                       
 149   5                                Set(id,0);             //调用时间调调整
 150   5                             }  
C51 COMPILER V7.50   6416_1302电子钟                                                       08/18/2008 19:06:56 PAGE 4   

 151   4               }
 152   3         
 153   3            if (key_Down==0)  //减少
*** ERROR C202 IN LINE 153 OF 6416+1302电子钟.C: 'key_Down': undefined identifier
 154   3               {
 155   4                  DelayMs();
 156   4                  if(key_Down==0)
*** ERROR C202 IN LINE 156 OF 6416+1302电子钟.C: 'key_Down': undefined identifier
 157   4                          {
 158   5                            while(key_Down==0)
*** ERROR C202 IN LINE 158 OF 6416+1302电子钟.C: 'key_Down': undefined identifier
 159   5                                    {Show_word();}   //调用显示
 160   5                                h=0;msec=0;          //清闪烁标志
 161   5                                Set(id,1);               //调用时间调调整
 162   5                              }         
 163   4               }
 164   3                }
 165   2                else
 166   2                 {
 167   3                  if (key_up==0)                  //增加
*** ERROR C202 IN LINE 167 OF 6416+1302电子钟.C: 'key_up': undefined identifier
 168   3                {
 169   4                  DelayMs();
 170   4                  if(key_up==0)
*** ERROR C202 IN LINE 170 OF 6416+1302电子钟.C: 'key_up': undefined identifier
 171   4                         {
 172   5                                while(key_up==0)
*** ERROR C202 IN LINE 172 OF 6416+1302电子钟.C: 'key_up': undefined identifier
 173   5                                                      {Show_word();}   //调用显示
 174   5                                h=0;msec=0;            //清闪烁标志  
 175   5                            if(b!=0)                           //手动调整显示的内容
 176   5                                 { 
 177   6                                           if(f++==3)                  //f为显示转换标志

⌨️ 快捷键说明

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