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

📄 main.s

📁 一个关于AVR单片机的例程
💻 S
字号:
	.module main.c
	.area lit(rom, con, rel)
_char_7::
	.byte 0,0
	.byte 124,130
	.byte 130,124
	.byte 0,0
	.byte 0,0
	.byte 0,132
	.byte 254,128
	.byte 0,0
	.byte 0,0
	.byte 196,162
	.byte 146,140
	.byte 0,0
	.byte 0,0
	.byte 'D,146
	.byte 146,'l
	.byte 0,0
	.byte 0,0
	.byte 24,20
	.byte 254,16
	.byte 0,0
	.byte 0,0
	.byte 158,148
	.byte 148,'d
	.byte 0,0
	.byte 0,0
	.byte 124,146
	.byte 146,'d
	.byte 0,0
	.byte 0,0
	.byte 2,242
	.byte 10,6
	.byte 0,0
	.byte 0,0
	.byte 'l,146
	.byte 146,'l
	.byte 0,0
	.byte 0,0
	.byte 'L,146
	.byte 146,124
	.byte 0,0
	.byte 16,56
	.byte 124,254
	.byte 56,56
	.byte 56,56
	.dbfile C:\DOCUME~1\administrator\桌面\教程\8x8led\main.c
	.dbsym e char_7 _char_7 A[88:11:8]kc
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\administrator\桌面\教程\8x8led\main.c
	.dbfunc e display _display fV
;            row -> R20
;            num -> R22
	.even
_display::
	xcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 25
; 
; /*********************************************
; 显示向左的箭头
; Chip type : ATmega16
; *********************************************/
; #include <iom16v.h>
; #include "delay.h"
; const unsigned char char_7[][8]={
; {0x00,0x00,0x7c,0x82,0x82,0x7c,0x00,0x00},//0
; {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
; //{0x00,0x00,0xf2,0x92,0x92,0x9e,0x00,0x00},//正2
; {0x00,0x00,0xc4,0xa2,0x92,0x8c,0x00,0x00},//2
; {0x00,0x00,0x44,0x92,0x92,0x6c,0x00,0x00},//3
; //{0x00,0x00,0x92,0x92,0x92,0xfe,0x00,0x00},//正3
; {0x00,0x00,0x18,0x14,0xfe,0x10,0x00,0x00},//4
; {0x00,0x00,0x9e,0x94,0x94,0x64,0x00,0x00},//5
; {0x00,0x00,0x7c,0x92,0x92,0x64,0x00,0x00},//6
; {0x00,0x00,0x02,0xf2,0x0a,0x06,0x00,0x00},//7
; {0x00,0x00,0x6c,0x92,0x92,0x6c,0x00,0x00},//8
; {0x00,0x00,0x4c,0x92,0x92,0x7c,0x00,0x00},//9
; {0x10,0x38,0x7C,0xFE,0x38,0x38,0x38,0x38},//向左箭头
; };
; 
; void display(unsigned char num,char row)
; {
	.dbline 26
;  if(row>7)//容错处理
	ldi R24,7
	cp R24,R20
	brsh L2
	.dbline 27
;  {
	.dbline 28
;  PORTA = 0XFF;
	ldi R24,255
	out 0x1b,R24
	.dbline 29
;  PORTB = 0X81; //显示中间6排
	ldi R24,129
	out 0x18,R24
	.dbline 30
;  }
	xjmp L3
L2:
	.dbline 32
	.dbline 33
	ldi R24,8
	mul R24,R22
	movw R2,R0
	ldi R24,<_char_7
	ldi R25,>_char_7
	add R2,R24
	adc R3,R25
	mov R30,R20
	clr R31
	add R30,R2
	adc R31,R3
	lpm R30,Z
	out 0x1b,R30
	.dbline 34
	ldi R16,1
	mov R17,R20
	xcall lsl8
	mov R2,R16
	com R2
	out 0x18,R2
	.dbline 35
	ldi R16,2
	ldi R17,0
	xcall _delay_ms
	.dbline 36
	ldi R24,255
	out 0x18,R24
	.dbline 37
L3:
	.dbline -2
L1:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r row 20 c
	.dbsym r num 22 c
	.dbend
	.dbfunc e main _main fV
;   time_counter -> R20,R21
;         number -> R22
;              i -> R10
	.even
_main::
	.dbline -1
	.dbline 42
;  else
;  {
;  PORTA = char_7[num][row];
;  PORTB = ~(1<<row);
;  delay_ms(2);
;  PORTB = 0xFF;
;  }
; }
; 
; 
; void main(void)
; {
	.dbline 43
; char number=0,i = 0;
	clr R22
	.dbline 43
	clr R10
	.dbline 44
; int time_counter=0;
	clr R20
	clr R21
	.dbline 45
; PORTA=0xFF;
	ldi R24,255
	out 0x1b,R24
	.dbline 46
; DDRA=0xFF;
	out 0x1a,R24
	.dbline 47
; PORTB=0x00;
	clr R2
	out 0x18,R2
	.dbline 48
; DDRB=0xFF;
	out 0x17,R24
	xjmp L6
L5:
	.dbline 53
; 
; //delay_1s(); //全亮一秒
; 
; while (1)
; {
	.dbline 55
; 
;  for(i=0;i<8;i++)
	clr R10
	xjmp L11
L8:
	.dbline 56
	.dbline 57
	mov R18,R10
	mov R16,R22
	xcall _display
	.dbline 58
L9:
	.dbline 55
	inc R10
L11:
	.dbline 55
	mov R24,R10
	cpi R24,8
	brlo L8
	.dbline 60
;  {
;   display(number,i);
;  }
;  
;  time_counter++;
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 61
;  if(time_counter==100)
	cpi R20,100
	ldi R30,0
	cpc R21,R30
	brne L12
	.dbline 62
;  {
	.dbline 63
;  time_counter=0;
	clr R20
	clr R21
	.dbline 64
;  number++;
	inc R22
	.dbline 65
;  if(number==11) number=0; //加到九返回零
	cpi R22,11
	brne L14
	.dbline 65
	clr R22
L14:
	.dbline 66
;  }
L12:
	.dbline 73
L6:
	.dbline 52
	xjmp L5
X0:
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbsym r time_counter 20 I
	.dbsym r number 22 c
	.dbsym r i 10 c
	.dbend

⌨️ 快捷键说明

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