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

📄 main.lst

📁 用PWM方波调节LED亮度
💻 LST
📖 第 1 页 / 共 2 页
字号:
004D                 133     T1INTSVC_endif1:
                     134             BHI     T1INTSVC_t, PwmValue, T1INTSVC_else2
0054 D291            139             SETB    PWM
0056 8002            140             SJMP    T1INTSVC_endif2
0058                 141     T1INTSVC_else2:
0058 C291            142             CLR     PWM
005A                 143     T1INTSVC_endif2:
005A D0D0            144             POP     PSW
005C D0E0            145             POP     ACC
005E 32              146             RETI
                     147     
                     148     
                     149     ;*******************************************************************************
                     150     ;函数:Delay()
                     151     ;功能:延时0.01~2.56s
                     152     ;参数:
                     153     ;       t>0时,延时(t*0.01)s
                     154     ;       t=0时,延时2.56s
                     155     ;说明:
                     156     ;       晶振频率为11.0592MHz
                     157     ;*******************************************************************************
                     158     ; void Delay(unsigned char t)
                     159     ; t = R7
005F                 160     Delay:
005F 758CDC          161             MOV     TH0, #0DCH
0062 758A00          162             MOV     TL0, #00H
0065 D28C            163             SETB    TR0
0067 308DFD          164             JNB     TF0, $
006A C28C            165             CLR     TR0
006C C28D            166             CLR     TF0
006E DFEF            167             DJNZ    R7, Delay
0070 22              168             RET
                     169     
                     170     
                     171     ;*******************************************************************************
                     172     ;函数:SysInit()
                     173     ;功能:系统初始化
                     174     ;*******************************************************************************
0071                 175     SysInit:
0071 5389F0          176             ANL     TMOD, #0xF0
0074 438901          177             ORL     TMOD, #0x01     ;将T0设置成16位定时器
0077 53890F          178             ANL     TMOD, #0x0F
007A 438910          179             ORL     TMOD, #0X10     ;将T1设置成16为定时器
007D 753004          180             MOV     PwmValue, #(PWM_MAX/2)  ;设置PWM初值
0080 D291            181             SETB    PWM
0082 758DFF          182             MOV     TH1, #0xFF
0085 758B00          183             MOV     TL1, #0x00
0088 D28E            184             SETB    TR1
008A D2AB            185             SETB    ET1
008C D2AF            186             SETB    EA
008E 22              187             RET
                     188     
                     189     
                     190     ;*******************************************************************************
                     191     ;函数:void main()
                     192     ;功能:主函数
                     193     ;*******************************************************************************
008F                 194     main:
008F 120071          195             LCALL   SysInit         ;系统初始化
0092                 196     main_Loop1:
0092 7F05            197             MOV     R7, #5
0094 12005F          198             LCALL   Delay           ;延时50ms(按键消抖动)
A51 MACRO ASSEMBLER  MAIN                                                                 10/19/2006 17:37:34 PAGE     4

0097 120027          199             LCALL   KeyScan         ;扫描键盘
009A 7002            200             JNZ     main_case1      ;如果有键按下,退出循环
009C 80F4            201             SJMP    main_Loop1      ;按键扫描的循环
009E                 202     main_case1:
009E B42B0B          203             CJNE    A, #'+', main_case2
                     204             BHS     PwmValue, #(PWM_MAX-1), main_Loop2
00A8 0530            209             INC     PwmValue
00AA 8009            210             SJMP    main_Loop2
00AC                 211     main_case2:
00AC B42D06          212             CJNE    A, #'-', main_Loop2
00AF E530            213             MOV     A, PwmValue
00B1 6002            214             JZ      main_Loop2
00B3 1530            215             DEC     PwmValue
00B5                 216     main_Loop2:
00B5 7F05            217             MOV     R7, #5
00B7 12005F          218             LCALL   Delay           ;延时50ms
00BA 120027          219             LCALL   KeyScan         ;按键扫描
00BD 60D3            220             JZ      main_Loop1      ;如果按键抬起,退出循环
00BF 80F4            221             SJMP    main_Loop2
                     222     
                     223     
                     224     ;*******************************************************************************
                     225     ;程序结束
                     226     ;*******************************************************************************
                     227             END
A51 MACRO ASSEMBLER  MAIN                                                                 10/19/2006 17:37:34 PAGE     5

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
DELAY. . . . . . .  C ADDR   005FH   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ET1. . . . . . . .  B ADDR   00A8H.3 A   
K3 . . . . . . . .  B ADDR   00B0H.4 A   
K4 . . . . . . . .  B ADDR   00B0H.5 A   
KEYSCAN. . . . . .  C ADDR   0027H   A   
KEYSCAN_00 . . . .  C ADDR   002DH   A   
KEYSCAN_10 . . . .  C ADDR   0032H   A   
MAIN . . . . . . .  C ADDR   008FH   A   
MAIN_CASE1 . . . .  C ADDR   009EH   A   
MAIN_CASE2 . . . .  C ADDR   00ACH   A   
MAIN_LOOP1 . . . .  C ADDR   0092H   A   
MAIN_LOOP2 . . . .  C ADDR   00B5H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PREMAIN. . . . . .  C ADDR   001EH   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
PWM. . . . . . . .  B ADDR   0090H.1 A   
PWMVALUE . . . . .  D ADDR   0030H   A   
PWM_MAX. . . . . .  N NUMB   0008H   A   
SP . . . . . . . .  D ADDR   0081H   A   
SYSINIT. . . . . .  C ADDR   0071H   A   
T1INTSVC . . . . .  C ADDR   0033H   A   
T1INTSVC_ELSE2 . .  C ADDR   0058H   A   
T1INTSVC_ENDIF1. .  C ADDR   004DH   A   
T1INTSVC_ENDIF2. .  C ADDR   005AH   A   
T1INTSVC_T . . . .  D ADDR   0031H   A   
TF0. . . . . . . .  B ADDR   0088H.5 A   
TH0. . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TR1. . . . . . . .  B ADDR   0088H.6 A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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