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

📄 led_man.lst

📁 义隆单片机控制8个LED的渐明渐暗
💻 LST
字号:
     1                     ; ===========================================
     2                     ;中断方式实现内部TCC功能
     3                     ;晶振=4MHZ,指令周期为4个时钟 
     4                     ;============================================
     5                     ;--------------------------------------------------
     6                     ;       定义变量
     7                     ;-------------------------------------------------------
     8       0003          R3          ==      0x03        ; 状态寄存器
     9       0005          PORT5       ==      0x05        ; PORT5端口
    10       000E          IOCE        ==      0x0E        ; WDT控制寄存器
    11       000F          IOCF        ==      0x0F        ; 中断控制寄存器
    12       000F          ISR         ==      0x0F        ; 中断状态寄存器
    13       0020          A_BUF       ==      0x20        ; 保存中断前A的值
    14       0021          R3_BUF      ==      0x21        ; 保存中断前的状态
    15       0022          TCC_Count   ==      0x22        ; 自定义计数器
    16                     ;----------------------------主程序------------------------------;
    17                             ORG     0x00
    18 00000 141E                  JMP     main
    19                             ORG     0x08
    20 00008 1410                  JMP     TCC_INT
    21                             ORG     0x10
    22                     ;----------------------------------------------------------------------;
    23 00010               TCC_INT:
    24 00010 0060                  MOV     A_BUF, A       ; 保存A的值
    25 00011 0403                  MOV     A,R3
    26 00012 0061                  MOV     R3_BUF,A        ;保存状态字
    27 00013 18FE                  MOV     A, @0xFE        
    28 00014 02CF                  AND     ISR, A          ; 清中断标志位
    29 00015 0562                  INC     TCC_Count       ; 每中断一次TCC_Count计数器加1
    30 00016 0FE2                  JBS     TCC_Count,7       ; 判断TCC_Count是否溢出
    31 00017 141A                  JMP     TCC_out         ; 没有溢出
    32 00018 00E2                  clr     TCC_Count
    33 00019 04C5                  com     port5           ;一秒取反输出(P5.0LED)
    34 0001A               TCC_out:
    35 0001A 0420                  MOV     A, A_BUF        ; 恢复A的值
    36 0001B 0421                  MOV     A,R3_BUF
    37 0001C 0043                  MOV     R3,A            ;回复R3的值
    38 0001D 0013                  RETI                    ; 中断返回
    39                     ;----------------------------------------------------------------------;
    40 0001E               main:
    41 0001E 1800                  MOV     A, @0x00
    42 0001F 000E                  IOW     IOCE               ; 关闭看门狗
    43 00020 1800                  MOV     A, @0x00
    44 00021 0005                  IOW     PORT5              ; Port5为输出口
    45 00022 0805                  BC      PORT5, 0           ; 关闭LED灯
    46 00023 18D0                  MOV     A, @0xd0           ; 保留不需要设置的状态位
    47 00024 1907                  OR      A, @0x07           ; 预除数为16
    48 00025 0002                  CONTW
    49                     
    50 00026 1801                  MOV     A, @0x01           ; 允许计数器中断
    51 00027 000F                  IOW     IOCF
    52 00028 0010                  ENI                       ; 开中断
    53 00029               loop:
    54 00029 0000                  nop
    55 0002A 0000                  nop
    56 0002B 1429                  jmp     loop
    57                             END
  0 Error(s), 0 Warning(s), 0 User Message(s)

⌨️ 快捷键说明

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