?? main.lis
字號:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\work\avr\icc\cpld\stklcd\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 .dbline -1
0000 .dbline 32
0000 ; //
0000 ; // File Name: main.c
0000 ; //
0000 ; // Title: Application entry point / driver
0000 ; //
0000 ; // Description: Main driver for LCD demo.
0000 ; //
0000 ; // Creation Date: 2/2/00 11:49:37 PM
0000 ; //
0000 ; // By: A.C. Verbeck
0000 ; //
0000 ; // This file is subject to the terms and conditions of the GNU General Public
0000 ; // License. See the file COPYING in the main directory of this archive
0000 ; // for more details.
0000 ; //
0000 ;
0000 ; #include <io8515v.h>
0000 ; #include <stdio.h>
0000 ; #include <macros.h>
0000 ;
0000 ; #include "BaseType.h"
0000 ; #include "lcd.h"
0000 ; #include "t0.h"
0000 ;
0000 ; static void Timer_Test(void);
0000 ; static void LCD_Test1(void);
0000 ; static void LCD_Test2(void);
0000 ;
0000 ; static Char pbuff[32];
0000 ;
0000 ; void main(void)
0000 ; {
0000 .dbline 33
0000 ; SEI(); // Turn on the interrupts
0000 7894 sei
0002 .dbline 34
0002 ; MCUCR = 0xc0; // Enable External RAM
0002 80EC ldi R24,192
0004 85BF out 0x35,R24
0006 .dbline 36
0006 ;
0006 ; LCD_Test1(); // Do LCD test #2
0006 .dbline -2
0006 .dbline 37
0006 ; }
0006 L1:
0006 .dbline 0 ; func end
0006 11C0 rjmp _LCD_Test1
0008 .dbend
0008 .dbfunc s Timer_Test _Timer_Test fV
0008 ; pb_val -> R20
.even
0008 _Timer_Test:
0008 00D0 rcall push_gset1
000A .dbline -1
000A .dbline 40
000A ;
000A ; static void Timer_Test(void)
000A ; {
000A .dbline 43
000A ; UInt8 pb_val;
000A ;
000A ; DDRB = 0xff;
000A 8FEF ldi R24,255
000C 87BB out 0x17,R24
000E .dbline 44
000E ; PORTB = 0x00;
000E 2224 clr R2
0010 28BA out 0x18,R2
0012 .dbline 45
0012 ; T0_init();
0012 00D0 rcall _T0_init
0014 .dbline 46
0014 ; pb_val = 0;
0014 4427 clr R20
0016 .dbline 47
0016 L3:
0016 .dbline 47
0016 .dbline 48
0016 0AE0 ldi R16,10
0018 10E0 ldi R17,0
001A 00D0 rcall _T0_sleep
001C .dbline 49
001C 4395 inc R20
001E .dbline 50
001E 242E mov R2,R20
0020 2094 com R2
0022 28BA out 0x18,R2
0024 .dbline 51
0024 .dbline 47
0024 .dbline 47
0024 F8CF rjmp L3
0026 X0:
0026 .dbline -2
0026 L2:
0026 00D0 rcall pop_gset1
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r pb_val 20 c
002A .dbend
002A .dbfunc s LCD_Test1 _LCD_Test1 fV
002A ; i -> R20,R21
.even
002A _LCD_Test1:
002A 00D0 rcall push_gset1
002C 2297 sbiw R28,2
002E .dbline -1
002E .dbline 55
002E ; TASK_LOOP {
002E ; T0_sleep(10);
002E ; ++pb_val;
002E ; PORTB=~pb_val;
002E ; }
002E ; }
002E ;
002E ; static void LCD_Test1(void)
002E ; {
002E .dbline 58
002E ; UInt16 i;
002E ;
002E ; T0_init();
002E 00D0 rcall _T0_init
0030 .dbline 60
0030 ;
0030 ; LCD_reset();
0030 00D0 rcall _LCD_reset
0032 .dbline 61
0032 ; LCD_init();
0032 00D0 rcall _LCD_init
0034 .dbline 62
0034 ; LCD_command(LCD_HOME);
0034 02E0 ldi R16,2
0036 00D0 rcall _LCD_command
0038 .dbline 63
0038 ; sprintf(pbuff, "Test display");
0038 20E0 ldi R18,<L8
003A 30E0 ldi R19,>L8
003C 00E0 ldi R16,<_pbuff
003E 10E0 ldi R17,>_pbuff
0040 00D0 rcall _sprintf
0042 .dbline 64
0042 ; LCD_puts(pbuff);
0042 00E0 ldi R16,<_pbuff
0044 10E0 ldi R17,>_pbuff
0046 00D0 rcall _LCD_puts
0048 .dbline 65
0048 ; LCD_command(LCD_NEW_LINE);
0048 00EC ldi R16,192
004A 00D0 rcall _LCD_command
004C .dbline 67
004C ;
004C ; i=0;
004C 4427 clr R20
004E 5527 clr R21
0050 .dbline 68
0050 L9:
0050 .dbline 68
0050 .dbline 69
0050 04E6 ldi R16,100
0052 10E0 ldi R17,0
0054 00D0 rcall _T0_sleep
0056 .dbline 70
0056 4F5F subi R20,255 ; offset = 1
0058 5F4F sbci R21,255
005A .dbline 71
005A 4883 std y+0,R20
005C 5983 std y+1,R21
005E 20E0 ldi R18,<L13
0060 30E0 ldi R19,>L13
0062 00E0 ldi R16,<_pbuff
0064 10E0 ldi R17,>_pbuff
0066 00D0 rcall _sprintf
0068 .dbline 72
0068 00E0 ldi R16,<_pbuff
006A 10E0 ldi R17,>_pbuff
006C 00D0 rcall _LCD_puts
006E .dbline 73
006E 00EC ldi R16,192
0070 00D0 rcall _LCD_command
0072 .dbline 74
0072 .dbline 68
0072 .dbline 68
0072 EECF rjmp L9
0074 X1:
0074 .dbline -2
0074 L7:
0074 2296 adiw R28,2
0076 00D0 rcall pop_gset1
0078 .dbline 0 ; func end
0078 0895 ret
007A .dbsym r i 20 s
007A .dbend
007A .dbfunc s LCD_Test2 _LCD_Test2 fV
007A ; i -> R20,R21
.even
007A _LCD_Test2:
007A 00D0 rcall push_gset1
007C .dbline -1
007C .dbline 79
007C ; TASK_LOOP {
007C ; T0_sleep(100);
007C ; ++i;
007C ; sprintf(pbuff, "Value = %d",i);
007C ; LCD_puts(pbuff);
007C ; LCD_command(LCD_NEW_LINE);
007C ; }
007C ; }
007C ;
007C ;
007C ; static void LCD_Test2(void)
007C ; {
007C .dbline 82
007C ; UInt16 i;
007C ;
007C ; T0_init();
007C 00D0 rcall _T0_init
007E .dbline 84
007E ;
007E ; LCD_reset();
007E 00D0 rcall _LCD_reset
0080 .dbline 85
0080 ; LCD_init();
0080 00D0 rcall _LCD_init
0082 .dbline 86
0082 ; LCD_command(LCD_HOME);
0082 02E0 ldi R16,2
0084 00D0 rcall _LCD_command
0086 .dbline 88
0086 L15:
0086 .dbline 88
0086 ;
0086 ; TASK_LOOP {
0086 .dbline 89
0086 40E2 ldi R20,32
0088 50E0 ldi R21,0
008A 1AC0 rjmp L22
008C L19:
008C .dbline 89
008C ; for (i=0x20; i<0x80; i++) {
008C .dbline 90
008C ; LCD_putc(i);
008C 042F mov R16,R20
008E 00D0 rcall _LCD_putc
0090 .dbline 91
0090 ; T0_sleep(500);
0090 04EF ldi R16,500
0092 11E0 ldi R17,1
0094 00D0 rcall _T0_sleep
0096 .dbline 92
0096 ; if ((i%16) == 0) {
0096 842F mov R24,R20
0098 952F mov R25,R21
009A 8F70 andi R24,15
009C 9070 andi R25,0
009E 8030 cpi R24,0
00A0 8907 cpc R24,R25
00A2 61F4 brne L23
00A4 X2:
00A4 .dbline 92
00A4 .dbline 93
00A4 ; if ((i%32) == 0)
00A4 842F mov R24,R20
00A6 952F mov R25,R21
00A8 8F71 andi R24,31
00AA 9070 andi R25,0
00AC 8030 cpi R24,0
00AE 8907 cpc R24,R25
00B0 19F4 brne L25
00B2 X3:
00B2 .dbline 94
00B2 ; LCD_command(LCD_HOME);
00B2 02E0 ldi R16,2
00B4 00D0 rcall _LCD_command
00B6 02C0 rjmp L26
00B8 L25:
00B8 .dbline 96
00B8 ; else
00B8 ; LCD_command(LCD_NEW_LINE);
00B8 00EC ldi R16,192
00BA 00D0 rcall _LCD_command
00BC L26:
00BC .dbline 97
00BC ; }
00BC L23:
00BC .dbline 98
00BC L20:
00BC .dbline 89
00BC 4F5F subi R20,255 ; offset = 1
00BE 5F4F sbci R21,255
00C0 L22:
00C0 .dbline 89
00C0 4038 cpi R20,128
00C2 E0E0 ldi R30,0
00C4 5E07 cpc R21,R30
00C6 10F3 brlo L19
00C8 .dbline 99
00C8 .dbline 88
00C8 .dbline 88
00C8 DECF rjmp L15
00CA X4:
00CA .dbline -2
00CA L14:
00CA 00D0 rcall pop_gset1
00CC .dbline 0 ; func end
00CC 0895 ret
00CE .dbsym r i 20 s
00CE .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\work\avr\icc\cpld\stklcd\main.c
0000 _pbuff:
0000 .blkb 32
0020 .dbsym s pbuff _pbuff A[32:32]c
.area data(ram, con, rel)
0000 .dbfile E:\work\avr\icc\cpld\stklcd\main.c
0000 L13:
0000 .blkb 11
.area idata
0000 56616C7565203D20256400 .byte 'V,'a,'l,'u,'e,32,61,32,37,'d,0
.area data(ram, con, rel)
000B .dbfile E:\work\avr\icc\cpld\stklcd\main.c
000B L8:
000B .blkb 13
.area idata
000B 5465737420646973706C617900 .byte 'T,'e,'s,'t,32,'d,'i,'s,'p,'l,'a,'y,0
.area data(ram, con, rel)
0018 .dbfile E:\work\avr\icc\cpld\stklcd\main.c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -