⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 完好自适应转速的检测128_32hz—键盘——微调.asm

📁 开发平台,任一MCS-51单片机上,很多程序,如键盘,显示,液晶驱动
💻 ASM
📖 第 1 页 / 共 3 页
字号:
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;2
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;3
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;4
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;5
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;6
;第二行
        LCALL   INCADDR
        INC     HANG
        MOV     LIE,#1
        LCALL   SHANGXIAONE;1
        LCALL   INCADDR
        MOV     LIE,#4
        LCALL   SHANGXIAONE;2
;第三行
        LCALL   INCADDR
        INC     HANG
        MOV     LIE,#1
        LCALL   SHANGXIAONE;1
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;2
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;3
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;4
;第四行
        LCALL   INCADDR
        INC     HANG
        MOV     LIE,#1
        LCALL   SHANGXIAONE;1
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;2
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;3
        LCALL   INCADDR
        INC     LIE
        LCALL   SHANGXIAONE;4

;符号
        MOV     DPTR,#TABMAOHAO
        MOV     HANG,#2
        MOV     LIE,#9
        LCALL   SHANGXIABYTE;  :
        INC     HANG
        MOV     LIE,#9
        LCALL   SHANGXIABYTE;  :
        INC     HANG
        MOV     LIE,#9
        LCALL   SHANGXIABYTE;  :
    ;;;;;;;;;;;
        MOV     DPTR,#TABS
        MOV     HANG,#2
        MOV     LIE,#14
        LCALL   SHANGXIABYTE;  S
        INC     HANG
        MOV     LIE,#15
        LCALL   SHANGXIABYTE;  S
        INC   HANG
        LCALL   SHANGXIABYTE;  S
    ;;;;;;;;;;;
        MOV     DPTR,#TABN
        MOV     HANG,#3
        MOV     LIE,#13
        LCALL   SHANGXIABYTE;   N
        INC     HANG
        LCALL   SHANGXIABYTE;   N
    ;;;;;;;;;;;
        MOV     DPTR,#TABXIE
        MOV     HANG,#3
        MOV     LIE,#14
        LCALL   SHANGXIABYTE;   /
        INC     HANG
        LCALL   SHANGXIABYTE;   /
        RET

INCADDR0:MOV      DPTR,#TABNUM
        CLR C
        MOV     B,#16
        MUL     AB
        ADD     A,DPL
        MOV     DPL,A
        MOV     A,B
        ADDC    A,DPH
        MOV     DPH,A
        RET
INCADDR:
        MOV     A,#32
        ADD     A,DPL
        MOV     DPL,A
        JNC     NCADDROUT
        INC     DPH
NCADDROUT:
        RET
;===============================================

;===============================================
;根据行列值送一个字母或数字   字节首地址放在DPTR里
;先送上半字符,后送下半字符。1字符为16*8
SHANGXIABYTE:
        MOV     A,HANG;计算列地址(1-16)、页地址(1-4)
        DEC     A
        CLR     C
        RLC     A     ;一个字要占用两页,所以*2
	ANL	A,#0FH
	ORL	A,#0B0H
        MOV     YE,A
        MOV     A,LIE
        DEC     A
	CLR	C
	RRC	A
	JNC	SX1
	MOV	LIEL,#8
	SETB	F0
SX1:	ANL	A,#0FH
	ORL	A,#10H
        MOV     LIEH,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        MOV     A,YE    ;页地址
        CALL    OUTI
        MOV     A,LIEH  ;列地址高位
        CALL    OUTI
        MOV     DATAPAGE,#00H;字数据计数
	MOV	LOOPNUM,#8
        LCALL   W_R      ;送字上半字符
        INC     YE
        MOV     A,YE    ;页地址
        CALL    OUTI
        MOV     A,LIEH  ;列地址高位
        CALL    OUTI
	JNB	F0,SX2
        CLR     F0
	MOV	LIEL,#8
SX2:	MOV	LOOPNUM,#8
        ACALL   W_R      ;送字下半字符
        RET
;送半字符
WR2:    MOV     A,LIEL  ;列地址低位
        ACALL   OUTI
        MOV     A,DATAPAGE
        MOVC    A,@A+DPTR
        ACALL   OUTD
        INC     DATAPAGE
        INC     LIEL
        MOV     A,LIEL
        DJNZ	LOOPNUM,WR2
	MOV	LIEL,#0
        RET
;===============================================
;===============================================
;根据行列值送一个汉字   字节首地址放在DPTR里
;先送上半字,后送下半字。1字为16*16
SHANGXIAONE:
        MOV     A,HANG;计算列地址(1-8)、页地址(1-4)
        DEC     A
        CLR     C
        RLC     A     ;一个字要占用两页,所以*2
	ANL	A,#0FH
	ORL	A,#0B0H
        MOV     YE,A
        MOV     A,LIE
        DEC     A
	ANL	A,#0FH
	ORL	A,#10H
        MOV     LIEH,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        MOV     A,YE    ;页地址
        CALL    OUTI
        MOV     A,LIEH  ;列地址高位
        CALL    OUTI
        MOV     DATAPAGE,#00H;字数据计数
	MOV     LIEL,#0
	MOV	LOOPNUM,#16
        ACALL   W_R      ;送字上半字
        INC     YE
        MOV     A,YE    ;页地址
        CALL    OUTI
        MOV     A,LIEH  ;列地址高位
        CALL    OUTI
	MOV	LOOPNUM,#16
        ACALL   W_R      ;送字下半字
        RET
;送半字
W_R:     MOV     A,LIEL  ;列地址低位
        ACALL   OUTI
        MOV     A,DATAPAGE
        MOVC    A,@A+DPTR
        ACALL   OUTD
        INC     DATAPAGE
        INC     LIEL
        MOV     A,LIEL
        DJNZ	LOOPNUM,W_R
     	MOV     LIEL,#0
        RET
;===============================================
;===============================================
RESET:                   ;初始化
        MOV    A,#0E2H   ;复位
        CALL   OUTI

        MOV     A,#0A2H
        CALL    OUTI;SET LCD BAIS
        MOV     A,#0A0H ;ADC=0 S1->S132
        CALL    OUTI
        MOV     A,#0C8H ;SET SHK
        CALL    OUTI
        MOV     A,#2FH
        CALL    OUTI;VF vc vr ON
        CALL    LDELAY

        MOV     A,#81H ;
        CALL OUTI
        CALL    LDELAY
        MOV     A,#028H  ;对比度00-3FH
        CALL OUTI
        CALL    LDELAY
        MOV     A,#0AFH ;DIAPLAY ON
        CALL OUTI
        MOV     A,#060H ;FIRST LINE =COM33
        CALL OUTI
        CALL    LDELAY
        RET
;===============================================

;===============================================
OUTD:                     ;送数据
        SETB   SCLPIN
        CLR    CSPIN
        SETB   RSPIN
        CALL   WBYTE

        SETB   CSPIN
        RET
;===============================================

;===============================================
OUTI:                      ;送指令
        SETB   SCLPIN
        CLR    CSPIN
        CLR    RSPIN
        CALL   WBYTE
        SETB   CSPIN
        RET
;===============================================

;===============================================
WBYTE:  MOV  WEIEN_1,#8          ;送8个位
O_1:
        RLC   A
        MOV   SIDPIN,C
        SETB  SCLPIN
        CLR   SCLPIN
        SETB  SCLPIN
        DJNZ  WEIEN_1,O_1
        RET
;===============================================

;===============================================
LDELAY: MOV     DEL1,#250   ;6mS  延时
LOOP:   MOV     DEL2,#10
        DJNZ    DEL2,$
        DJNZ    DEL1,LOOP
        RET
;===============================================

;===============================================
CLEARALL:                  ;清屏
        MOV     YE,#0B0H;页地址
        MOV     LIEH,#10H ;列地址高位
        MOV     LIEL,#00H ;列地址低位

LOP3:   MOV     A,YE   ;页地址
        CALL    OUTI
LOP2:   MOV     A,LIEH    ;列地址高位
        CALL    OUTI
LOP1:   MOV     A,LIEL   ;列地址低位
        ACALL   OUTI
        MOV     A,#0H   ;送数据
        ACALL   OUTD
        INC     LIEL
        MOV     A,LIEL
        CJNE    A,#10H,LOP1
        MOV     LIEL,#00H ;列地址低位
        INC     LIEH
        MOV     A,LIEH
        CJNE    A,#019H,LOP2
        MOV     LIEH,#10H ;列地址高位
        INC     YE
        MOV     A,YE
        CJNE    A,#0B8H,LOP3
        MOV     YE,#0B0H;页地址
        RET
;===============================================

;===============================================
;       码表
TAB_C:
DB 000H,000H,000H,0F8H,048H,048H,04CH,04BH,04AH,048H,048H,048H,0F8H,000H,000H,000H;
DB 000H,000H,000H,0FFH,044H,044H,044H,044H,044H,044H,044H,044H,0FFH,000H,000H,000H;"自",0

DB 008H,008H,008H,0FFH,088H,048H,000H,098H,048H,028H,00AH,02CH,048H,0D8H,008H,000H;
DB 002H,042H,081H,07FH,000H,000H,040H,042H,042H,042H,07EH,042H,042H,042H,040H,000H;"控",1

DB 010H,008H,004H,0D3H,056H,05AH,052H,05AH,0F4H,053H,056H,05AH,072H,002H,002H,000H;
DB 000H,020H,020H,023H,012H,012H,00AH,006H,0FFH,002H,002H,012H,022H,01EH,000H,000H;"第",2

DB 040H,040H,040H,040H,040H,040H,040H,0FFH,040H,040H,040H,040H,040H,040H,040H,000H;
DB 000H,000H,000H,000H,000H,000H,000H,07FH,000H,000H,000H,000H,000H,000H,000H,000H;"十",3

DB 000H,0FEH,002H,002H,002H,0FEH,002H,002H,0FEH,002H,002H,002H,002H,0FEH,000H,000H;
DB 000H,07FH,028H,024H,023H,020H,020H,020H,021H,022H,022H,022H,022H,07FH,000H,000H;"四",4

DB 000H,020H,038H,0A7H,062H,018H,000H,0FEH,022H,022H,022H,022H,0FEH,000H,000H,000H;
DB 000H,022H,023H,022H,012H,012H,020H,03FH,022H,022H,022H,022H,03FH,020H,020H,000H;"组",5

DB 000H,0FCH,044H,044H,044H,0FCH,010H,090H,010H,010H,010H,0FFH,010H,010H,010H,000H;
DB 000H,007H,004H,004H,004H,007H,000H,000H,003H,040H,080H,07FH,000H,000H,000H,000H;"时",6

DB 000H,0F8H,001H,006H,000H,0F0H,092H,092H,092H,092H,0F2H,002H,002H,0FEH,000H,000H;
DB 000H,0FFH,000H,000H,000H,007H,004H,004H,004H,004H,007H,040H,080H,07FH,000H,000H;"间",7

DB 040H,041H,0CEH,004H,000H,080H,040H,0BEH,082H,082H,082H,0BEH,0C0H,040H,040H,000H;
DB 000H,000H,07FH,020H,090H,080H,040H,043H,02CH,010H,010H,02CH,043H,0C0H,040H,000H;"设",8

DB 000H,010H,00CH,0A4H,024H,024H,025H,0E6H,024H,024H,024H,024H,014H,00CH,004H,000H;
DB 040H,020H,018H,007H,008H,010H,020H,07FH,042H,042H,042H,042H,040H,040H,000H,000H;"定",9

DB 040H,042H,0CCH,000H,004H,0E4H,024H,024H,0FFH,024H,024H,024H,0E4H,004H,000H,000H;
DB 040H,020H,01FH,020H,048H,049H,045H,043H,07FH,041H,043H,045H,04DH,040H,040H,000H;"速",10

DB 000H,000H,0FCH,004H,024H,024H,0FCH,0A5H,0A6H,0A4H,0FCH,024H,024H,024H,004H,000H;
DB 080H,060H,01FH,080H,080H,042H,046H,02AH,012H,012H,02AH,026H,042H,0C0H,040H,000H;"度",11

DB 000H,010H,00CH,004H,04CH,0B4H,094H,005H,0F6H,004H,004H,004H,014H,00CH,004H,000H;
DB 000H,082H,082H,042H,042H,023H,012H,00AH,007H,00AH,012H,0E2H,042H,002H,002H,000H;"实",12

DB 0FEH,002H,022H,05AH,086H,020H,020H,022H,022H,0E2H,022H,022H,022H,022H,020H,000H;
DB 0FFH,000H,002H,004H,013H,00CH,003H,040H,080H,07FH,000H,001H,002H,01CH,008H,000H;"际",13

DB 040H,042H,0CCH,000H,004H,0E4H,024H,024H,0FFH,024H,024H,024H,0E4H,004H,000H,000H;
DB 040H,020H,01FH,020H,048H,049H,045H,043H,07FH,041H,043H,045H,04DH,040H,040H,000H;"速",14

DB 000H,000H,0FCH,004H,024H,024H,0FCH,0A5H,0A6H,0A4H,0FCH,024H,024H,024H,004H,000H;
DB 080H,060H,01FH,080H,080H,042H,046H,02AH,012H,012H,02AH,026H,042H,0C0H,040H,000H;"度",15

TABMAOHAO:
DB 000H,000H,000H,0C0H,0C0H,000H,000H,000H,000H,000H,000H,030H,030H,000H,000H,000H;":",16
TABN:
DB 008H,0F8H,030H,0C0H,000H,008H,0F8H,008H,020H,03FH,020H,000H,007H,018H,03FH,000H;"N",17
TABXIE:
DB 000H,000H,000H,000H,080H,060H,018H,004H,000H,060H,018H,006H,001H,000H,000H,000H;"/",18
TABS:
DB 000H,070H,088H,008H,008H,008H,038H,000H,000H,038H,020H,021H,021H,022H,01CH,000H;"S",19

TABNUM:
DB 000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,00FH,010H,020H,020H,010H,00FH,000H;"0",20

DB 000H,010H,010H,0F8H,000H,000H,000H,000H,000H,020H,020H,03FH,020H,020H,000H,000H;"1",21

DB 000H,070H,008H,008H,008H,088H,070H,000H,000H,030H,028H,024H,022H,021H,030H,000H;"2",22

DB 000H,030H,008H,088H,088H,048H,030H,000H,000H,018H,020H,020H,020H,011H,00EH,000H;"3",23

DB 000H,000H,0C0H,020H,010H,0F8H,000H,000H,000H,007H,004H,024H,024H,03FH,024H,000H;"4",24

DB 000H,0F8H,008H,088H,088H,008H,008H,000H,000H,019H,021H,020H,020H,011H,00EH,000H;"5",25

DB 000H,0E0H,010H,088H,088H,018H,000H,000H,000H,00FH,011H,020H,020H,011H,00EH,000H;"6",26

DB 000H,038H,008H,008H,0C8H,038H,008H,000H,000H,000H,000H,03FH,000H,000H,000H,000H;"7",27

DB 000H,070H,088H,008H,008H,088H,070H,000H,000H,01CH,022H,021H,021H,022H,01CH,000H;"8",28

DB 000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,031H,022H,022H,011H,00FH,000H;"9",29


END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -