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

📄 text2.lst

📁 1602液晶时钟显示,51单片机和三个键盘扩展电路
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  TEXT2                                                                12/26/2008 21:32:05 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Text2.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Text2.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     
                       2     ;********************************************************************************
  00A0                 3          RS EQU p2.0;液晶接口的定义
  00A1                 4          RW EQU p2.1;
  00A2                 5          E EQU p2.2;
  0031                 6          HOUR EQU 31H;小时定义
  0032                 7          MIN EQU 32H;分定义
  0033                 8          SEC EQU 33H;秒定义
  0035                 9          X EQU 35H;LCD存放地址
  00A4                10          K1 BIT P2.4
  00A5                11          K2 BIT P2.5
  00A6                12          K3 BIT P2.6
  00A7                13          K4 BIT P2.7
  00B7                14          WLED EQU P3.7;LED控制位
                      15     ;=====================================================================================     
0000                  16           org 0000h; 原程序其始地址
0000 020025           17           LJMP MAIN
000B                  18           ORG 000BH ; TO定时器的中断入口地址
000B 0201F5           19           LJMP INTT0
                      20     ;=======================================================================================   
                                
                      21      ;LCD初始化设置
                      22      ;================================================================
0025                  23           org 0025h ;主程序入口地址   
0025 758170           24     MAIN: MOV SP ,#70H;设置堆栈
0028 758001           25           MOV p0,#01H ;清屏
002B 1180             26           CALL ENABLE ; 写入指令
002D 758038           27           MOV p0,#38H ;功能设置
0030 1180             28           CALL ENABLE
0032 75800C           29           MOV p0,#0CH ;显示开关控制
0035 1180             30           CALL ENABLE
0037 758006           31           MOV p0,#06H ;+1;AC地址计数器自动加一
003A 1180             32           CALL ENABLE
                      33     ;=======================================================================================
                      34     ;LCD查表显示和定时器初始化
                      35     ;=======================================================================================
003C                  36     SET_LCD:              
003C 9000BF           37           MOV DPTR,#TABLE1; 查表显示1
003F 753001           38           MOV 30H,#1
0042 12008B           39           LCALL WRITE1;   LCD显示输出
0045 9000D0           40           MOV DPTR,#TABLE2; 查表显示2
0048 753002           41           MOV 30H,#2
004B 12008B           42           LCALL WRITE1   ;LCD显示输出
004E 1200FB           43           LCALL INTT     ;变量初始化
0051 1201E6           44           LCALL INTT_TIME ;TO定时器初始化
                      45     ;MOV p0,#80H;第一行的开始位置
                      46     ;cALL ENABLE
                      47     ;MOV DPTR,#TABLE1;显示
                      48     ;CALL WRITE1;到TABLE1取码
                      49     ;MOV p0,#0C0H;第二行的位置
                      50     ;CALL ENABLE
                      51     ;MOV DPTR,#TABLE2;显示
                      52     ;CALL WRITE1;到TABLE2 取码
                      53     ;MOV p0,#0C2H;光标定位0C0H
                      54           ;CALL ENABLE
0054 80FE             55       AA:SJMP AA     ;等待中断
                      56     ;==========================================================================================
                             =
A51 MACRO ASSEMBLER  TEXT2                                                                12/26/2008 21:32:05 PAGE     2

                      57     ;键盘扫描
                      58     ;====================================================================================
0056 20A414           59     LOP:  JB K1,L1   ;键盘扫描子程序
0059 120246           60            lcall BUSY ;是否为忙的子程序 
005C 1200ED           61            LCALL LED_BL ;LED闪烁表示工作状态
005F 9000DD           62            MOV DPTR,#MADJ ;查表显示
0062 753001           63            MOV 30H,#1
0065 12008B           64            LCALL WRITE1
0068 120105           65            LCALL SET_TIME; 设置时间
                      66          ; INC HOUR
                      67           ;MOV 50H,HOUR
                      68           ;MOV A,50H
                      69           ;CJNE A,#24,LOP1
                      70           ;CLR HOUR
006B 80E9             71            Jmp LOP
006D 20A502           72     L1:    JB K2,L2
                      73           ;INC MIN
                      74           ;MOV 51H,MIN
                      75           ;MOV A,MIN
                      76           ;CJNE A,#60,LOP1
                      77           ;CLR MIN
0070 80E4             78            JMP LOP
0072 20A605           79     L2:    JB K3,L3 ;K3键保留未做任何动作
0075 30A6FD           80            JNB K3,$
                      81           ;INC SEC
                      82           ;MOV 52H,SEC
                      83           ;MOV A,52H
                      84           ;CJNE A,#60H,LOP1
                      85           ;CLR SEC
0078 80DC             86            JMP LOP
007A 20A702           87     L3:    JB K4,L4   
007D 80D7             88            JMP LOP
007F                  89     L4:   ;JMP LOP1
007F 22               90     LOP1:   RET
                      91     ;==========================================================================================
                             ======
                      92     ;写入指令
                      93     ;============================================================
0080 C2A0             94     ENABLE: CLR RS ;送命令 ;写入指令
0082 C2A1             95             CLR RW ;写入数据
0084 C2A2             96             CLR E ;写入数据
0086 11B6             97             CALL DELAY
0088 D2A2             98             SETB E
008A 22               99             RET
                     100     ;==========================================================================================
                             ======
                     101     ;查表输出显示
                     102     ;=============================================================================
008B E530            103     WRITE1: MOV A,30H ;LCD二行输出的查表显示
008D B40108          104             CJNE A,#1,LINE2
0090 758080          105     LINE1:  MOV P0,#80H ;LCD第一行显示的首地址      
0093 120080          106             LCALL ENABLE ; 写入指令
0096 019E            107             AJMP XX
0098 7580C0          108     LINE2:  MOV P0,#0C0H ;LCD第二行显示的首地址
009B 120080          109             LCALL ENABLE ; 写入指令
009E 7900            110     XX:     MOV R1,#00H ;显示table中的值
00A0 E9              111     A1:     MOV A,R1;到table取码
00A1 93              112             MOVC A,@A+DPTR
00A2 11A9            113             call wRITE2 ;显示到lcd
00A4 09              114             INC R1
00A5 B400F8          115             CJNE A,#00H,A1 ;是否到00h
00A8 22              116             RET
00A9 F580            117     WRITE2: MOV p0,A ;显示
00AB D2A0            118             SETB RS ;写入数据
00AD C2A1            119             CLR RW  ;写入数据
00AF C2A2            120             CLR E   ;写入数据
A51 MACRO ASSEMBLER  TEXT2                                                                12/26/2008 21:32:05 PAGE     3

00B1 11B6            121             CALL DELAY ;短延时产生户用信号
00B3 D2A2            122             SETB E  ;写入地址
00B5 22              123             RET
                     124     ;==========================================================================================
                             =========     
00B6 7B05            125     DELAY:  MOV R3,#5;  2.5MS延时
00B8 7FFF            126     D1:     MOV R7,#0FFH
00BA DFFE            127             DJNZ R7,$
00BC DBFA            128             DJNZ R3,D1
00BE 22              129             RET
                     130     ;==========================================================================================
                             =======
00BF 20434849        131     table1: db" CHINA--DA SHUN ",00H
00C3 4E412D2D                
00C7 44412053                
00CB 48554E20                
00CF 00                      
00D0 5A484520        132     table2: db"ZHE BIAN JI ",00H
00D4 4249414E                
00D8 204A4920                
00DC 00                      
00DD 4B323A48        133     MADJ:   DB"K2:H K3:M K4:OK",00H
00E1 204B333A                
00E5 4D204B34                
00E9 3A4F4B00                
                     134     ;==========================================================================================
                             ========
                     135     ;工作灯闪烁表示LCD程序运行
                     136     ;===========================================================================
00ED 7C04            137     LED_BL: MOV R4,#4 ; LED闪烁四次
00EF B2B7            138     LEO:    CPL WLED
00F1 7D64            139             MOV R5,#100;MOV R5,#100
00F3 1200B6          140     LEO1:   LCALL DELAY
00F6 DDFB            141             DJNZ R5,LEO1
00F8 DCF5            142             DJNZ R4,LEO
00FA 22              143             RET
                     144     ;==========================================================================================
                             =========

⌨️ 快捷键说明

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