Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

i2c help needed

Status
Not open for further replies.

jaspreet

New Member
hi
i m doing a home theatre project for my college
so i m having some problem
could any one help
i m using pic16f72 and sound processor pt2258 (6 channel volume controller)
can any one write a code for me to interface them both
here is the datasheet link **broken link removed**
plz help me
i only want the master volume only + and - keys
 
Maybe you should consider the PT2327 from the same company, it only requires a DC voltage for control. It has 32 steps from 0 to 100dB so each step would be approx 3dB which is nearly the smallest change that is noticable. A 10dB sounds twice as loud. OR does this project require a microcontroller?
 
reply

hi Paul
pt2258 is designed for home theatre systems and is i2c capable
i have designed the i2c part of it but i m stucked in the swicthes part
i want total 10 keys to operate the volume
master volume - +
front ch vol - +
rear ch vol - +
subw vol - +
center vol - +
so plz help me u can take my i2c code
here it is
#include p16f72.inc
SDA EQU 6
SCL EQU 7
COUNT1 EQU 0X20
COUNT2 EQU 0X22
COUNT3 EQU 0X24
COUNTER EQU 0X26
SENDVAL EQU 0X28
DATAOUT EQU 0X29
MASTER_VOL EQU 0X30

ORG h'000'
GOTO MAIN
ORG h'004'


MAIN
call DELAY
CALL DELAY ;WAIT
NOP
NOP
BSF STATUS,RP0 ;BANK SELECT 1
MOVLW 0X00 ;MAKE ALL PORTC PINS OUTPUT
MOVWF TRISC ;AND
MOVWF TRISB ;ALL PORTB PINS OUTPUT
CLRF PORTC ;CLEAR THE PORTC PINS
CLRF PORTB ;CLEAR THE PORTB PINS
BCF STATUS,RP0 ;BANK SELECT 0



bcf STATUS,C
CALL START ;START I2C OPERATION
BTFSS STATUS,C ;TEST IF CARRY IS SET
CALL STOP ;NO STOP I2C OPERATION
MOVLW 88H ;MOVE 88H WHICH IS PT2258 DEVICE ADDRESS
MOVWF SENDVAL ;
CALL DATA_OUT ;SEND THE ADDRESS
BTFSC STATUS,C ;TEST CARRY IF CLEAR
CALL ERROR_LED ;NO THEN GOTO ERROR LED
MOVLW B'11100000' ;BINARY DATA FOR -1dB STEP
MOVWF SENDVAL ;SEND THE VALUE OUT
CALL DATA_OUT
BTFSC STATUS,C
GOTO ERROR_LED1
MOVLW B'11100000' ;BINARY DATA FOR -10dB STEP
MOVWF SENDVAL ;SEND THE VALUE OUT
CALL DATA_OUT
BTFSC STATUS,C
GOTO ERROR_LED1
MOVLW B'11100001' ;BINARY DATA FOR -10dB STEP
MOVWF SENDVAL ;SEND THE VALUE OUT
CALL DATA_OUT
BTFSC STATUS,C
GOTO ERROR_LED1
BCF STATUS,C
CALL STOP ; STOP THE I2C OPERATION HERE
HERE

GOTO HERE

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;; ------- START OF THE I2C ROUTINE -------- ;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START
BSF PORTC,SDA ;SET SDA HIGH
BSF PORTC,SCL ;SET SCL HIGH
BTFSS PORTC,SDA ;TEST SDA IF SET
CALL ERROR_LED2 ;NO GOTO ERROR_LED2
BSF STATUS,C ;YES SET THE CARRY BIT
BTFSS PORTC,SCL ;TEST SCL IF SET
CALL ERROR_LED3 ;NO GOTO ERROR LED3
BSF STATUS,C ;YES SET THE CARRY BIT
BSF PORTC,SDA ;SET SDA HIGH
BSF PORTC,SCL ;SET SCL HIGH
NOP
NOP ;WAIT
NOP
BCF PORTC,SDA ;MAKE SDA LOW
NOP
NOP ;WAIT
NOP
BCF PORTC,SCL ;MAKE SCL LOW
BTFSS STATUS,C ;TEST CARRY IF SET
CALL ERROR_LED4 ; NO THEN GOTO ERROR_LED4
BCF STATUS,C ;YES CLEAR THE CARRY BIT
RETURN ;RETURN

STOP
BCF PORTC,SDA ;MAKE SDA LOW
NOP
NOP ;WAIT
NOP
BSF PORTC,SCL ;SET SCL HIGH
NOP
NOP ;WAIT
NOP
BSF PORTC,SDA ;SET SDA HIGH
RETURN ;RETURN

DATA_OUT ;DATA OUT ROUTINE
MOVLW .8
MOVWF COUNTER ;MOVE 8 TO COUNTER FOR 8BITS
MOVF SENDVAL,W ;MOVE THE VALUE STORED IN SENDVAL TO WORKING REGISTER
RL

RLF SENDVAL,1
IORLW 0X00
BTFSS STATUS,C
GOTO NEXT
SETLOW
BCF PORTC,SDA
GOTO NEXT
NEXT
NOP
NOP
BSF PORTC,SCL
NOP
NOP
NOP
BCF PORTC,SCL
NOP
NOP
NOP
DECFSZ COUNTER
GOTO RL
BSF STATUS,RP0 ;BANK SELECT 1
MOVLW B'00000100' ;MAKE SDA AN INPUT
MOVWF TRISC ;FOR CHECKING THE RECIEVER'S ACKNOWLEDGE
BCF STATUS,RP0 ;BANK SELECT 0
NOP
NOP ;WAIT
NOP
BSF PORTC,SCL ;SET SCL HIGH
NOP
NOP ;WAIT
NOP
BCF PORTC,SCL ;MAKE SCL LOW
NOP
NOP ;WAIT
NOP
BTFSC PORTC,SDA ;TEST IF SDA IS LOW
GOTO ERROR_LED5 ;NO GOTO ERRROR_LED5
CALL ACK_LED ;YES GOTO ACK_LED
NOP
NOP
bcf PORTC,8 ;WAIT
NOP
RETURN

ERROR_LED
BCF PORTB,0
CALL DELAY
BSF PORTB,0
CALL DELAY
RETURN
ERROR_LED1
BCF PORTB,1
CALL DELAY
BSF PORTB,1
CALL DELAY
RETURN
ERROR_LED2
BCF PORTB,2
CALL DELAY
BSF PORTB,2
CALL DELAY
RETURN
ERROR_LED3
BCF PORTB,3
CALL DELAY
BSF PORTB,3
CALL DELAY
RETURN
ERROR_LED4
BCF PORTB,4
CALL DELAY
BSF PORTB,4
CALL DELAY
RETURN
ERROR_LED5
BCF PORTB,5
CALL DELAY
BSF PORTB,5
CALL DELAY
RETURN
ACK_LED
BCF PORTB,8
CALL DELAY
BSF PORTB,8
CALL DELAY
RETURN
DELAY
MOVLW 0X0F
MOVWF COUNT1
AGAIN
MOVLW 0XFF
MOVWF COUNT2
BACK1
MOVLW 0XFF
MOVWF COUNT3
BACK
DECFSZ COUNT3,F
GOTO BACK
DECFSZ COUNT2,F
GOTO BACK1
DECFSZ COUNT1,F
GOTO AGAIN
RETURN
END
 
hi jaspreet

i have done this with micro controller ic with ir and manual operation but i could not able to interface i2c concept for the volume controller tfor the ic


this is my code for the receiver

receiver

/*
* AssemblerApplication30.asm
*
* Created: 5/31/2014 6:03:59 PM
* Author: user
*/


.NOLIST
.INCLUDE "tn2313Adef.inc"
.LIST

.DEF REG=R16;
.DEF REG2=R17;
.DEF STAV=R18;
.DEF VYST=R19;
.DEF VYST_2=R20 ;
.DEF PRODLEVA=R21 ;
.DEF BITY=R22 ;
.DEF PIND00=R23 ;
.DEF PIND01=R24 ;
.DEF FLAG=R25 ;

.EQU SMER=DDRB ;
.EQU PORT=PORTB ;

.EQU SMER2=DDRD ;
.EQU PORT2=PORTD ;
.EQU PINY2=PIND ;

.EQU SMER3=DDRA ;
.EQU PORT3=PORTA ;
.EQU PINY3=PINA ;

.CSEG ;
.ORG 0
RJMP START

.ORG OC0Aaddr
RJMP CAS_VYPRSEL

.ORG PCIAaddr
RJMP SIGNAL

.ORG PCIDaddr
RJMP MANUAL


START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;nastavi port B
LDI REG,0b11111111
OUT SMER,REG
LDI REG,0b00000000
OUT PORT,REG

;nastavi port D
LDI REG,0b00000000
OUT SMER2,REG
LDI REG,0b01111111
OUT PORT2,REG

;nastavi port A
LDI REG,0b00000001
OUT SMER3,REG
LDI REG,0b00000010
OUT PORT3,REG

; NASTAVENI CASOVACU
LDI REG,0b00000010 ;
OUT TCCR0A,REG ;
LDI REG,0b00000011 ;
OUT TCCR0B,REG ;
LDI REG,213 ;
OUT OCR0A,REG ;

LDI REG,0b00000001 ;
OUT TIMSK,REG ;



LDI REG,0b00011000 ;
OUT GIMSK,REG ;

LDI REG,0b00000010 ;
OUT PCMSK1,REG ;

LDI REG,0b01111111 ;
OUT PCMSK2,REG ;

LDI REG,0b00110000 ;
OUT MCUCR,REG

;
LDI REG,0b10000000
OUT ACSR,REG
LDI FLAG,0
SEI

SMYCKA:
SLEEP
RJMP SMYCKA

MANUAL:

CLI
;LDI FLAG,0

IN PIND00,PINY2
ANDI PIND00,0b01111111
CPI PIND00,0b01111111
;BREQ RET_MANUAL
BRNE DOUBLECHECK
RJMP RET_MANUAL

DOUBLECHECK:
LDI REG,200
DEBOUNCE_OUTER:
LDI REG2, 50
DEBOUNCE_INNER:
DEC REG2
Brne DEBOUNCE_INNER
DEC REG
Brne DEBOUNCE_OUTER

IN PIND01, PINY2
ANDI PIND01, 0b01111111
CP PIND00, PIND01
Brne RET_MANUAL


MOMENTARY:
SBRS PIND00,3
Rjmp MOMENTARY_PB3
CBI PORTB, 3
SBRS PIND00,2
Rjmp MOMENTARY_PB2
CBI PORTB, 2

Rjmp TOGGLE

MOMENTARY_PB2:
SBI PORTB, 2
LDI FLAG, 4
Rjmp TOGGLE

MOMENTARY_PB3:
SBI PORTB, 3
LDI FLAG, 8

TOGGLE:
SBRS PIND00,6
Rjmp TOGGLE_PB6
SBRS PIND00,5
Rjmp TOGGLE_PB5
SBRS PIND00,4
Rjmp TOGGLE_PB4
SBRS PIND00,1
Rjmp TOGGLE_PB1
SBRC PIND00,0
Rjmp RET_MANUAL

TOGGLE_PB0:
;SBI PINB,0
IN REG,PORTB
SBRS REG,0
Rjmp POWER_OFF
LDI REG,0
OUT PORTB,REG
LDI FLAG,0
Rjmp RET_MANUAL

POWER_OFF:
SBI PINB,0
SBI PORTB,4
CBI PORTB,5
CBI PORTB,6
RJMP RET_MANUAL

TOGGLE_PB1:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
SBI PINB,1
Rjmp RET_MANUAL

TOGGLE_PB4:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
LDI FLAG,16
SBI PORTB,4
CBI PORTB, 5
CBI PORTB, 6

Rjmp RET_MANUAL

TOGGLE_PB5:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
LDI FLAG,32
SBI PORTB,5
CBI PORTB,4
CBI PORTB,6

Rjmp RET_MANUAL

TOGGLE_PB6:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
LDI FLAG,64
SBI PORTB,6
CBI PORTB,4
CBI PORTB,5


RET_MANUAL:
SEI
RETI


SIGNAL:
IN STAV,PINY3
COM STAV ;

;Sestupna hrana
SBRC STAV,1
RJMP NE_10

LDI REG,0
OUT TCNT0,REG

NE_10:

;Nabezna hrana
SBRS STAV,1
RJMP NE_01

IN REG,TCNT0

CPI REG,3 ;
BRLO ZAKMIT

CPI REG,53 ;
BRLO NE_KONEC_SNIMKU

RCALL KONTROLA

MOV VYST_2,VYST

NE_KONEC_SNIMKU:

LSL VYST
INC BITY
IN REG,TCNT0
CPI REG,13 ;
BRLO KRATKA_M
INC VYST
KRATKA_M:

ZAKMIT:
NE_01:

LDI REG,0b00100000 ;
OUT MCUCR,REG
RETI



CAS_VYPRSEL:

RCALL KONTROLA

CLR VYST
SER VYST_2

;LDI REG,0b00000000
IN REG,PORT
ANDI REG,0b00010011
SBRS REG,0
LDI FLAG,0
OR REG,FLAG
OUT PORT,REG

CLR PRODLEVA

LDI REG,0
OUT TCNT0,REG

LDI REG,0b00110000 ;
OUT MCUCR,REG
RETI



;kontrola spravnosti prenosu
KONTROLA:
CPI BITY,9 ;
BRNE SPATNE_BITY
CP VYST_2,VYST ;
BRNE RUZNE_KODY
RCALL PRIJEM
RUZNE_KODY:
CLR BITY
RET
SPATNE_BITY:
CLR VYST
CLR BITY
;LDI REG,0b00000000
;OUT PORT,REG
RET



PRIJEM:

CPI PRODLEVA,0
BREQ PRODLEVA_JE_0
RJMP KONEC_TL
PRODLEVA_JE_0:

MOV REG,VYST
SWAP REG
ANDI REG,0b00001111

MOV REG2,VYST
COM REG2
ANDI REG2,0b00001111

CP REG,REG2
BREQ SHODA
RJMP KONEC_TL
SHODA:

CLR REG2
;LDI FLAG,0
LDI ZL,LOW(SKOK)
LDI ZH,HIGH(SKOK)
ADD ZL,REG
ADC ZH,REG2
IJMP

SKOK:
RJMP TL0
RJMP TL1
RJMP TL2
RJMP TL3
RJMP TL4
RJMP TL5
RJMP TL6
RJMP TL7
RJMP TL8
RJMP TL9
RJMP TL10
RJMP TL11
RJMP TL12
RJMP TL13
RJMP TL14
RJMP TL15


TL0:
IN REG,PORTB
SBRS REG,0
RJMP POWER_OFF1
LDI REG,0
OUT PORTB,REG
LDI FLAG,0
RJMP KONEC_TL

POWER_OFF1:
SBI PINB,0
SBI PORTB,4
CBI PORTB,5
CBI PORTB,6
RJMP KONEC_TL

TL1:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
SBI PINB,1
RJMP KONEC_TL

TL2:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
SBI PORT,2
CBI PORT,1
RJMP KONEC_TL

TL3:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
SBI PORT,3
CBI PORT,1
RJMP KONEC_TL

TL4:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
LDI FLAG,16
SBI PORTB,4
CBI PORTB,5
CBI PORTB,6
RJMP KONEC_TL


TL5:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
LDI FLAG,32
SBI PORTB,5
CBI PORTB,4
CBI PORTB,6
RJMP KONEC_TL

TL6:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
LDI FLAG,64
SBI PORTB,6
CBI PORTB,4
CBI PORTB,5
RJMP KONEC_TL

TL7:
SBI PORT,7
RJMP KONEC_TL

TL8:
IN REG,PORT2
SBRC REG,0
CBI PORT2,0
SBRS REG,0
SBI PORT2,0
RJMP KONEC_TL

TL9:
IN REG,PORT2
SBRC REG,1
CBI PORT2,1
SBRS REG,1
SBI PORT2,1
RJMP KONEC_TL

TL10:
IN REG,PORT2
SBRC REG,2
CBI PORT2,2
SBRS REG,2
SBI PORT2,2
RJMP KONEC_TL

TL11:
IN REG,PORT2
SBRC REG,3
CBI PORT2,3
SBRS REG,3
SBI PORT2,3
RJMP KONEC_TL

TL12:
IN REG,PORT2
SBRC REG,4
CBI PORT2,4
SBRS REG,4
SBI PORT2,4
RJMP KONEC_TL

TL13:
IN REG,PORT2
SBRC REG,5
CBI PORT2,5
SBRS REG,5
SBI PORT2,5
RJMP KONEC_TL

TL14:
IN REG,PORT2
SBRC REG,6
CBI PORT2,6
SBRS REG,6
SBI PORT2,6
RJMP KONEC_TL

TL15:
IN REG,PORT3
SBRC REG,0
CBI PORT3,0
SBRS REG,0
SBI PORT3,0
RJMP KONEC_TL

KONEC_TL:
LDI PRODLEVA,1
RET
 
hi jaspreet

i have done this with micro controller ic with ir and manual operation but i could not able to interface i2c concept for the volume controller tfor the ic


this is my code for the receiver

receiver

/*
* AssemblerApplication30.asm
*
* Created: 5/31/2014 6:03:59 PM
* Author: user
*/


.NOLIST
.INCLUDE "tn2313Adef.inc"
.LIST

.DEF REG=R16;
.DEF REG2=R17;
.DEF STAV=R18;
.DEF VYST=R19;
.DEF VYST_2=R20 ;
.DEF PRODLEVA=R21 ;
.DEF BITY=R22 ;
.DEF PIND00=R23 ;
.DEF PIND01=R24 ;
.DEF FLAG=R25 ;

.EQU SMER=DDRB ;
.EQU PORT=PORTB ;

.EQU SMER2=DDRD ;
.EQU PORT2=PORTD ;
.EQU PINY2=PIND ;

.EQU SMER3=DDRA ;
.EQU PORT3=PORTA ;
.EQU PINY3=PINA ;

.CSEG ;
.ORG 0
RJMP START

.ORG OC0Aaddr
RJMP CAS_VYPRSEL

.ORG PCIAaddr
RJMP SIGNAL

.ORG PCIDaddr
RJMP MANUAL


START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;nastavi port B
LDI REG,0b11111111
OUT SMER,REG
LDI REG,0b00000000
OUT PORT,REG

;nastavi port D
LDI REG,0b00000000
OUT SMER2,REG
LDI REG,0b01111111
OUT PORT2,REG

;nastavi port A
LDI REG,0b00000001
OUT SMER3,REG
LDI REG,0b00000010
OUT PORT3,REG

; NASTAVENI CASOVACU
LDI REG,0b00000010 ;
OUT TCCR0A,REG ;
LDI REG,0b00000011 ;
OUT TCCR0B,REG ;
LDI REG,213 ;
OUT OCR0A,REG ;

LDI REG,0b00000001 ;
OUT TIMSK,REG ;



LDI REG,0b00011000 ;
OUT GIMSK,REG ;

LDI REG,0b00000010 ;
OUT PCMSK1,REG ;

LDI REG,0b01111111 ;
OUT PCMSK2,REG ;

LDI REG,0b00110000 ;
OUT MCUCR,REG

;
LDI REG,0b10000000
OUT ACSR,REG
LDI FLAG,0
SEI

SMYCKA:
SLEEP
RJMP SMYCKA

MANUAL:

CLI
;LDI FLAG,0

IN PIND00,PINY2
ANDI PIND00,0b01111111
CPI PIND00,0b01111111
;BREQ RET_MANUAL
BRNE DOUBLECHECK
RJMP RET_MANUAL

DOUBLECHECK:
LDI REG,200
DEBOUNCE_OUTER:
LDI REG2, 50
DEBOUNCE_INNER:
DEC REG2
Brne DEBOUNCE_INNER
DEC REG
Brne DEBOUNCE_OUTER

IN PIND01, PINY2
ANDI PIND01, 0b01111111
CP PIND00, PIND01
Brne RET_MANUAL


MOMENTARY:
SBRS PIND00,3
Rjmp MOMENTARY_PB3
CBI PORTB, 3
SBRS PIND00,2
Rjmp MOMENTARY_PB2
CBI PORTB, 2

Rjmp TOGGLE

MOMENTARY_PB2:
SBI PORTB, 2
LDI FLAG, 4
Rjmp TOGGLE

MOMENTARY_PB3:
SBI PORTB, 3
LDI FLAG, 8

TOGGLE:
SBRS PIND00,6
Rjmp TOGGLE_PB6
SBRS PIND00,5
Rjmp TOGGLE_PB5
SBRS PIND00,4
Rjmp TOGGLE_PB4
SBRS PIND00,1
Rjmp TOGGLE_PB1
SBRC PIND00,0
Rjmp RET_MANUAL

TOGGLE_PB0:
;SBI PINB,0
IN REG,PORTB
SBRS REG,0
Rjmp POWER_OFF
LDI REG,0
OUT PORTB,REG
LDI FLAG,0
Rjmp RET_MANUAL

POWER_OFF:
SBI PINB,0
SBI PORTB,4
CBI PORTB,5
CBI PORTB,6
RJMP RET_MANUAL

TOGGLE_PB1:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
SBI PINB,1
Rjmp RET_MANUAL

TOGGLE_PB4:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
LDI FLAG,16
SBI PORTB,4
CBI PORTB, 5
CBI PORTB, 6

Rjmp RET_MANUAL

TOGGLE_PB5:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
LDI FLAG,32
SBI PORTB,5
CBI PORTB,4
CBI PORTB,6

Rjmp RET_MANUAL

TOGGLE_PB6:
IN REG,PORTB
SBRS REG,0
RJMP RET_MANUAL
LDI FLAG,64
SBI PORTB,6
CBI PORTB,4
CBI PORTB,5


RET_MANUAL:
SEI
RETI


SIGNAL:
IN STAV,PINY3
COM STAV ;

;Sestupna hrana
SBRC STAV,1
RJMP NE_10

LDI REG,0
OUT TCNT0,REG

NE_10:

;Nabezna hrana
SBRS STAV,1
RJMP NE_01

IN REG,TCNT0

CPI REG,3 ;
BRLO ZAKMIT

CPI REG,53 ;
BRLO NE_KONEC_SNIMKU

RCALL KONTROLA

MOV VYST_2,VYST

NE_KONEC_SNIMKU:

LSL VYST
INC BITY
IN REG,TCNT0
CPI REG,13 ;
BRLO KRATKA_M
INC VYST
KRATKA_M:

ZAKMIT:
NE_01:

LDI REG,0b00100000 ;
OUT MCUCR,REG
RETI



CAS_VYPRSEL:

RCALL KONTROLA

CLR VYST
SER VYST_2

;LDI REG,0b00000000
IN REG,PORT
ANDI REG,0b00010011
SBRS REG,0
LDI FLAG,0
OR REG,FLAG
OUT PORT,REG

CLR PRODLEVA

LDI REG,0
OUT TCNT0,REG

LDI REG,0b00110000 ;
OUT MCUCR,REG
RETI



;kontrola spravnosti prenosu
KONTROLA:
CPI BITY,9 ;
BRNE SPATNE_BITY
CP VYST_2,VYST ;
BRNE RUZNE_KODY
RCALL PRIJEM
RUZNE_KODY:
CLR BITY
RET
SPATNE_BITY:
CLR VYST
CLR BITY
;LDI REG,0b00000000
;OUT PORT,REG
RET



PRIJEM:

CPI PRODLEVA,0
BREQ PRODLEVA_JE_0
RJMP KONEC_TL
PRODLEVA_JE_0:

MOV REG,VYST
SWAP REG
ANDI REG,0b00001111

MOV REG2,VYST
COM REG2
ANDI REG2,0b00001111

CP REG,REG2
BREQ SHODA
RJMP KONEC_TL
SHODA:

CLR REG2
;LDI FLAG,0
LDI ZL,LOW(SKOK)
LDI ZH,HIGH(SKOK)
ADD ZL,REG
ADC ZH,REG2
IJMP

SKOK:
RJMP TL0
RJMP TL1
RJMP TL2
RJMP TL3
RJMP TL4
RJMP TL5
RJMP TL6
RJMP TL7
RJMP TL8
RJMP TL9
RJMP TL10
RJMP TL11
RJMP TL12
RJMP TL13
RJMP TL14
RJMP TL15


TL0:
IN REG,PORTB
SBRS REG,0
RJMP POWER_OFF1
LDI REG,0
OUT PORTB,REG
LDI FLAG,0
RJMP KONEC_TL

POWER_OFF1:
SBI PINB,0
SBI PORTB,4
CBI PORTB,5
CBI PORTB,6
RJMP KONEC_TL

TL1:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
SBI PINB,1
RJMP KONEC_TL

TL2:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
SBI PORT,2
CBI PORT,1
RJMP KONEC_TL

TL3:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
SBI PORT,3
CBI PORT,1
RJMP KONEC_TL

TL4:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
LDI FLAG,16
SBI PORTB,4
CBI PORTB,5
CBI PORTB,6
RJMP KONEC_TL


TL5:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
LDI FLAG,32
SBI PORTB,5
CBI PORTB,4
CBI PORTB,6
RJMP KONEC_TL

TL6:
IN REG,PORTB
SBRS REG,0
RJMP KONEC_TL
LDI FLAG,64
SBI PORTB,6
CBI PORTB,4
CBI PORTB,5
RJMP KONEC_TL

TL7:
SBI PORT,7
RJMP KONEC_TL

TL8:
IN REG,PORT2
SBRC REG,0
CBI PORT2,0
SBRS REG,0
SBI PORT2,0
RJMP KONEC_TL

TL9:
IN REG,PORT2
SBRC REG,1
CBI PORT2,1
SBRS REG,1
SBI PORT2,1
RJMP KONEC_TL

TL10:
IN REG,PORT2
SBRC REG,2
CBI PORT2,2
SBRS REG,2
SBI PORT2,2
RJMP KONEC_TL

TL11:
IN REG,PORT2
SBRC REG,3
CBI PORT2,3
SBRS REG,3
SBI PORT2,3
RJMP KONEC_TL

TL12:
IN REG,PORT2
SBRC REG,4
CBI PORT2,4
SBRS REG,4
SBI PORT2,4
RJMP KONEC_TL

TL13:
IN REG,PORT2
SBRC REG,5
CBI PORT2,5
SBRS REG,5
SBI PORT2,5
RJMP KONEC_TL

TL14:
IN REG,PORT2
SBRC REG,6
CBI PORT2,6
SBRS REG,6
SBI PORT2,6
RJMP KONEC_TL

TL15:
IN REG,PORT3
SBRC REG,0
CBI PORT3,0
SBRS REG,0
SBI PORT3,0
RJMP KONEC_TL

KONEC_TL:
LDI PRODLEVA,1
RET
 

Attachments

  • ReceiverAssembler.asm
    6.7 KB · Views: 194
  • transmitterassembler.asm
    4.7 KB · Views: 198
This thread is over 10 years old.
Jaspreet has not visited the forum for nearly 10 years.
I guess that he has sorted his problem by now.

JimB
 
Status
Not open for further replies.

Latest threads

Back
Top