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

📄 kb.lst

📁 C51驱动标准PC键盘的程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE KB
OBJECT MODULE PLACED IN .\Kb.OBJ
COMPILER INVOKED BY: F:\TaryInstalled\KeilV60CHS\C51\BIN\C51.EXE .\Kb.c ROM(SMALL) DEBUG OBJECTEXTEND CODE LISTINCLUDE S
                    -YMBOLS

stmt level    source

   1          #include <Atmel\AT89X52.h>
   1      =1  /*--------------------------------------------------------------------------
   2      =1  AT89X52.H
   3      =1  
   4      =1  Header file for the low voltage Flash Atmel AT89C52 and AT89LV52.
   5      =1  Copyright (c) 1995-1996 Keil Software, Inc.  All rights reserved.
   6      =1  --------------------------------------------------------------------------*/
   7      =1  
   8      =1  #ifndef AT89X52_HEADER_FILE
   9      =1  #define AT89X52_HEADER_FILE 1
  10      =1  
  11      =1  /*------------------------------------------------
  12      =1  Byte Registers
  13      =1  ------------------------------------------------*/
  14      =1  sfr P0      = 0x80;
  15      =1  sfr SP      = 0x81;
  16      =1  sfr DPL     = 0x82;
  17      =1  sfr DPH     = 0x83;
  18      =1  sfr PCON    = 0x87;
  19      =1  sfr TCON    = 0x88;
  20      =1  sfr TMOD    = 0x89;
  21      =1  sfr TL0     = 0x8A;
  22      =1  sfr TL1     = 0x8B;
  23      =1  sfr TH0     = 0x8C;
  24      =1  sfr TH1     = 0x8D;
  25      =1  sfr P1      = 0x90;
  26      =1  sfr SCON    = 0x98;
  27      =1  sfr SBUF    = 0x99;
  28      =1  sfr P2      = 0xA0;
  29      =1  sfr IE      = 0xA8;
  30      =1  sfr P3      = 0xB0;
  31      =1  sfr IP      = 0xB8;
  32      =1  sfr T2CON   = 0xC8;
  33      =1  sfr T2MOD   = 0xC9;
  34      =1  sfr RCAP2L  = 0xCA;
  35      =1  sfr RCAP2H  = 0xCB;
  36      =1  sfr TL2     = 0xCC;
  37      =1  sfr TH2     = 0xCD;
  38      =1  sfr PSW     = 0xD0;
  39      =1  sfr ACC     = 0xE0;
  40      =1  sfr B       = 0xF0;
  41      =1  
  42      =1  /*------------------------------------------------
  43      =1  P0 Bit Registers
  44      =1  ------------------------------------------------*/
  45      =1  sbit P0_0 = 0x80;
  46      =1  sbit P0_1 = 0x81;
  47      =1  sbit P0_2 = 0x82;
  48      =1  sbit P0_3 = 0x83;
  49      =1  sbit P0_4 = 0x84;
  50      =1  sbit P0_5 = 0x85;
  51      =1  sbit P0_6 = 0x86;
  52      =1  sbit P0_7 = 0x87;
  53      =1  
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 2   

  54      =1  /*------------------------------------------------
  55      =1  PCON Bit Values
  56      =1  ------------------------------------------------*/
  57      =1  #define IDL_    0x01
  58      =1  
  59      =1  #define STOP_   0x02
  60      =1  #define PD_     0x02    /* Alternate definition */
  61      =1  
  62      =1  #define GF0_    0x04
  63      =1  #define GF1_    0x08
  64      =1  #define SMOD_   0x80
  65      =1  
  66      =1  /*------------------------------------------------
  67      =1  TCON Bit Registers
  68      =1  ------------------------------------------------*/
  69      =1  sbit IT0  = 0x88;
  70      =1  sbit IE0  = 0x89;
  71      =1  sbit IT1  = 0x8A;
  72      =1  sbit IE1  = 0x8B;
  73      =1  sbit TR0  = 0x8C;
  74      =1  sbit TF0  = 0x8D;
  75      =1  sbit TR1  = 0x8E;
  76      =1  sbit TF1  = 0x8F;
  77      =1  
  78      =1  /*------------------------------------------------
  79      =1  TMOD Bit Values
  80      =1  ------------------------------------------------*/
  81      =1  #define T0_M0_   0x01
  82      =1  #define T0_M1_   0x02
  83      =1  #define T0_CT_   0x04
  84      =1  #define T0_GATE_ 0x08
  85      =1  #define T1_M0_   0x10
  86      =1  #define T1_M1_   0x20
  87      =1  #define T1_CT_   0x40
  88      =1  #define T1_GATE_ 0x80
  89      =1  
  90      =1  #define T1_MASK_ 0xF0
  91      =1  #define T0_MASK_ 0x0F
  92      =1  
  93      =1  /*------------------------------------------------
  94      =1  P1 Bit Registers
  95      =1  ------------------------------------------------*/
  96      =1  sbit P1_0 = 0x90;
  97      =1  sbit P1_1 = 0x91;
  98      =1  sbit P1_2 = 0x92;
  99      =1  sbit P1_3 = 0x93;
 100      =1  sbit P1_4 = 0x94;
 101      =1  sbit P1_5 = 0x95;
 102      =1  sbit P1_6 = 0x96;
 103      =1  sbit P1_7 = 0x97;
 104      =1  
 105      =1  sbit T2   = 0x90;       /* External input to Timer/Counter 2, clock out */
 106      =1  sbit T2EX = 0x91;       /* Timer/Counter 2 capture/reload trigger & dir ctl */
 107      =1  
 108      =1  /*------------------------------------------------
 109      =1  SCON Bit Registers
 110      =1  ------------------------------------------------*/
 111      =1  sbit RI   = 0x98;
 112      =1  sbit TI   = 0x99;
 113      =1  sbit RB8  = 0x9A;
 114      =1  sbit TB8  = 0x9B;
 115      =1  sbit REN  = 0x9C;
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 3   

 116      =1  sbit SM2  = 0x9D;
 117      =1  sbit SM1  = 0x9E;
 118      =1  sbit SM0  = 0x9F;
 119      =1  
 120      =1  /*------------------------------------------------
 121      =1  P2 Bit Registers
 122      =1  ------------------------------------------------*/
 123      =1  sbit P2_0 = 0xA0;
 124      =1  sbit P2_1 = 0xA1;
 125      =1  sbit P2_2 = 0xA2;
 126      =1  sbit P2_3 = 0xA3;
 127      =1  sbit P2_4 = 0xA4;
 128      =1  sbit P2_5 = 0xA5;
 129      =1  sbit P2_6 = 0xA6;
 130      =1  sbit P2_7 = 0xA7;
 131      =1  
 132      =1  /*------------------------------------------------
 133      =1  IE Bit Registers
 134      =1  ------------------------------------------------*/
 135      =1  sbit EX0  = 0xA8;       /* 1=Enable External interrupt 0 */
 136      =1  sbit ET0  = 0xA9;       /* 1=Enable Timer 0 interrupt */
 137      =1  sbit EX1  = 0xAA;       /* 1=Enable External interrupt 1 */
 138      =1  sbit ET1  = 0xAB;       /* 1=Enable Timer 1 interrupt */
 139      =1  sbit ES   = 0xAC;       /* 1=Enable Serial port interrupt */
 140      =1  sbit ET2  = 0xAD;       /* 1=Enable Timer 2 interrupt */
 141      =1  
 142      =1  sbit EA   = 0xAF;       /* 0=Disable all interrupts */
 143      =1  
 144      =1  /*------------------------------------------------
 145      =1  P3 Bit Registers (Mnemonics & Ports)
 146      =1  ------------------------------------------------*/
 147      =1  sbit P3_0 = 0xB0;
 148      =1  sbit P3_1 = 0xB1;
 149      =1  sbit P3_2 = 0xB2;
 150      =1  sbit P3_3 = 0xB3;
 151      =1  sbit P3_4 = 0xB4;
 152      =1  sbit P3_5 = 0xB5;
 153      =1  sbit P3_6 = 0xB6;
 154      =1  sbit P3_7 = 0xB7;
 155      =1  
 156      =1  sbit RXD  = 0xB0;       /* Serial data input */
 157      =1  sbit TXD  = 0xB1;       /* Serial data output */
 158      =1  sbit INT0 = 0xB2;       /* External interrupt 0 */
 159      =1  sbit INT1 = 0xB3;       /* External interrupt 1 */
 160      =1  sbit T0   = 0xB4;       /* Timer 0 external input */
 161      =1  sbit T1   = 0xB5;       /* Timer 1 external input */
 162      =1  sbit WR   = 0xB6;       /* External data memory write strobe */
 163      =1  sbit RD   = 0xB7;       /* External data memory read strobe */
 164      =1  
 165      =1  /*------------------------------------------------
 166      =1  IP Bit Registers
 167      =1  ------------------------------------------------*/
 168      =1  sbit PX0  = 0xB8;
 169      =1  sbit PT0  = 0xB9;
 170      =1  sbit PX1  = 0xBA;
 171      =1  sbit PT1  = 0xBB;
 172      =1  sbit PS   = 0xBC;
 173      =1  sbit PT2  = 0xBD;
 174      =1  
 175      =1  /*------------------------------------------------
 176      =1  T2CON Bit Registers
 177      =1  ------------------------------------------------*/
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 4   

 178      =1  sbit CP_RL2= 0xC8;      /* 0=Reload, 1=Capture select */
 179      =1  sbit C_T2 = 0xC9;       /* 0=Timer, 1=Counter */
 180      =1  sbit TR2  = 0xCA;       /* 0=Stop timer, 1=Start timer */
 181      =1  sbit EXEN2= 0xCB;       /* Timer 2 external enable */
 182      =1  sbit TCLK = 0xCC;       /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
 183      =1  sbit RCLK = 0xCD;       /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
 184      =1  sbit EXF2 = 0xCE;       /* Timer 2 external flag */
 185      =1  sbit TF2  = 0xCF;       /* Timer 2 overflow flag */
 186      =1  
 187      =1  /*------------------------------------------------
 188      =1  T2MOD Bit Values
 189      =1  ------------------------------------------------*/
 190      =1  #define DCEN_   0x01    /* 1=Timer 2 can be configured as up/down counter */
 191      =1  #define T2OE_   0x02    /* Timer 2 output enable */
 192      =1  
 193      =1  /*------------------------------------------------
 194      =1  PSW Bit Registers
 195      =1  ------------------------------------------------*/
 196      =1  sbit P    = 0xD0;
 197      =1  sbit FL   = 0xD1;
 198      =1  sbit OV   = 0xD2;
 199      =1  sbit RS0  = 0xD3;
 200      =1  sbit RS1  = 0xD4;
 201      =1  sbit F0   = 0xD5;
 202      =1  sbit AC   = 0xD6;
 203      =1  sbit CY   = 0xD7;
 204      =1  
 205      =1  /*------------------------------------------------
 206      =1  Interrupt Vectors:
 207      =1  Interrupt Address = (Number * 8) + 3
 208      =1  ------------------------------------------------*/
 209      =1  #define IE0_VECTOR	0  /* 0x03 External Interrupt 0 */
 210      =1  #define TF0_VECTOR	1  /* 0x0B Timer 0 */
 211      =1  #define IE1_VECTOR	2  /* 0x13 External Interrupt 1 */
 212      =1  #define TF1_VECTOR	3  /* 0x1B Timer 1 */
 213      =1  #define SIO_VECTOR	4  /* 0x23 Serial port */
 214      =1  
 215      =1  #define TF2_VECTOR	5  /* 0x2B Timer 2 */
 216      =1  #define EX2_VECTOR	5  /* 0x2B External Interrupt 2 */
 217      =1  
 218      =1  /*------------------------------------------------
 219      =1  ------------------------------------------------*/
 220      =1  #endif
 221      =1  
 222      =1  
   2          #include "Pindefs.h"
   1      =1  //*********************
   2      =1  // Pin definition file
   3      =1  //*********************
   4      =1  // Keyboard konnections
   5      =1  #define PIND	P2_3
   6      =1  #define PIN_KB	PIND
   7      =1  #define PORT_KB	INT0
   8      =1  #define CLOCK	2
   9      =1  #define DATAPIN	3
   3          #include "kb.h"
   1      =1  #ifndef __KB_H__
   2      =1  #define __KB_H__
   3      =1  
   4      =1  
   5      =1  void init_kb(void);
   6      =1  void decode(unsigned char sc);
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 5   

   7      =1  void put_kbbuff(unsigned char c);
   8      =1  int getchar(void);
   9      =1  
  10      =1  
  11      =1  #endif // __KB_H__
  12      =1  
   4          #include "gpr.h"
   1      =1  #ifndef __GPR_H__
   2      =1  #define __GPR_H__
   3      =1  
   4      =1  void print_hexbyte(unsigned char i);
   5      =1  void delay(char d);
   6      =1  
   7      =1  #endif // __GPR_H__
   8      =1  
   5          #include "Scancodes.h"
   1      =1  #ifndef __SCANCODES_H__
   2      =1  #define __SCANCODES_H__
   3      =1  
   4      =1  
   5      =1  // Unshifted characters
   6      =1  code unsigned char unshifted[][2] = {
   7      =1  	0x0d, 9,
   8      =1  	0x0e, '|',
   9      =1  	0x15, 'q',
  10      =1  	0x16, '1',

⌨️ 快捷键说明

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