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

📄 main.lst

📁 本程序是用51单片机设计的一个时钟程序,对于想了解单片机的C语言和汇编语言的开发人员是一个不错的例程.
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.07   MAIN                                                                  08/03/2005 11:35:47 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: K:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

stmt level    source

   1          /*
   2          **********************************************************************************
   3          *        此模块为主程序,包括初始化各模块变量值及联结各模块                      *
   4          **********************************************************************************
   5          */
   6          #include <reg668.h>
   7          #include <constant.h>
   8          #include <Task.h>
   9          //#pragma optimize(5)
  10          
  11          bit Dot_Value;
  12          //bit ClockFlag;
  13          bit TimeOpenflag=0;
  14          bit TimerFlag=0;
  15          unsigned char SongCirFg=0;
  16          bit Time250msFlag=0;
  17          bit Time250msFlag1=0;
  18          bit flash,UpDownFlag=1;
  19          bit Adjust=0;
  20          
  21          sbit    Speaker =       P3^5;                   //扬声器控制脚
  22          sbit    RedLight=       P3^4;
  23          sbit    GreenLight=     P3^3;
  24          
  25          //sfr T2MOD     =       0x0C9;
  26          sfr     button  =       0x0A0;
  27          
  28          extern unsigned char mon,dat,hou,min,sec;
  29          extern unsigned int yea;
  30          
  31          unsigned char CountTime0;
  32          unsigned char CountTime2;
  33          unsigned char Disp_array[Eight];
  34          unsigned char idata Timer=2,TimerArray[20][3];
  35          unsigned char formflag=0,segflag=0;
  36          unsigned char hout,mint;
  37          unsigned char song;
  38          unsigned char delay1min=0;
  39          unsigned char HL2[2];
  40          unsigned char RcapCnt=0;
  41          
  42          /*
  43          **********************************************************************************
  44          *                   延时程序:void delayx (unsigned char x)
  45          **********************************************************************************
  46          */
  47          void delayx (unsigned char x)
  48          {
  49   1              unsigned int i,j,k;
  50   1              
  51   1              for (i=0;i<=x;i++)
  52   1              {
  53   2                      for (j=0;j<10000;j++)
  54   2                      {
  55   3                              k++;
C51 COMPILER V7.07   MAIN                                                                  08/03/2005 11:35:47 PAGE 2   

  56   3                      }
  57   2              }
  58   1      }
  59          
  60          /*
  61          **********************************************************************************
  62          *                   系统主程序:main
  63          **********************************************************************************
  64          */
  65          void main (void)
  66          {       
  67   1              unsigned char i=0;
  68   1      
  69   1              PCON=0x00;                                              //no double baud rate
  70   1              S0CON=0x50;                                             //10-bit UART
  71   1              
  72   1              TL0=0x00;                                               //40 加快3min per day
  73   1              TH0=0x0E2;                                              //Value of Time is 10ms,the crystal is 18.432Mhz
  74   1              ET0=1;                                                  //Timer 0 interrupt enable
  75   1              
  76   1              TH1=0x0F6;                                              //baud-rate: 9600bps 18.432MHz
  77   1              TL1=0x0F6;
  78   1              //ES0=1;                                                //UART interrupt enable
  79   1      
  80   1              TCON=0x05;                                              //INT0,INT1 is edge trigger
  81   1              TMOD=0x21;                                              //Timer1 is auto load eight timer
  82   1                                                                              //Timer0 is 16-bit timer
  83   1              T2CON = 0x00;                                   //16-bit Auto-reload
  84   1              T2MOD = 0x00;                                   //Clear T2MOD
  85   1              TH2 = 0x88;                                             //Value of Time is 5ms
  86   1              TL2 = 0x00;
  87   1              RCAP2H = 0x88;                                  //Auto reload
  88   1              RCAP2L = 0x00;
  89   1              HL2[0] = 0x88;
  90   1              HL2[1] = 0x00;
  91   1              ET2 = 1;                                                //Timer 2 interrupt enable
  92   1      
  93   1              P0=0x0FF;                                               //Initialize P0~3
  94   1              P1=0x0FF;
  95   1              P2=0x0FF;
  96   1              P3=0x0FF;
  97   1      
  98   1              //TR1=1;                                                //Start Timer 1
  99   1              TR0=1;                                                  //Start Timer 0
 100   1              TR2=1;                                                  //Start Timer 2
 101   1      
 102   1              EA=1;                                                   //Global enable
 103   1              
 104   1              Dot_Value=0;
 105   1              //ClockFlag=1;
 106   1              CountTime0=0x00;
 107   1              CountTime2=0x00;
 108   1              Disp_array[0]=0x00;
 109   1              Disp_array[1]=0x07;
 110   1              Disp_array[2]=0x01;
 111   1              Disp_array[3]=0x08;
 112   1              Disp_array[4]=0x00;
 113   1              Disp_array[5]=0x00;
 114   1              Disp_array[6]=0x00;
 115   1              Disp_array[7]=0x00;
 116   1      
 117   1              TimerArray[0][0]=5;
C51 COMPILER V7.07   MAIN                                                                  08/03/2005 11:35:47 PAGE 3   

 118   1              TimerArray[0][1]=30;
 119   1              TimerArray[0][2]=1;
 120   1      
 121   1              TimerArray[1][0]=22;
 122   1              TimerArray[1][1]=0;
 123   1              TimerArray[1][2]=1;
 124   1      
 125   1              TimerArray[2][0]=14;
 126   1              TimerArray[2][1]=0;
 127   1              TimerArray[2][2]=1;
 128   1      
 129   1              hou=min=sec=0;
 130   1              mon=7;
 131   1              dat=18;
 132   1              yea=2005;
 133   1      
 134   1              while (TRUE)
 135   1              {
 136   2                      //while (Time0IntFlag==0);
 137   2                      //Time0IntFlag=0;
 138   2                      if (button!=0x0FF)
 139   2                      {
 140   3                              delayx(2);
 141   3                              if (button!=0x0FF)
 142   3                              {
 143   4                                      switch(button)
 144   4                                      {
 145   5                                              case    0x0FE:                  //Press button1
 146   5                                                      switch(formflag)
 147   5                                                      {
 148   6                                                              case    0:      //Main form
 149   6                                                                      segflag=(segflag+1)%5;
 150   6                                                                      if (segflag !=0)
 151   6                                                                      {
 152   7                                                                              Adjust=1;
 153   7                                                                              sec=0;
 154   7                                                                      }
 155   6                                                                      else
 156   6                                                                      {
 157   7                                                                              Adjust=0;
 158   7                                                                      }
 159   6                                                                      break;
 160   6                                                              case    1:      //Timer form
 161   6                                                                      segflag=(segflag+1)%2;
 162   6                                                                      break;
 163   6                                                              case    2:
 164   6                                                                      segflag=(segflag+1)%5;
 165   6                                                                      break;
 166   6                                                              case    3:      //Song form
 167   6                                                                      segflag=(segflag+1)%3;
 168   6                                                                      break;

⌨️ 快捷键说明

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