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

📄 hc595drv.lst

📁 压缩包中包括多个常用的汇编
💻 LST
字号:
C51 COMPILER V6.12  HC595DRV                                                               09/11/2005 14:16:34 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE HC595DRV
OBJECT MODULE PLACED IN E:\C51PRJ\LUMINLED\HC595DRV.OBJ
COMPILER INVOKED BY: d:\keil\c51\BIN\C51.EXE E:\C51PRJ\LUMINLED\HC595DRV.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          /* 文件名:hc595drv.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          #include "../includes/types.h"
  29          
  30          sbit DS   = P0^2;  /* 串行数据输入 */
  31          sbit SHCP = P0^0;  /* 移位时钟输入 */
  32          sbit STCP = P0^1;  /* 锁存时钟输入 */
  33          
  34          /* 显示数据编码,按共阴极数码管编码 */
  35          u_char number_code[11] = {
  36                                     0x3f,    /* 0 */
  37                                     0x06,    /* 1 */
  38                                     0x5b,    /* 2 */
  39                                     0x4f,    /* 3 */
  40                                     0x66,    /* 4 */
  41                                     0x6d,    /* 5 */
  42                                     0x7d,    /* 6 */
  43                                     0x07,    /* 7 */
  44                                     0x7f,    /* 8 */
  45                                     0x67,    /* 9 */
  46                                     0x00     /* 灭*/
  47                                   };
  48          
  49          void load_number(u_char number, bit dp);
  50          void send_shift_clock(void);
  51          void send_latch_clock(void);
  52          void clear_led(void);
  53          void display_number(void);
  54          
  55          /* 加载将要显示的数据,num-显示数据,dp:1显示小数点,0不显示小数点 */
C51 COMPILER V6.12  HC595DRV                                                               09/11/2005 14:16:34 PAGE 2   

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

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
u_long . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
u_short. . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
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
u_int. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
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
C51 COMPILER V6.12  HC595DRV                                                               09/11/2005 14:16:34 PAGE 4   

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


PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
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
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        =     73    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       2
   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 + -