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

📄 main.lst

📁 全国大学生电子竞赛专用的51单片机最小系统原理图与源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  11/06/2006 17:46:29 PAGE 1   


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

line level    source

   1          #include "Global.H"
   2          #include "KeyTestTask.H"
   3          #include "HelloTask.H"
   4          #include "ClockTask.H"
   5          
   6          void Delay(int time);//延时程序
   7          void SystemInitialize(void);//系统初始始化
   8          
   9          main()
  10          {
  11   1              //系统启动延时
  12   1              //===========
  13   1              Delay(100);
  14   1      
  15   1              //系统初始化
  16   1              //==========
  17   1              SystemInitialize();
  18   1      
  19   1              //主循环
  20   1              //======
  21   1              while(1)
  22   1              {
  23   2                      //将系统按键值转换成自定义的按键值
  24   2                      //================================
  25   2                      KeyConvert();
  26   2      
  27   2                      //时钟参数加1秒。
  28   2                      //==============
  29   2                      ClockIncreaseProcess();
  30   2      
  31   2                      //任务执行体
  32   2                      //==========
  33   2                      switch(TaskMode)
  34   2                      {
  35   3                              case 1: KeyTestTask();break;
  36   3                              case 2: HelloTask();break;
  37   3                              case 3: ClockTask();break;
  38   3                      }
  39   2              }
  40   1      }
  41          
  42          //延时程序
  43          void Delay(int time)
  44          {
  45   1              while(time) time--;
  46   1      }
  47          
  48          //系统初始化
  49          void SystemInitialize(void)
  50          {
  51   1              //资源设置(初始化)
  52   1              //================
  53   1              //定时器0工作在方式1            作16位定时器用(允许中断)
  54   1              //定时器1工作在方式2            作波特率发生器用(禁止中断)
  55   1              //定时器2工作在自动重装方式     作时间定时用(2.5ms产生一次溢出中断)
C51 COMPILER V7.50   MAIN                                                                  11/06/2006 17:46:29 PAGE 2   

  56   1              //外部中断设置                          INT0及INT1均为边沿触发(允许中断)
  57   1              //串行口设置为方式1                     8位UART(允许中断)
  58   1      
  59   1              TMOD = 0x21;//7(GATE),6(C/~T),5(M1),4(M0),3(GATE),2(C/~T),1(M1),0(M0)
  60   1      
  61   1              TH0 = 0x00;//设置定时器0计数初值
  62   1              TL0 = 0x00;
  63   1      
  64   1              TH1 = 0xF4;//Serial Port Baud Rate 2400 bps, when the main frequence is 11.0592MHz
  65   1              TL1 = 0xF4;
  66   1      
  67   1              TCON = 0x55;//TCON: 7(TF1),6(TR1),5(TF0),4(TR0),3(IE1),2(IT1),1(IE0),0(IT0)
  68   1      
  69   1              T2CON = 0x04;//T2CON:7(TF2),6(EXF2),5(RCLK),4(TCLK),3(EXEN2),2(TR2),1(C/~T2),0(CP/~RL2)
  70   1              TH2 = 0xF7;//2.5ms产生一次溢出中断(晶振为11.0592MHz)
  71   1              TL2 = 0x00;
  72   1              RCAP2H = 0xF7;
  73   1              RCAP2L = 0x00;
  74   1              
  75   1              SCON = 0x78;//SCON: 7(SM0),6(SM1),5(SM2),4(REN),3(TB8),2(RB8),1(TI),0(RI)
  76   1              PCON = 0x00;//PCON: 7(SMOD),6(null),5(null),4(null),3(GF1),2(GF0),1(PD),0(IDL)
  77   1      
  78   1              IE = 0x37;//中断允许:7(EA),6(null),5(ET2),4(ES),3(ET1),2(EX1),1(ET0),0(EX0)
  79   1              IP = 0x30;//中断优先级:7(null),6(null),5(PT2),4(PS),3(PT1),2(PX1),1(PT0),0(PX0)
  80   1              //==============================================================================
  81   1      
  82   1              //开启中断,允许中断响应
  83   1              //======================
  84   1              EA = 1;
  85   1      }
  86          
  87          /*
  88          ==============================================================================
  89          |/                                                      定时器0和定时器1控制
  90          
  91          方式0:  1.计数方式:             13位计数器,高8位在THx,低5位在TLx的低5位.
  92                          2.计数脉冲输入: C/~Tx = 0       内部时钟12分频信号
  93                                                          C/~Tx = 1       Tx引脚信号
  94                          3.计数允许控制: (~GATEx | ~INTx) & TRx = 1      允许计数
  95                                                          (~GATEx | ~INTx) & TRx = 0      停止计数
  96                          4.中断允许:             ETx = 1 允许中断响应
  97                                                          ETx = 0 禁止中断响应
  98                          5.计数溢出:             计数溢出时置TFx为1,进入中断服务程序时由硬件自动清0.
  99                                                          计数溢出时需由软件重装计数初值到THx和TLx中.
 100          
 101          方式1:  1.计数方式:             16位计数器,高8位在THx,低8位在TLx.
 102                          2.计数脉冲输入: C/~Tx = 0       内部时钟12分频信号
 103                                                          C/~Tx = 1       Tx引脚信号
 104                          3.计数允许控制: (~GATEx | ~INTx) & TRx = 1      允许计数
 105                                                          (~GATEx | ~INTx) & TRx = 0      停止计数
 106                          4.中断允许:             ETx = 1 允许中断响应
 107                                                          ETx = 0 禁止中断响应
 108                          5.计数溢出:             计数溢出时置TFx为1,进入中断服务程序时由硬件自动清0.
 109                                                          计数溢出时需由软件重装计数初值到THx和TLx中.
 110          
 111          方式2:  1.计数方式:             8位重装计数器,8位计数值在TLx中,THx存放重装初值.
 112                          2.计数脉冲输入: C/~Tx = 0       内部时钟12分频信号
 113                                                          C/~Tx = 1       Tx引脚信号
 114                          3.计数允许控制: (~GATEx | ~INTx) & TRx = 1      允许计数
 115                                                          (~GATEx | ~INTx) & TRx = 0      停止计数
 116                          4.中断允许:             ETx = 1 允许中断响应
 117                                                          ETx = 0 禁止中断响应
C51 COMPILER V7.50   MAIN                                                                  11/06/2006 17:46:29 PAGE 3   

 118                          5.计数溢出:             计数溢出时置TFx为1,进入中断服务程序时由硬件自动清0.
 119                                                          计数溢出时由硬件重装THx计数初值到TLx中.
 120          
 121          方式3:  *定时器0专有的定时方式
 122                          定时器0的子定时器一
 123                          1.计数方式:             8位计数器,8位计数值在TL0中.
 124                          2.计数脉冲输入: C/~T0 = 0       内部时钟12分频信号
 125                                                          C/~T0 = 1       T0引脚信号
 126                          3.计数允许控制: (~GATE0 | ~INT0) & TR0 = 1      允许计数
 127                                                          (~GATE0 | ~INT0) & TR0 = 0      停止计数
 128                          4.中断允许:             ET0 = 1 允许中断响应
 129                                                          ET0 = 0 禁止中断响应
 130                          5.计数溢出:             计数溢出时置TF0为1,进入中断服务程序时由硬件自动清0.
 131                                                          计数溢出时需由软件重装计数初值到TL0中.
 132          

⌨️ 快捷键说明

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