sg6.asm

来自「the practice of proteus and avr」· 汇编 代码 · 共 44 行

ASM
44
字号
.device AT90S8535
.equ    sph     =$3E
.equ    spl     =$3D
.equ	PORTC	=$15 		
.equ	DDRC	=$14 		
.equ    PINC    =$13
.equ    TCCR0   =$33
.equ    TCNT0   =$32
.equ    TIMSK   =$39
.equ    TIFR	=$38
.equ    SREG	=$3F
.def 	ZH     	=r31
.def 	ZL     	=r30

	.org	$0000
	rjmp	main
	.org	$009
	rjmp	t0_ovf
main:	ldi	r16,$02			;栈指针置初值
	out	sph,r16
	ldi	r16,$5f
	out	spl,r16
	ldi	r16,$01			;允许T0溢出中断
	out	TIMSK,r16
	ldi	r16,$05			;1024分频
	out	TCCR0,r16
	ldi	r17,131			;T/C0置初值131
	out	TCNT0,r17
	ldi	r16,$01
	out	TIFR,r16
	ldi	r16,$ff			;PC口作输出
	out	DDRC,r16
	sei
	
here:	rjmp	here

t0_ovf:	in	r1,sreg			;保存sreg
	ldi	r17,131
	out	TCNT0,r17
	in	r18,PORTC		;读C口数据寄存器
	com	r18			;取反
	out	PORTC,r18		;送C口数据寄存器
	out	SREG,r1			;恢复sreg
	reti

⌨️ 快捷键说明

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