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

📄 11.lis

📁 这里有11个用ICCAVR开发的源代码,经DEMO板调试后已经通过.
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module _11.c
                        .area data(ram, con, rel)
 0000           _adc::
 0000                   .blkb 2
                        .area idata
 0000 3303              .word 819
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 6602              .word 614
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 9901              .word 409
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 CC00              .word 204
                        .area data(ram, con, rel)
 0008                   .dbfile D:\xij\demo\demo_diy02-8a\1\C语言\02-8a-11\11.c
 0008                   .dbsym e adc _adc A[8:4]i
                        .area text(rom, con, rel)
 0000                   .dbfile D:\xij\demo\demo_diy02-8a\1\C语言\02-8a-11\11.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 20
 0000           ; //ICC-AVR application builder : 2005-3-15 10:10:23
 0000           ; // Target : M48
 0000           ; // Crystal: 8.0000Mhz
 0000           ; 
 0000           ; #include <iom48v.h>
 0000           ; #include <macros.h>
 0000           ; unsigned int adc_w;
 0000           ; unsigned       int adc_old,bjz;
 0000           ; unsigned char ad_high,ad_low;
 0000           ; unsigned int adc[4]= {0x333,0x266,0x199,0xcc};
 0000           ; void alarm(void);
 0000           ; 
 0000           ; /*
 0000           ; #define adc_4 0x333;
 0000           ; #define       adc_3 0x266;
 0000           ; #define       adc_2 0x199;
 0000           ; #define       adc_1 0xcc;
 0000           ; */
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 21
 0000           ;  PORTB = 0xFF;
 0000 8FEF              ldi R24,255
 0002 85B9              out 0x5,R24
 0004                   .dbline 22
 0004           ;  DDRB  = 0x07;
 0004 87E0              ldi R24,7
 0006 84B9              out 0x4,R24
 0008                   .dbline 23
 0008           ;  PORTC = 0x7F; //m103 output only
 0008 8FE7              ldi R24,127
 000A 88B9              out 0x8,R24
 000C                   .dbline 24
 000C           ;  DDRC  = 0x00;
 000C 2224              clr R2
 000E 27B8              out 0x7,R2
 0010                   .dbline 25
 0010           ;  PORTD = 0xFF;
 0010 8FEF              ldi R24,255
 0012 8BB9              out 0xb,R24
 0014                   .dbline 26
 0014           ;  DDRD  = 0xFF;
 0014 8AB9              out 0xa,R24
 0016                   .dbline -2
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e adc_init _adc_init fV
                        .even
 0018           _adc_init::
 0018                   .dbline -1
 0018                   .dbline 32
 0018           ; }
 0018           ; 
 0018           ; //ADC initialize
 0018           ; // Conversion time: 13uS
 0018           ; void adc_init(void)
 0018           ; {
 0018                   .dbline 33
 0018           ;  ADCSRA = 0x00; //disable adc
 0018 2224              clr R2
 001A 20927A00          sts 122,R2
 001E                   .dbline 34
 001E           ;  ADMUX = 0x40;  //select adc input 0
 001E 80E4              ldi R24,64
 0020 80937C00          sts 124,R24
 0024                   .dbline 35
 0024           ;  ACSR  = 0x80;
 0024 80E8              ldi R24,128
 0026 80BF              out 0x30,R24
 0028                   .dbline 36
 0028           ;  ADCSRB = 0x00;
 0028 20927B00          sts 123,R2
 002C                   .dbline 37
 002C           ;  ADCSRA = 0xCB;
 002C 8BEC              ldi R24,203
 002E 80937A00          sts 122,R24
 0032                   .dbline -2
 0032           L2:
 0032                   .dbline 0 ; func end
 0032 0895              ret
 0034                   .dbend
                        .area vector(rom, abs)
                        .org 42
 002A 1AC0              rjmp _adc_isr
                        .area text(rom, con, rel)
 0034                   .dbfile D:\xij\demo\demo_diy02-8a\1\C语言\02-8a-11\11.c
 0034                   .dbfunc e adc_isr _adc_isr fV
                        .even
 0034           _adc_isr::
 0034 2A92              st -y,R2
 0036 3A92              st -y,R3
 0038 8A93              st -y,R24
 003A 2FB6              in R2,0x3f
 003C 2A92              st -y,R2
 003E                   .dbline -1
 003E                   .dbline 43
 003E           ;  
 003E           ; }
 003E           ; 
 003E           ; #pragma interrupt_handler adc_isr:22
 003E           ; void adc_isr(void)
 003E           ; {
 003E                   .dbline 44
 003E           ;  adc_w = ADC;
 003E 20907800          lds R2,120
 0042 30907900          lds R3,120+1
 0046 30920700          sts _adc_w+1,R3
 004A 20920600          sts _adc_w,R2
 004E                   .dbline 45
 004E           ;  ADMUX = 0x40;
 004E 80E4              ldi R24,64
 0050 80937C00          sts 124,R24
 0054                   .dbline 46
 0054           ;  ADCSRA = 0xCB;
 0054 8BEC              ldi R24,203
 0056 80937A00          sts 122,R24
 005A                   .dbline -2
 005A           L3:
 005A 2990              ld R2,y+
 005C 2FBE              out 0x3f,R2
 005E 8991              ld R24,y+
 0060 3990              ld R3,y+
 0062 2990              ld R2,y+
 0064                   .dbline 0 ; func end
 0064 1895              reti
 0066                   .dbend
 0066                   .dbfunc e init_devices _init_devices fV
                        .even
 0066           _init_devices::
 0066                   .dbline -1
 0066                   .dbline 56
 0066           ;  //ad_high = adch;
 0066           ;  //ad_low = adcl;
 0066           ;  //conversion complete, read value (int) using...
 0066           ;  // value=ADCL;            //Read 8 low bits first (important)
 0066           ;  // value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
 0066           ; }
 0066           ; 
 0066           ; //call this routine to initialize all peripherals
 0066           ; void init_devices(void)
 0066           ; {
 0066                   .dbline 58
 0066           ;  //stop errant interrupts until set up
 0066           ;  CLI(); //disable all interrupts
 0066 F894              cli
 0068                   .dbline 59
 0068           ;  port_init();
 0068 CBDF              rcall _port_init
 006A                   .dbline 60
 006A           ;  adc_init();
 006A D6DF              rcall _adc_init
 006C                   .dbline 62
 006C           ; 
 006C           ;  MCUCR = 0x00;
 006C 2224              clr R2
 006E 25BE              out 0x35,R2
 0070                   .dbline 63
 0070           ;  EICRA = 0x00; //extended ext ints
 0070 20926900          sts 105,R2
 0074                   .dbline 64
 0074           ;  EIMSK = 0x00;
 0074 2DBA              out 0x1d,R2
 0076                   .dbline 66
 0076           ;  
 0076           ;  TIMSK0 = 0x00; //timer 0 interrupt sources
 0076 20926E00          sts 110,R2
 007A                   .dbline 67
 007A           ;  TIMSK1 = 0x00; //timer 1 interrupt sources
 007A 20926F00          sts 111,R2
 007E                   .dbline 68
 007E           ;  TIMSK2 = 0x00; //timer 2 interrupt sources
 007E 20927000          sts 112,R2
 0082                   .dbline 70
 0082           ;  
 0082           ;  PCMSK0 = 0x00; //pin change mask 0 
 0082 20926B00          sts 107,R2
 0086                   .dbline 71
 0086           ;  PCMSK1 = 0x00; //pin change mask 1 
 0086 20926C00          sts 108,R2
 008A                   .dbline 72
 008A           ;  PCMSK2 = 0x00; //pin change mask 2
 008A 20926D00          sts 109,R2
 008E                   .dbline 73
 008E           ;  PCICR = 0x00; //pin change enable 
 008E 20926800          sts 104,R2
 0092                   .dbline 74
 0092           ;  PRR = 0x00; //power controller
 0092 20926400          sts 100,R2
 0096                   .dbline 75
 0096           ;  SEI(); //re-enable interrupts
 0096 7894              sei
 0098                   .dbline -2
 0098           L4:
 0098                   .dbline 0 ; func end
 0098 0895              ret
 009A                   .dbend
 009A                   .dbfunc e display _display fV
 009A           ;              i -> R20,R21
 009A           ;            com -> R22,R23
                        .even
 009A           _display::
 009A 00D0              rcall push_gset2
 009C B801              movw R22,R16
 009E                   .dbline -1
 009E                   .dbline 81
 009E           ;  //all peripherals are now initialized
 009E           ; }
 009E           ; 
 009E           ; /*显示函数*/
 009E           ; void  display(unsigned int com)
 009E           ; {
 009E 2FC0              rjmp L7
 00A0           L6:
 00A0                   .dbline 84
 00A0           ;  unsigned int i;
 00A0           ;  while(bjz != com)
 00A0           ;  {
 00A0                   .dbline 85
 00A0           ;   bjz = com;
 00A0 70930300          sts _bjz+1,R23
 00A4 60930200          sts _bjz,R22
 00A8                   .dbline 86
 00A8           ;  if(com > adc[1])
 00A8 20900200          lds R2,_adc+2
 00AC 30900300          lds R3,_adc+2+1
 00B0 2616              cp R2,R22
 00B2 3706              cpc R3,R23
 00B4 68F4              brsh L9
 00B6                   .dbline 87
 00B6           ;               {
 00B6                   .dbline 88
 00B6           ;                i = com;
 00B6 AB01              movw R20,R22
 00B8                   .dbline 89
 00B8           ;                if(i > adc[0])
 00B8 20900000          lds R2,_adc
 00BC 30900100          lds R3,_adc+1
 00C0 2616              cp R2,R22
 00C2 3706              cpc R3,R23
 00C4 10F4              brsh L12
 00C6                   .dbline 90
 00C6           ;                         {alarm();}
 00C6                   .dbline 90
 00C6 39D0              rcall _alarm
 00C8                   .dbline 90

⌨️ 快捷键说明

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