📄 adc.lst
字号:
__start:
__text_start:
001D E5CF LDI R28,0x5F
001E E0D4 LDI R29,4
001F BFCD OUT 0x3D,R28
0020 BFDE OUT 0x3E,R29
0021 51C0 SUBI R28,0x10
0022 40D0 SBCI R29,0
0023 EA0A LDI R16,0xAA
0024 8308 STD Y+0,R16
0025 2400 CLR R0
0026 E6E4 LDI R30,0x64
0027 E0F0 LDI R31,0
0028 E010 LDI R17,0
0029 36E7 CPI R30,0x67
002A 07F1 CPC R31,R17
002B F011 BEQ 0x002E
002C 9201 ST R0,Z+
002D CFFB RJMP 0x0029
002E 8300 STD Z+0,R16
002F E3E6 LDI R30,0x36
0030 E0F0 LDI R31,0
0031 E6A0 LDI R26,0x60
0032 E0B0 LDI R27,0
0033 E010 LDI R17,0
0034 33EA CPI R30,0x3A
0035 07F1 CPC R31,R17
0036 F021 BEQ 0x003B
0037 95C8 LPM
0038 9631 ADIW R30,1
0039 920D ST R0,X+
003A CFF9 RJMP 0x0034
003B D09F RCALL _main
_exit:
003C CFFF RJMP _exit
FILE: E:\icc\iccavr\mega8\mega8\ADC\numled.c
(0001) /*******************************************/
(0002) /* 广州天河双龙电子公司 */
(0003) /* http://www.sl.com.cn */
(0004) /* 数码LED驱动程序 */
(0005) /* 作者:ntzwq@wx88.net */
(0006) /* 2002年5月11日 */
(0007) /* 目标MCU:MEGA8 晶振:内部RC(INT) 8MHZ */
(0008) /*******************************************/
(0009) #include<iom8v.h>
(0010) const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
(0011) 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
(0012) unsigned char led_buff[4]={0,0,0,0};
(0013) /* 微秒级延时程序 */
(0014) void delay_us(int time)
(0015) {
(0016) do
(0017) {
(0018) time--;
_delay_us:
time --> R16
003D 5001 SUBI R16,1
003E 4010 SBCI R17,0
(0019) }
(0020) while (time>1);
003F E081 LDI R24,1
0040 E090 LDI R25,0
0041 1780 CP R24,R16
0042 0791 CPC R25,R17
0043 F3CC BLT 0x003D
(0021) }
0044 9508 RET
_delay_ms:
time --> R20
0045 D1A9 RCALL push_gset1
0046 01A8 MOVW R20,R16
(0022) /* 毫秒级延时程序 */
(0023) void delay_ms(unsigned int time)
(0024) {
0047 C005 RJMP 0x004D
(0025) while(time!=0)
(0026) {
(0027) delay_us(1000);
0048 EE08 LDI R16,0xE8
0049 E013 LDI R17,3
004A DFF2 RCALL _delay_us
(0028) time--;
004B 5041 SUBI R20,1
004C 4050 SBCI R21,0
004D 3040 CPI R20,0
004E 0745 CPC R20,R21
004F F7C1 BNE 0x0048
(0029) }
(0030) }
0050 D1A1 RCALL pop_gset1
0051 9508 RET
_display:
i --> R20
0052 D19C RCALL push_gset1
(0031) void display(void)
(0032) {
(0033) unsigned char i;
(0034) DDRB=0xff;
0053 EF8F LDI R24,0xFF
0054 BB87 OUT 0x17,R24
(0035) PORTB=0xff;
0055 BB88 OUT 0x18,R24
(0036) DDRD|=0xf0;
0056 B381 IN R24,0x11
0057 6F80 ORI R24,0xF0
0058 BB81 OUT 0x11,R24
(0037) PORTD|=0xf0;
0059 B382 IN R24,0x12
005A 6F80 ORI R24,0xF0
005B BB82 OUT 0x12,R24
(0038) for(i=0;i<4;i++)
005C 2744 CLR R20
005D C018 RJMP 0x0076
(0039) {
(0040) PORTB=led_buff[i];
005E E680 LDI R24,0x60
005F E090 LDI R25,0
0060 2FE4 MOV R30,R20
0061 27FF CLR R31
0062 0FE8 ADD R30,R24
0063 1FF9 ADC R31,R25
0064 8020 LDD R2,Z+0
0065 BA28 OUT 0x18,R2
(0041) PORTD&=~(1<<(i+4));
0066 2F14 MOV R17,R20
0067 5F1C SUBI R17,0xFC
0068 E001 LDI R16,1
0069 D1D3 RCALL lsl8
006A 2E20 MOV R2,R16
006B 9420 COM R2
006C B232 IN R3,0x12
006D 2032 AND R3,R2
006E BA32 OUT 0x12,R3
(0042) delay_ms(1);
006F E001 LDI R16,1
0070 E010 LDI R17,0
0071 DFD3 RCALL _delay_ms
(0043) PORTD|=0xf0;
0072 B382 IN R24,0x12
0073 6F80 ORI R24,0xF0
0074 BB82 OUT 0x12,R24
0075 9543 INC R20
0076 3044 CPI R20,4
0077 F330 BCS 0x005E
(0044) }
(0045) }
0078 D179 RCALL pop_gset1
0079 9508 RET
FILE: E:\icc\iccavr\mega8\mega8\ADC\ADC.c
(0001) /*******************************************/
(0002) /* 广州天河双龙电子公司 */
(0003) /* http://www.sl.com.cn */
(0004) /* 多通道AD转换演示程序 */
(0005) /* 作者:ntzwq@wx88.net
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -