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

📄 dsq0.lst

📁 avr基础程序大全
💻 LST
字号:
Interrupt Vectors
    00000 940C 007F JMP	__text_start|__start
    00010 940C 00D1 JMP	_miao

Program Code (text area)
__text_start|__start:
    0007F EFCF      LDI	R28,0xFF
    00080 E2D1      LDI	R29,0x21
    00081 BFCD      OUT	0x3D,R28
    00082 BFDE      OUT	0x3E,R29
    00083 51CE      SUBI	R28,0x1E
    00084 40D0      SBCI	R29,0
    00085 EA0A      LDI	R16,0xAA
    00086 8308      ST	Y,R16
    00087 2400      CLR	R0
    00088 E1E9      LDI	R30,0x19
    00089 E0F2      LDI	R31,2
    0008A E012      LDI	R17,2
    0008B 31E9      CPI	R30,0x19
    0008C 07F1      CPC	R31,R17
    0008D F011      BEQ	0x0090
    0008E 9201      ST	Z+,R0
    0008F CFFB      RJMP	0x008B
    00090 8300      ST	Z,R16
    00091 EEE4      LDI	R30,0xE4
    00092 E0F0      LDI	R31,0
    00093 E0A0      LDI	R26,0
    00094 E0B2      LDI	R27,2
    00095 E010      LDI	R17,0
    00096 E000      LDI	R16,0
    00097 BF0B      OUT	0x3B,R16
    00098 3FED      CPI	R30,0xFD
    00099 07F1      CPC	R31,R17
    0009A F021      BEQ	0x009F
    0009B 95C8      LPM
    0009C 9631      ADIW	R30,1
    0009D 920D      ST	X+,R0
    0009E CFF9      RJMP	0x0098
    0009F 940E 00EC CALL	_main
_exit:
    000A1 CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
    000A2 940E 0122 CALL	push_xgsetF000
FILE: E:\AVR自编程序\11实验板\8定时器0\定时器0.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define  uchar unsigned char
(0004) #define  uint  unsigned int
(0005) uchar num=0;
(0006) #pragma interrupt_handler miao:9
(0007) 
(0008) uchar  const  table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
(0009) 		           0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
(0010) uchar const LED_W[8] = {0,1,2,3,4,5,6,7};
(0011) void delay(uint ms)
(0012) {
(0013)         uint i,j;
(0014) 	for(i=0;i<ms;i++)
    000A4 2744      CLR	R20
    000A5 2755      CLR	R21
    000A6 C00B      RJMP	0x00B2
(0015) 	   {
(0016) 	   for(j=0;j<1141;j++);
    000A7 2766      CLR	R22
    000A8 2777      CLR	R23
    000A9 C002      RJMP	0x00AC
    000AA 5F6F      SUBI	R22,0xFF
    000AB 4F7F      SBCI	R23,0xFF
    000AC 3765      CPI	R22,0x75
    000AD E0E4      LDI	R30,4
    000AE 077E      CPC	R23,R30
    000AF F3D0      BCS	0x00AA
    000B0 5F4F      SUBI	R20,0xFF
    000B1 4F5F      SBCI	R21,0xFF
    000B2 1740      CP	R20,R16
    000B3 0751      CPC	R21,R17
    000B4 F390      BCS	0x00A7
    000B5 940C 0127 JMP	pop_xgsetF000
_show:
  k                    --> R10
  j                    --> R12
    000B7 92AA      ST	-Y,R10
    000B8 92CA      ST	-Y,R12
    000B9 2EA2      MOV	R10,R18
    000BA 2EC0      MOV	R12,R16
(0017)        }
(0018) }
(0019) void show(uchar j,uchar k)
(0020) {
(0021)       
(0022) 	
(0023) 		PORTA = table[j];		 // i 值的 个位数
    000BB E081      LDI	R24,1
    000BC E092      LDI	R25,2
    000BD 2DEC      MOV	R30,R12
    000BE 27FF      CLR	R31
    000BF 0FE8      ADD	R30,R24
    000C0 1FF9      ADC	R31,R25
    000C1 8020      LD	R2,Z
    000C2 BA2B      OUT	0x1B,R2
(0024) 		PORTC = LED_W[k];		 //点亮第一位数码管
    000C3 E181      LDI	R24,0x11
    000C4 E092      LDI	R25,2
    000C5 2DEA      MOV	R30,R10
    000C6 27FF      CLR	R31
    000C7 0FE8      ADD	R30,R24
    000C8 1FF9      ADC	R31,R25
    000C9 8020      LD	R2,Z
    000CA BA25      OUT	0x15,R2
(0025) 		
(0026) 		delay(2);
    000CB E002      LDI	R16,2
    000CC E010      LDI	R17,0
    000CD DFD4      RCALL	_delay
    000CE 90C9      LD	R12,Y+
    000CF 90A9      LD	R10,Y+
    000D0 9508      RET
_miao:
    000D1 922A      ST	-Y,R2
    000D2 938A      ST	-Y,R24
    000D3 939A      ST	-Y,R25
    000D4 B62F      IN	R2,0x3F
    000D5 922A      ST	-Y,R2
(0027) 	
(0028) 		/*j++;
(0029) 		i++;
(0030) 		if(j == 8)			 //利用 j 值的变化,来控制数码管数值变化间隔的时间
(0031) 		{
(0032) 			j = 0;
(0033) 			i = 0;
(0034) 		}*/
(0035) 	
(0036) }
(0037) void miao()
(0038) {
(0039)     if(num==60)
    000D6 9180 0200 LDS	R24,num
    000D8 338C      CPI	R24,0x3C
    000D9 F419      BNE	0x00DD
(0040) 	   num=0;
    000DA 2422      CLR	R2
    000DB 9220 0200 STS	num,R2
(0041) 	 num++;
    000DD 9180 0200 LDS	R24,num
    000DF 5F8F      SUBI	R24,0xFF
    000E0 9380 0200 STS	num,R24
(0042) 	TCNT1H=0X85;
    000E2 E885      LDI	R24,0x85
    000E3 BD8D      OUT	0x2D,R24
(0043) 	TCNT1L=0XED;  
    000E4 EE8D      LDI	R24,0xED
    000E5 BD8C      OUT	0x2C,R24
    000E6 9029      LD	R2,Y+
    000E7 BE2F      OUT	0x3F,R2
    000E8 9199      LD	R25,Y+
    000E9 9189      LD	R24,Y+
    000EA 9029      LD	R2,Y+
    000EB 9518      RETI
(0044) }
(0045) void main()
(0046) {
(0047)     DDRA=0xff;	
_main:
    000EC EF8F      LDI	R24,0xFF
    000ED BB8A      OUT	0x1A,R24
(0048) 	DDRC=0XFF;
    000EE BB84      OUT	0x14,R24
(0049) 	
(0050) 	TCCR1B=0X04;
    000EF E084      LDI	R24,4
    000F0 BD8E      OUT	0x2E,R24
(0051) 	TCNT1H=0X85;
    000F1 E885      LDI	R24,0x85
    000F2 BD8D      OUT	0x2D,R24
(0052) 	TCNT1L=0XED;
    000F3 EE8D      LDI	R24,0xED
    000F4 BD8C      OUT	0x2C,R24
(0053) 	TIMSK|=BIT(2);
    000F5 B789      IN	R24,0x39
    000F6 6084      ORI	R24,4
    000F7 BF89      OUT	0x39,R24
(0054) 	SREG|=BIT(7);
    000F8 9478      BSET	7
    000F9 C00E      RJMP	0x0108
(0055) 	
(0056) 	while(1)
(0057) 	{
(0058) 	    show(num/10,1);
    000FA E021      LDI	R18,1
    000FB E01A      LDI	R17,0xA
    000FC 9100 0200 LDS	R16,num
    000FE 940E 010C CALL	div8u
    00100 DFB6      RCALL	_show
(0059) 		show(num%10,0);
FILE: <library>
    00101 2722      CLR	R18
    00102 E01A      LDI	R17,0xA
    00103 9100 0200 LDS	R16,num
    00105 940E 010A CALL	mod8u
    00107 DFAF      RCALL	_show
    00108 CFF1      RJMP	0x00FA
    00109 9508      RET
mod8u:
    0010A 9468      BSET	6
    0010B C001      RJMP	xdiv8u
div8u:
    0010C 94E8      BCLR	6
xdiv8u:
    0010D 932A      ST	-Y,R18
    0010E 92FA      ST	-Y,R15
    0010F 92EA      ST	-Y,R14
    00110 24FF      CLR	R15
    00111 24EE      CLR	R14
    00112 E120      LDI	R18,0x10
    00113 0F00      LSL	R16
    00114 1CFF      ROL	R15
    00115 1CEE      ROL	R14
    00116 16E1      CP	R14,R17
    00117 F010      BCS	0x011A
    00118 1AE1      SUB	R14,R17
    00119 9503      INC	R16
    0011A 952A      DEC	R18
    0011B F7B9      BNE	0x0113
    0011C F40E      BRTC	0x011E
    0011D 2D0E      MOV	R16,R14
    0011E 90E9      LD	R14,Y+
    0011F 90F9      LD	R15,Y+
    00120 9129      LD	R18,Y+
    00121 9508      RET
push_xgsetF000:
    00122 937A      ST	-Y,R23
    00123 936A      ST	-Y,R22
    00124 935A      ST	-Y,R21
    00125 934A      ST	-Y,R20
    00126 9508      RET
pop_xgsetF000:
    00127 9149      LD	R20,Y+
    00128 9159      LD	R21,Y+
    00129 9169      LD	R22,Y+
    0012A 9179      LD	R23,Y+
    0012B 9508      RET

⌨️ 快捷键说明

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