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 + -
显示快捷键?