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

📄 lcd.lst

📁 LCD和44键盘的一个简单例子,proteus下仿真通过
💻 LST
字号:
A51 MACRO ASSEMBLER  LCD                                                                  10/09/2007 17:14:12 PAGE     1


MACRO ASSEMBLER A51 V7.00a
OBJECT MODULE PLACED IN LCD.OBJ
ASSEMBLER INVOKED BY: D:\学习\Proteus_6_Professiona\keil中文版本\Keil\C51\BIN\A51.EXE LCD.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;******************
  00B0                 2     RS EQU P3.0
  00B1                 3     RW EQU P3.1
  00B2                 4     E  EQU P3.2
  00A0                 5     DATE EQU P2
  00A7                 6     BF EQU P2.7
  0090                 7     KEY EQU P1
  0031                 8     COUNT EQU 31H
  0032                 9     SCAN EQU 32H
  0033                10     SCAN1 EQU 33H
  0034                11     KEYCOUNT EQU 34H
  0035                12     SHOWWHAT EQU 35H
  0036                13     KEYF EQU 36H
                      14     ;*****************
0000                  15     ORG 0000H
0000 0130             16     AJMP START
0030                  17     ORG 0030H
0030                  18     START:
                      19     ;*************************
                      20     ;初始化LCD
                      21     ;*********************
0030 75815F           22     MOV SP,#5FH
0033 75A001           23     MOV DATE,#00000001B ;清屏
0036 11CE             24     CALL WRITES
0038 75A038           25     MOV DATE,#00111000B ;8位2行5x7点阵
003B 11CE             26     ACALL WRITES
003D 75A00F           27     MOV DATE,#00001111B ;显示器开、光标开、闪烁开
0040 11CE             28     ACALL WRITES
0042 75A006           29     MOV DATE,#00000110B ;文字不动,光标自动右移
0045 11CE             30     ACALL WRITES
                      31     ;*************************
                      32     ;键盘扫描初始化
                      33     ;****************
0047                  34     MAIN:
0047 7590F0           35     MOV KEY,#0F0H
004A 7530FE           36     MOV 30H,#0FEH
004D 753100           37     MOV COUNT ,#0
0050 753400           38     MOV KEYCOUNT,#0
0053 753600           39     MOV KEYF,#0
                      40     ;******************
0056 1172             41     CALL KEYSCAN
0058 E536             42     MOV A,KEYF
005A B401EA           43     CJNE A,#1,MAIN
005D 753600           44     MOV KEYF,#0
0060 75A000           45     MOV DATE,#00H
0063 11CE             46     ACALL WRITES
0065 9000FD           47     MOV DPTR,#TAB
0068 E535             48     MOV A,SHOWWHAT
006A 93               49     MOVC A,@A+DPTR
006B F5A0             50     MOV DATE,A
006D 11D9             51     ACALL READDATE
006F 020047           52     LJMP MAIN
                      53     ;*********************
                      54     ;键盘扫描程序
                      55     ;*********************
0072                  56     KEYSCAN:
0072 E590             57     MOV A,KEY
0074 54F0             58     ANL A,#0F0H
A51 MACRO ASSEMBLER  LCD                                                                  10/09/2007 17:14:12 PAGE     2

0076 B4F003           59     CJNE A,#0F0H,KEYWHAT
0079 020072           60     LJMP KEYSCAN
007C                  61     KEYWHAT:
007C 11F4             62     CALL DELAY
007E E590             63     MOV A,KEY
0080 54F0             64     ANL A,#0F0H
0082 B4F003           65     CJNE A,#0F0H,KEYWHAT1
0085 020072           66     LJMP KEYSCAN
0088                  67     KEYWHAT1:
0088 853090           68     MOV KEY,30H
008B E590             69     MOV A,KEY
008D 54F0             70     ANL A,#0F0H
008F B4F014           71     CJNE A,#0F0H,KEYWHAT2
0092 E530             72     MOV A,30H
0094 23               73     RL A
0095 F530             74     MOV 30H,A
0097 0531             75     INC COUNT
0099 E531             76     MOV A,COUNT
009B B404EA           77     CJNE A,#4,KEYWHAT1
009E 753100           78     MOV COUNT,#0
00A1 7530FE           79     MOV 30H,#0FEH
00A4 0172             80     AJMP KEYSCAN
00A6                  81     KEYWHAT2:
00A6 C3               82     CLR C
00A7 C4               83     SWAP A
00A8 F532             84     MOV SCAN,A
00AA E532             85     K1:MOV A,SCAN
00AC 13               86     RRC A
00AD F532             87     MOV SCAN,A
00AF 500C             88     JNC K
00B1 0534             89     INC KEYCOUNT 
00B3 AB34             90     MOV R3,KEYCOUNT
00B5 BB05F2           91     CJNE R3,#5,K1
00B8 753400           92     MOV KEYCOUNT,#0
00BB 01AA             93     AJMP K1
00BD                  94     k:
00BD 853432           95     MOV SCAN,KEYCOUNT
00C0 E531             96     MOV A,COUNT
00C2 75F004           97     MOV B,#4
00C5 A4               98     MUL AB
00C6 2532             99     ADD A,SCAN
00C8 F535            100     MOV SHOWWHAT,A
00CA 753601          101     MOV KEYF,#1
00CD 22              102     RET
                     103     ;*****************
                     104     ;写控制命令子程序
                     105     ;**************
00CE                 106     WRITES:
00CE C2B0            107     CLR RS
00D0 C2B1            108     CLR RW
00D2 C2B2            109     CLR E
00D4 11E4            110     CALL FAVOUR;判断是否忙
00D6 D2B2            111     SETB E
00D8 22              112     RET
                     113     ;*****************
                     114     ;写数据子程序
                     115     ;**************
00D9                 116     READDATE:
00D9 D2B0            117     SETB RS
00DB C2B1            118     CLR RW
00DD C2B2            119     CLR E
00DF 11E4            120     ACALL FAVOUR
00E1 D2B2            121     SETB E
00E3 22              122     RET
                     123     ;***************
                     124     ;判断是否忙子程序
A51 MACRO ASSEMBLER  LCD                                                                  10/09/2007 17:14:12 PAGE     3

                     125     ;******************
00E4                 126     FAVOUR:
00E4 75A0FF          127     MOV DATE,#0FFH
00E7 C2B0            128     CLR RS
00E9 D2B1            129     SETB RW
00EB C2B2            130     CLR E
00ED 00              131     NOP
00EE D2B2            132     SETB E
00F0 20A7F1          133     JB BF,FAVOUR
00F3 22              134     RET
                     135     ;***************
00F4                 136     DELAY:
00F4 78C8            137     MOV R0,#200
00F6 79FA            138     D1:MOV R1,#250
00F8 D9FE            139        DJNZ R1,$
00FA D8FA            140        DJNZ R0,D1
00FC 22              141     RET
                     142     ;*****************
00FD                 143     TAB:
00FD 30313233        144     DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,3AH,3BH,3CH,3DH
0101 34353637                
0105 38393A3B                
0109 3C3D                    
                     145     END
A51 MACRO ASSEMBLER  LCD                                                                  10/09/2007 17:14:12 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

B. . . . . . . . .  D ADDR   00F0H   A   
BF . . . . . . . .  B ADDR   00A0H.7 A   
COUNT. . . . . . .  N NUMB   0031H   A   
D1 . . . . . . . .  C ADDR   00F6H   A   
DATE . . . . . . .  D ADDR   00A0H   A   
DELAY. . . . . . .  C ADDR   00F4H   A   
E. . . . . . . . .  B ADDR   00B0H.2 A   
FAVOUR . . . . . .  C ADDR   00E4H   A   
K. . . . . . . . .  C ADDR   00BDH   A   
K1 . . . . . . . .  C ADDR   00AAH   A   
KEY. . . . . . . .  D ADDR   0090H   A   
KEYCOUNT . . . . .  N NUMB   0034H   A   
KEYF . . . . . . .  N NUMB   0036H   A   
KEYSCAN. . . . . .  C ADDR   0072H   A   
KEYWHAT. . . . . .  C ADDR   007CH   A   
KEYWHAT1 . . . . .  C ADDR   0088H   A   
KEYWHAT2 . . . . .  C ADDR   00A6H   A   
MAIN . . . . . . .  C ADDR   0047H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
READDATE . . . . .  C ADDR   00D9H   A   
RS . . . . . . . .  B ADDR   00B0H.0 A   
RW . . . . . . . .  B ADDR   00B0H.1 A   
SCAN . . . . . . .  N NUMB   0032H   A   
SCAN1. . . . . . .  N NUMB   0033H   A   
SHOWWHAT . . . . .  N NUMB   0035H   A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   0030H   A   
TAB. . . . . . . .  C ADDR   00FDH   A   
WRITES . . . . . .  C ADDR   00CEH   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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