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

📄 main.lst

📁 利用89s51去寫結構化keil-C 4x4鍵盤掃描+LCD螢幕顯示 HW01:四則運算+時鍾顯示 HW02:頻率偵測器 ps.鍵盤掃描不是利用延遲作彈跳(推薦)
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  04/11/2009 12:53:56 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\Out\Main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SourceFile\Main.c BROWSE DEFINE(_HW02_) DEBUG OBJECTEXTEND PRINT(.\Lst\Main
                    -.lst) OBJECT(.\Out\Main.obj)

line level    source

   1          //**
   2          #include "Main.h"
   3          
   4          
   5          //12/11.0592M = 1.0850694us
   6          //46080*1.0850695 = 50000.00256us = 50.00000256ms
   7          //                                = 50ms
   8          //18432*1.0850695 = 20ms
   9          //
  10          //
  11          // 12/12M = 1.0us
  12          // 50000*1.0 = 50000us = 50ms
  13          // 50ms * 20(count) = 1sec
  14          // Div 120
  15          // 12/30M = 0.4us
  16          // 50000*0.4 = 20000us = 20ms
  17          // 20ms * 50(count) = 1sec
  18          // Div 4
  19          // 4/30M = 0.133us
  20          // 50000*0.133 = 6650us = 6.65ms
  21          // 6.65ms * 150(count) = 1sec
  22          
  23          //#define __DEBUG_UART_OUTPUT_DEBUG_
  24          
  25          //BYTE bdata g_bFlag[8] _at_ 0x20;
  26          //sbit g_bfInterfaceOpen = g_bFlag[0]^0;
  27          //BYTE bdata    g_bfKeyStatus _at_ 0x20;
  28          
  29          
  30          /////////////////////////////////////////////////////////////////////////////
  31          // Variable
  32          #ifdef _HW01_
              //BYTE bdata    g_bfKeyStatus _at_ 0x20;
              BYTE bdata      g_bfCurrentMode;
              //BYTE bdata    g_bfLcdStatus _at_ 0x22;
              BYTE data       g_bSYS_MODE;    //sbit  MODE_CLOCK = g_bfCurrentMode^0;
              BYTE data       g_bTimeOut;
              BYTE data       g_bOutputH, g_bOutputL;
              WORD data       g_wTimerCount;
              #endif
  41          
  42          #ifdef _HW02_
  43          WORD data       g_wTimerCount;
  44          BYTE data g_bfOneSec;
  45          
  46          typedef union
  47          {
  48                  BYTE            baBD[4];
  49          //      DWORD           dwValue;
  50                  struct
  51                  {
  52                          WORD    wH;
  53                          WORD    wL;
  54                  }tw;
C51 COMPILER V8.08   MAIN                                                                  04/11/2009 12:53:56 PAGE 2   

  55                  struct
  56                  {
  57                          BYTE    bX;
  58                          BYTE    bO;
  59                          BYTE    bH;
  60                          BYTE    bL;
  61          
  62                  }tb;
  63          }USTFREQ;
  64          USTFREQ data g_dwFreq;
  65          #endif
  66          
  67          #ifdef _HW03_
              //BYTE bdata    g_bfKeyStatus _at_ 0x20;
              BYTE bdata      g_bfCurrentMode;
              //BYTE bdata    g_bfLcdStatus _at_ 0x22;
              BYTE data       g_bSYS_MODE;    //sbit  MODE_CLOCK = g_bfCurrentMode^0;
              BYTE data       g_bTimeOut;
              BYTE data       g_bOutputH, g_bOutputL;
              WORD data       g_wTimerCount;
              #endif
  76          
  77          
  78          /////////////////////////////////////////////////////////////////////////////
  79          // Main.c
  80          
  81          void fnDelay1ms(int count)
  82          {
  83   1              int i,j;
  84   1      
  85   1              for(i=0;i<count;i++)
  86   1                      for(j=0;j<122;j++);
  87   1      }
  88          
  89          /*
  90          void fnDelay100ms()
  91          {
  92              unsigned char i,j,k;
  93              for(i=5;i>0;i--)
  94                  for(j=132;j>0;j--)
  95                      for(k=150;k>0;k--);
  96          }
  97          
  98          
  99          void fnDelay200ms()
 100          {
 101              unsigned char i,j,k;
 102              for(i=5;i>0;i--)
 103                  for(j=132;j>0;j--)
 104                      for(k=150;k>0;k--);
 105          }
 106          
 107          
 108          void fnDelay500ms()
 109          {
 110              unsigned char i,j,k;
 111              for(i=15;i>0;i--)
 112                  for(j=202;j>0;j--)
 113                      for(k=81;k>0;k--);
 114          }
 115          
 116          
C51 COMPILER V8.08   MAIN                                                                  04/11/2009 12:53:56 PAGE 3   

 117          void fnDelay1000ms()
 118          {
 119              unsigned char h,i,j,k;
 120              for(h=5;h>0;h--)
 121                  for(i=4;i>0;i--)
 122                      for(j=116;j>0;j--)
 123                          for(k=214;k>0;k--);
 124          }
 125          
 126          
 127          void fnFlashLED(BYTE bLed, BYTE bCount)
 128          {
 129                  while (bCount-- > 0)
 130                  {
 131                          P1 = bLed;
 132                          fnDelay1ms(500);
 133                          P1 = 0;
 134                          fnDelay1ms(500);
 135                  }
 136          }
 137          */
 138          
 139          /////////////////////////////////////////////////////////////////////////////
 140          // Initial
 141          void InitPort(void)
 142          {
 143   1              P0 = 0xFF;
 144   1              P1 = 0xFF;
 145   1              P2 = 0xFF;
 146   1              P3 = 0xFF;
 147   1      }
 148          
 149          
 150          void InitInterrupt(void)
 151          {
 152   1              IT0 = 0;                //

⌨️ 快捷键说明

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