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

📄 1602时钟.lst

📁 单片机写的程序都含有Protues仿真结果
💻 LST
字号:
C51 COMPILER V7.10   1602时钟                                                              05/15/2008 22:49:15 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE 1602时钟
OBJECT MODULE PLACED IN 1602时钟.OBJ
COMPILER INVOKED BY: F:\KeilC安装软件\安装\C51\BIN\C51.EXE 1602时钟.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"reg51.h"                          //函数名 不能超多8个字母
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          //*************定义位************
   5          sbit RS=P2^0;
   6          sbit RW=P2^1;
   7          sbit E=P2^2;
   8          //*************函数声明************
   9          void delay(uint timer);
  10          void lcdinit(void);
  11          void command(uchar c);
  12          void wtdata(uchar d);
  13          void busy(void);
  14          void putstr(uchar *str);
  15          void putchar(uchar ch);
  16          //*************主函数************
  17          void main()
  18          {       uchar timer[6];
  19   1          uchar sec=0,min=0,hour=0;              
  20   1              lcdinit();
  21   1              command(0x80);
  22   1              putstr("DATA:2008/04/13");
  23   1              command(0xc0);
  24   1              putstr("TIMER:        ");
  25   1              command(0x04);    //左移
  26   1              command(0xcd);
  27   1              putchar('0');
  28   1              putchar('0');
  29   1              putchar(':');
  30   1              putchar('0');
  31   1              putchar('0');
  32   1              putchar(':');
  33   1              putchar('0');
  34   1              putchar('0');                                      //用此方法编写的时钟 能实现时钟的基本 运行 但是
  35   1              while(1)                                                   //在 转接(59不会直接到0的显示 而是显示60 再显示0) 
  36   1              {                                                                  //因为是 顺序执行的 只能顺序的运行 这个是 一大 缺陷
  37   2                      command(0xcd);                             //还得 加以 改进  
  38   2                      timer[0]=sec%10;
  39   2                      timer[0]+='0';
  40   2                      wtdata(timer[0]);
  41   2                      timer[1]=sec/10;
  42   2                      timer[1]+='0';
  43   2                      wtdata(timer[1]);
  44   2                      putchar(':');
  45   2                      sec++;
  46   2                      if(sec>=60)
  47   2                      {
  48   3                              sec=0;
  49   3                              min++;
  50   3                              timer[2]=min%10;
  51   3                              timer[2]+='0';
  52   3                              wtdata(timer[2]);
  53   3                              timer[3]=min/10;
  54   3                              timer[3]+='0';
  55   3                              wtdata(timer[3]);
C51 COMPILER V7.10   1602时钟                                                              05/15/2008 22:49:15 PAGE 2   

  56   3                              putchar(':');
  57   3                              if(min>=60)
  58   3                              {
  59   4                                      min=0;
  60   4                                      hour++;
  61   4                                      timer[4]=hour%10;
  62   4                                      timer[4]+='0';
  63   4                                      wtdata(timer[4]);
  64   4                                  timer[5]=hour/10;
  65   4                                      timer[5]+='0';
  66   4                                      wtdata(timer[5]);
  67   4                                      if(hour>=24)
  68   4                                      hour=0;                 
  69   4                              }
  70   3                      }
  71   2          }
  72   1      }                       
  73                  
  74          
  75          //*************子函数************
  76          //*************1602初始设置************
  77          void lcdinit()
  78          {                                                                         //01(清0) 38(8位数据线 字符5*7) 
  79   1              command(0x01);//清0
  80   1              command(0x38);//8位总线 5*7     双行显示
  81   1              command(0x0c);//0c(开显示 无光标) 0e(开显示 有光标 光标不闪烁) 0f(开显示 有光标 光标闪烁) 
  82   1              command(0x06);//06光标右移  04光标左移
  83   1      }
  84          //*************判断忙************
  85          void busy()
  86          {
  87   1              E=0;
  88   1              RS=0;
  89   1              RW=1;
  90   1              E=1;
  91   1              while(P1&0x80);
  92   1              E=0;
  93   1              delay(5);
  94   1      }
  95          //*************写指令************
  96          void command(uchar c)
  97          {
  98   1              busy();
  99   1              E=0;
 100   1              RS=0;
 101   1              RW=0;
 102   1              E=1;
 103   1              P1=c;
 104   1              E=0;
 105   1              delay(5);
 106   1      }       
 107          //*************写数据************
 108          void wtdata(uchar d)
 109          {
 110   1              busy();
 111   1              E=0;
 112   1              RS=1;
 113   1              RW=0;
 114   1              E=1;
 115   1              P1=d;
 116   1              E=0;
 117   1              delay(5);
C51 COMPILER V7.10   1602时钟                                                              05/15/2008 22:49:15 PAGE 3   

 118   1      }
 119          //*************延时************
 120          void delay(uint timer)
 121          {
 122   1              uchar i;
 123   1              for(;timer>0;timer--)
 124   1              for(i=0;i<120;i++)
 125   1                              {;}
 126   1      }
 127          //*************字符串输入************
 128          void putstr(uchar *str)
 129          {
 130   1              while(*str!='\0')
 131   1              {
 132   2                      wtdata(*str);
 133   2                      str++;
 134   2              }
 135   1      }
 136          void putchar(uchar ch)
 137          {
 138   1              wtdata(ch);
 139   1      }               


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    403    ----
   CONSTANT SIZE    =     31    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      14
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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