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

📄 hc74164_7seg.lst

📁 模数转换
💻 LST
字号:
C51 COMPILER V7.06   HC74164_7SEG                                                          10/11/2008 15:12:38 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE HC74164_7SEG
OBJECT MODULE PLACED IN HC74164_7SEG.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HC74164_7SEG_driver\HC74164_7SEG.c BROWSE DEBUG OBJECTEXTEND PRINT(.\HC7416
                    -4_7SEG.lst) OBJECT(HC74164_7SEG.obj)

stmt level    source

   1          //************************************************************
   2          //Copyright(C)2008,桂林电子科技大学电子工程学院科技协会
   3          //                                   HC74164_7SEG 四位数码管驱动源文件
   4          //文件名称:HC74164_7SEG.c
   5          //文件标识:(内参)
   6          //摘    要:
   7          //                      1.配合头文件使用;
   8          //                      2.硬件参考作品;
   9          //                      3.
  10          //
  11          //当前版本:1.0
  12          //作    者:覃秋霖
  13          //完成日期:2008.10.10
  14          //
  15          //取代版本:无
  16          //原 作 者:无
  17          //完成日期:无
  18          //
  19          //                      HC74164_7SEG_SER           ----------   P0^0
  20          //                      HC74164_7SEG_CLK           ----------   P0^1
  21          //                      HC74164_7SEG_MR            ----------   P0^2
  22          //                      HC74164_7SEG_S0        ----------       P0^6
  23          //                      HC74164_7SEG_S1        ----------       P0^5
  24          //                      HC74164_7SEG_S2        ----------   P0^4        
  25          //                      HC74164_7SEG_S3        ----------   P0^3
  26          //
  27          //***********************************************************
  28          
  29          #include<reg52.h>
  30          #include"Mylib.h"
  31          #include"./HC74164_7SEG_driver/HC74164_7SEG.h"
  32          
  33          static  uchar  DDRAM[]={ 0x00,0x00,0x00,0x00 };
  34          
  35          uchar code TAB_SEG[16]={
  36          0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,//0,1,2,3,4,5,6,7
  37          0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//8,9,a,b,c,d,e,f
  38          
  39          //*******************模块内部函数声明************************
  40          static void delay10ms(void);
  41          static  void Set_Pos_7seg(uchar  position);
  42          static  void show_pattern(uchar Pos, uchar *pattern, uchar Len);
  43          
  44          //*******************************************
  45          //函数名称:static void delay10ms(void)
  46          //函数功能: 延时函数
  47          //形式参数:      无
  48          //行参说明:      无             
  49          //返回参数:      无
  50          //使用说明:      无
  51          //*******************************************
  52          static void delay10ms(void)
  53          {
  54   1         uchar i,j;
C51 COMPILER V7.06   HC74164_7SEG                                                          10/11/2008 15:12:38 PAGE 2   

  55   1         for(i=0;i<50;i++)
  56   1         for(j=0;j<10;j++);
  57   1      }
  58          
  59          //*******************************************
  60          //函数名称:static  void Set_Pos_7seg(uchar  position)
  61          //函数功能: 使能数码管的指定位
  62          //形式参数:      uchar  position
  63          //行参说明:      位置(从 0 到 4)                
  64          //返回参数:      无
  65          //使用说明:      position 数值为0时表示关闭显示
  66          //*******************************************
  67          static  void Set_Pos_7seg(uchar  position) 
  68          {
  69   1               switch(position)
  70   1               {
  71   2                         case  0:
  72   2                            HC74164_7SEG_S0 = 0; 
  73   2                                HC74164_7SEG_S1 = 0;
  74   2                                HC74164_7SEG_S2 = 0;
  75   2                                HC74164_7SEG_S3 = 0;
  76   2                                break;
  77   2                         case  1:
  78   2                            HC74164_7SEG_S0 = 0; 
  79   2                                HC74164_7SEG_S1 = 1;
  80   2                                HC74164_7SEG_S2 = 1;
  81   2                                HC74164_7SEG_S3 = 1;
  82   2                                break;
  83   2                         case  2:
  84   2                            HC74164_7SEG_S0 = 1; 
  85   2                                HC74164_7SEG_S1 = 0;
  86   2                                HC74164_7SEG_S2 = 1;
  87   2                                HC74164_7SEG_S3 = 1;
  88   2                                break;         
  89   2                         case  3:
  90   2                            HC74164_7SEG_S0 = 1; 
  91   2                                HC74164_7SEG_S1 = 1;
  92   2                                HC74164_7SEG_S2 = 0;
  93   2                                HC74164_7SEG_S3 = 1;
  94   2                                break;         
  95   2                         case  4:
  96   2                            HC74164_7SEG_S0 = 1; 
  97   2                                HC74164_7SEG_S1 = 1;
  98   2                                HC74164_7SEG_S2 = 1;
  99   2                                HC74164_7SEG_S3 = 0;
 100   2                                break;          
 101   2               }
 102   1      }
 103          
 104          //*******************************************
 105          //函数名称:extern  void  show_DDRAM()
 106          //函数功能: 把显示缓存的数据送往数码管显示
 107          //形式参数:      无
 108          //行参说明:      无             
 109          //返回参数:      无
 110          //使用说明:      调用 DDRAM 显示缓存的数据
 111          //*******************************************
 112          extern  void  show_DDRAM()
 113          {
 114   1                      uchar i;
 115   1                      uchar j;
 116   1                      uchar   ucDTemp;
C51 COMPILER V7.06   HC74164_7SEG                                                          10/11/2008 15:12:38 PAGE 3   

 117   1                      uchar   ucBit;
 118   1      
 119   1                      Set_Pos_7seg(0);
 120   1                      HC74164_7SEG_MR = 0;
 121   1      
 122   1                      for(i = 0; i<4; i++)
 123   1                      {
 124   2                              ucDTemp = DDRAM[i];
 125   2                              ucBit = 0x80;
 126   2                              HC74164_7SEG_MR = 1;
 127   2      
 128   2                              for(j = 0; j<8; j++)
 129   2                              {
 130   3                                  HC74164_7SEG_CLK = 0;
 131   3                                      HC74164_7SEG_SER = ucDTemp & (ucBit >> j);
 132   3                                      HC74164_7SEG_CLK = 1;
 133   3                              }
 134   2      
 135   2                              Set_Pos_7seg(i+1);
 136   2                              delay10ms();
 137   2                              HC74164_7SEG_MR = 0;
 138   2                              Set_Pos_7seg(0);
 139   2                      }
 140   1      }
 141          
 142          //*******************************************
 143          //函数名称:static  void show_pattern(uchar Pos, uchar *pattern, uchar Len)
 144          //函数功能: 把Len长度的数据填到显示缓存的Pos位置
 145          //形式参数:      uchar Pos, uchar *pattern, uchar Len
 146          //行参说明:      无             
 147          //返回参数:      无
 148          //使用说明:      Len 以字节为单位
 149          //*******************************************
 150          static  void show_pattern(uchar Pos, uchar *pattern, uchar Len)
 151          {
 152   1                 uchar  i;
 153   1      
 154   1                 for(i = 0; (i<Len) && ((Pos + i) < 4 ); i++)
 155   1                 {
 156   2                                DDRAM[Pos + i] = *pattern;
 157   2                                pattern ++; 
 158   2                 }
 159   1      }
 160          
 161          //*******************************************
 162          //函数名称:extern  void clear_DDRAM(void)
 163          //函数功能:  无
 164          //形式参数:      无
 165          //行参说明:      无             
 166          //返回参数:      无
 167          //使用说明:      无
 168          //*******************************************
 169          extern  void clear_DDRAM(void)
 170          {
 171   1                uchar i;
 172   1      
 173   1                for(i = 0; i<4; i++)
 174   1                {
 175   2                        DDRAM[i] = 0x00;
 176   2                }
 177   1      }
 178          
C51 COMPILER V7.06   HC74164_7SEG                                                          10/11/2008 15:12:38 PAGE 4   

 179          //*******************************************
 180          //函数名称:extern  void display_LED_number_int(uchar Pos, ulong Num)
 181          //函数功能:  无
 182          //形式参数:      无
 183          //行参说明:      无             
 184          //返回参数:      无
 185          //使用说明:      无
 186          //*******************************************
 187          extern  void display_LED_number_int(uchar Pos, uint Num)
 188          {
 189   1      
 190   1              uchar count,temp[5],Flag = 1;
 191   1      
 192   1              for(count=5;count;)                             //将Num的高(低)位放在数组temp的低(高)位中
 193   1              {
 194   2                      temp[--count]=Num%10;
 195   2                      Num/=10;
 196   2              }
 197   1              for(count=0;count<10;count++)   //从Num的高位开始显示
 198   1              {       
 199   2                if (temp[count] != 0||Flag==0)  //巧妙采用一个标志位来消除前面显示的零
 200   2                {
 201   3            show_pattern( Pos, TAB_SEG + temp[count], 1);
 202   3                Pos ++;
 203   3                Flag = 0;
 204   3                }
 205   2               }
 206   1      }
 207          
 208          
 209          
 210          
 211          
 212          
 213          
 214          
 215          
 216          
 217          


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