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

📄 shuma-anjian.lst

📁 义隆单片机控制8个LED的渐明渐暗
💻 LST
字号:
     1                     ; ===========================================
     2                     ;中断方式实现内部TCC功能
     3                     ;晶振=4MHZ,指令周期为4个时钟 
     4                     ;============================================
     5                     ;--------------------------------------------------
     6                     ;       定义变量
     7                     ;-------------------------------------------------------
     8       0001          TCC         ==      0x01
     9       0002          pc          ==      0x02
    10       0003          status      ==      0x03        ; 状态寄存器
    11       0005          PORT5       ==      0x05        ; PORT5端口
    12       0006          port6       ==      0x06
    13       000B          IOCB        ==      0x0b
    14       000E          IOCE        ==      0x0E        ; WDT控制寄存器
    15       000F          IOCF        ==      0x0F        ; 中断控制寄存器
    16       000F          ISR         ==      0x0F        ; 中断状态寄存器
    17       0010          A_BUF       ==      0x10        ; 保存中断前A的值
    18       0011          TCC_Count   ==      0x11        ; 自定义计数器
    19       0012          flag        ==      0x12
    20       0013          flag1       ==      0x13
    21       0014          count       ==      0x14
    22       0015          temp        ==      0x15
    23       00F6          num         ==      246
    24       0002          Z           ==      2
    25       0000          c           ==      0
    26                     ;----------------------------主程序------------------------------;
    27                             ORG     0x00
    28 00000 1418                  JMP     tcc_start
    29                             ORG     0x08
    30                     ;----------------------------------------------------------------------;
    31 00008               TCC_INT:
    32 00008 0050                  MOV     A_BUF, A       ; 保存A的值
    33 00009 180E                  mov     a,@0x0e
    34 0000A 0041                  mov     TCC,a
    35 0000B 18FE                  MOV     A, @0xFE        
    36 0000C 02CF                  AND     ISR, A          ; 清中断标志位
    37 0000D 0A13                  bs      flag1,0         ;2ms的时间到
    38 0000E 1802                  mov     a,@0x02
    39 0000F 0346                  xor     port6,a          ;一秒取反输出(P5.0LED)
    40 00010 0551                  INC     TCC_Count       ; 每中断一次TCC_Count计数器加1
    41 00011 0E83                  JBS     status,Z        ; 判断TCC_Count是否溢出
    42 00012 1416                  JMP     TCC_out         ; 没有溢出
    43 00013 18F6                  mov     a,@num          ;20ms的时间到
    44 00014 0051                  mov     TCC_Count,a
    45 00015 0A12                  bs      flag,0
    46 00016               TCC_out:
    47                             ;bs     port6,1
    48 00016 0410                  MOV     A, A_BUF        ; 恢复A的值
    49 00017 0013                  RETI                    ; 中断返回
    50                     ;----------------------------------------------------------------------;
    51 00018               tcc_start:
    52 00018 1800                  MOV     A, @0x00
    53 00019 000E                  IOW     IOCE               ; 关闭看门狗
    54 0001A 1800                  MOV     A, @0x00
    55 0001B 0005                  IOW     PORT5              ; Port5为输出口
    56 0001C 18EF                  mov     a,@0xef            ;p60为下拉电阻
    57 0001D 000B                  IOW     IOCB
    58 0001E 1809                  mov     a,@0x09           ;pp64-p67为输出口
    59 0001F 0006                  iow     port6             ;p60为按键输入口,p61为数码管的动态位
    60 00020 0812                  bc      flag,0
    61 00021 0813                  bc      flag1,0
    62 00022 0846                  bc      port6,1
    63 00023 00D4                  clr     count
    64 00024 00D5                  clr     temp
    65 00025 18F6                  mov     a,@num
    66 00026 0051                  mov     TCC_Count,a
    67 00027 18D0                  MOV     A, @0b11010000           ; 保留不需要设置的状态位
    68 00028 1902                  OR      A, @0b00000010           ; 预除数为8
    69 00029 0002                  CONTW
    70 0002A 1801                  MOV     A, @0x01           ; 允许计数器中断
    71 0002B 000F                  IOW     IOCF                                        
    72 0002C 0010                  ENI                       ; 开中断
    73 0002D               main:
    74                            
    75 0002D 0E06                  jbs     port6,0
    76 0002E 1448                  jmp     main_out
    77 0002F 0E12                  jbs     flag,0
    78 00030 1448                  jmp     main_out
    79 00031 0812                  bc      flag,0
    80 00032 0E06                  jbs     port6,0
    81 00033 1448                  jmp     main_out
    82 00034               key_in:
    83 00034 0C06                  jbc     port6,0
    84 00035 1434                  jmp     key_in
    85 00036 0554                  inc     count
    86 00037 180A                  mov     a,@10
    87 00038 0114                  sub     a,count
    88 00039 0C03                  jbc     status,c
    89 0003A 00D4                  clr     count
    90                             
    91 0003B               main_next:        
    92 0003B 0E13                  jbs     flag1,0
    93 0003C 143B                  jmp     main_next
    94 0003D 0813                  bc      flag1,0
    95 0003E 0414                  mov     a,count
    96 0003F 1A0F                  and     a,@0x0f
    97 00040 1049                  call    led_table
    98 00041 0055                  mov     temp,a
    99 00042 028F                  and     a,0x0f
   100 00043 0245                  or      port5,a
   101 00044 0415                  mov     a,temp
   102 00045 1AF0                  and     a,@0xf0
   103 00046 0246                  or      port6,a
   104 00047 00D5                  clr     temp
   105                             ;bs      port6,1
   106                     
   107                       
   108 00048               main_out:
   109 00048 142D                     jmp   main
   110 00049               led_table:
   111 00049 03C2                  add     pc,a
   112 0004A 1C3F                  retl    @0x3f   ;0
   113 0004B 1C06                  retl    @0x06   ;1
   114 0004C 1C5B                  retl    @0x5b   ;2
   115 0004D 1C4F                  retl    @0x4f   ;3
   116 0004E 1C66                  retl    @0x66   ;4
   117 0004F 1C6D                  retl    @0x6d   ;5
   118 00050 1C7D                  retl    @0x7d   ;6
   119 00051 1C07                  retl    @0x07   ;7
   120 00052 1C7F                  retl    @0x7f   ;8
   121 00053 1C6F                  retl    @0x6f   ;9
   122                             END
  0 Error(s), 0 Warning(s), 0 User Message(s)

⌨️ 快捷键说明

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