17khz150ms.asm
来自「中颖单片机sh6613的一个坐标扫描程序」· 汇编 代码 · 共 2,277 行 · 第 1/5 页
ASM
2,277 行
SBIM Tmp0,01H ;每次减1
BC DelayNus_LOOP
NOP
RTNI
Delay70us:
LDI Tmp0,0AH
Delay70us_LOOP:
NOP
SBIM Tmp0,01H ;每次减1
BC Delay70us_LOOP
NOP
RTNI
DelayHalfms:
LDI Tmp1,0FH
LDI Tmp0,0FH
DelayHalfms_LOOP:
SBIM Tmp0,01H ;每次减1
BC DelayHalfms_LOOP
SBIM Tmp1,01H;
BC DelayHalfms_LOOP
NOP
RTNI
;**************************************
;************************************************************
; 延时5 毫秒子程序
;************************************************************
DELAY_5MS:
LDI Tmp2,03H ;设置初始值
LDI Tmp1,04H
LDI Tmp0,00H
DELAY_5MS_LOOP:
SBIM Tmp0,01H ;每次减1
LDI Tmp3 ,00H
SBCM Tmp1,00H
LDI Tmp3 ,00H
SBCM Tmp2,00H
BC DELAY_5MS_LOOP
NOP
RTNI
;*************************口中断服务程序**********************
;;;***********************定时器0中断服务程序*****************************
T0INT:
STA TMPER,00H;
LDA TimerFlg,00H;
BAZ AllRowScan ;扫描所有列
square:
LDI Tmp6,00H;
ADIM Tmp6,00H;
SBI CurrentChnL,0EH;
LDI Tmp6,01H;
SBC CurrentChnH,00H;
BC IO_Output ;用io口输出
JMP Seg_Output;用seg口输出
IO_Output:
ADIM Tmp6,00H;
LDA PoutH,00H;
BA0 IO_OutPutL
LDA CurrentChnH,00H;
BA1 PA_3H
LDA CurrentChnL,00H;
BA0 PA_2H
NOP
NOP
LDI PORTA,0011B;pa.1口输出扫描低
LDI PoutH,01H;
JMP ENDO
PA_3H: NOP
NOP
NOP
NOP
LDI PORTA,1001B;pa.3口输出扫描低
LDI PoutH,01H;
JMP ENDO
PA_2H: NOP
NOP
LDI PORTA,0101B;pa.2口输出扫描低
LDI PoutH,01H;
JMP ENDO
IO_OutPutL:
LDA CurrentChnH,00H;
BA1 PA_3L
LDA CurrentChnL,00H;
BA0 PA_2L
NOP
NOP
LDI PORTA,0001B;pa.1口输出扫描低
LDI PoutH,00H;
JMP ENDO
PA_3L: NOP
NOP
NOP
NOP
LDI PORTA,0001B;pa.3口输出扫描低
LDI PoutH,00H;
JMP ENDO
PA_2L: NOP
NOP
LDI PORTA,0001B;pa.2口输出扫描低
LDI PoutH,00H;
JMP ENDO
Seg_Output:
LdI DPH,0110B ;得到300h的基地址
LdI DPM,0101B
LdI DPL,0000B
LDA CurrentChnL,00H;
ADCM DPL,0000B;
LDA CurrentChnH,00H;
ADCM DPM,00H;
LDA PoutH,00H;
BA0 POUTl
POUTh:
LDI INX,1111B;
LDI PoutH,01H;
JMP ENDO
POUTl:
LdI INX,0000B;
LDI PoutH,00H;
JMP ENDO
AllRowScan:
LDA PageFlg,00H;
BNZ ScanRight
ScanLeft:
LdI DPH,0110B ;得到30Fh的基地址,列的基地址
LdI DPM,0101B
LdI DPL,1111B
LDA PoutH,00H;
BA0 LeftPoutRowL
;电平置高
LDI INX,0FH;0
LDI DPM,0110B
LDI DPL,0000B;
LDI INX,0FH;1
LDI DPL,0001B;
LDI INX,0FH;2
LDI DPL,0010B;
LDI INX,0FH;3
LDI DPL,0011B;
LDI INX,0FH;4
LDI DPL,0100B;
LDI INX,0FH;5
LDI DPL,0101B;
LDI INX,0FH;6
LDI DPL,0110B;
LDI INX,0FH;7
LDI DPL,0111B;
LDI INX,0FH;8
LDI PoutH,01H;
JMP ENDO
;电平置高
LeftPoutRowL:
LDI INX,00H;0
LDI DPM,0110B
LDI DPL,0000B;
LDI INX,00H;1
LDI DPL,0001B;
LDI INX,00H;2
LDI DPL,0010B;
LDI INX,00H;3
LDI DPL,0011B;
LDI INX,00H;4
LDI DPL,0100B;
LDI INX,00H;5
LDI DPL,0101B;
LDI INX,00H;6
LDI DPL,0110B;
LDI INX,00H;7
LDI DPL,0111B;
LDI INX,00H;8
LDI PoutH,00H;
JMP ENDO
ScanRight:
LdI DPH,0110B ;得到318h的基地址,列的基地址
LdI DPM,0110B
LdI DPL,1000B
LDA PoutH,00H;
BA0 RightPoutRowL
LDI INX,0FH;0
LDI DPL,1001B;
LDI INX,0FH;1
LDI DPL,1010B;
LDI INX,0FH;2
LDI DPL,1011B;
LDI INX,0FH;3
LDI DPL,1100B;
LDI INX,0FH;4
LDI DPL,1101B;
LDI INX,0FH;5
NOP
NOP
NOP
NOp
NOP
LDI PORTA,1111B;
LDI PoutH,01H;
JMP ENDO
RightPoutRowL:
LDI INX,00H;0
LDI DPL,1001B;
LDI INX,00H;1
LDI DPL,1010B;
LDI INX,00H;2
LDI DPL,1011B;
LDI INX,00H;3
LDI DPL,1100B;
LDI INX,00H;4
LDI DPL,1101B;
LDI INX,00H;5
NOP
NOP
NOP
NOP
NOP
LDI PORTA,0001B;
LDI PoutH,00H;
ENDO: LDI IEX,0100B;
LDI IRQT,0000B;
LDA TMPER,00H;
RTNI
;*************将位置表读入ram中****************
AA: LDA BankJmpFlg,00H;
BAZ JMPLoadXYTable
JMP CC
JMPLoadXYTable:
JMP BB
ORG 800H
BB: JMP LoadXYTable
CC: JMP ClearDataMemory
;*****************************************
LoadXYTable:
NOP
;******y方向的表格********************
LDI DPL,0000B
LDI DPM,0000B;基地址100h
LDI DPH,0010B;
LDI INX,00H; channel0
ADIM DPL,01H; 0
LDI INX,00H;
ADIM DPL,01H;
LDI INX,0EH; 14
ADIM DPL,01H;
LDI INX,00H;
ADIM DPL,01H;
LDI INX,0BH; 27
ADIM DPL,01H;
LDI INX,01H;
ADIM DPL,01H; channel1
LDI INX,01H; 1
ADIM DPL,01H;
LDI INX,00H;
ADIM DPL,01H;
LDI INX,02H; 18
ADIM DPL,01H;
LDI INX,01H;
ADIM DPL,01H;
LDI INX,00H; 32
ADIM DPL,01H;
LDI INX,02H;
ADIM DPL,01H; channel2
LDI INX,02H; 2
ADIM DPL,01H;
LDI INX,00H;
ADIM DPL,01H;
LDI INX,07H; 23
ADIM DPL,01H;
LDI INX,01H;
NOP
LDI DPM,0001B;
LDI DPL,0000B;
NOP
LDI INX,0FH;
ADIM DPL,01H; FFH
LDI INX,0FH;
ADIM DPL,01H; channel3
LDI INX,03H; 3
ADIM DPL,01H; channel3
LDI INX,00H; 3
ADIM DPL,01H;
LDI INX,0FH;
ADIM DPL,01H;
LDI INX,00H; 15
ADIM DPL,01H;
LDI INX,0EH;
ADIM DPL,01H; 30
LDI INX,01H;
ADIM DPL,01H; channel 4
LDI INX,04H;
ADIM DPL,01H; 4
LDI INX,00H;
ADIM DPL,01H;
LDI INX,03H;
ADIM DPL,01H;
LDI INX,01H; 19
ADIM DPL,01H;
LDI INX,0FH;
ADIM DPL,01H;
LDI INX,0FH; FF
ADIM DPL,01H; channel5
LDI INX,06H; 6
ADIM DPL,01H;
LDI INX,00H;
NOP
LDI DPM,0010B;
LDI DPL,0000B;
NOP
LDI INX,00H;
ADIM DPL,01H; 16
LDI INX,01H;
ADIM DPL,01H;
LDI INX,03H;
ADIM DPL,01H; 35
LDI INX,02H;
ADIM DPL,01H;
LDI INX,07H;
ADIM DPL,01H; 7
LDI INX,00H;
ADIM DPL,01H;
LDI INX,04H;
ADIM DPL,01H; 20
LDI INX,01H;
ADIM DPL,01H;
LDI INX,0FH;
ADIM DPL,01H; FF
LDI INX,0FH;
ADIM DPL,01H;
LDI INX,08H;
ADIM DPL,01H; 8
LDI INX,00H;
ADIM DPL,01H;
LDI INX,09H;
ADIM DPL,01H; 25
LDI INX,01H;
ADIM DPL,01H;
LDI INX,01H;
ADIM DPL,01H; 33
LDI INX,02H;
NOP
LDI DPM,0011B;
LDI DPL,0000B;
NOP
LDI INX,09H;
ADIM DPL,01H; 9
LDI INX,00H;
ADIM DPL,01H;
LDI INX,01H;
ADIM DPL,01H; 17
LDI INX,01H;
ADIM DPL,01H;
LDI INX,0CH;
ADIM DPL,01H; 28
LDI INX,01H;
ADIM DPL,01H;
LDI INX,0AH;
ADIM DPL,01H; 10
LDI INX,00H;
ADIM DPL,01H;
LDI INX,05H;
ADIM DPL,01H; 21
LDI INX,01H;
ADIM DPL,01H;
LDI INX,0FH;
ADIM DPL,01H; 31
LDI INX,01H;
ADIM DPL,01H;
LDI INX,0BH;
ADIM DPL,01H; 11
LDI INX,00H;
ADIM DPL,01H;
LDI INX,0AH;
ADIM DPL,01H; 26
LDI INX,01H;
NOP
LDI DPM,0100B;
LDI DPL,0000B;
NOP
LDI INX,04H;
ADIM DPL,01H; 36
LDI INX,02H;
ADIM DPL,01H;
LDI INX,0CH;
ADIM DPL,01H; 12
LDI INX,00H;
ADIM DPL,01H;
LDI INX,0DH;
ADIM DPL,01H; 29
LDI INX,01H;
ADIM DPL,01H;
LDI INX,0FH;
ADIM DPL,01H; FF
LDI INX,0FH;
ADIM DPL,01H;
LDI INX,0DH;
ADIM DPL,01H; 13
LDI INX,00H;
ADIM DPL,01H;
LDI INX,06H;
ADIM DPL,01H; 22
LDI INX,01H;
ADIM DPL,01H;
LDI INX,02H;
ADIM DPL,01H; 34
LDI INX,02H;
ADIM DPL,01H;
LDI INX,00H;
ADIM DPL,01H; F0
LDI INX,0FH;
NOP
LDI DPM,0101B;
LDI DPL,0000B;
NOP
LDI INX,00H;
ADIM DPL,01H; F0
LDI INX,0FH;
ADIM DPL,01H;
LDI INX,00H;
ADIM DPL,01H; F0
LDI INX,0FH;
ADIM DPL,01H;
LDI INX,05H;
ADIM DPL,01H; 5
LDI INX,00H;
ADIM DPL,01H;
LDI INX,08H;
ADIM DPL,01H; 24
LDI INX,01H;
ADIM DPL,01H;
LDI INX,0FH;
ADIM DPL,01H; FF $158-159
LDI INX,0FH;
ADIM DPL,01H;
LDI INX,0FH;
ADIM DPL,01H; FF $15A-15B
LDI INX,0FH;
;******x方向的表格********************
ADIM DPL,01H;
LDI INX,00H;
ADIM DPL,01H;0
LDI INX,00H;
ADIM DPL,01H;
LDI INX,07H;
ADIM DPL,01H; 7
LDI INX,00H;
NOP
LDI DPM,0110B;
LDI DPL,0000B;
NOP
LDI INX,01
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?