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

📄 led-2.lst

📁 义隆单片机控制8个LED的渐明渐暗
💻 LST
字号:
     1                     ;==========================================
     2                     ;153IN_Tcc.dt源码(以中断方式实现内部TCC功能)
     3                     ;crystal=4MHZ
     4                     ;============================================
     5                     ;----------------------------------------------------------------------;
     6                     ; Define MCU RAM or Variable Value
     7                     ;----------------------------------------------------------------------;
     8       0001          TCC         ==      0x01        ; TCC计数器
     9       0003          STATUS      ==      0x03        ; 状态寄存器
    10       0005          PORT5       ==      0x05        ; PORT5端口
    11       000E          IOCE        ==      0x0E        ; WDT控制寄存器
    12       000F          IOCF        ==      0x0F        ; 中断控制寄存器
    13       000F          ISR         ==      0x0F        ; 中断状态寄存器
    14       0020          TEMP_A   ==      0x20        ; 保存中断前A的值
    15       0021          TCC_Count   ==      0x21        ; 自定义计数器
    16       0006                  num     ==      6
    17                     ;----------------------------MAIN PROGRAM------------------------------;
    18                             ORG     0x00
    19 00000 1416                  JMP     TCC_Start
    20                     
    21                             ORG     0x08
    22                     ;----------------------------------------------------------------------;
    23 00008               TCC_int:
    24 00008 0060                  MOV     TEMP_A, A    ; 保存A的值
    25 00009 1806                  MOV     A, @0x06        ; TCC计数次数=250
    26 0000A 0041                  MOV     TCC, A          ; 置TCC初始
    27 0000B 18FE                  MOV     A, @0xFE        ; 保留不需要设置的状态位
    28 0000C 02CF                  AND     ISR, A          ; 清中断标志位
    29                     
    30 0000D 0561                  INC     TCC_Count       ; 每中断一次TCC_Count计数器加1
    31 0000E 0E83                  JBS     STATUS, 2       ; 判断TCC_Count是否溢出
    32 0000F 1414                  JMP     Int_out         ; 没有溢出
    33 00010 1806                  MOV     A, @num         ; 溢出
    34 00011 0061                  MOV     TCC_Count, A    ; 重新置TCC初值
    35                     
    36 00012 1802                  MOV     A, @0x02        ; 每半秒PORT5.1(可接LED灯)取反
    37 00013 0345                  XOR     PORT5, A
    38 00014               Int_out:
    39 00014 0420                  MOV     A, TEMP_A    ; 恢复A的值
    40 00015 0013                  RETI                    ; 中断返回
    41                     ;----------------------------------------------------------------------;
    42 00016               TCC_Start:
    43 00016 1800                  MOV     A, @0x00
    44 00017 000E                  IOW     IOCE            ; 关闭看门狗
    45 00018 1800                  MOV     A, @0x00
    46 00019 0005                  IOW     PORT5              ; Port5为输出口
    47 0001A 0845                  BC      PORT5, 1           ; 关闭LED灯
    48                     
    49 0001B 0014                  CONTR
    50 0001C 18D0                  MOV     A, @0b11010000  ; 保留不需要设置的状态位
    51 0001D 1903                  OR      A, @0b00000011  ; 预除数为16
    52 0001E 0002                  CONTW
    53                     
    54 0001F 1801                  MOV     A, @0x01           ; 允许计数器中断
    55 00020 000F                  IOW     IOCF
    56 00021 0010                  ENI                     ; 开中断
    57                     
    58 00022 1422                  JMP     $
    59                             END
  0 Error(s), 0 Warning(s), 0 User Message(s)

⌨️ 快捷键说明

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