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

📄 test.s

📁 用ATmega88驱动LCD240128
💻 S
字号:
	.module TEST.C
	.area text(rom, con, rel)
	.dbfile D:\工作\240X12~1\(000)\TEST.C
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 9
; // Target : M88
; // Crystal: 16.0000Mhz
; #include <iom88v.h>
; #include <macros.h>
; #include "240128.h"
; //#include "storeroom.h"
; //------------------------------------------------------------------------------
; void port_init(void)
; {
	.dbline 10
;     PORTB = 0xFF;
	ldi R24,255
	out 0x5,R24
	.dbline 11
;     DDRB  = 0xFF;
	out 0x4,R24
	.dbline 12
;     PORTC = 0xFF; //m103 output only
	out 0x8,R24
	.dbline 13
;     DDRC  = 0xFF;
	out 0x7,R24
	.dbline 14
;     PORTD = 0xFF;
	out 0xb,R24
	.dbline 15
;     DDRD  = 0xFF;
	out 0xa,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 18
; }
; void init_devices(void)
; {
	.dbline 19
;     CLI();               //disable all interrupts
	cli
	.dbline 20
;     port_init();	
	rcall _port_init
	.dbline 21
;     MCUCR  = 0x00;
	clr R2
	out 0x35,R2
	.dbline 22
;     EICRA  = 0x00;       //extended ext ints
	sts 105,R2
	.dbline 23
;     EIMSK  = 0x00; 
	out 0x1d,R2
	.dbline 24
;     TIMSK0 = 0x00;       //timer 0 interrupt sources
	sts 110,R2
	.dbline 25
;     TIMSK1 = 0x00;       //timer 1 interrupt sources
	sts 111,R2
	.dbline 26
;     TIMSK2 = 0x00;       //timer 2 interrupt sources 
	sts 112,R2
	.dbline 27
;     PCMSK0 = 0x00;       //pin change mask 0 
	sts 107,R2
	.dbline 28
;     PCMSK1 = 0x00;       //pin change mask 1 
	sts 108,R2
	.dbline 29
;     PCMSK2 = 0x00;       //pin change mask 2
	sts 109,R2
	.dbline 30
;     PCICR  = 0x00;       //pin change enable 
	sts 104,R2
	.dbline 31
;     PRR    = 0x00;       //power controller
	sts 100,R2
	.dbline 32
;     SEI();               //re-enable interrupts
	sei
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_1us _delay_1us fV
	.even
_delay_1us::
	.dbline -1
	.dbline 39
; }
; //------------------------------------------------------------------------------
; /*********************************************************************
;  延时
; *********************************************************************/
; void delay_1us(void)
;  {
	.dbline 40
;      asm("nop");asm("nop");asm("nop");
	nop
	.dbline 40
	nop
	.dbline 40
	nop
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_nus _delay_nus fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_nus::
	rcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 43
;  }
; void delay_nus(unsigned int n)
;  {
	.dbline 44
;      unsigned int i=0;
	clr R20
	clr R21
	.dbline 45
	rjmp L8
L5:
	.dbline 45
	rcall _delay_1us
L6:
	.dbline 45
	subi R20,255  ; offset = 1
	sbci R21,255
L8:
	.dbline 45
;      for (i=0;i<n;i++) delay_1us();
	cp R20,R22
	cpc R21,R23
	brlo L5
	.dbline -2
L4:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R20,R21
	.even
_delay_1ms::
	rcall push_gset1
	.dbline -1
	.dbline 48
;  }  
; void delay_1ms(void)
;  {
	.dbline 50
; 	 unsigned int i;
; 	 delay_nus(1000);	 
	ldi R16,1000
	ldi R17,3
	rcall _delay_nus
	.dbline 51
	clr R20
	clr R21
	rjmp L13
L10:
	.dbline 51
L11:
	.dbline 51
	subi R20,255  ; offset = 1
	sbci R21,255
L13:
	.dbline 51
;      for (i=0;i<1;i++);
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	brlo L10
	.dbline -2
L9:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbend
	.dbfunc e delay_nms _delay_nms fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_nms::
	rcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 54
;  }  
; void delay_nms(unsigned int n)
;  {
	.dbline 55
;      unsigned int i=0;
	clr R20
	clr R21
	.dbline 56
	rjmp L18
L15:
	.dbline 56
	rcall _delay_1ms
L16:
	.dbline 56
	subi R20,255  ; offset = 1
	sbci R21,255
L18:
	.dbline 56
;     for (i=0;i<n;i++) delay_1ms();
	cp R20,R22
	cpc R21,R23
	brlo L15
	.dbline -2
L14:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e main _main fV
;              i -> R20
	.even
_main::
	sbiw R28,5
	.dbline -1
	.dbline 61
;  }
; 
; //------------------------------------------------------------------------------
; void main(void)
; {
	.dbline 63
;     unsigned char i;
; 	init_devices();
	rcall _init_devices
	.dbline 64
;     LCD_INIT();
	rcall _LCD_INIT
	rjmp L21
L20:
	.dbline 66
; 	while(1)
; 	{
	.dbline 69
;         //LCD_PRINT_240128(ouravr);
; 		//delay_nms(1000);
; 		LCD_CLEAR(0x00);
	clr R16
	rcall _LCD_CLEAR
	.dbline 70
; 		delay_nms(500);
	ldi R16,500
	ldi R17,1
	rcall _delay_nms
	.dbline 71
; 		PRINT_words(0,0,"test for:中.文*测~试");
	ldi R24,<L23
	ldi R25,>L23
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	rcall _PRINT_words
	.dbline 72
; 		delay_nms(500);
	ldi R16,500
	ldi R17,1
	rcall _delay_nms
	.dbline 73
;         PRINT_words(11,2,"T6963C use ATMega88");
	ldi R24,<L24
	ldi R25,>L24
	std y+1,R25
	std y+0,R24
	ldi R18,2
	ldi R16,11
	rcall _PRINT_words
	.dbline 74
; 		delay_nms(500);
	ldi R16,500
	ldi R17,1
	rcall _delay_nms
	.dbline 75
;         PRINT_words(2,4,"2007年5月27日-14点09分##秒");
	ldi R24,<L25
	ldi R25,>L25
	std y+1,R25
	std y+0,R24
	ldi R18,4
	ldi R16,2
	rcall _PRINT_words
	.dbline 76
; 		delay_nms(500);
	ldi R16,500
	ldi R17,1
	rcall _delay_nms
	.dbline 77
;         PRINT_line(5,50,80,50,8);   // 线1
	ldi R24,8
	std y+4,R24
	ldi R24,50
	std y+2,R24
	ldi R24,80
	std y+0,R24
	ldi R18,50
	ldi R16,5
	rcall _PRINT_line
	.dbline 78
; 		delay_nms(500);
	ldi R16,500
	ldi R17,1
	rcall _delay_nms
	.dbline 79
;         PRINT_line(5,50,80,20,8);   // 线2
	ldi R24,8
	std y+4,R24
	ldi R24,20
	std y+2,R24
	ldi R24,80
	std y+0,R24
	ldi R18,50
	ldi R16,5
	rcall _PRINT_line
	.dbline 80
; 		delay_nms(500);
	ldi R16,500
	ldi R17,1
	rcall _delay_nms
	.dbline 81
;         PRINT_line(80,20,80,50,8);  // 线3
	ldi R24,8
	std y+4,R24
	ldi R24,50
	std y+2,R24
	ldi R24,80
	std y+0,R24
	ldi R18,20
	ldi R16,80
	rcall _PRINT_line
	.dbline 82
; 		delay_nms(500);
	ldi R16,500
	ldi R17,1
	rcall _delay_nms
	.dbline 83
;         for (i=120;i>0;i--)
	ldi R20,120
	rjmp L29
L26:
	.dbline 84
	.dbline 85
	clr R2
	std y+2,R2
	mov R24,R20
	subi R24,255    ; addi 1
	std y+0,R24
	ldi R18,64
	ldi R16,120
	rcall _PRINT_circle
	.dbline 86
	ldi R24,8
	std y+2,R24
	std y+0,R20
	ldi R18,64
	ldi R16,120
	rcall _PRINT_circle
	.dbline 87
	ldi R24,8
	std y+2,R24
	mov R24,R20
	subi R24,1
	std y+0,R24
	ldi R18,64
	ldi R16,120
	rcall _PRINT_circle
	.dbline 88
L27:
	.dbline 83
	dec R20
L29:
	.dbline 83
	clr R2
	cp R2,R20
	brlo L26
	.dbline 89
;         {
;             PRINT_circle(120,64,i+1,0); // 擦除外圆
;             PRINT_circle(120,64,i,8);
;             PRINT_circle(120,64,i-1,8);
;         }
;         for (i=5;i<64;i++)
	ldi R20,5
	rjmp L33
L30:
	.dbline 90
	.dbline 91
	clr R2
	std y+2,R2
	mov R24,R20
	subi R24,1
	std y+0,R24
	ldi R18,64
	ldi R16,120
	rcall _PRINT_circle
	.dbline 92
	ldi R24,8
	std y+2,R24
	std y+0,R20
	ldi R18,64
	ldi R16,120
	rcall _PRINT_circle
	.dbline 93
	ldi R24,8
	std y+2,R24
	mov R24,R20
	subi R24,255    ; addi 1
	std y+0,R24
	ldi R18,64
	ldi R16,120
	rcall _PRINT_circle
	.dbline 94
	ldi R16,50
	ldi R17,0
	rcall _delay_nms
	.dbline 95
L31:
	.dbline 89
	inc R20
L33:
	.dbline 89
	cpi R20,64
	brlo L30
	.dbline 96
L21:
	.dbline 65
	rjmp L20
X0:
	.dbline -2
L19:
	adiw R28,5
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.area data(ram, con, rel)
	.dbfile D:\工作\240X12~1\(000)\TEST.C
L25:
	.blkb 27
	.area idata
	.byte 50,48,48,55,196,234,53,212,194,50,55,200,213,45,49,52
	.byte 181,227,48,57,183,214,35,35,195,235,0
	.area data(ram, con, rel)
	.dbfile D:\工作\240X12~1\(000)\TEST.C
L24:
	.blkb 20
	.area idata
	.byte 'T,54,57,54,51,'C,32,'u,'s,'e,32,'A,'T,'M,'e,'g
	.byte 'a,56,56,0
	.area data(ram, con, rel)
	.dbfile D:\工作\240X12~1\(000)\TEST.C
L23:
	.blkb 21
	.area idata
	.byte 't,'e,'s,'t,32,'f,'o,'r,58,214,208,46,206,196,42,178
	.byte 226,126,202,212,0
	.area data(ram, con, rel)
	.dbfile D:\工作\240X12~1\(000)\TEST.C

⌨️ 快捷键说明

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