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

📄 cankao.asm

📁 使用Atmega8单片机开发的一个激光治疗仪的人机接口程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
@00000000: .text
+00000000:   C013        RJMP    PC+0x0014        Relative jump
+00000001:   CFFE        RJMP    PC-0x0001        Relative jump
+00000002:   CFFD        RJMP    PC-0x0002        Relative jump
+00000003:   CFFC        RJMP    PC-0x0003        Relative jump
+00000004:   CFFB        RJMP    PC-0x0004        Relative jump
+00000005:   CFFA        RJMP    PC-0x0005        Relative jump
+00000006:   CFF9        RJMP    PC-0x0006        Relative jump
+00000007:   CFF8        RJMP    PC-0x0007        Relative jump
+00000008:   CFF7        RJMP    PC-0x0008        Relative jump
+00000009:   C05A        RJMP    PC+0x005B        Relative jump
+0000000A:   CFF5        RJMP    PC-0x000A        Relative jump
+0000000B:   CFF4        RJMP    PC-0x000B        Relative jump
+0000000C:   CFF3        RJMP    PC-0x000C        Relative jump
+0000000D:   CFF2        RJMP    PC-0x000D        Relative jump
+0000000E:   CFF1        RJMP    PC-0x000E        Relative jump
+0000000F:   CFF0        RJMP    PC-0x000F        Relative jump
+00000010:   CFEF        RJMP    PC-0x0010        Relative jump
+00000011:   CFEE        RJMP    PC-0x0011        Relative jump
+00000012:   CFED        RJMP    PC-0x0012        Relative jump
+00000013:   0000        NOP                      No operation
+00000014:   94F8        CLI                      Global Interrupt Disable
+00000015:   27EE        CLR     R30              Clear Register
+00000016:   BBEC        OUT     0x1C,R30         Out to I/O location
+00000017:   E0F1        LDI     R31,0x01         Load immediate
+00000018:   BFFB        OUT     0x3B,R31         Out to I/O location
+00000019:   BFEB        OUT     0x3B,R30         Out to I/O location
+0000001A:   BFE5        OUT     0x35,R30         Out to I/O location
+0000001B:   E1F8        LDI     R31,0x18         Load immediate
+0000001C:   BDF1        OUT     0x21,R31         Out to I/O location
+0000001D:   BDE1        OUT     0x21,R30         Out to I/O location
+0000001E:   E08D        LDI     R24,0x0D         Load immediate
+0000001F:   E0A2        LDI     R26,0x02         Load immediate
+00000020:   27BB        CLR     R27              Clear Register
+00000021:   93ED        ST      X+,R30           Store indirect and postincrement
+00000022:   958A        DEC     R24              Decrement
+00000023:   F7E9        BRNE    PC-0x02          Branch if not equal
+00000024:   E080        LDI     R24,0x00         Load immediate
+00000025:   E094        LDI     R25,0x04         Load immediate
+00000026:   E6A0        LDI     R26,0x60         Load immediate
+00000027:   93ED        ST      X+,R30           Store indirect and postincrement
+00000028:   9701        SBIW    R24,0x01         Subtract immediate from word
+00000029:   F7E9        BRNE    PC-0x02          Branch if not equal
+0000002A:   E2E6        LDI     R30,0x26         Load immediate
+0000002B:   E0F0        LDI     R31,0x00         Load immediate
+0000002C:   9185        LPM     R24,Z+           Load program memory and postincrement
+0000002D:   9195        LPM     R25,Z+           Load program memory and postincrement
+0000002E:   9700        SBIW    R24,0x00         Subtract immediate from word
+0000002F:   F061        BREQ    PC+0x0D          Branch if equal
+00000030:   91A5        LPM     R26,Z+           Load program memory and postincrement
+00000031:   91B5        LPM     R27,Z+           Load program memory and postincrement
+00000032:   9005        LPM     R0,Z+            Load program memory and postincrement
+00000033:   9015        LPM     R1,Z+            Load program memory and postincrement
+00000034:   01BF        MOVW    R22,R30          Copy register pair
+00000035:   01F0        MOVW    R30,R0           Copy register pair
+00000036:   9005        LPM     R0,Z+            Load program memory and postincrement
+00000037:   920D        ST      X+,R0            Store indirect and postincrement
+00000038:   9701        SBIW    R24,0x01         Subtract immediate from word
+00000039:   F7E1        BRNE    PC-0x03          Branch if not equal
+0000003A:   01FB        MOVW    R30,R22          Copy register pair
+0000003B:   CFF0        RJMP    PC-0x000F        Relative jump
+0000003C:   E5EF        LDI     R30,0x5F         Load immediate
+0000003D:   BFED        OUT     0x3D,R30         Out to I/O location
+0000003E:   E0E4        LDI     R30,0x04         Load immediate
+0000003F:   BFEE        OUT     0x3E,R30         Out to I/O location
+00000040:   E6C0        LDI     R28,0x60         Load immediate
+00000041:   E0D1        LDI     R29,0x01         Load immediate
+00000042:   C02E        RJMP    PC+0x002F        Relative jump
@00000043: KeyScan
---- 1__.c ----------------------------------------------------------------------------------------
39:       	if(PINB.6==0){
+00000043:   99B6        SBIC    0x16,6           Skip if bit in I/O register cleared
+00000044:   C002        RJMP    PC+0x0003        Relative jump
41:       	KeyState=0;}
+00000045:   2444        CLR     R4               Clear Register
42:       		else if(PINC.4==0){
+00000046:   C009        RJMP    PC+0x000A        Relative jump
+00000047:   999C        SBIC    0x13,4           Skip if bit in I/O register cleared
+00000048:   C003        RJMP    PC+0x0004        Relative jump
44:       		KeyState=1; }
+00000049:   E0E1        LDI     R30,0x01         Load immediate
+0000004A:   2E4E        MOV     R4,R30           Copy register
45:       			else if(PINC.5==0){
+0000004B:   C004        RJMP    PC+0x0005        Relative jump
+0000004C:   999D        SBIC    0x13,5           Skip if bit in I/O register cleared
+0000004D:   C002        RJMP    PC+0x0003        Relative jump
47:       			KeyState=2;}        
+0000004E:   E0E2        LDI     R30,0x02         Load immediate
+0000004F:   2E4E        MOV     R4,R30           Copy register
53:       	switch(KeyState)
+00000050:   2DE4        MOV     R30,R4           Copy register
55:       		case 0x00:       //POWER/RA5键-PB6
+00000051:   30E0        CPI     R30,0x00         Compare with immediate
+00000052:   F411        BRNE    PC+0x03          Branch if not equal
56:       		PORTC|=(1<<0);
+00000053:   9AA8        SBI     0x15,0           Set bit in I/O register
57:       			break;
+00000054:   C00E        RJMP    PC+0x000F        Relative jump
58:       		case 0x01:		 //WORK键-PC4
+00000055:   30E1        CPI     R30,0x01         Compare with immediate
+00000056:   F411        BRNE    PC+0x03          Branch if not equal
59:       		PORTC|=(1<<1);
+00000057:   9AA9        SBI     0x15,1           Set bit in I/O register
60:       			break;	
+00000058:   C00A        RJMP    PC+0x000B        Relative jump
61:       		case 0x02:		//ADJUST_P键-PC5
+00000059:   30E2        CPI     R30,0x02         Compare with immediate
+0000005A:   F411        BRNE    PC+0x03          Branch if not equal
62:       		PORTC|=(1<<2);
+0000005B:   9AAA        SBI     0x15,2           Set bit in I/O register
63:       			break;			
+0000005C:   C006        RJMP    PC+0x0007        Relative jump
64:       		case 0x03:		//RESET键-PC6
+0000005D:   30E3        CPI     R30,0x03         Compare with immediate
+0000005E:   F411        BRNE    PC+0x03          Branch if not equal
65:       		PORTC|=(1<<3);
+0000005F:   9AAB        SBI     0x15,3           Set bit in I/O register
66:       			break;		
+00000060:   C002        RJMP    PC+0x0003        Relative jump
67:       		case 0x04:		//充电状态-ADC6
+00000061:   30E4        CPI     R30,0x04         Compare with immediate
+00000062:   F401        BRNE    PC+0x01          Branch if not equal
73:       }   
+00000063:   9508        RET                      Subroutine return
@00000064: timer0_ovf_isr
76:       interrupt [TIM0_OVF] void timer0_ovf_isr(void)
77:       {
+00000064:   93EA        ST      -Y,R30           Store indirect and predecrement
+00000065:   B7EF        IN      R30,0x3F         In from I/O location
+00000066:   93EA        ST      -Y,R30           Store indirect and predecrement
79:       TCNT0=0x64;
+00000067:   D035        RCALL   PC+0x0036        Relative call subroutine
81:       flag=1;    
+00000068:   E0E1        LDI     R30,0x01         Load immediate
+00000069:   2E5E        MOV     R5,R30           Copy register
82:       PORTC&=0xf0;
+0000006A:   B3E5        IN      R30,0x15         In from I/O location
+0000006B:   7FE0        ANDI    R30,0xF0         Logical AND with immediate
+0000006C:   BBE5        OUT     0x15,R30         Out to I/O location
83:       }  
+0000006D:   91E9        LD      R30,Y+           Load indirect and postincrement
---- No Source ------------------------------------------------------------------------------------
+0000006E:   BFEF        OUT     0x3F,R30         Out to I/O location
+0000006F:   91E9        LD      R30,Y+           Load indirect and postincrement
+00000070:   9518        RETI                     Interrupt return
@00000071: main
---- 1__.c ----------------------------------------------------------------------------------------
94:       PORTB=0xF0;
+00000071:   EFE0        LDI     R30,0xF0         Load immediate
+00000072:   BBE8        OUT     0x18,R30         Out to I/O location
95:       DDRB=0x00;
+00000073:   E0E0        LDI     R30,0x00         Load immediate
+00000074:   BBE7        OUT     0x17,R30         Out to I/O location
100:      PORTC=0xF0;
+00000075:   EFE0        LDI     R30,0xF0         Load immediate
+00000076:   BBE5        OUT     0x15,R30         Out to I/O location
101:      DDRC=0x0F;
+00000077:   E0EF        LDI     R30,0x0F         Load immediate
+00000078:   BBE4        OUT     0x14,R30         Out to I/O location
106:      PORTD=0x00;
+00000079:   E0E0        LDI     R30,0x00         Load immediate
+0000007A:   BBE2        OUT     0x12,R30         Out to I/O location
107:      DDRD=0x00;
+0000007B:   BBE1        OUT     0x11,R30         Out to I/O location
112:      TCCR0=0x05;
+0000007C:   E0E5        LDI     R30,0x05         Load immediate
+0000007D:   BFE3        OUT     0x33,R30         Out to I/O location
113:      TCNT0=0x64;
+0000007E:   D01E        RCALL   PC+0x001F        Relative call subroutine
123:      TCCR1A=0x00;
+0000007F:   E0E0        LDI     R30,0x00         Load immediate
+00000080:   BDEF        OUT     0x2F,R30         Out to I/O location
124:      TCCR1B=0x00;
+00000081:   BDEE        OUT     0x2E,R30         Out to I/O location
125:      TCNT1H=0x00;
+00000082:   BDED        OUT     0x2D,R30         Out to I/O location
126:      TCNT1L=0x00;
+00000083:   BDEC        OUT     0x2C,R30         Out to I/O location
127:      ICR1H=0x00;
+00000084:   BDE7        OUT     0x27,R30         Out to I/O location
128:      ICR1L=0x00;
+00000085:   BDE6        OUT     0x26,R30         Out to I/O location
129:      OCR1AH=0x00;
+00000086:   BDEB        OUT     0x2B,R30         Out to I/O location
130:      OCR1AL=0x00;
+00000087:   BDEA        OUT     0x2A,R30         Out to I/O location
131:      OCR1BH=0x00;

⌨️ 快捷键说明

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