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

📄 main.lst

📁 proteus实例集锦
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   MAIN                                                                 07/26/2007 10:43:26 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\main.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\main.lst
                    -) OBJECT(main.obj)

line level    source

   1          //********************************************************************************************************
             -*
   2          //********************************************************************************************************
             -*
   3          //***<程序名>:跑马灯                                                                                                                                                                   ***
   4          //***                                                                                                                                                                                                   ***
   5          //***<功能>:通过2个按钮实现8个LED灯以5种不同闪烁模式和4种速度的切换。                                                                  ***
   6          //***<芯片>:AT89C51                                                                                                                                                                    ***
   7          //***<作者>:程沛                                                                                                                                                                               ***
   8          //***<完成时间>:2007年7月25日。                                                                                                                                                ***
   9          //********************************************************************************************************
             -*
  10          //********************************************************************************************************
             -*
  11          
  12          
  13          //********************************************************************************************************
             -*
  14          //*                                                                                                                                                                                                               *
  15          //*                     ************************************头文件以及宏定义************************************          *
  16          //*                                                                                                                                                                                                               *
  17          //********************************************************************************************************
             -*
  18          
  19          #include<reg51.h>
  20          
  21          #define LEDPort P1
  22          
  23          //********************************************************************************************************
             -*
  24          //*                                                                                                                                                                                                               *
  25          //*                     ************************************全局变量定义************************************              *
  26          //*                                                                                                                                                                                                               *
  27          //********************************************************************************************************
             -*
  28          unsigned char aucLED_SELECT_01[9]=
  29                                          {0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,};
  30                                                                                                  //方式0,方式1灯开关数组。
  31          unsigned char aucLED_SELECT_23[5]=
  32                                          {0xFF,0x7E,0xBD,0xDB,0xE7};
  33                                                                                                  //方式2,方式3灯开关数组。
  34          
  35          unsigned char _i=0;                                                 //数据选择计数。
  36                                                                                                  
  37          unsigned char uc_Mode=0;                                        //模式选择,默认为模式0。
  38          
  39          unsigned char uc_Count=1;                                       //定时器中断计数。
  40          
  41          unsigned char uc_Delay=1;                                       //延迟计数,通过改变改数值改变灯状态延迟时间。
  42                                                                                                  //灯延迟时间=uc_Dalay*定时器溢出时间。
  43          
  44          
  45          
  46          //********************************************************************************************************
C51 COMPILER V8.05a   MAIN                                                                 07/26/2007 10:43:26 PAGE 2   

             -*
  47          //*                                                                                                                                                                                                               *
  48          //*                     ************************************主函数************************************                            *
  49          //*                                                                                                                                                                                                               *
  50          //********************************************************************************************************
             -*
  51          void main()
  52          {                                                                                                       
  53   1              TMOD=0x01;                                                              //定时器0模式一。
  54   1              TH0=0x3C;
  55   1              TL0=0xB0;                                                               //溢出时间:50ms。
  56   1              TR0=1;                                                                  //定时器0开启。
  57   1      
  58   1              IT0=1;                                                                  //外部中断0下降沿触发。
  59   1              IT1=1;                                                                  //外部中断1下降沿触发。
  60   1      
  61   1              EX0=1;                                                                  //外部中断0开。
  62   1              EX1=1;                                                                  //外部中断1开。
  63   1              ET0=1;                                                                  //定时器0中断开。
  64   1              EA=1;                                                                   //总中断开。
  65   1      
  66   1              while(1);
  67   1      }
  68          
  69          
  70          //********************************************************************************************************
             -*
  71          //*                                                                                                                                                                                                               *
  72          //*             ************************************定时器0中断函数************************************                   *
  73          //*                                                                                                                                                                                                               *
  74          //*<函数功能>:当定时器0溢出时执行此函数,首先执行2个判断:                                                                                               *
  75          //*                             (1)if判断是否改变灯的状态,可用于改变延时时间;                                                                                 *
  76          //*                             (2)switch判断闪烁模式,根据不同模式对灯进行不同的通断。                                                                 *
  77          //*                     最后对定时器TH0,TL0重新赋值,溢出时间为50ms。                                                                                             *
  78          //*                                                                                                                                                                                                               *
  79          //********************************************************************************************************
             -*
  80          
  81          void vTimer0(void) interrupt 1                      
  82          {
  83   1              
  84   1              if(uc_Count%uc_Delay==0)                          //通过此判断语句来改变延时。,例如:当uc_Delay=6时,定时器                                                                             
  85   1              {                                                                         //溢出5次时灯状态改变1次。同时uc_Count重新赋值1.否则,uc_Count++
  86   2                      uc_Count=1;                                               //等待下一次溢出。因此可以改变延时。
  87   2                      switch(uc_Mode)
  88   2                              {
  89   3       //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<模式0,灯从上往下依次点亮,不断循环。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
             ->
  90   3                                      case 0:                                  

⌨️ 快捷键说明

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