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

📄 zh1.lst

📁 the practice of proteus and avr
💻 LST
字号:

AVRASM ver. 1.30  zh1.ASM Thu Apr 19 09:52:31 2007


          .device AT90S8535
          .equ    sph     =$3E
          .equ    spl     =$3D
          .equ    TIMSK   =$39
          .equ    OCR1AH  =$2B
          .equ    OCR1AL  =$2A
          .equ    TCCR1B  =$2E
          .equ    SREG	=$3F
          .equ    TCNT1H	=$2D
          .equ    TCNT1L	=$2C
          .equ	PORTA	=$1B 		
          .equ	DDRA	=$1A 		
          .equ    PINA    =$19
          .equ	PORTC	=$15 		
          .equ	DDRC	=$14 		
          .equ    PINC    =$13
          .equ	PORTD	=$12 		
          .equ	DDRD	=$11 		
          .equ    PIND    =$10
          .def 	ZL     	=r30
          .def 	ZH     	=r31
         
          	.org	$0000
000000 c01e      	rjmp	main
          	.org	$006
000006 c085      	rjmp	t1_cp
         	
000007      tab1:	.db	$3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f,$77,$7c,$39,$5e,$79,$71
000007 063f
000008 4f5b
000009 6d66
00000a 077d
00000b 6f7f
00000c 7c77
00000d 5e39
00000e 7179
00000f      tab2:	.db 	$05,$eb,$05,$99,$04,$fc,$04,$70,$03,$f4,$03,$bc,$03,$54,$02,$f7,$02,$cc,$02,$7e,$02,$38,$01,$fa,$01,$df,$01,$aa,$01,$7b,$01,$66
00000f eb05
000010 9905
000011 fc04
000012 7004
000013 f403
000014 bc03
000015 5403
000016 f702
000017 cc02
000018 7e02
000019 3802
00001a fa01
00001b df01
00001c aa01
00001d 7b01
00001e 6601
         
00001f e002      main:	ldi	r16,$02			;栈指针置初值
000020 bf0e      	out	sph,r16
000021 e50f      	ldi	r16,$5f
000022 bf0d      	out	spl,r16
000023 ef0f      	ldi	r16,$ff			;PA口定义为输出口
000024 bb0a      	out	DDRA,r16
000025 e001      	ldi	r16,$01			;PD0口定义为输出口
000026 bb01      	out	DDRD,r16
000027 e100      	ldi	r16,$10			;允许T1比较匹配A中断
000028 bf09      	out	TIMSK,r16
000029 2700      	clr	r16			;置TCNT1初值为0
00002a bd0c      	out	TCNT1L,r16
00002b bd0d      	out	TCNT1H,r16
00002c e00a      	ldi	r16,$0a			;设置T/C1频率
00002d bd0e      	out	TCCR1B,r16
         	
00002e ef00      lscan:	ldi	r16,$f0
00002f bb04      	out	DDRC,r16
000030 bb05      	out	PORTC,r16
000031 b303      l1:	in	r16,PINC
000032 3f01      	cpi	r16,$f1
000033 f431      	brne	l2
000034 d05d      	rcall	t1ms
000035 b303      	in	r16,PINC
000036 3f01      	cpi	r16,$f1
000037 f411      	brne	l2
000038 e010      	ldi	r17,$00
000039 c014      	rjmp	rscan
00003a 3f02      l2:	cpi	r16,$f2
00003b f429      	brne	l3
00003c d055      	rcall	t1ms
00003d 3f02      	cpi	r16,$f2
00003e f411      	brne	l3
00003f e011      	ldi	r17,$01
000040 c00d      	rjmp	rscan
000041 3f04      l3:	cpi	r16,$f4
000042 f429      	brne	l4
000043 d04e      	rcall	t1ms
000044 3f04      	cpi	r16,$f4
000045 f411      	brne	l4
000046 e012      	ldi	r17,$02
000047 c006      	rjmp	rscan
000048 3f08      l4:	cpi	r16,$f8
000049 f721      	brne	lscan
00004a d047      	rcall	t1ms
00004b 3f08      	cpi	r16,$f8
00004c f709      	brne	lscan
00004d e013      	ldi	r17,$03
00004e e00f      rscan:	ldi	r16,$0f
00004f bb04      	out	DDRC,r16
000050 bb05      	out	PORTC,r16
000051 b303      c1:	in	r16,PINC
000052 3e00      	cpi	r16,$e0
000053 f411      	brne	c2
000054 e020      	ldi	r18,$00
000055 c00b      	rjmp	calcu
000056 3d00      c2:	cpi	r16,$d0
000057 f411      	brne	c3
000058 e021      	ldi	r18,$01
000059 c007      	rjmp	calcu
00005a 3b00      c3:	cpi	r16,$b0
00005b f411      	brne	c4
00005c e022      	ldi	r18,$02
00005d c003      	rjmp	calcu
00005e 3700      c4:	cpi	r16,$70
00005f f671      	brne	lscan
000060 e023      	ldi	r18,$03
         
000061 3010      calcu:	cpi	r17,$00			;计算键号
000062 f411      	brne	calcu1
000063 e010      	ldi	r17,$00
000064 c009      	rjmp	cb
000065 3011      calcu1:	cpi	r17,$01
000066 f411      	brne	calcu2
000067 e014      	ldi	r17,$04
000068 c005      	rjmp	cb
000069 3012      calcu2:	cpi	r17,$02
00006a f411      	brne	calcu3
00006b e018      	ldi	r17,$08
00006c c001      	rjmp	cb
00006d e01c      calcu3:	ldi	r17,$0C
00006e 0f12      cb:	add	r17,r18
00006f 2f41      	mov	r20,r17
000070 0f44      	lsl	r20
000071 e0f0      	ldi	ZH,high(tab2*2)
000072 e1ee      	ldi	ZL,low(tab2*2)
000073 0fe4      	add	ZL,r20
000074 95c8      	lpm
000075 bc0b      	out	OCR1AH,r0
000076 95e3      	inc	ZL
000077 95c8      	lpm
000078 bc0a      	out	OCR1AL,r0
000079 9478      	sei
00007a d00b      	rcall	cqb
00007b ef00      w0:	ldi	r16,$f0			;等待按键释放
00007c bb05      	out	PORTC,r16
00007d b303      w1:	in	r16,PINC
00007e 7f0f      	andi	r16,$ff
00007f 3f00      	cpi	r16,$f0
000080 f421      	brne	w2
000081 94f8      	cli
000082 e000      	ldi	r16,$00
000083 bb0b      	out	PORTA,r16
000084 cfa9      	rjmp	lscan
000085 cff5      w2:	rjmp	w0
         
000086 e0f0      cqb:	ldi	ZH,high(tab1*2)		;7段码的首址给Z
000087 e0ee      	ldi	ZL,low(tab1*2)
000088 0fe1      	add	ZL,r17			;首地址+偏移量
000089 95c8      	lpm				;查表送B口输出
00008a ba0b      	out	PORTA,r0
00008b 9508      	ret
         	
00008c b61f      t1_cp:	in	r1,sreg			;保护标志
00008d b222      	in	r2,PORTD		;PD口取反
00008e 9420      	com	r2
00008f ba22      	out	PORTD,r2
000090 be1f      	out	sreg,r1			;标志恢复
000091 9518      	reti
         
000092 e086      t1ms:	ldi	r24,6			;延时子程序
000093 938f      	push	r24
000094 938f      del2:	push	r24
000095 958a      del3:	dec	r24
000096 f7f1      	brne	del3
000097 918f      	pop	r24
000098 958a      	dec	r24
000099 f7d1      	brne	del2
00009a 918f      	pop	r24
00009b 9508      	ret
Assembly complete with no errors.

⌨️ 快捷键说明

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