📄 buaa.lst
字号:
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 + -