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

📄 90keya.asm

📁 单片机开发资料光盘-双龙-686M.zip
💻 ASM
字号:

;                        Pc.4--cs
;                        Pc.3--clk
;                        Pc.2--data
;                        Pc.1--key

.macro   setcs
      sbi  portc,    cs
.endm

.macro   datainput
      cbi  ddrc,     data
.endm

.macro   dataoutput
      sbi  ddrc,     data
.endm

.include"d:\wu\8515def.inc"
	rjmp   reset

.def    temp      =  r16

.def    cnt       =  r17
.def    send_buff =  r18
.def    rec_buff  =  r19
.def	delayr    =  r20

.equ    cs  =  4
.equ    clk =  3
.equ    data=  2
.equ    key =  1

reset:
	ldi   temp,    high(ramend)     ;设堆栈 
	out   sph,     temp
	ldi   temp,    low(ramend)
	out   spl,     temp             ;初始化
	ldi   temp,    $fd
	out   ddrc,    temp
	ldi   temp,    $f7
	out   portc,   temp
main:
	ldi   send_buff,$a4             ;清屏
	rcall send
	setcs
wait:
	sbic  pinc,    key
	rjmp  wait
	ldi   send_buff,0x15            ;接收键盘键值
	rcall send
	rcall receive
	setcs
	ldi   delayr,   15
	rcall delay
	ldi   send_buff,0xc8            ;送键值显示
	rcall send
	mov   send_buff,rec_buff
	rcall send
	setcs
wait1:	
	sbis  pinc,   key
	rjmp  wait1
	rjmp  wait

send:                                   ;发送子程序
	ldi   cnt,     8
	cbi   portc,   cs
	ldi   delayr,  50       ;delay 50us    
	rcall delay
;	cbi   portc,   clk
	ldi   delayr,  10        ;delay 10us
send1:
	lsl   send_buff
	brcs  sset1
sset0:
	cbi   portc,   data
	rjmp  snext1
sset1:
	sbi   portc,   data
snext1:
	nop
	nop
	sbi   portc,   clk
	rcall delay
	nop
	nop
	cbi   portc,   clk
	rcall delay
	dec   cnt
	brne  send1
	cbi   portc,   data
	ret

receive:                                  ;接收子程序
	ldi   cnt,     8
	datainput
	ldi   delayr,  50            
	rcall delay
	ldi   delayr,  10         
receive1:
	sbi   portc,   clk
	rcall delay
	sbis  pinc,    data
	rjmp  rset0
	rjmp  rset1
rset0:
	clc
	rjmp  rnext
rset1:
	sec
rnext:
	rol   rec_buff
	cbi   portc,   clk
	rcall delay
	dec   cnt
	brne  receive1
	dataoutput
	ret
	
delay:                                  ;延时子程序  

	dec   delayr
	brne  delay
	ret
			

⌨️ 快捷键说明

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