📄 psi_end.asm.txt
字号:
;######################################################
; ASM: Vol_L.asm
; CPU: TMP86P807M/N
; DATA: 2004/06/9
; XTAL: 8MHZ
; 油压表程序 ---[0.00--1.00MPa]
;#########################################################
$INCLUDE <T86c807a.H>
$INCLUDE <T86c807b.H>
;
CODE_1 SECTION CODE ABS=0xE000
;
START: NOP
NOP
DI
LD SP,0x013F
SETSYS: LD (SYSCR1),0 ;
LD (SYSCR2),0x80 ;
SETTBT: LD (TBTCR),0x00 ;DVO-BUZZ
SETWDT: LD (WDTCR1),0X0F ;Enable WDT
LD (WDTCR2),0xB1 ;Disable WDT
LD (WDTCR1),0x0F ;
LD (WDTCR2),0x4E ;Enable WDT
SETTC1: LD (TC1CR),0 ;
LD (TC1DRAL),0X60 ;1B
LD (TC1DRAH),0X00 ;B7
; LD (TC1DRB),0 ;
SET (EIRL).7 ;
LD (TC1CR),0X10 ;
SETTC4: LD (TC4CR),16 ;
LD (TTREG4),250 ;250X8=2ms
LD (TC4CR),24 ;START
SET (EIRH).3 ;Enable INT
LD (INTSEL),0 ;int
SETPOR: LD (P0),0XFF ;
LD (P2),0
LD (P3),0Y00000111 ;
LD (STOPCR),0
CALL WORK
RAMCLR: LD HL,0x40 ;40H→HL
LD A,H ;H=0→A
LD BC,0xFF ;0xFF→BC
SRAMCL: LD (HL),A ;A=0→(HL)
INC HL ;HL+1
DEC BC ;BC-1
J F,SRAMCL ;BC≠0→SRAMCL:
;
TEST (P2PRD).0
J F,TSTC
;******************************************************
MAIN: EI
CALL WORK
CALL ADDI
CALL DISP
J MAIN
;******************************************************
WORK: LD (WDTCR1),0x0D ;
LD (WDTCR2),0x4E ;Enable WDT
LD (P0OUTCR),0XFF
LD (P3CR),0Y01111111
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADDI: TEST (FLAG).1
J T,ADND
ADER: CLR (FLAG).1
CALL ADZH
CALL ADBH
LD W,0
LD A,(ADPSI)
LD C,100
DIV WA,C
LD (COM3),A
LD A,W
LD W,0
LD C,10
DIV WA,C
LD (COM2),A
LD (COM1),W
CMP (COM3),2
J CC,ADER
NOP
NOP
NOP
ADND: RET
ADBH: TEST (FLAG).5
J T,ADND
CMP (ADPSI),25
J CS,ADBHS
RET
ADBHS: SET (P3).3
RET
;*******************************************
; 测试程序 *
;*******************************************
TSTC: CLR (P3).0
CLR (P3).1
CLR (P3).2
LD (P0),0Y10100000
CALL DEALY1
LD (P0),0Y10101111
CALL DEALY1
LD (P0),0Y01101000
CALL DEALY1
LD (P0),0Y00101010
CALL DEALY1
LD (P0),0Y00100111
CALL DEALY1
LD (P0),0Y00110010
CALL DEALY1
LD (P0),0Y00110000
CALL DEALY1
LD (P0),0Y10101011
CALL DEALY1
LD (P0),0Y00100000
CALL DEALY1
LD (P0),0Y00100010
CALL DEALY1
NOP
LOOP: LD (WDTCR1),0x0D ;
LD (WDTCR2),0x4E ;Enable WDT
LD (P0),0
J LOOP
DEALY1: EI
LD (WDTCR1),0x0D ;
LD (WDTCR2),0x4E ;Enable WDT
TEST (FLAG).1
J T,DEALY1
CLR (FLAG).1
RET
;*******************************************
; 显示程序 *
;*******************************************
ADZH: CALL RDADC
CMP (ADMPA),110
J CC,ADZH1
LD C,A
LD HL,PSITAB
LD A,(HL+C)
LD (ADPSI),A
CMP (ADPSI),25
J CC,ADBHZ
RET
ADBHZ: SET (FLAG).5
RET
ADZH1: SUB (ADMPA),110
LD C,(ADMPA)
LD HL,PSITAB1
LD A,(HL+C)
LD (ADPSI),A
RET
ADINPUT:
LD (ADCCR1),0X25 ;AIN4
LD (ADCCR2),0XD8 ;
SET (ADCCR1).7
ADSLOOP:
TEST (ADCDR2).5
J T,ADSLOOP
LD A,(ADCDR1)
RET
;;;;;;<>
RDADC: CALL ADINPUT
LD B,A
CALL ADINPUT
LD C,A
CALL ADINPUT
LD D,A
CALL ADINPUT
LD E,A
CMP BC,DE
J NE,RDADC
LD A,B
LD (ADMPA),A
RET
;*******************************************
; 显示程序 *
;*******************************************
DISP:
LD C,(COM1)
LD HL,LEDTAB
LD A,(HL+C)
LD (DOM1),A
;
LD C,(COM2)
LD HL,LEDTAB
LD A,(HL+C)
LD (DOM2),A
CLR (DOM2).5
;
LD C,(COM3)
LD HL,LEDTAB
LD A,(HL+C)
LD (DOM3),A
;
XIANSHI:
LD A,(DOM1)
LD (P0),A
CLR (P3).0
CALL DEALY
SET (P3).0
LD A,(DOM2)
LD (P0),A
CLR (P3).1
CALL DEALY
SET (P3).1
LD A,(DOM3)
LD (P0),A
CLR (P3).2
CALL DEALY
SET (P3).2
RET
DEALY: LD BC,0X500
LOPF: NOP
DEC BC
J NE,LOPF
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LEDTAB DB 160 ;0
DB 175 ;1
DB 104 ;2
DB 42 ;3
DB 39 ;4
DB 50 ;5
DB 48 ;6
DB 171 ;7
DB 32 ;8
DB 34 ;9
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PSITAB:
DB 100 ;0
DB 99 ;1
DB 98 ;2
DB 97 ;3
DB 96 ;4
DB 95 ;5
DB 94 ;6
DB 93 ;7
DB 92 ;8
DB 90 ;9
DB 88 ;10
DB 86 ;11
DB 84 ;12
DB 82 ;13
DB 80 ;14
DB 79 ;15
DB 78 ;16
DB 76 ;17
DB 75 ;18
DB 73 ;19
DB 71 ;20
DB 70 ;21
DB 69 ;22
DB 69 ;23
DB 68 ;24
DB 67 ;25
DB 66 ;26
DB 65 ;27
DB 65 ;28
DB 64 ;29
DB 63 ;30
DB 62 ;31
DB 61 ;32
DB 60 ;33
DB 60 ;34
DB 59 ;35
DB 58 ;36
DB 58 ;37
DB 57 ;38
DB 56 ;39
DB 55 ;40
DB 54 ;41
DB 54 ;42
DB 53 ;43
DB 52 ;44
DB 52 ;45
DB 51 ;46
DB 50 ;47
DB 50 ;48
DB 49 ;49
DB 49 ;50
DB 48 ;51
DB 48 ;52
DB 48 ;53
DB 47 ;54
DB 47 ;55
DB 46 ;56
DB 46 ;57
DB 46 ;58
DB 45 ;59
DB 45 ;60
DB 44 ;61
DB 44 ;62
DB 43 ;63
DB 43 ;64
DB 42 ;65
DB 42 ;66
DB 41 ;67
DB 41 ;68
DB 40 ;69
DB 40 ;70
DB 40 ;71
DB 39 ;72
DB 39 ;73
DB 39 ;74
DB 38 ;75
DB 38 ;76
DB 38 ;77
DB 37 ;78
DB 37 ;79
DB 37 ;80
DB 36 ;81
DB 36 ;82
DB 36 ;83
DB 35 ;84
DB 35 ;85
DB 35 ;86
DB 35 ;87
DB 34 ;88
DB 34 ;89
DB 34 ;90
DB 34 ;91
DB 33 ;92
DB 33 ;93
DB 33 ;94
DB 32 ;95
DB 32 ;96
DB 32 ;97
DB 31 ;98
DB 31 ;99
DB 31 ;100
DB 31 ;101
DB 30 ;102
DB 30 ;103
DB 30 ;104
DB 30 ;105
DB 30 ;106
DB 29 ;107
DB 29 ;108
DB 29 ;109
DB 28 ;110
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PSITAB1:
DB 28 ;111
DB 28 ;112
DB 27 ;113
DB 27 ;114
DB 27 ;115
DB 26 ;116
DB 26 ;117
DB 26 ;118
DB 25 ;119
DB 25 ;120
DB 25 ;121
DB 25 ;122
DB 24 ;123
DB 24 ;124
DB 24 ;125
DB 23 ;126
DB 23 ;127
DB 23 ;128
DB 22 ;129
DB 22 ;130
DB 22 ;131
DB 21 ;132
DB 21 ;133
DB 21 ;134
DB 21 ;135
DB 20 ;136
DB 20 ;137
DB 20 ;138
DB 20 ;139
DB 19 ;140
DB 19 ;141
DB 19 ;142
DB 19 ;143
DB 18 ;144
DB 18 ;145
DB 18 ;146
DB 18 ;147
DB 17 ;148
DB 17 ;149
DB 17 ;150
DB 17 ;151
DB 16 ;152
DB 16 ;153
DB 16 ;154
DB 16 ;155
DB 15 ;156
DB 15 ;157
DB 15 ;158
DB 15 ;159
DB 15 ;160
DB 14 ;161
DB 14 ;162
DB 14 ;163
DB 14 ;164
DB 13 ;165
DB 13 ;166
DB 13 ;167
DB 13 ;168
DB 12 ;169
DB 12 ;170
DB 12 ;171
DB 12 ;172
DB 11 ;173
DB 11 ;174
DB 11 ;175
DB 11 ;176
DB 10 ;177
DB 10 ;178
DB 10 ;179
DB 10 ;180
DB 10 ;181
DB 10 ;182
DB 9 ;183
DB 9 ;184
DB 9 ;185
DB 8 ;186
DB 8 ;187
DB 8 ;188
DB 8 ;189
DB 7 ;190
DB 7 ;191
DB 7 ;192
DB 6 ;193
DB 6 ;194
DB 6 ;195
DB 6 ;196
DB 5 ;197
DB 5 ;198
DB 5 ;199
DB 5 ;200
DB 4 ;201
DB 4 ;202
DB 4 ;203
DB 4 ;204
DB 3 ;205
DB 3 ;206
DB 3 ;207
DB 3 ;208
DB 2 ;209
DB 2 ;210
DB 2 ;211
DB 2 ;212
DB 1 ;213
DB 1 ;214
DB 1 ;215
DB 1 ;216
DB 0 ;217
DB 0 ;218
DB 0 ;219
DB 0 ;220
DB 0 ;221
DB 0 ;222
DB 0 ;223
DB 0 ;224
DB 0 ;225
DB 0 ;226
DB 0 ;227
DB 0 ;228
DB 0 ;229
DB 0 ;230
DB 0 ;231
DB 0 ;232
DB 0 ;233
DB 0 ;234
DB 0 ;235
DB 0 ;236
DB 0 ;237
DB 0 ;238
DB 0 ;239
DB 0 ;240
DB 0 ;241
DB 0 ;242
DB 0 ;243
DB 0 ;244
DB 0 ;245
DB 0 ;246
DB 0 ;247
DB 0 ;278
DB 0 ;249
DB 0 ;250
DB 0 ;251
DB 0 ;252
DB 0 ;253
DB 0 ;254
DB 0 ;255
;==================================================
INTTC1: EI
INC (TBUF)
CMP (TBUF),200
J EQ,INTC1A
RETI
INTC1A: LD (TBUF),0
SET (FLAG).6
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTTC4: INC (THJK)
CMP (THJK),100
J EQ,INTC4
RETI
INTC4: LD (THJK),0
SET (FLAG).1
RETI
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
NORETI:
RETI
NORETN:
RETN
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
CODE_INTVECT SECTION CODE ABS=0xFFE0
INTVECT:
DW NORETI ;FFE0H (INT5)
DW NORETI ;FFE2H (INT4)
DW NORETI ;FFE4H (INTSEI1)
DW NORETI ;FFE6H (INTADC)
DW INTTC4 ;FFE8H (INT3/INTTC4)
DW NORETI ;FFEAH (INTTC3/INTSEI0)
DW NORETI ;FFECH (INTTxD)
DW NORETI ;FFEEH (INTRxD)
DW INTTC1 ;FFF0H (INTTC1)
DW NORETI ;FFF2H (INTTBT)
DW NORETI ;FFF4H (INT1)
DW NORETI ;FFF6H (INT0)
DW NORETN ;FFF8H (INTWDT)
DW NORETN ;FFFAH (INTATRAP)
DW NORETN ;FFFCH (INTUNDEF/INTSWI)
DW START ;FFFEH (RESET)
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
RAMDATA SECTION DATA ABS=0X40
;;;;;;;;<P3>;;;;;;
SDA EQU 1
SCL EQU 2
;;;;;;;;;;;;;;;;;;
COM1 DSB 1
COM2 DSB 1
COM3 DSB 1
COM4 DSB 1
COM5 DSB 1
DOM1 DSB 1
DOM2 DSB 1
DOM3 DSB 1
DOM4 DSB 1
DOM5 DSB 1
TME1 DSB 1
TME2 DSB 1
TME3 DSB 1
TME4 DSB 1
TME5 DSB 1
FLAG DSB 1
TBUF DSB 1
TBBUF DSB 1
EEWORD DSB 1
EEDATA DSB 1
TBUG DSB 1
TBUH DSB 1
THJK DSB 1
ADPSI DSB 1
ADMPA DSB 1
ADBU1 DSB 1
ADBU2 DSB 1
ADBU3 DSB 1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -