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

📄 clock_lcd1.lst

📁 使用51些列单片机实现秒表计数功能
💻 LST
📖 第 1 页 / 共 2 页
字号:
0176 740C            237               MOV  A,#0CH        ;开显示,显示光标,光标不闪烁
0178 31E4            238               CALL  WCOM         ;
017A 5108            239               call  delay1
017C 7401            240               MOV  A,#01H        ;清除 LCD 显示屏
017E 31E4            241               CALL  WCOM         ;
0180 5108            242               call  delay1
0182 22              243               RET
                     244     ;----------------------------------------------------------
0183                 245     ENABLE:                       ;写指令
0183 C2A5            246               CLR RS              ;RS=L,RW=L,E=高脉冲
0185 C2A6            247               CLR RW              ;D0-D7=指令码
0187 D2A7            248               SETB EN
A51 MACRO ASSEMBLER  CLOCK_LCD1                                                           08/17/2006 16:39:47 PAGE     5

0189 5108            249               ACALL DELAY1          
018B C2A7            250               CLR EN
018D 22              251               RET
                     252     ;----------------------------------------------------------
018E                 253     LCD_PRINT:       ;在LCD的第一行或第二行显示字符
                     254     
018E B4010C          255               CJNE  A,#1,LINE2  ;判断是否为第一行
0191 7480            256       LINE1:  MOV  A,#80H       ;设置 LCD 的第一行地址
0193 31E4            257               CALL  WCOM        ;写入命令
0195 31B3            258               CALL  CLR_LINE    ;清除该行字符数据
0197 7480            259               MOV  A,#80H       ;设置 LCD 的第一行地址
0199 31E4            260               CALL  WCOM        ;写入命令
019B 800A            261               JMP  FILL
019D 74C0            262       LINE2:  MOV  A,#0C0H      ;设置 LCD 的第二行地址
019F 31E4            263               CALL  WCOM        ;写入命令
01A1 31B3            264               CALL  CLR_LINE    ;清除该行字符数据
01A3 74C0            265               MOV  A,#0C0H      ;设置 LCD 的第二行地址
01A5 31E4            266               CALL  WCOM
01A7 E4              267       FILL:   CLR  A            ;填入字符
01A8 93              268               MOVC  A,@A+DPTR   ;由消息区取出字符
01A9 B40001          269               CJNE  A,#0,LC1    ;判断是否为结束码
01AC 22              270               RET
01AD 31E9            271       LC1:    CALL  WDATA       ;写入数据
01AF A3              272               INC  DPTR         ;指针加1
01B0 80F5            273               JMP  FILL         ;继续填入字符
01B2 22              274               RET
                     275     ;-------------------------------------------------------
01B3                 276     CLR_LINE:                  ;清除该行 LCD 的字符
01B3 7818            277               MOV  R0,#24
01B5 7420            278        CL1:   MOV  A,#' '
01B7 31E9            279               CALL  WDATA
01B9 D8FA            280               DJNZ  R0,CL1
01BB 22              281               RET
                     282     ;-------------------------------------------------------
01BC 7FFA            283        DE:    MOV  R7,#250      ;延时500微秒
01BE DFFE            284               DJNZ  R7,$
01C0 22              285               RET
                     286     ;-------------------------------------------------------
01C1                 287        EN1:
01C1 C2A6            288               CLR   RW
01C3 D2A7            289               SETB  EN         ;短脉冲产生启用信号
01C5 31BC            290               CALL  DE
01C7 C2A7            291               CLR  EN
01C9 31BC            292               CALL  DE
01CB 22              293               RET
                     294     ;------------------------------------------------------
01CC                 295     INIT_LCD:                  ;8位I/O控制 LCD 接口初始化
01CC 758038          296               MOV  P0,#38H     ;双列显示,字形5*7点阵
01CF 3183            297               call  enable
01D1 5108            298               call  delay1
01D3 758038          299               MOV  P0,#38H     ;双列显示,字形5*7点阵
01D6 3183            300               call  enable
01D8 5108            301               call  delay1
01DA 758038          302               MOV  P0,#38H     ;双列显示,字形5*7点阵
01DD 3183            303               call  enable
01DF 5108            304               call  delay1
01E1 3170            305               CALL  INIT_LCD1
01E3 22              306               RET
                     307     ;-----------------------------------------------------
01E4                 308     WCOM:                     ;以8位控制方式将命令写至LCD
01E4 F580            309               MOV  P0,A       ;写入命令
01E6 3183            310               call  enable
01E8 22              311               RET
                     312     ;-----------------------------------------------------
01E9                 313     WDATA:                    ;以8位控制方式将数据写至LCD
01E9 F580            314               MOV  P0,A       ;写入数据
A51 MACRO ASSEMBLER  CLOCK_LCD1                                                           08/17/2006 16:39:47 PAGE     6

01EB D2A5            315               SETB  RS        ;设置写入数据
01ED 31C1            316               CALL  EN1
01EF 22              317               RET
                     318     ;-----------------------------------------------------
                     319     ;第二行显示字符
                     320     ;-----------------------------------------------------
01F0                 321     LCDP2:                    ;在LCD的第二行显示字符
01F0 C0E0            322              PUSH  ACC        ;
01F2 E5F0            323              MOV  A,B         ;设置显示地址
01F4 24C0            324              ADD  A,#0C0H     ;设置LCD的第二行地址
01F6 31E4            325              CALL  WCOM       ;写入命令
01F8 D0E0            326              POP  ACC         ;由堆栈取出A
01FA 31E9            327              CALL  WDATA      ;写入数据
01FC 22              328              RET
                     329     ;----------------------------------------------------
01FD                 330     DELAY:                    ;延时10MS
01FD 7E32            331              MOV  R6,#50
01FF 7F64            332       D1:    MOV  R7,#100
0201 DFFE            333              DJNZ  R7,$
0203 DEFA            334              DJNZ  R6,D1
0205 DDF6            335              DJNZ  R5,DELAY
0207 22              336              RET
                     337     ;-----------------------------------------------------
0208                 338     DELAY1:                    ;延时5MS
0208 7E19            339              MOV  R6,#25
020A 7F64            340       D2:    MOV  R7,#100
020C DFFE            341              DJNZ  R7,$
020E DEFA            342              DJNZ  R6,D2
0210 22              343              RET
                     344     ;-----------------------------------------------------
0211                 345     BZ:                        ;蜂鸣器
0211 7E64            346              MOV  R6,#100
0213 511E            347       B1:    CALL  DEX
0215 B2B2            348              CPL  BEEP
0217 DEFA            349              DJNZ  R6,B1
0219 7D0A            350              MOV  R5,#10
021B 31FD            351              CALL  DELAY
021D 22              352              RET
021E 7FB4            353     DEX:    MOV  R7,#180
0220 00              354     DE1:    NOP
0221 DFFD            355              DJNZ  R7,DE1
0223 22              356              RET
                     357     
                     358     ;-------------------------------------------------
0224 20534543        359     MMENU:  DB  " SECOND-CLOCK 0 ",0
0228 4F4E442D                
022C 434C4F43                
0230 4B203020                
0234 00                      
0235 20424547        360     MADJ:   DB  " BEGIN COUNT  1 ",0
0239 494E2043                
023D 4F554E54                
0241 20203120                
0245 00                      
0246 20504155        361     MADJ1:  DB  " PAUSE COUNT  2 ",0
024A 53452043                
024E 4F554E54                
0252 20203220                
0256 00                      
0257 20424547        362     MADJ2:  DB  " BEGIN COUNT  3 ",0
025B 494E2043                
025F 4F554E54                
0263 20203320                
0267 00                      
0268 20504155        363     MADJ3:  DB  " PAUSE COUNT  4 ",0
026C 53452043                
A51 MACRO ASSEMBLER  CLOCK_LCD1                                                           08/17/2006 16:39:47 PAGE     7

0270 4F554E54                
0274 20203420                
0278 00                      
                     364     ;-------------------------------------------------
0279                 365     MENU:                      ;LCD 显示工作菜单消息
0279 900224          366              MOV  DPTR,#MMENU
027C 7401            367              MOV  A,#1
027E 318E            368              CALL  LCD_PRINT
0280 22              369              RET
                     370     ;-------------------------------------------------
                     371              END
                             
                             
                             
A51 MACRO ASSEMBLER  CLOCK_LCD1                                                           08/17/2006 16:39:47 PAGE     8

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
B1 . . . . . . . .  C ADDR   0213H   A   
BEEP . . . . . . .  B ADDR   00B0H.2 A   
BZ . . . . . . . .  C ADDR   0211H   A   
CL1. . . . . . . .  C ADDR   01B5H   A   
CLR_LINE . . . . .  C ADDR   01B3H   A   
CONV . . . . . . .  C ADDR   0124H   A   
D1 . . . . . . . .  C ADDR   01FFH   A   
D2 . . . . . . . .  C ADDR   020AH   A   
DE . . . . . . . .  C ADDR   01BCH   A   
DE1. . . . . . . .  C ADDR   0220H   A   
DELAY. . . . . . .  C ADDR   01FDH   A   
DELAY1 . . . . . .  C ADDR   0208H   A   
DEX. . . . . . . .  C ADDR   021EH   A   
EN . . . . . . . .  B ADDR   00A0H.7 A   
EN1. . . . . . . .  C ADDR   01C1H   A   
ENABLE . . . . . .  C ADDR   0183H   A   
FILL . . . . . . .  C ADDR   01A7H   A   
HOUR . . . . . . .  N NUMB   0030H   A   
IE . . . . . . . .  D ADDR   00A8H   A   
INIT . . . . . . .  C ADDR   00ACH   A   
INIT_LCD . . . . .  C ADDR   01CCH   A   
INIT_LCD1. . . . .  C ADDR   0170H   A   
INIT_TIMER . . . .  C ADDR   00C0H   A   
K1 . . . . . . . .  B ADDR   00A0H.0 A   
K2 . . . . . . . .  B ADDR   00A0H.1 A   
K3 . . . . . . . .  B ADDR   00A0H.2 A   
K4 . . . . . . . .  B ADDR   00A0H.3 A   
KEY_C. . . . . . .  N NUMB   0037H   A   
KEY_S. . . . . . .  N NUMB   0034H   A   
KEY_V. . . . . . .  N NUMB   0035H   A   
LC1. . . . . . . .  C ADDR   01ADH   A   
LCDP2. . . . . . .  C ADDR   01F0H   A   
LCD_PRINT. . . . .  C ADDR   018EH   A   
LINE1. . . . . . .  C ADDR   0191H   A   
LINE2. . . . . . .  C ADDR   019DH   A   
LMESS1 . . . . . .  C ADDR   008AH   A   
LMESS2 . . . . . .  C ADDR   009BH   A   
LOOP . . . . . . .  C ADDR   001DH   A   
LOOP1. . . . . . .  C ADDR   0032H   A   
LOOP2. . . . . . .  C ADDR   0039H   A   
MADJ . . . . . . .  C ADDR   0235H   A   
MADJ1. . . . . . .  C ADDR   0246H   A   
MADJ2. . . . . . .  C ADDR   0257H   A   
MADJ3. . . . . . .  C ADDR   0268H   A   
MENU . . . . . . .  C ADDR   0279H   A   
MIN. . . . . . . .  N NUMB   0031H   A   
MMENU. . . . . . .  C ADDR   0224H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
P_KEY. . . . . . .  C ADDR   003AH   A   
P_KEY1 . . . . . .  C ADDR   0050H   A   
P_KEY2 . . . . . .  C ADDR   005FH   A   
P_KEY3 . . . . . .  C ADDR   006EH   A   
P_KEY4 . . . . . .  C ADDR   007CH   A   
RS . . . . . . . .  B ADDR   00A0H.5 A   
RW . . . . . . . .  B ADDR   00A0H.6 A   
SEC. . . . . . . .  N NUMB   0032H   A   
A51 MACRO ASSEMBLER  CLOCK_LCD1                                                           08/17/2006 16:39:47 PAGE     9

SEC0 . . . . . . .  N NUMB   0033H   A   
SET_LCD. . . . . .  C ADDR   0159H   A   
SHOW_DIG2. . . . .  C ADDR   0109H   A   
SKEY . . . . . . .  C ADDR   007DH   A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   000DH   A   
T0_INT . . . . . .  C ADDR   00CDH   A   
TH0. . . . . . . .  D ADDR   008CH   A   
THIGH. . . . . . .  N NUMB   00DCH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TLOW . . . . . . .  N NUMB   000CH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TT . . . . . . . .  C ADDR   0106H   A   
WCOM . . . . . . .  C ADDR   01E4H   A   
WDATA. . . . . . .  C ADDR   01E9H   A   
X. . . . . . . . .  N NUMB   0036H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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