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

📄 control.lis

📁 Atmega8
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00DC 40930900          sts _Counter_MotorSpeedPulse,R20
 00E0 70930C00          sts _Counter_MotorSpeedPulse+2+1,R23
 00E4 60930B00          sts _Counter_MotorSpeedPulse+2,R22
 00E8                   .dbline 74
 00E8           ;           PORTB |=32; //PB5脚置高电平
 00E8 C59A              sbi 0x18,5
 00EA                   .dbline 75
 00EA           ;        }
 00EA           L7:
 00EA                   .dbline 76
 00EA 44EF              ldi R20,244
 00EC 51E0              ldi R21,1
 00EE 60E0              ldi R22,0
 00F0 70E0              ldi R23,0
 00F2 40900B00          lds R4,_Counter_MotorSpeedPulse+2
 00F6 50900C00          lds R5,_Counter_MotorSpeedPulse+2+1
 00FA 20900900          lds R2,_Counter_MotorSpeedPulse
 00FE 30900A00          lds R3,_Counter_MotorSpeedPulse+1
 0102 2416              cp R2,R20
 0104 3506              cpc R3,R21
 0106 4606              cpc R4,R22
 0108 5706              cpc R5,R23
 010A 19F4              brne L9
 010C                   .dbline 76
 010C 88B3              in R24,0x18
 010E 8F7D              andi R24,223
 0110 88BB              out 0x18,R24
 0112           L9:
 0112                   .dbline -2
 0112                   .dbline 77
 0112           ;        if(Counter_MotorSpeedPulse==500) PORTB &=223; //PB5脚置低电平
 0112           ; }
 0112           L6:
 0112 00D0              rcall pop_gset2
 0114 2990              ld R2,y+
 0116 2FBE              out 0x3f,R2
 0118 E991              ld R30,y+
 011A B991              ld R27,y+
 011C A991              ld R26,y+
 011E 9991              ld R25,y+
 0120 8991              ld R24,y+
 0122 5990              ld R5,y+
 0124 4990              ld R4,y+
 0126 3990              ld R3,y+
 0128 2990              ld R2,y+
 012A                   .dbline 0 ; func end
 012A 1895              reti
 012C                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 96C0              rjmp _int1_isr
                        .area text(rom, con, rel)
 012C                   .dbfile C:\DOCUME~1\hb\MYDOCU~1\喷吗机--2代\单片机程序\定时器(方波输出,TC1控制)\Control.c
 012C                   .dbfunc e int1_isr _int1_isr fV
                        .even
 012C           _int1_isr::
 012C 0A92              st -y,R0
 012E 1A92              st -y,R1
 0130 2A92              st -y,R2
 0132 3A92              st -y,R3
 0134 4A92              st -y,R4
 0136 5A92              st -y,R5
 0138 8A93              st -y,R24
 013A EA93              st -y,R30
 013C 0FB6              in R0,0x3f
 013E 0A92              st -y,R0
 0140 00D0              rcall push_gset2
 0142                   .dbline -1
 0142                   .dbline 81
 0142           ; 
 0142           ; #pragma interrupt_handler int1_isr:3
 0142           ; void int1_isr(void) //external interupt on INT1   记录光电开关的触发脉冲
 0142           ; {
 0142                   .dbline 82
 0142           ;      Counter_IRPulse++;
 0142 41E0              ldi R20,1
 0144 50E0              ldi R21,0
 0146 60E0              ldi R22,0
 0148 70E0              ldi R23,0
 014A 40900700          lds R4,_Counter_IRPulse+2
 014E 50900800          lds R5,_Counter_IRPulse+2+1
 0152 20900500          lds R2,_Counter_IRPulse
 0156 30900600          lds R3,_Counter_IRPulse+1
 015A 240E              add R2,R20
 015C 351E              adc R3,R21
 015E 461E              adc R4,R22
 0160 571E              adc R5,R23
 0162 30920600          sts _Counter_IRPulse+1,R3
 0166 20920500          sts _Counter_IRPulse,R2
 016A 50920800          sts _Counter_IRPulse+2+1,R5
 016E 40920700          sts _Counter_IRPulse+2,R4
 0172                   .dbline 83
 0172           ;        if(Counter_IRPulse >= 1000){  //计算并触发打印按钮
 0172 48EE              ldi R20,232
 0174 53E0              ldi R21,3
 0176 60E0              ldi R22,0
 0178 70E0              ldi R23,0
 017A 2416              cp R2,R20
 017C 3506              cpc R3,R21
 017E 4606              cpc R4,R22
 0180 5706              cpc R5,R23
 0182 6CF0              brlt L12
 0184                   .dbline 83
 0184                   .dbline 84
 0184           ;           Counter_IRPulse=0;
 0184 40E0              ldi R20,0
 0186 50E0              ldi R21,0
 0188 60E0              ldi R22,0
 018A 70E0              ldi R23,0
 018C 50930600          sts _Counter_IRPulse+1,R21
 0190 40930500          sts _Counter_IRPulse,R20
 0194 70930800          sts _Counter_IRPulse+2+1,R23
 0198 60930700          sts _Counter_IRPulse+2,R22
 019C                   .dbline 85
 019C           ;           PORTB |=64; //PB6脚置高电平
 019C C69A              sbi 0x18,6
 019E                   .dbline 86
 019E           ;        }
 019E           L12:
 019E                   .dbline 87
 019E 44EF              ldi R20,244
 01A0 51E0              ldi R21,1
 01A2 60E0              ldi R22,0
 01A4 70E0              ldi R23,0
 01A6 40900700          lds R4,_Counter_IRPulse+2
 01AA 50900800          lds R5,_Counter_IRPulse+2+1
 01AE 20900500          lds R2,_Counter_IRPulse
 01B2 30900600          lds R3,_Counter_IRPulse+1
 01B6 2416              cp R2,R20
 01B8 3506              cpc R3,R21
 01BA 4606              cpc R4,R22
 01BC 5706              cpc R5,R23
 01BE 19F4              brne L14
 01C0                   .dbline 87
 01C0 88B3              in R24,0x18
 01C2 8F7B              andi R24,191
 01C4 88BB              out 0x18,R24
 01C6           L14:
 01C6                   .dbline -2
 01C6                   .dbline 88
 01C6           ;      if(Counter_IRPulse == 500) PORTB &=191; //PB6脚置低电平
 01C6           ; }
 01C6           L11:
 01C6 00D0              rcall pop_gset2
 01C8 0990              ld R0,y+
 01CA 0FBE              out 0x3f,R0
 01CC E991              ld R30,y+
 01CE 8991              ld R24,y+
 01D0 5990              ld R5,y+
 01D2 4990              ld R4,y+
 01D4 3990              ld R3,y+
 01D6 2990              ld R2,y+
 01D8 1990              ld R1,y+
 01DA 0990              ld R0,y+
 01DC                   .dbline 0 ; func end
 01DC 1895              reti
 01DE                   .dbend
 01DE                   .dbfunc e init_devices _init_devices fV
                        .even
 01DE           _init_devices::
 01DE                   .dbline -1
 01DE                   .dbline 92
 01DE           ; 
 01DE           ; //call this routine to initialise all peripherals
 01DE           ; void init_devices(void)
 01DE           ; {
 01DE                   .dbline 94
 01DE           ;  //stop errant interrupts until set up
 01DE           ;  CLI(); //disable all interrupts
 01DE F894              cli
 01E0                   .dbline 95
 01E0           ;  port_init();
 01E0 0FDF              rcall _port_init
 01E2                   .dbline 96
 01E2           ;  timer2_init();
 01E2 3CDF              rcall _timer2_init
 01E4                   .dbline 97
 01E4           ;  timer1_init();
 01E4 18DF              rcall _timer1_init
 01E6                   .dbline 99
 01E6           ; 
 01E6           ;  MCUCR = 0x0F;
 01E6 8FE0              ldi R24,15
 01E8 85BF              out 0x35,R24
 01EA                   .dbline 100
 01EA           ;  GICR  = 0xC0;
 01EA 80EC              ldi R24,192
 01EC 8BBF              out 0x3b,R24
 01EE                   .dbline 101
 01EE           ;  TIMSK = 0x18; //timer interrupt sources
 01EE 88E1              ldi R24,24
 01F0 89BF              out 0x39,R24
 01F2                   .dbline 102
 01F2           ;  SEI(); //re-enable interrupts
 01F2 7894              sei
 01F4                   .dbline -2
 01F4                   .dbline 104
 01F4           ;  //all peripherals are now initialised
 01F4           ; }
 01F4           L16:
 01F4                   .dbline 0 ; func end
 01F4 0895              ret
 01F6                   .dbend
 01F6                   .dbfunc e main _main fV
                        .even
 01F6           _main::
 01F6                   .dbline -1
 01F6                   .dbline 107
 01F6           ; 
 01F6           ; void main()
 01F6           ; {
 01F6                   .dbline 108
 01F6           ;    Settings_IRTopValue = 1000;        //光电开关触发Settings_IRTopValue次后就开始打印一条信息 
 01F6 48EE              ldi R20,232
 01F8 53E0              ldi R21,3
 01FA 60E0              ldi R22,0
 01FC 70E0              ldi R23,0
 01FE 50930200          sts _Settings_IRTopValue+1,R21
 0202 40930100          sts _Settings_IRTopValue,R20
 0206 70930400          sts _Settings_IRTopValue+2+1,R23
 020A 60930300          sts _Settings_IRTopValue+2,R22
 020E                   .dbline 109
 020E           ;    Settings_PrintQuality = 10;     //10个墨滴选一个充电
 020E 8AE0              ldi R24,10
 0210 80930000          sts _Settings_PrintQuality,R24
 0214                   .dbline 110
 0214           ;    Counter_MotorSpeedPulse =0;
 0214 40E0              ldi R20,0
 0216 50E0              ldi R21,0
 0218 60E0              ldi R22,0
 021A 70E0              ldi R23,0
 021C 50930A00          sts _Counter_MotorSpeedPulse+1,R21
 0220 40930900          sts _Counter_MotorSpeedPulse,R20
 0224 70930C00          sts _Counter_MotorSpeedPulse+2+1,R23
 0228 60930B00          sts _Counter_MotorSpeedPulse+2,R22
 022C                   .dbline 111
 022C           ;    Counter_IRPulse =0;
 022C 40E0              ldi R20,0
 022E 50E0              ldi R21,0
 0230 60E0              ldi R22,0
 0232 70E0              ldi R23,0
 0234 50930600          sts _Counter_IRPulse+1,R21
 0238 40930500          sts _Counter_IRPulse,R20
 023C 70930800          sts _Counter_IRPulse+2+1,R23
 0240 60930700          sts _Counter_IRPulse+2,R22
 0244                   .dbline 113
 0244           ;    
 0244           ;    init_devices();
 0244                   .dbline -2
 0244                   .dbline 114
 0244           ; }
 0244           L17:
 0244                   .dbline 0 ; func end
 0244 CCCF              rjmp _init_devices
 0246                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\hb\MYDOCU~1\喷吗机--2代\单片机程序\定时器(方波输出,TC1控制)\Control.c
 0000           _Settings_PrintQuality::
 0000                   .blkb 1
 0001                   .dbsym e Settings_PrintQuality _Settings_PrintQuality c
 0001           _Settings_IRTopValue::
 0001                   .blkb 4
 0005                   .dbsym e Settings_IRTopValue _Settings_IRTopValue L
 0005           _Counter_IRPulse::
 0005                   .blkb 4
 0009                   .dbsym e Counter_IRPulse _Counter_IRPulse L
 0009           _Counter_MotorSpeedPulse::
 0009                   .blkb 4
 000D                   .dbsym e Counter_MotorSpeedPulse _Counter_MotorSpeedPulse L
 000D           _Ddummy::
 000D                   .blkb 4
 0011                   .dbsym e Ddummy _Ddummy L

⌨️ 快捷键说明

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