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

📄 hc595.lst

📁 压缩包中包括多个常用的汇编
💻 LST
字号:
C51 COMPILER V6.12  HC595                                                                  09/23/2005 19:38:10 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE HC595
OBJECT MODULE PLACED IN G:\C51PRJ\HC595\HC595.OBJ
COMPILER INVOKED BY: e:\keil\c51\BIN\C51.EXE G:\C51PRJ\HC595\HC595.C DB SB OE

stmt level    source

   1          /****************************************************************************/
   2          /*                                                                          */
   3          /*               Copyright (c) 2005, 老树工作室                             */
   4          /*                   All rights reserved.                                   */
   5          /*                                                                          */
   6          /*      http://www.saintone.net      Email:hxm0902@163.com                  */
   7          /*      QQ:112431149                 Tel:010-62966630                       */
   8          /*                                                                          */
   9          /****************************************************************************/
  10          /****************************************************************************/
  11          /* 文件名:hc595.c                                                          */
  12          /* 版  本:Version 1.0                                                      */
  13          /* 描  述:用hc595驱动数码管演示代码                                        */
  14          /* 作  者:spot                                                             */
  15          /* 函  数:                                                                 */
  16          /*         load_number                                                      */
  17          /*         send_shift_clock                                                 */
  18          /*         send_latch_clock                                                 */ 
  19          /*         display_number                                                   */
  20          /*                                                                          */
  21          /* 历史记录:                                                               */
  22          /*  spot          2005-07-10     Creat Inital version. (Version 1.0)        */
  23          /****************************************************************************/
  24          
  25          #include <reg52.h>
  26          #include <absacc.h>
  27          #include <intrins.h>
  28          
  29          typedef unsigned char u_char;
  30          
  31          sbit DS   = P0^2;  /* 串行数据输入 */
  32          sbit SHCP = P0^0;  /* 移位时钟输入 */
  33          sbit STCP = P0^1;  /* 锁存时钟输入 */
  34          
  35          /* 显示数据编码,按共阴极数码管编码 */
  36          u_char number_code[11] = {
  37                                     0x3f,    /* 0 */
  38                                     0x06,    /* 1 */
  39                                     0x5b,    /* 2 */
  40                                     0x4f,    /* 3 */
  41                                     0x66,    /* 4 */
  42                                     0x6d,    /* 5 */
  43                                     0x7d,    /* 6 */
  44                                     0x07,    /* 7 */
  45                                     0x7f,    /* 8 */
  46                                     0x67,    /* 9 */
  47                                     0x00     /* 灭*/
  48                                   };
  49          
  50          void load_number(u_char number, bit dp);
  51          void send_shift_clock(void);
  52          void send_latch_clock(void);
  53          void clear_led(void);
  54          void display_number(void);
  55          
C51 COMPILER V6.12  HC595                                                                  09/23/2005 19:38:10 PAGE 2   

  56          /* 加载将要显示的数据,num-显示数据,dp:1显示小数点,0不显示小数点 */
  57          void load_number(u_char number, bit dp)
  58          {
  59   1          u_char i;
  60   1          u_char temp;
  61   1      
  62   1          temp = ~number_code[number];    /* 使用共阳极数码管,所以编码取反 */
  63   1          if (dp)
  64   1          {
  65   2              temp &= 0x7f;
  66   2          }
  67   1          for (i=0; i<8; i++)
  68   1          {
  69   2              if ( (temp & 0x80) == 0x80)
  70   2              {
  71   3                  DS = 1;
  72   3              }
  73   2              else
  74   2              {
  75   3                  DS = 0;
  76   3              }
  77   2      
  78   2              temp <<= 1;
  79   2      
  80   2              send_shift_clock();   /* 发移位脉冲信号 */
  81   2          }
  82   1      }
  83          
  84          /* 发送移位时钟脉冲信号 */
  85          void send_shift_clock(void)
  86          {
  87   1          SHCP = 1;
  88   1          _nop_();
  89   1          SHCP = 0;
  90   1      }
  91          
  92          /* 发送锁存脉冲信号 */
  93          void send_latch_clock(void)
  94          {
  95   1          STCP = 1;
  96   1          _nop_();
  97   1          STCP = 0;
  98   1      }
  99          
 100          /* 清除4位数码管显示 */
 101          void clear_led(void)
 102          {
 103   1          u_char i;
 104   1      
 105   1          for (i=0; i<32; i++)
 106   1          {
 107   2              DS = 1;
 108   2              send_shift_clock();
 109   2          }
 110   1          send_latch_clock();
 111   1      
 112   1      }
 113          
 114          /* 演示数码管显示数字 */
 115          void display_number(void)
 116          {
 117   1          u_char i;
C51 COMPILER V6.12  HC595                                                                  09/23/2005 19:38:10 PAGE 3   

 118   1      
 119   1          for (i=0; i<4; i++)
 120   1          {
 121   2              load_number(i, 0);
 122   2          }
 123   1          send_latch_clock();
 124   1      
 125   1          _nop_();
 126   1      
 127   1          for (i=0; i<4; i++)
 128   1          {
 129   2              load_number(i+4, 1);
 130   2          }
 131   1          send_latch_clock();
 132   1      
 133   1          _nop_();
 134   1      
 135   1          load_number(8, 0);
 136   1          load_number(9, 0);
 137   1          load_number(10, 0);
 138   1          load_number(10, 0);
 139   1          send_latch_clock();
 140   1          _nop_();
 141   1      }
 142          
 143          main()
 144          {
 145   1          SHCP=0;
 146   1          STCP=0;
 147   1      
 148   1          while(1)
 149   1          {
 150   2              clear_led();
 151   2          	display_number();
 152   2          }
 153   1      }
C51 COMPILER V6.12  HC595                                                                  09/23/2005 19:38:10 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
number_code. . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  11
send_latch_clock . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
DS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0082H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
send_shift_clock . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
clear_led. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
SHCP . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0080H  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
STCP . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0081H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
C51 COMPILER V6.12  HC595                                                                  09/23/2005 19:38:10 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
display_number . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
_load_number . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  number . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  dp . . . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  temp . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
u_char . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    167    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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