📄 pbp_interput2.asm
字号:
; PicBasic Pro Compiler 2.46, (c) 1998, 2005 microEngineering Labs, Inc. All Rights Reserved.
MPASMWIN_USED EQU 1
INCLUDE "C:\PBP246\16F877A.INC"
; Define statements.
; C:\PBP246\16F877A.BAS 00018 DEFINE CODE_SIZE 8
#define CODE_SIZE 8
RAM_START EQU 00020h
RAM_END EQU 001EFh
RAM_BANKS EQU 00004h
BANK0_START EQU 00020h
BANK0_END EQU 0007Fh
BANK1_START EQU 000A0h
BANK1_END EQU 000EFh
BANK2_START EQU 00110h
BANK2_END EQU 0016Fh
BANK3_START EQU 00190h
BANK3_END EQU 001EFh
EEPROM_START EQU 02100h
EEPROM_END EQU 021FFh
; C:\PBP246\PBPPIC14.RAM 00012 R0 VAR WORD BANK0 SYSTEM ' System Register
R0 EQU RAM_START + 000h
; C:\PBP246\PBPPIC14.RAM 00013 R1 VAR WORD BANK0 SYSTEM ' System Register
R1 EQU RAM_START + 002h
; C:\PBP246\PBPPIC14.RAM 00014 R2 VAR WORD BANK0 SYSTEM ' System Register
R2 EQU RAM_START + 004h
; C:\PBP246\PBPPIC14.RAM 00015 R3 VAR WORD BANK0 SYSTEM ' System Register
R3 EQU RAM_START + 006h
; C:\PBP246\PBPPIC14.RAM 00016 R4 VAR WORD BANK0 SYSTEM ' System Register
R4 EQU RAM_START + 008h
; C:\PBP246\PBPPIC14.RAM 00017 R5 VAR WORD BANK0 SYSTEM ' System Register
R5 EQU RAM_START + 00Ah
; C:\PBP246\PBPPIC14.RAM 00018 R6 VAR WORD BANK0 SYSTEM ' System Register
R6 EQU RAM_START + 00Ch
; C:\PBP246\PBPPIC14.RAM 00019 R7 VAR WORD BANK0 SYSTEM ' System Register
R7 EQU RAM_START + 00Eh
; C:\PBP246\PBPPIC14.RAM 00020 R8 VAR WORD BANK0 SYSTEM ' System Register
R8 EQU RAM_START + 010h
; C:\PBP246\PBPPIC14.RAM 00026 FLAGS VAR BYTE BANK0 SYSTEM ' Static flags
FLAGS EQU RAM_START + 012h
; C:\PBP246\PBPPIC14.RAM 00025 GOP VAR BYTE BANK0 SYSTEM ' Gen Op Parameter
GOP EQU RAM_START + 013h
; C:\PBP246\PBPPIC14.RAM 00022 RM1 VAR BYTE BANK0 SYSTEM ' Pin 1 Mask
RM1 EQU RAM_START + 014h
; C:\PBP246\PBPPIC14.RAM 00024 RM2 VAR BYTE BANK0 SYSTEM ' Pin 2 Mask
RM2 EQU RAM_START + 015h
; C:\PBP246\PBPPIC14.RAM 00021 RR1 VAR BYTE BANK0 SYSTEM ' Pin 1 Register
RR1 EQU RAM_START + 016h
; C:\PBP246\PBPPIC14.RAM 00023 RR2 VAR BYTE BANK0 SYSTEM ' Pin 2 Register
RR2 EQU RAM_START + 017h
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00001 loops VAR WORD
_loops EQU RAM_START + 018h
; C:\PBP246\16F877A.BAS 00022 PORTL VAR PORTB
_PORTL EQU PORTB
; C:\PBP246\16F877A.BAS 00023 PORTH VAR PORTC
_PORTH EQU PORTC
; C:\PBP246\16F877A.BAS 00024 TRISL VAR TRISB
_TRISL EQU TRISB
; C:\PBP246\16F877A.BAS 00025 TRISH VAR TRISC
_TRISH EQU TRISC
#define _PORTC_0 PORTC, 000h
#define _PORTC_3 PORTC, 003h
#define _PORTC_2 PORTC, 002h
INCLUDE "PBP_INTERPUT2.MAC"
INCLUDE "C:\PBP246\PBPPIC14.LIB"
; C:\PBP246\16F877A.BAS 00012 BANK0 $0020, $007F
; C:\PBP246\16F877A.BAS 00013 BANK1 $00A0, $00EF
; C:\PBP246\16F877A.BAS 00014 BANK2 $0110, $016F
; C:\PBP246\16F877A.BAS 00015 BANK3 $0190, $01EF
; C:\PBP246\16F877A.BAS 00016 EEPROM $2100, $21FF
; C:\PBP246\16F877A.BAS 00017 LIBRARY "PBPPIC14"
; C:\PBP246\16F877A.BAS 00018 DEFINE CODE_SIZE 8
; C:\PBP246\16F877A.BAS 00020 include "PIC14EXT.BAS"
; C:\PBP246\16F877A.BAS 00027 include "PBPPIC14.RAM"
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00002 loops = 0
MOVE?CW 000h, _loops
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00004 TRISC = 255
MOVE?CB 0FFh, TRISC
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00005 PortC = 0
MOVE?CB 000h, PORTC
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00007 INTCON = 0
MOVE?CB 000h, INTCON
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00008 PIR1 = $00 ' clear interupt flags
MOVE?CB 000h, PIR1
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00010 PortC.0 = 1
MOVE?CT 001h, _PORTC_0
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00012 TMR1H = $3C ' load timer1 with $3CAF
MOVE?CB 03Ch, TMR1H
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00013 TMR1L = $AF
MOVE?CB 0AFh, TMR1L
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00014 T1CON = %00000001 ' 开启TMR1, 预分频
MOVE?CB 001h, T1CON
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00015 INTCON = $C0 ' 开启全局中断
MOVE?CB 0C0h, INTCON
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00016 PIE1 = $01 ' 开启TMR1中断
MOVE?CB 001h, PIE1
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00018 on interrupt goto ChangeDisplay
ONINT?LL _ChangeDisplay, L00001
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00020 loop:
LABEL?L _loop
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00021 pause 1
ICALL?L L00001
PAUSE?C 001h
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00022 goto loop
ICALL?L L00001
GOTO?L _loop
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00024 DISABLE
DISABLE?
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00025 ChangeDisplay:
LABEL?L _ChangeDisplay
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00026 loops = loops + 1
ADD?WCW _loops, 001h, _loops
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00027 Toggle PortC.3
TOGGLE?T _PORTC_3
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00028 If loops = 20 Then
CMPNE?WCL _loops, 014h, L00002
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00029 loops = 0
MOVE?CW 000h, _loops
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00030 Toggle PortC.2
TOGGLE?T _PORTC_2
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00031 EndIf
LABEL?L L00002
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00033 TMR1H = $3C ' load timer1 with $3CAF
MOVE?CB 03Ch, TMR1H
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00034 TMR1L = $AF
MOVE?CB 0AFh, TMR1L
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00035 PIR1 = $00 ' clear interrupt flags
MOVE?CB 000h, PIR1
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00036 RESUME
RESUME?
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00037 ENABLE
ENABLE?
; D:\MCD\PRACTISE\PBP_INTERPUT2.BAS 00039 End
ICALL?L L00001
END?
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -