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

📄 ledkey.lst

📁 usblab usb程序开发实验 一个实例
💻 LST
字号:
C51 COMPILER V8.01   LEDKEY                                                                08/04/2006 19:27:58 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE LEDKEY
OBJECT MODULE PLACED IN ledkey.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ledkey.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2             //************************************************************************* //
   3             //                  
   4             //
   5             //           COPYRIGHT (c)   2006 BY FOSHAN LX.
   6             //                     --  ALL RIGHTS RESERVED  --
   7             //
   8             // File Name:        UFMAIN.C
   9             // Author:           guobin
  10             // Created:          2006/04/20
  11             // Modified:
  12             // Revision:         2.0
  13             //
  14             //*************************************************************************
  15          */
  16          
  17          //CPU:  P89LPC932A1             8K Flash                256+512Byte     RAM
  18          //Crystal:12MHz Fosc=12M
  19          //DIVM=0                CCLK=Fosc=12M
  20          //Single INS=6M=166ns
  21          
  22          #include <stdio.h>
  23          #include <string.h>
  24          
  25          #include "hardware.h"  
  26          
  27          unsigned char LLEDData,RLEDData;
  28          bit     bdata   CLRFlag;
  29          unsigned char KeyCount;
  30          bit     bdata   KeyReleaseFlag;
  31          unsigned char KeyEvent;
  32          unsigned char TestData;
  33          
  34          void (*ISP)();
  35          
  36          //P00(O)     P01(O)     P02(O)     P03(O)     P04(O)     P05(O)     P06(O)     P07(O)
  37          //P10(O)     P11(I)      P12(O)     P13(I/O)  P14(I)      P15(I)      P16(O)     P17(O)
  38          //P20(I/O)  P21(I/O)  P22(I/O)  P23(I/O)  P24(I/O)  P25(I/O)  P26(I/O)  P27(I/O)  
  39          void    GPIO_Initial(void)
  40          {
  41   1              P0M1=0x00;
  42   1              P0M2=0x00;
  43   1              P1M1=0x20;
  44   1              P1M2=0x00;
  45   1              P2M1=0x00;
  46   1              P2M2=0x00;
  47   1      }
  48          
  49          void    ISP_Initial(void)
  50          {
  51   1              ISP=0x1F00;
  52   1              if(!Key)
  53   1                      ISP();
  54   1      
  55   1              SSTAT=0xFA;
C51 COMPILER V8.01   LEDKEY                                                                08/04/2006 19:27:58 PAGE 2   

  56   1              BRGCON=0x00;
  57   1              AUXR1=0x40;
  58   1              SCON=0x50;
  59   1              BRGR1=0x04;                     //cystal=12M            baund=9600(0x04d2)-----baund=cclk/((brgr1,brgr0)+16)
  60   1              BRGR0=0xD2;
  61   1              BRGCON=0x03;
  62   1      }
  63          
  64          /*
  65          位段编码对应关系:
  66          数码管位:a  b  c  d  e  f  g  dp
  67          74HC164:  Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
  68          Q对应输出1点亮相应的位,比如显示1---写74HC164数据01100000(0x60)  
  69          */
  70          code UCHAR      LEDCode[]=                                //数码管编码表
  71          {
  72          0xFC,   //'0'
  73          0x60,   //'1'
  74          0xDA,   //'2'
  75          0xF2,   //'3'
  76          0x66,   //'4'
  77          0xB6,   //'5'
  78          0xBE,   //'6'
  79          0xE0,   //'7'
  80          0xFE,   //'8'
  81          0xF6,   //'9'
  82          };
  83          
  84          /*
  85          写74HC164函数
  86          入口参数:写1个字节数据
  87          出口参数:无
  88          */
  89          void HC164(UCHAR Dat)
  90          {
  91   1              UCHAR i;
  92   1      
  93   1              HC164_CLK=0;
  94   1              for(i=0;i<8;i++)
  95   1              {
  96   2              if(Dat&0x01)                            //移为顺序:LSB位先移出
  97   2                      HC164_AB=1;
  98   2              else
  99   2                      HC164_AB=0;
 100   2              HC164_CLK=1;
 101   2              HC164_CLK=0;
 102   2              Dat>>=1;
 103   2              }
 104   1      }
 105          
 106          void ScanLEDOutput(void)
 107          {
 108   1              NLEDR=NLEDL=1;
 109   1              if(CLRFlag)
 110   1              {
 111   2                      CLRFlag=0;
 112   2                      HC164(LEDCode[RLEDData]);
 113   2                      NLEDR=0;
 114   2              }
 115   1              else
 116   1              {
 117   2                      CLRFlag=1;
C51 COMPILER V8.01   LEDKEY                                                                08/04/2006 19:27:58 PAGE 3   

 118   2                      HC164(LEDCode[LLEDData]);
 119   2                      NLEDL=0;
 120   2              }
 121   1      }
 122          
 123          void T0_Initial(void)
 124          {
 125   1              TMOD&=0xf0;
 126   1              TMOD|=0x01;
 127   1              TH0=0x8A;                //5MS
 128   1              TL0=0xD0;
 129   1              TR0=1;
 130   1              ET0=1;
 131   1              EA=1;
 132   1      }
 133          
 134          void T0_IRQ(void)               interrupt 1
 135          {
 136   1              TH0=0x8A;
 137   1              TL0=0xD0;
 138   1      
 139   1              ScanLEDOutput();
 140   1      
 141   1              if(Key)
 142   1              {
 143   2                      KeyCount=0;
 144   2                      KeyReleaseFlag=1;
 145   2              }
 146   1              else
 147   1                      {
 148   2                      KeyCount++;
 149   2                      if((KeyCount==20)&&KeyReleaseFlag)
 150   2                              {
 151   3                              KeyEvent=1;
 152   3                              KeyReleaseFlag=0;
 153   3                              }
 154   2                      }
 155   1      }
 156          
 157          void    main(void)
 158          {
 159   1              GPIO_Initial();
 160   1      
 161   1              ISP_Initial();
 162   1      
 163   1              T0_Initial();
 164   1      
 165   1              while(1)
 166   1              {
 167   2                      if(KeyEvent)
 168   2                      {
 169   3                              KeyEvent=0;
 170   3                              TestData++;
 171   3                              if(TestData==100)
 172   3                                      TestData=0;
 173   3                              LLEDData=TestData/10;
 174   3                              RLEDData=TestData%10;
 175   3                      }
 176   2              }
 177   1      }
 178          
 179          
C51 COMPILER V8.01   LEDKEY                                                                08/04/2006 19:27:58 PAGE 4   

 180          
 181          
 182          
 183          
 184          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    246    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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