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

📄 led点阵.s

📁 AVR之ATMega16
💻 S
字号:
	.module LED点阵.c
	.area text(rom, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.dbfunc e DelayUS _DelayUS fV
;           time -> R16,R17
	.even
_DelayUS::
	.dbline -1
	.dbline 9
; //内部晶振 8M
; //包含所需头文件
; #include <ioM16v.h>
; #include <macros.h>
; #include"delay.h"
; 
; 
; 
; /*------宏定义------*/
	xjmp L3
L2:
	.dbline 11
	subi R16,1
	sbci R17,0
L3:
	.dbline 10
; #define uchar	unsigned char
	ldi R24,1
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlo L2
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r time 16 i
	.dbend
	.dbfunc e DelayMS _DelayMS fV
;              i -> R20,R21
;           time -> R16,R17
	.even
_DelayMS::
	xcall push_gset1
	.dbline -1
	.dbline 20
; #define uint	unsigned int
; 
; uchar dianzi[]={0xFF,0xC3,0xEB,0x81,0x6B,0x63,0x7F,0xFF,0xFF,0xEF,0xED,0x05,0xE9,0xED,0xEF,0xFF,
;                 0xFF,0xBF,0xBB,0x83,0xBB,0xBB,0xBD,0xFF,0xdb,0xc1,0x5B,0x9B,0xE1,0x6B,0x8B,0xFF};//汉字字模
; //端口初始化
; void port_init(void)
; {
;  PORTA = 0xFF;//A口数据置0
;  DDRA  = 0xFF;//A口方向设为输出
;  PORTB = 0xFF;//B口数据置1
	xjmp L7
L6:
	.dbline 23
;  DDRB  = 0xFF;//B口方向设为输出
;  PORTC = 0x00;
;  DDRC  = 0x00;
	.dbline 24
;  PORTD = 0x00;
	ldi R20,1
	ldi R21,0
	xjmp L12
L9:
	.dbline 25
L10:
	.dbline 24
	subi R20,255  ; offset = 1
	sbci R21,255
L12:
	.dbline 24
	cpi R20,141
	ldi R30,0
	cpc R21,R30
	brlo L9
	.dbline 26
L7:
	.dbline 22
	movw R2,R16
	subi R16,1
	sbci R17,0
	tst R2
	brne L6
	tst R3
	brne L6
X0:
	.dbline -2
L5:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r time 16 i
	.dbend
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
_dianzi::
	.blkb 2
	.area idata
	.byte 255,195
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 235,129
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 'k,'c
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 127,255
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 255,239
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 237,5
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 233,237
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 239,255
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 255,191
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 187,131
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 187,187
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 189,255
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 219,193
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 91,155
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 225,'k
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.blkb 2
	.area idata
	.byte 139,255
	.area data(ram, con, rel)
	.dbfile G:\AVRMega16\LED点阵/delay.h
	.dbfile G:\AVRMega16\LED点阵\LED点阵.c
	.dbsym e dianzi _dianzi A[32:32]c
	.area text(rom, con, rel)
	.dbfile G:\AVRMega16\LED点阵\LED点阵.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 17
	.dbline 18
	ldi R24,255
	out 0x1b,R24
	.dbline 19
	out 0x1a,R24
	.dbline 20
	out 0x18,R24
	.dbline 21
	out 0x17,R24
	.dbline 22
	clr R2
	out 0x15,R2
	.dbline 23
	out 0x14,R2
	.dbline 24
	out 0x12,R2
	.dbline 25
;  DDRD  = 0x00;
	out 0x11,R2
	.dbline -2
L13:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 30
; }
; 
; 
; void init_devices(void)
; {
	.dbline 31
;  CLI(); //禁止所有中断
	cli
	.dbline 32
;  MCUCR  = 0x00;//外部中断触发方式
	clr R2
	out 0x35,R2
	.dbline 33
;  MCUCSR = 0x80;//禁止JTAG
	ldi R24,128
	out 0x34,R24
	.dbline 34
;  GICR   = 0x00;//外部中断使能
	out 0x3b,R2
	.dbline 35
;  port_init();
	xcall _port_init
	.dbline -2
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;              j -> <dead>
;              i -> <dead>
;              a -> R20
	.even
_main::
	.dbline -1
	.dbline 40
;  //SEI();//开全局中断
; }
; //主函数
; void main(void)
; {
	.dbline 41
;  uchar i,j,a=0;//定义变量
	clr R20
	.dbline 42
;  init_devices();//初始化
	xcall _init_devices
	.dbline 43
; PORTA=0xfe;
	ldi R24,254
	out 0x1b,R24
	.dbline 44
; PORTB=0xfe;
	out 0x18,R24
	.dbline -2
L15:
	.dbline 0 ; func end
	ret
	.dbsym l j 1 c
	.dbsym l i 1 c
	.dbsym r a 20 c
	.dbend

⌨️ 快捷键说明

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