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

📄 hc595.lst

📁 STC51系列的源码
💻 LST
字号:
C51 COMPILER V8.02   HC595                                                                 10/31/2008 16:35:00 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE HC595
OBJECT MODULE PLACED IN .\HC595.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\HC595\HC595.c BROWSE DEBUG OBJECTEXTEND PRINT(.\HC595.lst) OBJECT(.\HC59
                    -5.obj)

line level    source

   1          /********************************************************************************/
   2          /* filename : HC595.c                                                           */
   3          /* created  : xillinx                                                           */
   4          /* descript : 用硬件SPI接口输出控制HC595进行并口扩展                            */
   5          /*      __________                                                              */
   6          /*  QB--|1     16|--VCC                                                         */
   7          /*  QC--|2     15|--QA                                                          */
   8          /*  QD--|3     14|--SI                                                          */
   9          /*  QE--|4     13|--/G                                                          */
  10          /*  QF--|5     12|--RCK                                                         */
  11          /*  QG--|6     11|--SCK                                                         */
  12          /*  QH--|7     10|--/SCLR                                                       */
  13          /*  GND-|8      9|--QH'                                                         */
  14          /*      |________|                                                              */
  15          /********************************************************************************/
  16          #include "../CPU/CPU.h"
  17          #include "../LED/LED.h"
  18          #include "../SEG7/SEG7.h"
  19          #include "../HC595/HC595.h"
  20          
  21          /********************************************************************************/
  22          /* function : HC595_delay()                                                     */
  23          /* recension: xillinx                                                           */
  24          /* descript : HC595的延时函数,根据CPU的时钟调整                                 */
  25          /********************************************************************************/
  26          void HC595_delay(void)
  27          {   _nop_();
  28   1          _nop_();
  29   1      }
  30          
  31          /********************************************************************************/
  32          /* function : HC595_begin()                                                     */
  33          /* recension: xillinx                                                           */
  34          /* descript : HC595的其实信号,时钟为低/数据为低/锁存信号为低                    */
  35          /********************************************************************************/
  36          void HC595_begin(void)
  37          {   HC595_LATCH=0x0;
  38   1          HC595_CLK  =0x0;
  39   1          HC595_DATA =0x0;
  40   1      }
  41          
  42          /********************************************************************************/
  43          /* function : HC595_shift()                                                     */
  44          /* recension: xillinx                                                           */
  45          /* descript : HC595移位操作,在时钟的上升沿移入数据, 所以设置数据后需要等待      */
  46          /********************************************************************************/
  47          void HC595_shift(void)
  48          {   HC595_delay();
  49   1          HC595_CLK=0x1;  //* 上升沿移入数据到HC595
  50   1          HC595_delay();
  51   1          HC595_CLK=0x0;  //* 恢复时钟
  52   1      }
  53          
  54          /********************************************************************************/
C51 COMPILER V8.02   HC595                                                                 10/31/2008 16:35:00 PAGE 2   

  55          /* function : HC595_send_mdata()                                                */
  56          /* recension: xillinx                                                           */
  57          /* descript : 向HC595移入一个字节的数据                                         */
  58          /********************************************************************************/
  59          void HC595_send_mdata(unsigned char mdata)
  60          {   unsigned char i;
  61   1          for(i=0x0;i<0x8;i++)
  62   1          {   if((mdata&0x80)==0x80)
  63   2              {  HC595_DATA=0x1;
  64   3              }
  65   2              else
  66   2              {  HC595_DATA=0x0;
  67   3              }
  68   2              HC595_shift();
  69   2              mdata<<=0x1;
  70   2          }
  71   1      }
  72          
  73          /********************************************************************************/
  74          /* function : HC595_refresh()                                                   */
  75          /* recension: xillinx                                                           */
  76          /* descript : HC595数据刷新,由2MS的定期刷新,共8个数码管,刷新周期2x8=16MS,刷新   */
  77          /*  频率为41.7HZ                                                                */
  78          /********************************************************************************/
  79          void HC595_refresh(void)
  80          {   static unsigned char seg_counter=0x0;
  81   1          seg_counter&=0x7;
  82   1          HC595_begin();                                      //* 每次写入数据时,先让HC595工作到初始化状态
  83   1          HC595_send_mdata(LED_buffer[0x0]);                  //* 应该首先移出第三个芯片的数据,就是LED跑马灯的数
             -据信号 
  84   1          HC595_send_mdata(SEG7_segment_table[seg_counter]);  //* 第二个是LED数码管的数字选通信号,每个显示数字的
             -选通信号
  85   1          HC595_send_mdata(SEG7_buffer[seg_counter]);         //* 第三个输出每个数字的数据信号
  86   1          seg_counter++;                                      //* 处理下一次动态输出的七段数字信号
  87   1          seg_counter&=0x7;
  88   1          HC595_LATCH=0x1;                                    //* 向HC595的输出寄存器输出数据,驱动显示
  89   1          HC595_delay();
  90   1          HC595_LATCH=0x0;
  91   1          HC595_delay();
  92   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     91    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   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 + -