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

📄 10.lis

📁 这里有11个用ICCAVR开发的源代码,经DEMO板调试后已经通过.
💻 LIS
字号:
                        .module _10.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\xij\demo\demo_diy02-8a\1\C语言\02-8a-10\10.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 10
 0000           ; //ICC-AVR application builder : 2005-3-11 15:28:29
 0000           ; // Target : M48
 0000           ; // Crystal: 8.0000Mhz
 0000           ; 
 0000           ; #include <iom48v.h>
 0000           ; #include <macros.h>
 0000           ; unsigned char    size;
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 11
 0000           ;  PORTB = 0xFF;
 0000 8FEF              ldi R24,255
 0002 85B9              out 0x5,R24
 0004                   .dbline 12
 0004           ;  DDRB  = 0xff;
 0004 84B9              out 0x4,R24
 0006                   .dbline 13
 0006           ;  PORTC = 0x7F; //m103 output only
 0006 8FE7              ldi R24,127
 0008 88B9              out 0x8,R24
 000A                   .dbline 14
 000A           ;  DDRC  = 0x00;
 000A 2224              clr R2
 000C 27B8              out 0x7,R2
 000E                   .dbline 15
 000E           ;  PORTD = 0xFF;
 000E 8FEF              ldi R24,255
 0010 8BB9              out 0xb,R24
 0012                   .dbline 16
 0012           ;  DDRD  = 0xF0;
 0012 80EF              ldi R24,240
 0014 8AB9              out 0xa,R24
 0016                   .dbline -2
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e init_devices _init_devices fV
                        .even
 0018           _init_devices::
 0018                   .dbline -1
 0018                   .dbline 21
 0018           ; }
 0018           ; 
 0018           ; //call this routine to initialize all peripherals
 0018           ; void init_devices(void)
 0018           ; {
 0018                   .dbline 23
 0018           ;  //stop errant interrupts until set up
 0018           ;  CLI(); //disable all interrupts
 0018 F894              cli
 001A                   .dbline 24
 001A           ;  port_init();
 001A F2DF              rcall _port_init
 001C                   .dbline 26
 001C           ; 
 001C           ;  MCUCR = 0x00;
 001C 2224              clr R2
 001E 25BE              out 0x35,R2
 0020                   .dbline 27
 0020           ;  EICRA = 0x00; //extended ext ints
 0020 20926900          sts 105,R2
 0024                   .dbline 28
 0024           ;  EIMSK = 0x00;
 0024 2DBA              out 0x1d,R2
 0026                   .dbline 30
 0026           ;  
 0026           ;  TIMSK0 = 0x00; //timer 0 interrupt sources
 0026 20926E00          sts 110,R2
 002A                   .dbline 31
 002A           ;  TIMSK1 = 0x00; //timer 1 interrupt sources
 002A 20926F00          sts 111,R2
 002E                   .dbline 32
 002E           ;  TIMSK2 = 0x00; //timer 2 interrupt sources
 002E 20927000          sts 112,R2
 0032                   .dbline 34
 0032           ;  
 0032           ;  PCMSK0 = 0x00; //pin change mask 0 
 0032 20926B00          sts 107,R2
 0036                   .dbline 35
 0036           ;  PCMSK1 = 0x00; //pin change mask 1 
 0036 20926C00          sts 108,R2
 003A                   .dbline 36
 003A           ;  PCMSK2 = 0x00; //pin change mask 2
 003A 20926D00          sts 109,R2
 003E                   .dbline 37
 003E           ;  PCICR = 0x00; //pin change enable 
 003E 20926800          sts 104,R2
 0042                   .dbline 38
 0042           ;  PRR = 0x00; //power controller
 0042 20926400          sts 100,R2
 0046                   .dbline 39
 0046           ;  SEI(); //re-enable interrupts
 0046 7894              sei
 0048                   .dbline -2
 0048           L2:
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbend
 004A                   .dbfunc e forward _forward fV
                        .even
 004A           _forward::
 004A                   .dbline -1
 004A                   .dbline 45
 004A           ;  //all peripherals are now initialized
 004A           ; }
 004A           ; 
 004A           ; /*前行*/
 004A           ; void  forward(void)
 004A           ; {
 004A                   .dbline 46
 004A           ;  PORTD = 0X9F;
 004A 8FE9              ldi R24,159
 004C 8BB9              out 0xb,R24
 004E                   .dbline 47
 004E           ;  PORTB = 0XF8;
 004E 88EF              ldi R24,248
 0050 85B9              out 0x5,R24
 0052                   .dbline -2
 0052           L3:
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbend
 0054                   .dbfunc e stop _stop fV
                        .even
 0054           _stop::
 0054                   .dbline -1
 0054                   .dbline 52
 0054           ; }
 0054           ; 
 0054           ; /*停止*/
 0054           ; void  stop(void)
 0054           ; {
 0054                   .dbline 53
 0054           ;  PORTD = 0XFF;
 0054 8FEF              ldi R24,255
 0056 8BB9              out 0xb,R24
 0058                   .dbline 54
 0058           ;  PORTB = 0XFF;
 0058 85B9              out 0x5,R24
 005A                   .dbline -2
 005A           L4:
 005A                   .dbline 0 ; func end
 005A 0895              ret
 005C                   .dbend
 005C                   .dbfunc e mic_startup _mic_startup fV
 005C           ;         mic_in -> R16
                        .even
 005C           _mic_startup::
 005C                   .dbline -1
 005C                   .dbline 58
 005C           ; }
 005C           ; 
 005C           ; void mic_startup()
 005C           ; {//声控启动程序运行
 005C 04C0              rjmp L7
 005E           L6:
 005E                   .dbline 61
 005E           ;  unsigned char mic_in;
 005E           ;  while(1)
 005E           ;    {    //无键按下等待
 005E                   .dbline 62
 005E           ;     mic_in=PINC & 0x20;     //pc5=0
 005E 06B1              in R16,0x6
 0060 0072              andi R16,32
 0062                   .dbline 63
 0062           ;     if(mic_in==0){break;}
 0062 09F4              brne L9
 0064                   .dbline 63
 0064                   .dbline 63
 0064 01C0              rjmp L8
 0066           L9:
 0066                   .dbline 64
 0066           L7:
 0066                   .dbline 60
 0066 FBCF              rjmp L6
 0068           L8:
 0068                   .dbline -2
 0068           L5:
 0068                   .dbline 0 ; func end
 0068 0895              ret
 006A                   .dbsym r mic_in 16 c
 006A                   .dbend
 006A                   .dbfunc e main _main fV
 006A           ;              i -> <dead>
                        .even
 006A           _main::
 006A                   .dbline -1
 006A                   .dbline 69
 006A           ;    }//有键按下运行下面的程序
 006A           ; }
 006A           ; 
 006A           ; /*主程序*/
 006A           ; void   main()
 006A           ; {
 006A                   .dbline 71
 006A           ;  unsigned char i;
 006A           ;  init_devices();
 006A D6DF              rcall _init_devices
 006C           L12:
 006C                   .dbline 73
 006C           ; demand:
 006C           ;          mic_startup();
 006C F7DF              rcall _mic_startup
 006E                   .dbline 77
 006E           ;  //while(1){
 006E           ;  //i = PINC&20;
 006E           ;  //if(i == 0){
 006E           ;  size++;
 006E 80910000          lds R24,_size
 0072 8F5F              subi R24,255    ; addi 1
 0074 80930000          sts _size,R24
 0078 0FC0              rjmp L14
 007A           L13:
 007A                   .dbline 82
 007A           ;  //break;
 007A           ;  //}
 007A           ;  //}
 007A           ;  while(1)
 007A           ;  {
 007A                   .dbline 83
 007A           ;  if(size==1)
 007A 80910000          lds R24,_size
 007E 8130              cpi R24,1
 0080 11F4              brne L16
 0082                   .dbline 84
 0082           ;               {
 0082                   .dbline 85
 0082           ;                forward();}
 0082 E3DF              rcall _forward
 0084                   .dbline 85
 0084 F3CF              rjmp L12
 0086           L16:
 0086                   .dbline 86
 0086 80910000          lds R24,_size
 008A 8230              cpi R24,2
 008C 79F7              brne L12
 008E                   .dbline 87
 008E                   .dbline 88
 008E E2DF              rcall _stop
 0090                   .dbline 89
 0090 2224              clr R2
 0092 20920000          sts _size,R2
 0096                   .dbline 89
 0096                   .dbline 90
 0096 EACF              rjmp L12
 0098           L14:
 0098                   .dbline 81
 0098 F0CF              rjmp L13
 009A           X0:
 009A                   .dbline -2
 009A           L11:
 009A                   .dbline 0 ; func end
 009A 0895              ret
 009C                   .dbsym l i 1 c
 009C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\xij\demo\demo_diy02-8a\1\C语言\02-8a-10\10.c
 0000           _size::
 0000                   .blkb 1
 0001                   .dbsym e size _size c

⌨️ 快捷键说明

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