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

📄 smg.lst

📁 avr基础程序大全
💻 LST
字号:
Interrupt Vectors
    00000 940C 0033 JMP	__text_start|__start

Program Code (text area)
__text_start|__start:
    00033 E5CF      LDI	R28,0x5F
    00034 E0D4      LDI	R29,4
    00035 BFCD      OUT	0x3D,R28
    00036 BFDE      OUT	0x3E,R29
    00037 51CE      SUBI	R28,0x1E
    00038 40D0      SBCI	R29,0
    00039 EA0A      LDI	R16,0xAA
    0003A 8308      ST	Y,R16
    0003B 2400      CLR	R0
    0003C E7E2      LDI	R30,0x72
    0003D E0F0      LDI	R31,0
    0003E E010      LDI	R17,0
    0003F 37E2      CPI	R30,0x72
    00040 07F1      CPC	R31,R17
    00041 F011      BEQ	0x0044
    00042 9201      ST	Z+,R0
    00043 CFFB      RJMP	0x003F
    00044 8300      ST	Z,R16
    00045 E5E4      LDI	R30,0x54
    00046 E0F0      LDI	R31,0
    00047 E6A0      LDI	R26,0x60
    00048 E0B0      LDI	R27,0
    00049 E010      LDI	R17,0
    0004A E000      LDI	R16,0
    0004B BF0B      OUT	0x3B,R16
    0004C 36E6      CPI	R30,0x66
    0004D 07F1      CPC	R31,R17
    0004E F021      BEQ	0x0053
    0004F 95C8      LPM
    00050 9631      ADIW	R30,1
    00051 920D      ST	X+,R0
    00052 CFF9      RJMP	0x004C
    00053 940E 006B CALL	_main
_exit:
    00055 CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
    00056 940E 0087 CALL	push_xgsetF000
FILE: E:\AVR自编程序\11实验板\5数码管静态显示\smg.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define  uchar unsigned char
(0004) #define  uint  unsigned int
(0005) //#pragma data:code 
(0006) uchar table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
(0007) 				  
(0008) uchar LED_W[8] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};				   
(0009) void delay(uint ms)
(0010) {
(0011)         uint i,j;
(0012) 	for(i=0;i<ms;i++)
    00058 2744      CLR	R20
    00059 2755      CLR	R21
    0005A C00B      RJMP	0x0066
(0013) 	   {
(0014) 	   for(j=0;j<1141;j++);
    0005B 2766      CLR	R22
    0005C 2777      CLR	R23
    0005D C002      RJMP	0x0060
    0005E 5F6F      SUBI	R22,0xFF
    0005F 4F7F      SBCI	R23,0xFF
    00060 3765      CPI	R22,0x75
    00061 E0E4      LDI	R30,4
    00062 077E      CPC	R23,R30
    00063 F3D0      BCS	0x005E
    00064 5F4F      SUBI	R20,0xFF
    00065 4F5F      SBCI	R21,0xFF
    00066 1740      CP	R20,R16
    00067 0751      CPC	R21,R17
    00068 F390      BCS	0x005B
    00069 940C 008C JMP	pop_xgsetF000
(0015)        }
(0016) }
(0017) 
(0018) void main()
(0019) {
(0020)         uchar i=0,j=0;
_main:
  j                    --> R20
  i                    --> R10
    0006B 24AA      CLR	R10
    0006C 2744      CLR	R20
(0021)         DDRA=0xff;	
    0006D EF8F      LDI	R24,0xFF
    0006E BB8A      OUT	0x1A,R24
(0022) 		DDRB=0xff;
    0006F BB87      OUT	0x17,R24
    00070 C014      RJMP	0x0085
(0023) 		
(0024) 
(0025) 	while(1)
(0026) 	{
(0027) 		PORTA = table[i];		 // i 值的 个位数
    00071 E680      LDI	R24,0x60
    00072 E090      LDI	R25,0
    00073 2DEA      MOV	R30,R10
    00074 27FF      CLR	R31
    00075 0FE8      ADD	R30,R24
    00076 1FF9      ADC	R31,R25
    00077 8020      LD	R2,Z
    00078 BA2B      OUT	0x1B,R2
(0028) 		PORTB = LED_W[0];		 //点亮第一位数码管
    00079 9020 006A LDS	R2,LED_W
    0007B BA28      OUT	0x18,R2
(0029) 		//PORTB=0;
(0030) 		delay(200);
    0007C EC08      LDI	R16,0xC8
    0007D E010      LDI	R17,0
    0007E DFD7      RCALL	_delay
(0031) 	
(0032) 		j++;
    0007F 9543      INC	R20
(0033) 		i++;
    00080 94A3      INC	R10
(0034) 		if(j == 10)			 //利用 j 值的变化,来控制数码管数值变化间隔的时间
    00081 304A      CPI	R20,0xA
    00082 F411      BNE	0x0085
(0035) 		{
(0036) 			j = 0;
    00083 2744      CLR	R20
(0037) 			i = 0;
FILE: <library>
    00084 24AA      CLR	R10
    00085 CFEB      RJMP	0x0071
    00086 9508      RET
push_xgsetF000:
    00087 937A      ST	-Y,R23
    00088 936A      ST	-Y,R22
    00089 935A      ST	-Y,R21
    0008A 934A      ST	-Y,R20
    0008B 9508      RET
pop_xgsetF000:
    0008C 9149      LD	R20,Y+
    0008D 9159      LD	R21,Y+
    0008E 9169      LD	R22,Y+
    0008F 9179      LD	R23,Y+
    00090 9508      RET

⌨️ 快捷键说明

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