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

📄 clksmg.lst

📁 含有多个汇编以及c语言编程实例 用于单片机
💻 LST
字号:
A51 MACRO ASSEMBLER  CLKSMG                                                               05/28/2005 23:03:39 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     
                       2     ;P1.4小时调整   P1.5分种调整
                       3     
                       4     
                       5     
                       6     
                       7     CODE_SEG        SEGMENT CODE 
                       8     DATA_SEG        SEGMENT DATA 
                       9     STACK_SEG       SEGMENT IDATA
                      10     
                      11     
  0094                12     K1      BIT     P1.4
  0095                13     K2      BIT     P1.5
                      14     
----                  15             RSEG  DATA_SEG
0000                  16     KEY_S:          DS      1
0001                  17     KEY_V:          DS      1
0002                  18     DIS_DIGIT:      DS      1
0003                  19     SEC:            DS      1
0004                  20     DIS_INDEX:      DS      1
0005                  21     HOUR:           DS      1
0006                  22     MIN:            DS      1
0007                  23     SEC100:         DS      1
0008                  24     DIS_BUF:        DS      8
                      25             
  0008                26     BUF_HOUR_H      EQU     DIS_BUF         ; 小时十位
  0009                27     BUF_HOUR_L      EQU     DIS_BUF+1       ; 小时个位
  000B                28     BUF_MIN_H       EQU     DIS_BUF+3       ; 分十位
  000C                29     BUF_MIN_L       EQU     DIS_BUF+4       ; 分个位
  000E                30     BUF_SEC_H       EQU     DIS_BUF+6       ; 秒十位
  000F                31     BUF_SEC_L       EQU     DIS_BUF+7       ; 秒个位
                      32     
----                  33             RSEG    STACK_SEG
0000                  34     STACK:  DS      20      
                      35             
                      36     
                      37     ;===============================================================================
                      38     
----                  39     CSEG    AT      0000H
0000 020000   F       40             JMP     MAIN
                      41             
----                  42     CSEG    AT      0000BH
000B 020000   F       43             LJMP    TIMER0  
                      44     
----                  45     CSEG    AT      0001BH
001B 020000   F       46             LJMP    TIMER1
                      47     
                      48     ;===============================================================================
                      49     
                      50     
----                  51             RSEG  CODE_SEG
0000                  52     MAIN:
                      53             USING   0
                      54             
0000 758100   F       55             MOV     SP, #(STACK-1)          ;
                      56             
                      57             
0003 7580FF           58             MOV     P0,#0FFH
A51 MACRO ASSEMBLER  CLKSMG                                                               05/28/2005 23:03:39 PAGE     2

0006 75A0FF           59             MOV     P2,#0FFH
0009 758911           60             MOV     TMOD,#011H              ; 定时器0, 1工作模式1, 16位定时方式
000C 758CFC           61             MOV     TH0,#0FCH
000F 758A17           62             MOV     TL0,#017H
0012 758DDC           63             MOV     TH1,#0DCH
0015 E4               64             CLR     A
0016 F58B             65             MOV     TL1,A
                      66             
0018 75000C   F       67             MOV     HOUR,#12                ; 
001B E4               68             CLR     A                       ; 
001C F500     F       69             MOV     MIN,A
001E F500     F       70             MOV     SEC,A
0020 F500     F       71             MOV     SEC100,A
                      72             
0022 E500     F       73             MOV     A,HOUR
0024 75F00A           74             MOV     B,#10
0027 84               75             DIV     AB
0028 900000   F       76             MOV     DPTR,#DIS_CODE
002B 93               77             MOVC    A,@A+DPTR
002C F500     F       78             MOV     BUF_HOUR_H,A            ; 时十位
002E E500     F       79             MOV     A,HOUR
0030 75F00A           80             MOV     B,#10
0033 84               81             DIV     AB
0034 E5F0             82             MOV     A,B
0036 93               83             MOVC    A,@A+DPTR
0037 F500     F       84             MOV     BUF_HOUR_L,A            ; 时个位
0039 E500     F       85             MOV     A,MIN
003B 75F00A           86             MOV     B,#10
003E 84               87             DIV     AB
003F 93               88             MOVC    A,@A+DPTR
0040 F500     F       89             MOV     BUF_MIN_H,A             ; 分十位
0042 E500     F       90             MOV     A,MIN
0044 75F00A           91             MOV     B,#10
0047 84               92             DIV     AB
0048 E5F0             93             MOV     A,B
004A 93               94             MOVC    A,@A+DPTR
004B F500     F       95             MOV     BUF_MIN_L,A             ; 分个位
004D E500     F       96             MOV     A,SEC
004F 75F00A           97             MOV     B,#10
0052 84               98             DIV     AB
0053 93               99             MOVC    A,@A+DPTR
0054 F500     F      100             MOV     BUF_SEC_H,A             ; 秒十位
0056 E500     F      101             MOV     A,SEC
0058 75F00A          102             MOV     B,#10
005B 84              103             DIV     AB
005C E5F0            104             MOV     A,B
005E 93              105             MOVC    A,@A+DPTR
005F F500     F      106             MOV     BUF_SEC_L,A             ; 秒个位
                     107             
0061 7500BF   F      108             MOV     BUF_HOUR_H+02H,#0BFH
0064 7500BF   F      109             MOV     BUF_HOUR_H+05H,#0BFH
                     110             
0067 7500FE   F      111             MOV     DIS_DIGIT,#0FEH
006A E4              112             CLR     A
006B F500     F      113             MOV     DIS_INDEX,A
                     114             
006D 75A88A          115             MOV     IE,#08AH                ; 使能timer0,1 中断
                     116             
0070 D28C            117             SETB    TR0
0072 D28E            118             SETB    TR1
                     119             
0074 750003   F      120             MOV     KEY_V,#03H
                     121             
0077                 122     MAIN_LP:
0077 120000   F      123             LCALL   SCAN_KEY                ; 键扫描
007A 60FB            124             JZ      MAIN_LP                 ; 无键返回
A51 MACRO ASSEMBLER  CLKSMG                                                               05/28/2005 23:03:39 PAGE     3

                     125             
007C 7F0A            126             MOV     R7,#10                  ; 延时10ms
007E 120000   F      127             LCALL   DELAYMS                 ; 延时去抖动
0081 120000   F      128             LCALL   SCAN_KEY                ; 再次扫描
0084 60F1            129             JZ      MAIN_LP                 ; 无键返回
                     130             
0086 850000   F      131             MOV     KEY_V,KEY_S             ; 保存键值
0089 120000   F      132             LCALL   PROC_KEY                ; 键处理
008C 80E9            133             SJMP    MAIN_LP                 ; 调回主循环
                     134     
                     135     
                     136     ;===============================================================================
008E                 137     SCAN_KEY:
                     138     ; 扫键扫描子程序
                     139     ; 保存按键状态到key_s
                     140     ; 返回: A --- 按键是否按下(BOOL)
                     141     
008E E4              142             CLR     A
                     143             
008F A294            144             MOV     C,K1                    ; 读按键K1
0091 92E0            145             MOV     ACC.0,C
0093 A295            146             MOV     C,K2                    ; 读按键K2
0095 92E1            147             MOV     ACC.1,C
                     148             
0097 F500     F      149             MOV     KEY_S,A                 ;  保存按键状态到key_s
0099 6500     F      150             XRL     A,KEY_V
009B 22              151             RET     
                     152     
                     153     ;===============================================================================
009C                 154     PROC_KEY:
                     155     ; 键处理子程序
                     156     ; 传入参

⌨️ 快捷键说明

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