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

📄 ledtest.lis

📁 使用atmel128对45db161读写程序加LM2009R大液晶显示
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module ledtest.c
                        .area data(ram, con, rel)
 0000           _I_Timer::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
 0002                   .dbsym e I_Timer _I_Timer I
 0002           _Field::
 0002                   .blkb 2
                        .area idata
 0002 0002              .word 512
                        .area data(ram, con, rel)
 0004                   .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
 0004                   .dbsym e Field _Field I
                        .area text(rom, con, rel)
 0000                   .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; 
 0000           ; //ICC-AVR application builder : 2008-1-23 9:13:29
 0000           ; // Target : M128
 0000           ; // Crystal: 8.0000Mhz
 0000           ; //#include <iom128v.h>
 0000           ; //#include <macros.h>
 0000           ; #include "2008.h"
 0000           ; 
 0000           ; int I_Timer=0;
 0000           ; int Field = 512;
 0000           ; uint xx[512];
 0000           ; //#define portout (*(volatile unsigned char*)0x1100)
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 16
 0000           ;  PORTA = 0XFF;
 0000 8FEF              ldi R24,255
 0002 8BBB              out 0x1b,R24
 0004                   .dbline 17
 0004           ;  DDRA  = 0XFF;
 0004 8ABB              out 0x1a,R24
 0006                   .dbline 18
 0006           ;  PORTF = 0XFF;
 0006 80936200          sts 98,R24
 000A                   .dbline 19
 000A           ;  DDRF  = 0XFF;
 000A 80936100          sts 97,R24
 000E                   .dbline 20
 000E           ;  PORTB = 0xFF;
 000E 88BB              out 0x18,R24
 0010                   .dbline 21
 0010           ;  DDRB  = 0xF7;
 0010 87EF              ldi R24,247
 0012 87BB              out 0x17,R24
 0014                   .dbline 22
 0014           ;  PORTD = 0xFF;
 0014 8FEF              ldi R24,255
 0016 82BB              out 0x12,R24
 0018                   .dbline 23
 0018           ;  DDRD  = 0xFF;
 0018 81BB              out 0x11,R24
 001A                   .dbline 24
 001A           ;  PORTE = 0xFF;
 001A 83B9              out 0x3,R24
 001C                   .dbline 25
 001C           ;  DDRE  = 0xFF;
 001C 82B9              out 0x2,R24
 001E                   .dbline 26
 001E           ;  PORTG = 0XFF;
 001E 80936500          sts 101,R24
 0022                   .dbline 27
 0022           ;  DDRG  = 0Xf7;
 0022 87EF              ldi R24,247
 0024 80936400          sts 100,R24
 0028                   .dbline -2
 0028           L1:
 0028                   .dbline 0 ; func end
 0028 0895              ret
 002A                   .dbend
 002A                   .dbfunc e timer0_init _timer0_init fV
                        .even
 002A           _timer0_init::
 002A                   .dbline -1
 002A                   .dbline 35
 002A           ; }
 002A           ; 
 002A           ; //TIMER0 initialize - prescale:1024
 002A           ; // WGM: Normal
 002A           ; // desired value: 20mSec
 002A           ; // actual value: 19.968mSec (0.2%)
 002A           ; void timer0_init(void)
 002A           ; {
 002A                   .dbline 36
 002A           ;  TCCR0 = 0x00; //stop
 002A 2224              clr R2
 002C 23BE              out 0x33,R2
 002E                   .dbline 37
 002E           ;  ASSR  = 0x00; //set async mode
 002E 20BE              out 0x30,R2
 0030                   .dbline 38
 0030           ;  TCNT0 = 0x64; //set count
 0030 84E6              ldi R24,100
 0032 82BF              out 0x32,R24
 0034                   .dbline 39
 0034           ;  OCR0  = 0x9C;
 0034 8CE9              ldi R24,156
 0036 81BF              out 0x31,R24
 0038                   .dbline 40
 0038           ;  TCCR0 = 0x07; //start timer
 0038 87E0              ldi R24,7
 003A 83BF              out 0x33,R24
 003C                   .dbline -2
 003C           L2:
 003C                   .dbline 0 ; func end
 003C 0895              ret
 003E                   .dbend
                        .area vector(rom, abs)
                        .org 64
 0040 0C941F00          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 003E                   .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
 003E                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 003E           _timer0_ovf_isr::
 003E 2A92              st -y,R2
 0040 3A92              st -y,R3
 0042 8A93              st -y,R24
 0044 9A93              st -y,R25
 0046 EA93              st -y,R30
 0048 2FB6              in R2,0x3f
 004A 2A92              st -y,R2
 004C                   .dbline -1
 004C                   .dbline 45
 004C           ; }
 004C           ; 
 004C           ; #pragma interrupt_handler timer0_ovf_isr:17
 004C           ; void timer0_ovf_isr(void)
 004C           ; {  
 004C                   .dbline 46
 004C           ;   I_Timer++;
 004C 80910000          lds R24,_I_Timer
 0050 90910100          lds R25,_I_Timer+1
 0054 0196              adiw R24,1
 0056 90930100          sts _I_Timer+1,R25
 005A 80930000          sts _I_Timer,R24
 005E                   .dbline 47
 005E           ;   if(I_Timer == 50)
 005E 8233              cpi R24,50
 0060 E0E0              ldi R30,0
 0062 9E07              cpc R25,R30
 0064 61F4              brne L4
 0066                   .dbline 48
 0066           ;   {
 0066                   .dbline 49
 0066           ;    PORTG ^= 0x10;
 0066 80E1              ldi R24,16
 0068 20906500          lds R2,101
 006C 2826              eor R2,R24
 006E 20926500          sts 101,R2
 0072                   .dbline 50
 0072           ;    I_Timer =0;
 0072 2224              clr R2
 0074 3324              clr R3
 0076 30920100          sts _I_Timer+1,R3
 007A 20920000          sts _I_Timer,R2
 007E                   .dbline 51
 007E           ;   }
 007E           L4:
 007E                   .dbline 52
 007E           ;   TCNT0 = 0x64; //reload counter value
 007E 84E6              ldi R24,100
 0080 82BF              out 0x32,R24
 0082                   .dbline -2
 0082           L3:
 0082 2990              ld R2,y+
 0084 2FBE              out 0x3f,R2
 0086 E991              ld R30,y+
 0088 9991              ld R25,y+
 008A 8991              ld R24,y+
 008C 3990              ld R3,y+
 008E 2990              ld R2,y+
 0090                   .dbline 0 ; func end
 0090 1895              reti
 0092                   .dbend
 0092                   .dbfunc e init_devices _init_devices fV
                        .even
 0092           _init_devices::
 0092                   .dbline -1
 0092                   .dbline 57
 0092           ; }
 0092           ; 
 0092           ; //call this routine to initialize all peripherals
 0092           ; void init_devices(void)
 0092           ; {
 0092                   .dbline 59
 0092           ;  //stop errant interrupts until set up
 0092           ;  CLI(); //disable all interrupts
 0092 F894              cli
 0094                   .dbline 60
 0094           ;  XDIV  = 0x00; //xtal divider
 0094 2224              clr R2
 0096 2CBE              out 0x3c,R2
 0098                   .dbline 61
 0098           ;  XMCRA = 0x00; //external memory
 0098 20926D00          sts 109,R2
 009C                   .dbline 62
 009C           ;  port_init();
 009C B1DF              xcall _port_init
 009E                   .dbline 63
 009E           ;  timer0_init();
 009E C5DF              xcall _timer0_init
 00A0                   .dbline 64
 00A0           ;  MCUCR = 0x00;
 00A0 2224              clr R2
 00A2 25BE              out 0x35,R2
 00A4                   .dbline 65
 00A4           ;  EICRA = 0x00; //extended ext ints
 00A4 20926A00          sts 106,R2
 00A8                   .dbline 66
 00A8           ;  EICRB = 0x00; //extended ext ints
 00A8 2ABE              out 0x3a,R2
 00AA                   .dbline 67
 00AA           ;  EIMSK = 0x00;
 00AA 29BE              out 0x39,R2
 00AC                   .dbline 68
 00AC           ;  TIMSK = 0x01; //timer interrupt sources
 00AC 81E0              ldi R24,1
 00AE 87BF              out 0x37,R24
 00B0                   .dbline 69
 00B0           ;  ETIMSK = 0x00; //extended timer interrupt sources
 00B0 20927D00          sts 125,R2
 00B4                   .dbline 70
 00B4           ;  SEI(); //re-enable interrupts
 00B4 7894              sei
 00B6                   .dbline -2
 00B6           L6:
 00B6                   .dbline 0 ; func end
 00B6 0895              ret
 00B8                   .dbend
 00B8                   .dbfunc e main _main fV
 00B8           ;       readXDIV -> <dead>
 00B8           ;              j -> R22,R23
 00B8           ;              i -> R20,R21
                        .even
 00B8           _main::
 00B8 2497              sbiw R28,4
 00BA                   .dbline -1
 00BA                   .dbline 74
 00BA           ;  //all peripherals are now initialized
 00BA           ; }
 00BA           ; void main()
 00BA           ; {
 00BA                   .dbline 78
 00BA           ;  int i,j;
 00BA           ;  unsigned char readXDIV;
 00BA           ;       
 00BA           ;  init_devices();
 00BA EBDF              xcall _init_devices
 00BC                   .dbline 82
 00BC           ;       
 00BC           ;       
 00BC           ;       
 00BC           ;  initLCDM();     //初始化LCD
 00BC 54D0              xcall _initLCDM
 00BE                   .dbline 83
 00BE           ;  Welcome_interface();  //显示欢迎界面 
 00BE 09D1              xcall _Welcome_interface
 00C0                   .dbline 85
 00C0           ;  
 00C0           ;  SdCmd(0x10,0x29); LCD_ChkBusy();
 00C0 29E2              ldi R18,41
 00C2 30E0              ldi R19,0
 00C4 00E1              ldi R16,16
 00C6 10E0              ldi R17,0
 00C8 BED0              xcall _SdCmd
 00CA                   .dbline 85
 00CA F5D0              xcall _LCD_ChkBusy
 00CC                   .dbline 86
 00CC           ;  SdCmd(0xf1,0x0f);LCD_ChkBusy();     //设置字型大小
 00CC 2FE0              ldi R18,15
 00CE 30E0              ldi R19,0
 00D0 01EF              ldi R16,241
 00D2 10E0              ldi R17,0
 00D4 B8D0              xcall _SdCmd
 00D6                   .dbline 86
 00D6 EFD0              xcall _LCD_ChkBusy
 00D8                   .dbline 87
 00D8           ;  ShowText(6,2,"测试 Flash AT45DB161D 读写");
 00D8 80E0              ldi R24,<L8
 00DA 90E0              ldi R25,>L8
 00DC 9983              std y+1,R25
 00DE 8883              std y+0,R24
 00E0 22E0              ldi R18,2
 00E2 30E0              ldi R19,0
 00E4 06E0              ldi R16,6
 00E6 10E0              ldi R17,0
 00E8 47D1              xcall _ShowText
 00EA                   .dbline 88
 00EA           ;  for ( i=1; i<=48;i++) 
 00EA 41E0              ldi R20,1
 00EC 50E0              ldi R21,0
 00EE           L9:
 00EE                   .dbline 89
 00EE                   .dbline 90
 00EE 80916500          lds R24,101
 00F2 8470              andi R24,4
 00F4 80936500          sts 101,R24
 00F8                   .dbline 91
 00F8 81E0              ldi R24,1
 00FA 20906500          lds R2,101
 00FE 2826              eor R2,R24
 0100 20926500          sts 101,R2
 0104                   .dbline 92
 0104 82E0              ldi R24,2
 0106 20906500          lds R2,101
 010A 2826              eor R2,R24
 010C 20926500          sts 101,R2
 0110                   .dbline 93
 0110           L10:
 0110                   .dbline 88
 0110 4F5F              subi R20,255  ; offset = 1
 0112 5F4F              sbci R21,255
 0114                   .dbline 88
 0114 80E3              ldi R24,48

⌨️ 快捷键说明

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