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

📄 zh11.lst

📁 基于PROTERUS仿真的AVR例子,内容丰富,包含全面,从最简单的I/O操做到通讯例子都有,并有详细的注!释
💻 LST
字号:

AVRASM ver. 1.30  zh11.ASM Mon Feb 25 11:24:14 2008


          .device AT90S8535
          .equ    sph    	=$3E
          .equ    spl    	=$3D
          .equ	PORTA	=$1B
          .equ	DDRA	=$1A
          .equ    PINA    =$19
          .equ	PORTD	=$12
          .equ	DDRD	=$11
          .equ    PIND    =$10
          .def 	ZH     	=r31
          .def 	ZL     	=r30
         
          	.org	$0000
000000 c000      	rjmp	reset
         	
         						
000001 e002      reset:	ldi	r16,$02			;栈指针置初值
000002 bf0e      	out	sph,r16
000003 e50f      	ldi	r16,$5f
000004 bf0d      	out	spl,r16
000005 e000      	ldi	r16,$00
000006 bb0a      	out	DDRA,r16
000007 ef0f      	ldi	r16,$ff
000008 bb01      	out	DDRD,r16
000009 bb0b      	out	PORTA,r16
00000a e013      	ldi	r17,$03
00000b e020      	ldi	r18,$00
         ;**********************************************************
00000c bb12      wait:	out	PORTD,r17		;初始角度,0度
00000d b309      	in	r16,PINA
00000e fd00      	sbrc	r16,0
00000f c001      	rjmp	a0
000010 c003      	rjmp	pos
000011 fd01      a0:	sbrc	r16,1
000012 cff9      	rjmp	wait
000013 c008      	rjmp	neg
         ;**********************************************************
000014 e0f0      pos:	ldi	ZH,high(tab*2)
000015 e9ee      	ldi	ZL,low(tab*2)
000016 95e3      	inc	ZL,r18
error : Garbage at end of line
000017 95c8      	lpm
000018 ba02      	out	PORTD,r0
000019 d027      	rcall	delay
00001a 9523      	inc	r18
00001b c008      	rjmp	key
         ;**********************************************************
00001c e0f0      neg:	ldi	ZH,high(tab*2)
00001d e9ee      	ldi	ZL,low(tab*2)
00001e e026      	ldi	r18,$06			;反转9度
00001f 0fe2      	add	ZL,r18
000020 95c8      	lpm
000021 ba02      	out	PORTD,r0
000022 d01e      	rcall	delay
000023 c000      	rjmp	key
         ;**********************************************************
000024 b309      key:	in	r16,PINA		;读键盘情况
000025 ff00      	sbrs	r16,0
000026 c001      	rjmp	a1
000027 c00b      	rjmp	fz1
000028 3028      a1:	cpi	r18,$08
000029 f409      	brne	loopz			;是结束标志
00002a e020      	ldi	r18,$00
         ;**********************************************************
00002b e0f0      loopz:	ldi	ZH,high(tab*2)
00002c e9ee      	ldi	ZL,low(tab*2)
00002d 0fe2      	add	ZL,r18
00002e 95c8      	lpm
00002f ba02      	out	PORTD,r0		;输出控制脉冲
000030 d010      	rcall	delay			;程序延时
000031 9523      	inc	r18			;地址加1
000032 cff1      	rjmp	key
         ;**********************************************************
000033 ff01      fz1:	sbrs	r16,1
000034 c001      	rjmp	a2
000035 cfee      	rjmp	key
000036 952a      a2:	dec	r18
000037 3f2f      	cpi	r18,$ff
000038 f409      	brne	loopf
000039 e027      	ldi	r18,$07
         ;**********************************************************
00003a e0f0      loopf:	ldi	ZH,high(tab*2)
00003b e9ee      	ldi	ZL,low(tab*2)
00003c 0fe2      	add	ZL,r18
00003d 95c8      	lpm
00003e ba02      	out	PORTD,r0		;输出控制脉冲
00003f d001      	rcall	delay			;程序延时
000040 cfe3      	rjmp	key
         ;**********************************************************
         					;延时100ms
000041 e702      delay:	ldi	r16,114
000042 930f              push	r16			;进栈需2t
000043 930f      de0:	push	r16			;进栈需2t
000044 930f      de1:	push	r16			;进栈需2t
000045 950a      de2:	dec	r16			;-1需1t
000046 f7f1      	brne	de2			;不为0转,为0顺序执行,需1t/2t
000047 910f      	pop	r16			;出栈需2t
000048 950a      	dec	r16			;-1需1t
000049 f7d1      	brne	de1			;不为0转,为0顺序执行,需1t/2t
00004a 910f      	pop	r16			;出栈需2t
00004b 950a      	dec	r16			;-1需1t
00004c f7b1      	brne	de0			;不为0转,为0顺序执行,需1t/2t
00004d 910f      	pop	r16			;出栈需2t
00004e 9508      	ret
         ;**********************************************************
         					;正转模型
00004f      tab:	.db	$02,$06,$04,$0C,$08,$09,$01,$03
00004f 0602
000050 0c04
000051 0908
000052 0301

Assembly complete with no errors.

⌨️ 快捷键说明

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