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

📄 buaa.lst

📁 福州大学单片机课程期末考试。利用PIC16F877的脉宽调制功能。用PROTELL、MPLAB编写
💻 LST
📖 第 1 页 / 共 2 页
字号:
MPASM  4.02 Released                                 BUAA.ASM   12-28-2005  13:28:51         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ;-----------------------------------------------------------
                      00002 ;题目2:产生占空比不同的波形,并实时显示开关值
                      00003 ;1002016 林锋杰
                      00004 ;-----------------------------------------------------------
                      00005         LIST      P=16F877
                      00006         #INCLUDE  "P16F877.INC"
                      00001         LIST
                      00002 ; P16F877.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
                      00373         LIST
  00000027            00007 REG     EQU             27H
0000                  00008         ORG 0000H
0000   0000           00009         NOP
                      00010 ;-----------------------------------------------------------
                      00011 ;主程序
                      00012 ;-----------------------------------------------------------
0001   1303           00013 ST      BCF             STATUS,RP1
0002   1683           00014         BSF     STATUS,RP0              ;置位STATUS寄存器PR0位,选择BANK1
0003   3003           00015         MOVLW   03H                     
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0004   0086           00016         MOVWF   TRISB                   ;输入:PB0,PB1
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0005   0188           00017         CLRF    TRISD                   ;输出:PD
                      00018 
0006   1283           00019         BCF             STATUS,RP0              ;清零STATUS寄存器PR0位,选择BANK0
0007   0186           00020         CLRF    PORTB
0008   01A7           00021         CLRF    REG
                      00022 
0009   202C           00023 ST0     CALL    LCD                             ;要求1:开关值在八段显示器上进行实时显示                
000A   2019           00024         CALL    PWM                             ;要求2:产生占空比为25%,50%,75%,100%的波形
000B   200D           00025         CALL    TEST1
000C   2809           00026         GOTO    ST0     
                      00027 
                      00028 ;-----------------------------------------------------------
                      00029 ;按键判断子程序(PORTB)
                      00030 ;-----------------------------------------------------------
000D                  00031 TEST1
000D   3003           00032         MOVLW   03H     
000E   0506           00033         ANDWF   PORTB,W         
000F   1903           00034         BTFSC   STATUS,Z                ;测试低2位是否有键输入
0010   280D           00035         GOTO    TEST1
0011   2035           00036         CALL    DEL10MS                 ;有键输入延时10ms               
0012   3003           00037         MOVLW   03H
0013   0506           00038         ANDWF   PORTB,W
0014   1903           00039         BTFSC   STATUS,Z
0015   280D           00040         GOTO    TEST1
                      00041 
0016   0806           00042         MOVF    PORTB,W
0017   00A7           00043         MOVWF   REG                             ;保存键值到27H
0018   0008           00044         RETURN
                      00045 
                      00046 ;-----------------------------------------------------------
                      00047 ;脉宽调制子程序(PORTC)
                      00048 ;-----------------------------------------------------------
MPASM  4.02 Released                                 BUAA.ASM   12-28-2005  13:28:51         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0019                  00049 PWM
0019   1683           00050         BSF     STATUS,RP0              
001A   3000           00051         MOVLW   00H
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
001B   0087           00052         MOVWF   TRISC
001C   3063           00053         MOVLW   63H                     ;设置周期寄存器初值1/10000= 4 X (1/4000000) X (PR2+1) ,PR2=99,即
                            63H
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
001D   0092           00054         MOVWF   PR2
001E   1283           00055         BCF     STATUS,RP0              
001F   0827           00056         MOVF    REG,W                   ;设置脉宽寄存器初值
0020   2027           00057         CALL    TABLE                   
0021   0095           00058         MOVWF   CCPR1L
0022   300C           00059         MOVLW   0CH                             ;设置CCP1为PWM工作方式
0023   0097           00060         MOVWF   CCP1CON                 
0024   0192           00061         CLRF    T2CON                   ;设置TMR2预分频比1:1
0025   1512           00062         BSF     T2CON,TMR2ON    ;启动TMR2开始计时
0026   0008           00063         RETURN
                      00064 
0027                  00065 TABLE
0027   0782           00066         ADDWF   PCL,F
0028   3419           00067         RETLW   .25                             ;不同占空比,25μs
0029   3432           00068         RETLW   .50                             ;50μs
002A   344B           00069         RETLW   .75                             ;75μs
002B   3464           00070         RETLW   .100                    ;100μs
                      00071 
                      00072 ;-----------------------------------------------------------
                      00073 ;LCD显示子程序(PORTD)
                      00074 ;-----------------------------------------------------------
002C   0827           00075 LCD     MOVF    REG,W
002D   2030           00076         CALL    DISPLAY
002E   0088           00077         MOVWF   PORTD
002F   0008           00078         RETURN
                      00079 
0030                  00080 DISPLAY
0030   0782           00081         ADDWF   PCL,F
0031   343F           00082         RETLW   3FH                             ;0编码
0032   3406           00083         RETLW   06H                             ;1编码
0033   345B           00084         RETLW   5BH                             ;2编码
0034   344F           00085         RETLW   4FH                             ;3编码
                      00086 
                      00087 ;-----------------------------------------------------------
                      00088 ;10ms延时子程序
                      00089 ;一条指令1μs,GOTO指令2μs,((3X256)+5)X13=10,049μs,接近10ms
                      00090 ;-----------------------------------------------------------
0035   300D           00091 DEL10MS MOVLW   0DH     ;外循环常数13
0036   00A0           00092         MOVWF   20H
0037   30FF           00093 L1      MOVLW   0FFH    ;内循环常数256
0038   00A1           00094         MOVWF   21H
Message[305]: Using default destination of 1 (file).
0039   0BA1           00095 L2      DECFSZ  21H
003A   2839           00096         GOTO    L2
Message[305]: Using default destination of 1 (file).
MPASM  4.02 Released                                 BUAA.ASM   12-28-2005  13:28:51         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

003B   0BA0           00097         DECFSZ  20H             ;0则间跳,返回
003C   2837           00098         GOTO    L1
003D   0008           00099         RETURN
                      00100 
                      00101 ;-----------------------------------------------------------
                      00102         END
MPASM  4.02 Released                                 BUAA.ASM   12-28-2005  13:28:51         PAGE  4


SYMBOL TABLE
  LABEL                             VALUE 

ACKDT                             00000005
ACKEN                             00000004
ACKSTAT                           00000006
ADCON0                            0000001F
ADCON1                            0000009F
ADCS0                             00000006
ADCS1                             00000007
ADDEN                             00000003
ADFM                              00000007
ADIE                              00000006
ADIF                              00000006
ADON                              00000000
ADRESH                            0000001E
ADRESL                            0000009E
BCLIE                             00000003
BCLIF                             00000003
BF                                00000000
BRGH                              00000002
C                                 00000000
CCP1CON                           00000017
CCP1IE                            00000002
CCP1IF                            00000002
CCP1M0                            00000000
CCP1M1                            00000001
CCP1M2                            00000002
CCP1M3                            00000003
CCP1X                             00000005
CCP1Y                             00000004
CCP2CON                           0000001D
CCP2IE                            00000000
CCP2IF                            00000000
CCP2M0                            00000000
CCP2M1                            00000001
CCP2M2                            00000002
CCP2M3                            00000003
CCP2X                             00000005
CCP2Y                             00000004
CCPR1H                            00000016
CCPR1L                            00000015
CCPR2H                            0000001C
CCPR2L                            0000001B
CHS0                              00000003
CHS1                              00000004
CHS2                              00000005
CKE                               00000006
CKP                               00000004
CREN                              00000004
CSRC                              00000007
D                                 00000005
DATA_ADDRESS                      00000005
DC                                00000001
DEL10MS                           00000035
DISPLAY                           00000030
MPASM  4.02 Released                                 BUAA.ASM   12-28-2005  13:28:51         PAGE  5


SYMBOL TABLE
  LABEL                             VALUE 

D_A                               00000005
EEADR                             0000010D
EEADRH                            0000010F
EECON1                            0000018C
EECON2                            0000018D
EEDATA                            0000010C
EEDATH                            0000010E
EEIE                              00000004
EEIF                              00000004
EEPGD                             00000007
F                                 00000001
FERR                              00000002
FSR                               00000004
GCEN                              00000007
GIE                               00000007
GO                                00000002
GO_DONE                           00000002
I2C_DATA                          00000005
I2C_READ                          00000002
I2C_START                         00000003
I2C_STOP                          00000004
IBF                               00000007

⌨️ 快捷键说明

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