led-1(dingshi).lst

来自「义隆单片机控制8个LED的渐明渐暗」· LST 代码 · 共 76 行

LST
76
字号
     1                     ; ===========================================
     2                     ;中断方式实现内部TCC功能
     3                     ;晶振=4MHZ,指令周期为4个时钟 
     4                     ;============================================
     5                     ;--------------------------------------------------
     6                     ;       定义变量
     7                     ;-------------------------------------------------------
     8       0001          TCC         ==      0x01
     9       0003          status      ==      0x03        ; 状态寄存器
    10       0005          PORT5       ==      0x05        ; PORT5端口
    11       000B          IOCB        ==      0x0b
    12       000E          IOCE        ==      0x0E        ; WDT控制寄存器
    13       000F          IOCF        ==      0x0F        ; 中断控制寄存器
    14       000F          ISR         ==      0x0F        ; 中断状态寄存器
    15       0010          A_BUF       ==      0x10        ; 保存中断前A的值
    16       0011          TCC_Count   ==      0x11        ; 自定义计数器
    17       0012          flag        ==      0x12
    18       00F6          num         ==      246
    19       0002          Z           ==      2
    20                     ;----------------------------主程序------------------------------;
    21                             ORG     0x00
    22 00000 1415                  JMP     tcc_start
    23                             ORG     0x08
    24                     ;----------------------------------------------------------------------;
    25 00008               TCC_INT:
    26 00008 0050                  MOV     A_BUF, A       ; 保存A的值
    27 00009 180E                  mov     a,@0x0e
    28 0000A 0041                  mov     TCC,a
    29 0000B 18FE                  MOV     A, @0xFE        
    30 0000C 02CF                  AND     ISR, A          ; 清中断标志位
    31 0000D 0551                  INC     TCC_Count       ; 每中断一次TCC_Count计数器加1
    32 0000E 0E83                  JBS     status,Z       ; 判断TCC_Count是否溢出
    33 0000F 1413                  JMP     TCC_out         ; 没有溢出
    34 00010 18F6                  mov     a,@num
    35 00011 0051                  mov     TCC_Count,a
    36 00012 0A12                  bs      flag,0
    37 00013               TCC_out:
    38 00013 0410                  MOV     A, A_BUF        ; 恢复A的值
    39 00014 0013                  RETI                    ; 中断返回
    40                     ;----------------------------------------------------------------------;
    41 00015               tcc_start:
    42 00015 1800                  MOV     A, @0x00
    43 00016 000E                  IOW     IOCE               ; 关闭看门狗
    44 00017 1802                  MOV     A, @0x02
    45 00018 0005                  IOW     PORT5              ; Port5为输出口
    46 00019 18FD                  mov     a,@0xfd
    47 0001A 000B                  IOW     IOCB
    48 0001B 0805                  BC      PORT5,0          ; 关闭LED灯
    49 0001C 0812                  bc      flag,0
    50 0001D 18F6                  mov     a,@num
    51 0001E 0051                  mov     TCC_Count,a
    52 0001F 18D0                  MOV     A, @0b11010000           ; 保留不需要设置的状态位
    53 00020 1902                  OR      A, @0b00000010           ; 预除数为8
    54 00021 0002                  CONTW
    55 00022 1801                  MOV     A, @0x01           ; 允许计数器中断
    56 00023 000F                  IOW     IOCF                                        
    57 00024 0010                  ENI                       ; 开中断
    58 00025               main:
    59                             
    60 00025 0E45                  jbs     port5,1
    61 00026 1430                  jmp     main_out
    62 00027 0E12                  jbs     flag,0
    63 00028 1430                  jmp     main_out
    64 00029 0812                  bc      flag,0
    65 0002A 0E45                  jbs     port5,1
    66 0002B 1430                  jmp     main_out
    67 0002C 0A05                  bs      port5,0
    68 0002D               main_in:
    69 0002D 0C45                  jbc     port5,1
    70 0002E 142D                  jmp     main_in
    71 0002F 0805                  bc      port5,0
    72                             
    73 00030               main_out:
    74 00030 1425                     jmp   main
    75                             END
  0 Error(s), 0 Warning(s), 0 User Message(s)

⌨️ 快捷键说明

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