?? qvtetkyc.asm
字號:
org 0000h
ljmp gavc
org 0100h
ADCS1 BIT P3.4 ;TLC0838片選
ADCS2 BIT P3.5 ;TLC0832片選
ADDI BIT P3.6 ;DI,DO共用一個端口,CLK定義端口P3.7
ADDO BIT P3.3
ADCLK BIT P3.7
CHANNEL0 EQU 70H
CHANNEL1 EQU 71H
CHANNEL2 EQU 72H
CHANNEL3 EQU 73H
CHANNEL4 EQU 74H
CHANNEL5 EQU 75H
CHANNEL6 EQU 76H
CHANNEL7 EQU 77H
OVERALL EQU 78H
CHANNEL01 EQU 60H
CHANNEL11 EQU 61H
CHANNEL21 EQU 62H
CHANNEL31 EQU 63H
CHANNEL41 EQU 64H
CHANNEL51 EQU 65H
CHANNEL61 EQU 66H
CHANNEL71 EQU 67H
OVERALL1 EQU 68H
gavc: mov p0,#00h ;開始
mov p2,#00h
clr p1.0
clr p1.1
clr p1.2
setb p1.3
setb p1.4
mov r0,#7fh
igezfwyc: mov @r0,#00h
djnz r0,igezfwyc ;清零
clr p1.5
MOV 79H,#00H ;初始化 ;變化標志位裝入初值
MOV TMOD,#22H ;設定時器工作方式
MOV SCON,#40H
MOV TH1,#0e7H ;速度9600
MOV PCON,#80H
SETB TR1
SETB REN ;允許接收
CLR ADCS2
MOV A,#03H
MOV R7,#3
ACALL ADC
SETB ADCS2
MOV OVERALL,A
CLR ADCS1
MOV A,#03H
ACALL SUBPLUS
MOV CHANNEL0,A
CLR ADCS1
MOV A,#07H
ACALL SUBPLUS
MOV CHANNEL1,A
CLR ADCS1
MOV A,#13H
ACALL SUBPLUS
MOV CHANNEL2,A
CLR ADCS1
MOV A,#17H
ACALL SUBPLUS
MOV CHANNEL3,A
CLR ADCS1
MOV A,#0BH
ACALL SUBPLUS
MOV CHANNEL4,A
CLR ADCS1
MOV A,#0FH
ACALL SUBPLUS
MOV CHANNEL5,A
CLR ADCS1
MOV A,#1BH
ACALL SUBPLUS
MOV CHANNEL6,A
CLR ADCS1
MOV A,#1FH
ACALL SUBPLUS
MOV CHANNEL7,A
ACALL CHANGE
ygsvtkyc: lcall qvtetkyc ;主要程序
lcall fuuwtkyc
jmp ygsvtkyc
qvtetkyc: mov p0,#0ffh ;鍵盤程序
nop
nop
nop
mov p2,#00h
clr p1.0
clr p1.1
clr p1.2
mov a,p0
xrl a,#0ffh
jz rvraxfgk
lcall qvwu
mov a,30h
swap a
orl a,31h
mov 32h,a
mov r0,#099h
lcall thpzjfz1
lcall qvwu
mov a,30h
swap a
orl a,31h
xrl a,32h
jnz rvraxfgk
lcall qvfpdcge
jmp lcallps2
rvraxfgk: mov a ,3ch ;掃描結束
jz lcallps2
mov 34h,#00h
mov 3ch,#00h
lcallps2: lcall ps2
ret
qvwu: mov p2,#00h ;鍵位
clr p1.0
clr p1.1
clr p1.2
mov p0,#0ffh
setb p1.0
mov a,p0
xrl a,#0ffh
jnz txht2tfz
mov 30h,#01h
ljmp gqjzrvra
txht2tfz: setb p1.1 ;第二行
clr p1.0
mov a,p0
xrl a,#0ffh
jnz txht3tfz
mov 30h,#02h
ljmp gqjzrvra
txht3tfz: setb p1.2 ;第三行
clr p1.1
mov a,p0
xrl a,#0ffh
jnz txht4tfz
mov 30h,#03h
ljmp gqjzrvra
txht4tfz: setb p2.7
clr p1.2
mov a,p0
xrl a,#0ffh
jnz txht5tfz
mov 30h,#04h
ljmp gqjzrvra
txht5tfz: setb p2.6
clr p2.7
mov a,p0
xrl a,#0ffh
jnz txht6tfz
mov 30h,#05h
ljmp gqjzrvra
txht6tfz: setb p2.5
clr p2.6
mov a,p0
xrl a,#0ffh
jnz txht7tfz
mov 30h,#06h
ljmp gqjzrvra
txht7tfz: setb p2.4
clr p2.5
mov a,p0
xrl a,#0ffh
jnz txht8tfz
mov 30h,#07h
ljmp gqjzrvra
txht8tfz: setb p2.3
clr p2.4
mov a,p0
xrl a,#0ffh
jnz txht9tfz
mov 30h,#08h
ljmp gqjzrvra
txht9tfz: setb p2.2
clr p2.3
mov a,p0
xrl a,#0ffh
jnz txht10tfz
mov 30h,#09h
ljmp gqjzrvra
txht10tfz:setb p2.1
clr p2.2
mov a,p0
xrl a,#0ffh
jnz txht11tfz
mov 30h,#0ah
ljmp gqjzrvra
txht11tfz:setb p2.0
clr p2.1
mov a,p0
xrl a,#0ffh
jnz gqjzrvra
mov 30h,#0bh
gqjzrvra: mov p2,#00h ;列掃描
clr p1.0
clr p1.1
clr p1.2
mov p0,#0ffh
mov a,p0
clr c
rrc a
jc txhz2gqjz
mov 31h,#01h
ret
txhz2gqjz:rrc a
jc txhz3gqjz
mov 31h,#02h
ret
txhz3gqjz:rrc a
jc txhz4gqjz
mov 31h,#03h
ret
txhz4gqjz:rrc a
jc txhz5gqjz
mov 31h,#04h
ret
txhz5gqjz:rrc a
jc txhz6gqjz
mov 31h,#05h
ret
txhz6gqjz:rrc a
jc txhz7gqjz
mov 31h,#06h
ret
txhz7gqjz:rrc a
jc txhz8gqjz
mov 31h,#07h
ret
txhz8gqjz:rrc a
jc txhz9gqjz
mov 31h,#08h
txhz9gqjz: ret
qvfpdcge: mov dptr,#pbxggez;鍵碼表
mov a,31h
mov b,#0bh
dec a
mul ab
add a,30h
mov b,#02h
mul ab
dec a
dec a
mov 35h,a
movc a,@a+dptr
mov 33h,a
mov a,35h
inc a
movc a,@a+dptr
mov 34h,a
mov 30h,#00h
mov 31h,#00h
mov 3ch,#0ffh
ret
ps2: mov a,3bh
jz vzcepzdcgz
mov a,34h
jz vzonrzdcgz
ljmp vzudpzxfgk
vzcepzdcgz:mov a,33h ;發通碼
jz vzghzgzwhz
mov 3ah,a
lcall vzudpztkyc
vzghzgzwhz:mov a ,34h ;發下一個
jz vzudpzxfgk
mov 3bh,a
lcall vzudpztkyc
LCALL AAAAA
vzudpzxfgk:ret ;發送結束
vzonrzdcgz:mov 3ah,#00h ;發斷碼
mov 3bh,#00h
ret
mov a,3ah
jz vzghzgzwh
mov 3ah,#00h
lcall vzudpztkyc
vzghzgzwh: mov a,#0f0h ;發下一個
lcall vzudpztkyc
mov a,3bh
mov 3bh,#00h
lcall vzudpztkyc
jmp vzudpzxfgk
vzudpztkyc:jz aaaa ;發送程序
jmp bbbb
aaaa: ljmp ujpbabzxfgk ;單字節發送結束
bbbb: mov 36h,a
clr c
mov r3,#08h
mov 37h,#0ffh
sucwwuz: djnz r3,tqwu ;校驗位
ljmp sucwxfgk
tqwu: rrc a
jnc gizbczrcz
mov 38h,a
mov a,37h
cpl a
mov 37h,a
mov a,38h
gizbczrcz: ljmp sucwwuz ;不取反
sucwxfgk: mov a,p1 ;校驗結束
anl a,#00001000b
jz sucwxfgk
mov r0,#05h
lcall thpzjfz
mov a,p1
anl a,#00001000b
jz sucwxfgk
mov a,p1
anl a,#00010000b
jz sucwxfgk
mov r0,#02h
lcall thpzjfz
clr p1.4
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -