arkadaşlar elimde asm kodlarıyla bir program var ve ben bu programı attiny2313'e nasıl yuklemeliyim bir türlü bulamadım. programlayıcım süperpro3000u. pic gibi olduğunu düşünerek baskı devresini yaptım tüm malzemeleri monte ettim ve enson gidip attiny2313'ü aldım. şimdi ben ona o bana bakıyor . picteki gibi hex dosyasınamı dönüştürmem gerekiyor.
hangi programla yapmalıyım püf noktası varmı lütfen çok acil yardım..
AVR studio ile : Link (http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725)
bana asm koduyla yazılmış bir attiny2313 programını hex dosyasına çevirme konusunda yardım edin lütfen sadece bunu istiyorum. program kodları aşağıda..
;----------------------------------------------------------------------------;
; AVR SERVOMOTOR CONTROLLER R0.3a (C)ChaN, 2005 ;
;----------------------------------------------------------------------------;
; SMC3A: Specified for standalone operation for stepper motor replacement
.include "tn2313def.inc"
.include "avr.inc"
.equ INI_MODE = 0 ;Initial Servo Mode (0-3) for no serial control
.equ SYSCLK = 16000000
.equ BPS = 38400
.def _0 = r15 ;Permanent zero register
.def _PvEnc = r14 ;Previous encoder signal A/B
.def _PvDir = r13 ;Previous direction
.def _CtDiv = r12 ;1/83 divider
.def _PosH = r11 ;Current position (circular counter)
.def _PosL = r10 ;/
.def _CmdH = r9 ;Commanded position (circular counter)
.def _CmdL = r8 ;/
.def _CmdF = r7 ;Gear fraction
.def _Flags = r25 ; -|Sat.F|Sat.R|-|-|-|Echo
;----------------------------------------------------------;
; EEPROM Area
.eseg
; Memory bank 0 : Yasukawa Electric UGTMEM-A1SA51
.dw 300, 0x0500, 0x0300, 0x00c0, 240, 0x0340, 0x0100, 0
; Memory bank 1 : Yasukawa Electric UGTMEM-A1SA51
.dw 300, 0x0500, 0x0300, 0x00c0, 240, 0x0340, 0x0100, 0
; Memory bank 2 : Tamagawa Seiki TS1410N1
.dw 300, 0x0800, 0x0300, 0x0060, 180, 0x0550, 0x0100, 0
; Memory bank 3 : Matsushita Electric MCN-14EAEC (6V, 40p/r)
.dw 200, 0x0800, 0x0a00, 0x0400, 200, 0x0840, 0x0100, 0
.equ N_PARM = 8 ; Number of parameter words par bank.
;----------------------------------------------------------;
; Data memory area
.dseg
.org RAMTOP
; Servo / G command parameters
Parms:
LimSpd: .byte 2 ;P0,Velocity limit Integer
GaSpd: .byte 2 ;P1,Velocity feedback gain 8.8 fixed point
GaTqP: .byte 2 ;P2,Proportional gain 8.8 fixed point
GaTqI: .byte 2 ;P3,Integral gain 8.8 fixed point
LimTrq: .byte 2 ;P4,Torque limit Integer
GaEG: .byte 2 ;P5,EG feedback gain 8.8 fixed point
Gear: .byte 2 ;P6,Gear ratio for pulsed input 8.8 fixed point
.byte 2 ;P7
; Command/Servo registers
CtSub: .byte 2 ;Sub command s mode 0/1/2
PvInt: .byte 2 ;Integration register
PvPos: .byte 2 ;Velocity detection register
OvTmr: .byte 2 ;Torque limit timer
Mode: .byte 1 ;Servo Mode m
; Displacements referrd from RAMTOP
.equ iLimSpd = LimSpd-RAMTOP
.equ iGaSpd = GaSpd-RAMTOP
.equ iGaTqP = GaTqP-RAMTOP
.equ iGaTqI = GaTqI-RAMTOP
.equ iLimTrq = LimTrq-RAMTOP
.equ iGaEG = GaEG-RAMTOP
.equ iGear = Gear-RAMTOP
.equ iCtSub = CtSub-RAMTOP
.equ iPvInt = PvInt-RAMTOP
.equ iPvPos = PvPos-RAMTOP
.equ iOvTmr = OvTmr-RAMTOP
.equ iMode = Mode-RAMTOP
; Host command
RxBuf: .byte 2+16 ; Serial receive buffer (Rp, Wp, Buff[16])
LineBuf:.byte 20 ; Command line input buffer
;----------------------------------------------------------;
; Program code
.cseg
; Interrupt Vectors (ATtiny2313)
rjmp reset ;Reset
rjmp int0_isr ;INT0
rjmp 0 ;INT1
rjmp 0 ;TC1 CAPT
rjmp 0 ;TC1 COMPA
rjmp 0 ;TC1 overflow
rjmp 0 ;TC0 overflow
rjmp rxint ;USART0 Rx ready
rjmp 0 ;USART0 Tx UDRE
rjmp 0 ;USART0 Tx empty
rjmp 0 ;Analog comparator
rjmp 0 ;PCINT
rjmp 0 ;TC1 COMPB
rjmp background ;TC0 COMPA
; rjmp 0 ;TC0 COMPB
; rjmp 0 ;USI START
; rjmp 0 ;USI OVF
; rjmp 0 ;EEPROM
; rjmp 0 ;WDT
reset:
outi SPL, low(RAMEND) ;Stack ptr
clr _0 ;Clear RAM
ldiw Y, RAMTOP ;
st Y+, _0 ;
cpi YL, low(RAMTOP+128) ;
brne PC-2 ;/
outi PORTD, 0b01111111 ;Initialize PORTD
outi DDRD, 0b00000010 ;/
outi PORTB, 0b11100000 ;Initialize PORTB
outi DDRB, 0b00011111 ;/
ldiw A, SYSCLK/16/BPS-1 ;UART
outw UBRR, A ;
outi UCSRB, 0b10011000 ;/
ldiw A, 128 ;TC1: 8bit PWM mode
outw OCR1A, A ;
outw OCR1B, A ;
outi TCCR1A, 0b10100001 ;
outi TCCR1B, 0b00000001 ;/
outi OCR0A, 2 ;TC0: 83kHz interval timer
outi TCCR0A, 0b00000010 ;
outi TCCR0B, 0b00000011 ;
outi TIMSK, 0b00000001 ;/
outi MCUCR, 0b00000010 ;INT0: Falling edge
outi GIMSK, 0b01000000 ;/
ldi _Flags, 0b00000001 ;Echo ON
ldi AL, 0 ;Load servo parms form bank 0
rcall load_parms ;/
ldi AL, INI_MODE ;Initial servo mode
rcall init_servo ;/
ldiw Z, m_start*2 ;Start up message
rcall dp_str ;/
;----------------------------------------------------------;
; Command processing loop
main:
ldiw Z, m_prompt*2 ;Display command prompt
rcall dp_str ;/
rcall get_line ;Get a command line
ld BH,X+ ;BH = command char
cpi BH,'a' ;CAPS
brcs PC+2 ;
subi BH,0x20 ;/
cpi BH,' ' ;Null line ?
brlt main ;
cpi BH,'+' ;+Step?
rjeq do_step ;
cpi BH,'-' ;-Step?
rjeq do_step ;
cpi BH, '?' ;Help?
breq do_help ;
cpi BH, 'M' ;Set mode?
breq do_mode ;
cpi BH, 'S' ;Set sub command?
breq do_sub ;
cpi BH, 'P' ;Set parms?
breq do_parm ;
cpi BH, 'E' ;Echo mode?
breq do_echo ;
cpi BH, 'R' ;Read parms?
breq do_reep ;
cpi BH, 'W' ;Write parms?
breq do_weep ;
cmd_err:ldiw Z,m_error*2 ;Syntax error
rjmp PC+3
do_help:ldiw Z,m_help*2 ;Help
rcall dp_str
rjmp main
;------------------------------------------------;
; Change parameters, command regs or servo mode.
do_mode: ; Change servo mode
rcall get_val
breq cmd_err
rcall init_servo
rjmp main
do_echo: ; Change echo mode
rcall get_val
breq cmd_err
bmov _Flags,0, AL,0
rjmp main
do_sub: ; Set subcommand reg.
ldiw Y, CtSub
rjmp ds_set
do_parm: ; Set parameters
rcall get_val
breq cmd_err
cpi AL, N_PARM
brcc cmd_err
lsl AL
mov YL, AL
clr YH
subiw Y, -Parms
ds_set: rcall get_val
brcs cmd_err
brne ds_st
ldi AL, 0x0a
rcall xmit
lddw A, Y+0
rcall dp_dec
ldi AL, ':'
rcall xmit
rcall get_line
rcall get_val
brcs cmd_err
breq PC+5
ds_st: cli
stdw Y+0, A
sei
rjmp main
;------------------------------------------------;
; Load/Save parameters.
do_reep: ; Load parameters from EEPROM
rcall get_val
breq cmd_err
cpi AL, (EEPROMEND+1)/N_PARM/2
brcc cmd_err
cli
rcall load_parms
sei
rjmp main
do_weep: ; Save parameters into EEPROM
rcall get_val
breq cmd_err
cpi AL, (EEPROMEND+1)/N_PARM/2
brcc cmd_err
rcall get_eeadr
sbic EECR, EEWE
rjmp PC-1
out EEAR, BH
inc BH
ld AL, Y+
out EEDR, AL
cli
sbi EECR, EEMWE
sbi EECR, EEWE
sei
dec AH
brne PC-11
rjmp main
load_parms:
rcall get_eeadr
out EEAR, BH
inc BH
sbi EECR, EERE
in AL, EEDR
st Y+, AL
dec AH
brne PC-6
ret
get_eeadr:
ldi AH, N_PARM*2
clr BH
subi AL, 1
brcs PC+3
add BH, AH
rjmp PC-3
ldiw Y, Parms
ret
;------------------------------------------------;
; Change position command reg. immediataly.
do_step:
mov DL, BH
rcall get_val
rjeq cmd_err
cli
cpi DL, '-'
breq PC+4
addw _Cmd, A
rjmp PC+3
subw _Cmd, A
sei
rjmp main
;----------------------------------------------------------;
; Initialize servo system
;
;Call: AL = servo mode
init_servo:
cli
sts Mode, AL ;Set servo mode
ldiw Y, CtSub ;Clear cmmand regs and servo operators.
st Y+, _0 ;
cpi YL, low(CtSub+8);
brne PC-2 ;/
clrw _Pos ;Clear position counter
clrw _Cmd ;Clear command counter
clr _CmdF ;/
sei
cbi PORTB, 0 ;Torque LED on
cbi PORTB, 1 ;Error LED off
sbi PORTB, 2 ;Ready LED on
ret
;----------------------------------------------------------;
; Pulse drive interrupt
int0_isr:
pushw A ;Save flag/reg
in AH, SREG ;/
sbis PIND, 6 ;Branch by Dir input
rjmp pi_rev
pi_fwd: ;Cmd += Gear
lds AL, Gear+0
add _CmdF, AL
lds AL, Gear+1
adc _CmdL, AL
adc _CmdH, _0
rjmp pi_exit
pi_rev: ;Cmd -= Gear
lds AL, Gear+0
sub _CmdF, AL
lds AL, Gear+1
sbc _CmdL, AL
sbc _CmdH, _0
pi_exit:
out SREG, AH ;Restore flag/reg
popw A ;/
reti
;----------------------------------------------------------;
; 83kHz Position capture and servo operation interrupt
background:
push T0L
pushw Z
in T0L, SREG ;Save flags
mov ZL, _PvEnc ;ZL[1:0] = previous A/B signal
in _PvEnc, PIND ;Sample A/B signal into _PvEnc[1:0]
swap _PvEnc ;/
ldi ZH, 1 ;Convert it to sequencial number.
sbrc _PvEnc, 1 ;
eor _PvEnc, ZH ;/
sub ZL, _PvEnc ;Decode motion
andi ZL, 3 ;/
breq enc_zr ;-> Not moved
cpi ZL, 3 ;
breq enc_rev ;-> -1 count
cpi ZL, 1 ;
breq enc_fwd ;-> +1 count
mov ZL, _PvDir ;-> Missing code recovery:
mov ZH, _PvDir ; double count for previous direction
lsl ZL ;
asr ZH ;/
rjmp enc_add
enc_rev:ldiw Z, -1
rjmp PC+3
enc_fwd:ldiw Z, 1
mov _PvDir, ZL
enc_add:addw _Pos, Z
enc_zr:
dec _CtDiv ;Decrement 1/83 divider
rjne bgnd_exit ;If not overflow, exit interrupt routine.
; End of 83 kHz position captureing process. Follows are 1kHz servo
; operation. It will be interrupted itself, but will not be re-entered.
ldi ZL, 83 ;Re-initialize 1/83 divider
mov _CtDiv, ZL ;/
sei ;Enable interrupts
pushw T0
pushw T2
pushw A
pushw B
pushw C
push DL
pushw Y
ldiw Y, Parms ;Work area base pointer
lddw T2, Y+iPvPos ;Detect velocity
cli ;
subw T2, _Pos ;
stdw Y+iPvPos, _Pos ;
sei ;
negw T2 ;/ T2 = velocity
ldd AL, Y+iMode ;Branch by servo mode
cpi AL, 3 ;Mode3?
breq tap_position ;/
lddw T0, Y+iCtSub ;Get sub command
cpi AL, 2 ;Mode2?
breq tap_velocity ;/
cpi AL, 1 ;Mode1?
rjeq tap_torque ;/
rjmp tap_voltage ;Mode0
tap_position:
cli ;Get position error (= velocity command)
movw T0L, _CmdL ;
subw T0, _Pos ;
sei ;T0 = position error
ldiw A, 20000 ;Check if position error is too much
cpw T0, A ;
rjge servo_error ;
ldiw A, -20000 ;
cpw T0, A ;
rjlt servo_error ;/
lddw A, Y+iLimSpd ;Velocity limit (P0)
cpw T0, A ;
brge PC+8 ;
negw A ;
cpw T0, A ;
brge PC+2 ;
movw T0L, AL ;T0 = velocity command
tap_velocity:
movw AL, T2L ;Velocity loop gain (P1)
lddw B, Y+iGaSpd ;
rcall muls1616 ;B = scaled velocity
subw T0, B ;T0 = velocity error
movw AL, T0L ;Velocity error P-gain (P2)
lddw B, Y+iGaTqP ;
rcall muls1616 ;
movw ZL, BL ;Z = P term;
lddw A, Y+iPvInt ;Velocity error I-gain (P3)
lddw B, Y+iGaTqI ;
rcall muls1616 ;
addw Z, B ;Z += I term;
cbr _Flags, bit6+bit5;Torque limit (P4)
lddw B, Y+iLimTrq ;
cpw Z, B ;
brlt PC+3 ;
movw ZL, BL ;
sbr _Flags, bit6 ;
neg BL ;
com BH ;
cpw Z, B ;
brge PC+3 ;
movw ZL, BL ;
sbr _Flags, bit5 ;/
tst T0H ;PvInt += T0, with anti-windup
brmi PC+4 ;
sbrc _Flags, 6 ;
rjmp PC+10 ;
rjmp PC+3 ;
sbrc _Flags, 5 ;
rjmp PC+7 ;
lddw A, Y+iPvInt ;
addw A, T0 ;
stdw Y+iPvInt, A ;/
mov AL, _Flags ;Check torque limiter timer
andi AL, bit6+bit5 ; OvTmr is increased by 3 when torque limitter
lddw A, Y+iOvTmr ; works, decreased by 1 when no torque limit.
breq PC+5 ; When the value reaches 3000, servo error
sbi PORTB, 1 ; will beoccured.
addiw A, 3 ;
rjmp PC+5 ;
cbi PORTB, 1 ;
subiw A, 1 ;
brcs PC+8 ;
stdw Y+iOvTmr, A ;
ldiw B, 3000 ;
cpw A, B ;
brcc servo_error ;/
movw T0L, ZL ;T0 = torque command
tap_torque:
movw AL, T2L ;EG compensation (P5)
lddw B, Y+iGaEG ;
rcall muls1616 ;
addw T0, B ;T0 = voltage command
tap_voltage:
ldiw A, 240 ;Clip output voltage between -240 and +240.
cpw T0, A ; Limit minimum duty ratio to 1/16 for bootstrap
brge PC+6 ; type FET driver.
ldiw A, -240 ;
cpw T0, A ;
brge PC+2 ;
movw T0L, AL ;T0 = PWM command
asrw T0 ;Set PWM register (OCR1A and ~OCR1B)
ldi AL, 128 ;
adc AL, T0L ;
ldi AH, 128 ;
sub AH, T0L ;
out OCR1AL, AL ;
out OCR1BL, AH ;/
popw Y
pop DL
popw C
popw B
popw A
popw T2
popw T0
bgnd_exit: ;End of encoder capture and servo operation
out SREG, T0L ;Restore flags
popw Z
pop T0L
reti
servo_error:
ldi AL, 0 ;Enter mode 0
rcall init_servo ;/
sbi PORTB, 0 ;Error LED on
clrw T0 ;Output = 0V
rjmp tap_voltage
;--------------------------------------;
; 16bit * 16bit signed multiply
;
; Multiplyer: A(signed int)
; Multiplicand: B(unsigned, 8.8 fraction)
; Result: B(signed int)
; Clk: 181(max)
muls1616:
clt
tst AH
brpl PC+6
set
negw A
subw C, C ; clear high 16bit.
ldi DL, 17 ; DL = loop count
brcc PC+3 ; ---- calcurating loop
addw C, A ;
rorw C ;
rorw B ;
dec DL ; if (--DL > 0)
brne PC-8 ; continue loop;
mov BL, BH
mov BH, CL
brtc PC+5 ; Negate the result if multiplyer was negative.
negw B
ret
;--------------------------------------;
; Input a command line into LineBuf.
get_line:
ldiw X,LineBuf
ldi BH,0
rl_lp: rcall receive
breq PC-1
st X,AL
cpi AL,0x0d ; CR
brne PC+4
ldiw X,LineBuf
rjmp echo
cpi AL,0x08 ; BS
brne PC+7
cpi BH,0
breq rl_lp
rcall echo
sbiw XL,1
dec BH
rjmp rl_lp
cpi AL,' ' ; SP
brcs rl_lp
cpi BH,20-1
breq rl_lp
rcall echo
adiw XL,1
inc BH
rjmp rl_lp
;--------------------------------------;
; Send ROM string
;
; Call: Z = top of the string (ASCIZ)
; Ret: Z = next string
dp_str: lpm AL, Z+
tst AL
brne PC+2
ret
rcall xmit
rjmp dp_str
;--------------------------------------;
; Get value of decimal string
;
; Call: X -> ASCII string
; Ret: X = updated
; if C=1: error
; elsif Z=1: end of line, value=0
; else: A = 16bit value
;
; Positive: "300"
; Negative: "-1250"
get_val:
clt
clrw A
ld BH, X+
cpi BH, ' '
brcs gd_n
breq PC-3
cpi BH, '-'
brne PC+3
set
gd_l: ld BH, X+
cpi BH, ' '+1
brcs gd_e
subi BH, '0'
brcs gd_x
cpi BH, 10
brcc gd_x
ldi CL, 17
clr BL
lsr BL
rorw A
brcc PC+2
addi BL, 10
dec CL
brne PC-6
add AL, BH
adc AH, _0
rjmp gd_l
gd_x: sec
sez
ret
gd_e: sbiw XL, 1
brtc PC+5
negw A
clc
ret
gd_n: sbiw XL,1
clc
sez
ret
;--------------------------------------;
; Display a value in decimal string
;
; Call: A = 16bit signed value to be displayed
; Ret: A = broken
dp_dec: ldi CH,' '
sbrs AH, 7
rjmp PC+6
negw A
ldi CH,'-'
clr T0L ;digit counter
inc T0L ;---- decimal string generating loop
clr BL ;var1 /= 10;
ldi CL,16 ;
lslw A ;
rol BL ;
cpi BL,10 ;
brcs PC+3 ;
subi BL,10 ;
inc AL ;
dec CL ;
brne PC-8 ;/
addi BL,'0' ;Push the remander (a decimal digit)
push BL ;/
cp AL,_0 ;if(var1 =! 0)
cpc AH,_0 ; continue digit loop;
brne PC-16 ;/
mov AL, CH ;Sign
rcall xmit ;/
pop AL ;Transmit decimal string
rcall xmit ;<-- Put a char into console
dec T0L ;
brne PC-3 ;/
ret
;--------------------------------------;
; Serial I/O driver
; Transmit AL.
echo: sbrs _Flags, 0
ret
xmit: sbis UCSRA, UDRE
rjmp PC-1
out UDR, AL
ret
receive:; Receive a char into AL. (ZR=no data)
push AH
pushw Y
ldiw Y, RxBuf
cli
ldd AH, Y+0
ldd AL, Y+1
cp AH, AL
breq PC+8
add YL, AH
ldd AL, Y+2
sub YL, AH
inc AH
andi AH, 15
std Y+0, AH
clz
sei
popw Y
pop AH
ret
rxint: ;USART0 Rx ready
push AL
in AL, SREG
push BL
in BL, UDR
cbi UCSRB, RXCIE
sei
pushw A
pushw Y
ldiw Y, RxBuf
ldd AL, Y+0
ldd AH, Y+1
inc AH
andi AH, 15
cp AH, AL
breq PC+6
std Y+1, AH
dec AH
andi AH, 15
add YL, AH
std Y+2, BL
popw Y
popw A
pop BL
out SREG, AL
pop AL
cli
sbi UCSRB, RXCIE
reti
;----------------------------------------------------------;
; Strings
m_prompt: .db 13,10, "%", 0
m_error: .db 10, "???", 0
m_start: .db 13,10, "SMC3A - Servo Motor Controller (?:help)", 13,10, 0
m_help: .db 13,10, "m<mod> - servo mode",13,10, "e<mod> - echo mode",13,10, "s<val> - sub cmd",13,10, "{+|-}<stp> - step cmd",13,10, "p<par> [<val>] - examine/change parms",13,10, "w<bnk> - save parms",13,10, "r<bnk> - load parms", 0
mehaba .
hocam hiçmi yüklüyemiyosun?
yoksa yüklediğinde sistemmi çalışmıyo?
Alıntı Yap
:020000020000FC
:100000000DC0D9C0FDCFFCCFFBCFFACFF9CF79C25D
:10001000F7CFF6CFF5CFF4CFF3CFE5C00FED0DBF9F
:10002000FF24C0E6D0E0F992C03EE9F70FE702BB3B
:1000300002E001BB00EE08BB0FE107BB09E110E0E5
:1000400012B909B908E90AB900E810E01BBD0ABDF8
:1000500019BD08BD01EA0FBD01E00EBD02E006BFFB
:1000600002E000BF03E003BF01E009BF02E005BFFB
:1000700000E40BBF91E000E06CD003E08AD0EEE436
:10008000F5E0D0D1E4E4F5E0CDD1B1D13D91313608
:1000900008F030523032B4F33B3209F46CC03D32D8
:1000A00009F469C03F3379F03D3489F03335C1F04C
:1000B0003035C9F0353479F0323589F13735B9F159
:1000C000E8E4F5E002C0EAE7F5E0ACD1DBCFB0D17F
:1000D000B9F35FD0D7CFACD199F300FB90F9D2CF71
:1000E000C0E7D0E009C0A4D159F3083048F7000FA9
:1000F000C02FDD27C05ADF4F9BD110F359F40AE01F
:10010000E6D108811981C0D10AE3E1D170D190D143
:10011000B8F221F0F894198308837894B3CF88D18A
:1001200079F2083068F6F89414D07894ABCF80D187
:1001300039F2083028F616D0E199FECF3EBB339550
:1001400009910DBBF894E29AE19A78941A95A1F777
:1001500099CF08D03EBB3395E09A0DB309931A9519
:10016000C9F7089510E13327015010F0310FFCCF8B
:10017000C0E6D0E00895632F5BD109F4A1CFF894D5
:100180006D3219F0800E911E02C0801A910A789487
:1001900079CFF89400937A00C0E7D0E0F992C8379D
:1001A000E9F7AA24BB248824992477247894C0985A
:1001B000C198C29A08951F930F931FB7869B08C0DA
:1001C00000916C00700E00916D00801E9F1C07C096
:1001D00000916C00701A00916D00800A9F081FBF8B
:1001E0000F911F9118950F92FF93EF930FB6EE2D7D
:1001F000E0B2E294F1E0E1FCEF26EE19E37089F061
:10020000E33039F0E13041F0ED2DFD2DEE0FF595A5
:1002100006C0EFEFFFEF02C0E1E0F0E0DE2EAE0E31
:10022000BF1ECA9409F0BCC0E3E5CE2E78941F929D
:100230000F923F922F921F930F933F932F935F93B1
:100240004F936F93DF93CF93C0E6D0E02E883F8823
:10025000F8942A183B08BF8AAE8A78943094219487
:1002600009F433940A8D033041F00888198802306C
:1002700011F1013009F46EC073C0F89404010A183A
:100280001B08789400E21EE4001611060CF08DC0E5
:1002900000EE11EB001611060CF487C008811981DD
:1002A000001611063CF41095019509F413950016FB
:1002B00011060CF4080181012A813B817CD0021ACD
:1002C000130A80012C813D8176D0F9010A891B89AE
:1002D0002E813F8170D0E20FF31F80012C893D8970
:1002E000021B130B2E853F8566D0E20FF31F1D8A7C
:1002F0000C8A9F7928853985E217F30714F0F901F4
:10030000906421953095E217F30714F4F901906297
:1003100011201AF096FD09C002C095FD06C00A8999
:100320001B89000D111D1B8B0A8B092F0076088D70
:10033000198D21F0C19A0D5F1F4F04C0C198015063
:10034000104038F0198F088F28EB3BE00217130795
:1003500060F50F0181012A853B852DD0020E131E09
:1003600000EF10E0001611062CF400E11FEF00165C
:1003700011060CF408011594079400E8001D10E81C
:1003800010190ABD18BDCF91DF916F914F915F9108
:100390002F913F910F911F912F903F900F901F90A1
:1003A0000FBEEF91FF910F90189500E0F2DEC09A1A
:1003B00000241124D5CFE89411232AF468941095D1
:1003C000019509F41395441B550B61E110F4400F9E
:1003D000511F57954795379527956A95B9F7232F5C
:1003E000342F26F43095219509F433950895ADE81E
:1003F000B0E030E070D0F1F30C930D3019F4ADE8BB
:10040000B0E063C0083031F43030A1F35ED0119712
:100410003A95F0CF003270F3333161F356D0119634
:100420003395E8CF0591002309F4089550D0FACF11
:10043000E894002711273D91303210F1E1F33D326D
:1004400011F468943D91313298F0305370F03A30A5
:1004500060F441E1222726951795079508F4265F59
:100460004A95C9F7030F1F1DEDCF089418940895FE
:10047000119726F41095019509F413958894089521
:10048000119788941894089550E217FF05C01095AD
:10049000019509F413955DE200240394222740E1BD
:1004A000000F111F221F2A3010F02A5003954A9581
:1004B000B9F7205D2F930F151F0579F7052F07D08A
:1004C0000F9105D00A94E1F7089590FF08955D9B80
:1004D000FECF0CB908951F93DF93CF93CBE7D0E005
:1004E000F89418810981101739F0C10F0A81C11BD6
:1004F00013951F70188398947894CF91DF911F9172
:1005000008950F930FB72F932CB1579878941F939A
:100510000F93DF93CF93CBE7D0E008811981139538
:100520001F70101729F019831A951F70C10F2A83A5
:10053000CF91DF910F911F912F910FBF0F91F894E1
:10054000579A18950D0A25000A3F3F3F00000D0AF3
:10055000534D433341202D20536572766F204D6FEC
:10056000746F7220436F6E74726F6C6C65722028AA
:100570003F3A68656C70290D0A000D0A6D3C6D6F7D
:10058000643E202D20736572766F206D6F64650D5B
:100590000A653C6D6F643E202D206563686F206D99
:1005A0006F64650D0A733C76616C3E202D20737577
:1005B0006220636D640D0A7B2B7C2D7D3C7374700F
:1005C0003E202D207374657020636D640D0A703CAD
:1005D0007061723E205B3C76616C3E5D202D206533
:1005E00078616D696E652F6368616E676520706103
:1005F000726D730D0A773C626E6B3E202D20736125
:100600007665207061726D730D0A723C626E6B3E8E
:0E061000202D206C6F6164207061726D73008C
:00000001FF
yukarıda verdiğinz kodların hex dosyasıdır.
önce google babaya gir...oraya asm to hex avr yaz...çıkan sitelerden hex çevirici yazılımı bul..daha doğrusu sanırım elinde hexi de var!'! neyse...ponyprog2000 yazılımını indir...hatta prgramlayıcısını da yap...yada bread boarda kur...daha sonra hexini yükle...devrende 4 mhz yada üstü kristal var ise cksel0,cksel1,cksel2,cksel3 seçeneklerini sakın işaretleme boş kalsın...sut 1 i işaretle başka bişeyi işsaretleme sonra yükle
kolay gelsin dostum.....