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

📄 1602调试.lst

📁 单片机写的程序都含有Protues仿真结果
💻 LST
字号:
C51 COMPILER V7.10   1602礯试                                                              05/15/2008 22:45:51 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 F:\c语言练习\1602调试.c BROWSE DEBUG OBJECTEXTEND PRINT(.\160
                    -2调试.lst) OBJECT(.\1602调试.obj)

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                                                                         //因为是 顺序执行的 只能顺序的运行 这个是 一大 缺陷
  38   2                      command(0xcd);                             //还得 加以 改进  
  39   2                      timer[0]=sec%10;
  40   2                      timer[0]+='0';
  41   2                      wtdata(timer[0]);
  42   2                      timer[1]=sec/10;
  43   2                      timer[1]+='0';
  44   2                      wtdata(timer[1]);
  45   2                      putchar(':');
  46   2                      sec++;
  47   2                      if(sec>=60)
  48   2                      {
  49   3                              sec=0;
  50   3                              min++;
  51   3                              timer[2]=min%10;
  52   3                              timer[2]+='0';
  53   3                              wtdata(timer[2]);
  54   3                              timer[3]=min/10;
C51 COMPILER V7.10   1602礯试                                                              05/15/2008 22:45:51 PAGE 2   

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

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