SchemaTheek
 
Home Nieuws Forum Schema's Artikelen Magazine Downloads Links Shops Zoeken
 
Controle Paneel
Gebruikersnaam
Wachtwoord
  Onthoud mij
» Wachtwoord?
» Registreren
Site info
» Het Team
» Contact
» FAQ
» Leden
» Upload Archief
Stats
Totaal online: 10
10 gasten
0 leden:
Forum > Digitaal > 74HC165
[1] 2 »
Pieter
Lid
Berichten: 3
Gepost op zondag 2 Januari 2011 22:58:36 QuoteWijzig

Hallo allen,

ik heb op een PIC 16F628A een 74HC165 aangesloten, maar krijg er geen enkele data van binnen op mijn Pic. Hierbij mijn programma

Code
Device 16F628A
Config INTRC_OSC_NOCLKOUT, wdt_off, pwrte_on, lvp_off, mclre_off, boden_off ;hs_osc, 
ALL_DIGITAL TRUE
 
;uitgangen 
;        76543210
PORTA = %00000000
PORTB = %00000000
TRISA = %11111000    
TRISB = %11111111    
 
Symbol ShiftOpslag = PORTA.0 ;Pin 1 van 74HC165
Symbol ShiftClk    = PORTA.1 ;Pin 2 van 74HC165
Symbol ShiftData   = PORTA.2 ;Pin 9 van 74HC165
Symbol Lampje      = PORTB.0

;Massa op Pin 8 en 15
;5VDC op Pin 10 en 16

Dim LED As Byte
Dim LED1 As Byte
Dim Tijd As Word
 
Tijd = 500
High Lampje
DelayMS 1000
Low Lampje


 
'        76543210
LED   = %00000000

;Hoofdprogramma 
While 1 = 1
      PulsOut ShiftOpslag, 5
      SHIn ShiftData, ShiftClk, msbpre, [LED]
      PulsOut ShiftOpslag, 5
      DelayMS 100
      If LED = %00000001 Then
             High Lampje
             DelayMS 1000
      Else
             Low Lampje
      EndIf
      DelayMS 10
wend


Ik heb zelfs al een led op PortB.0 geplaatst om te zien of de ingang binnenkomt, maar mijn led gaat enkel bij opstart dan nooit meer.

Iemand enig iedee wat ik verkeer doe?
reddevil
Lid
Berichten: 1271
Gepost op maandag 3 Januari 2011 00:30:20 QuoteWijzig

Wat bedoel je hier mee :

Code
 PulsOut ShiftOpslag, 5



Zet je daar een pulstrein op pin 1 van je 74hc165, denk dat daar iets niet klopt. Kijk nog eens een keer in de data sheet.
Spijtig dat ik zo geen ic heb, anders kon ik het ook eens testen.


Veel te weinig tijd voor mijn projecten of heb ik er soms te veel?
Pieter
Lid
Berichten: 3
Gepost op maandag 3 Januari 2011 17:34:36 QuoteWijzig

Bij een 74HC595 (8 uitgangen) is die pulsout bedoeld om eerst de data "LED" te laden en daarna via een pulsout op de ic te "activeren". dacht dat dit ook nodig was bij ingangen. dat is de latch-pin.

Stynus
Admin
Berichten: 2854
Gepost op maandag 3 Januari 2011 17:38:25 QuoteWijzig

Ik heb hier wat code van iemand die pic basic pro gebruikt. (Het is dus wss niet 100% compatible).
Hij gebruikt een loopje rond het ShiftIn commando:


Code
STROBE = 0
PauseUs 20
STROBE = 1
PauseUs 20
        
For I = 1 TO AANTALIN
 ShiftIn DATAI_O,KLOK,2,[INGBUFFER(I)8]
Next


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
reddevil
Lid
Berichten: 1271
Gepost op maandag 3 Januari 2011 21:46:00 QuoteWijzig

Hier staat de oplossing, ik had gelijk wat betreft het aansturen van pin 1 van de 74hc165, dat deed je verkeert.
http://www.circuitsonline.net/forum/view/91144


Veel te weinig tijd voor mijn projecten of heb ik er soms te veel?
pascalbianca
Lid
Berichten: 1449
Gepost op zaterdag 15 Februari 2014 10:37:48 QuoteWijzig

Ik stel mijn vraag hier even om het een beetje bijeen te houden.
Ik zit hier met idem een probleem met die 74HC165.
Ik gebruik een ipv een 16F628A een 18F4550.
Dit is mijn code .:

Code
Device 18F4550

Xtal 20
'Tris .  76543210 Register volgorde                                       
;TRISB = %11011100
TRISA=%00000000
TRISB=%01011000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000

;PORTA=0;ORTB=0
PORTC=0ORTD=0
    PORTE=0
Declare LCD_DTPort = PORTD
Declare LCD_RSPin = PORTC.7
Declare LCD_ENPin = PORTE.0
Declare LCD_RWPin = PORTC.6
Declare LCD_CS1Pin = PORTE.1
Declare LCD_CS2Pin = PORTE.2
Declare LCD_Type = Samsung
Declare Internal_Font = On
Declare Font_Addr = 0
High PORTB.5   'rst pin oftwel reset pin
        
Declare GLCD_STROBE_DELAY = 5                                                                     
Declare SCL_Pin    = PORTB.1
Declare SDA_Pin    = PORTB.0
;Declare Slow_Bus On 

Symbol DataIn = PORTA.3 ;poort 9 van 74hc165
Symbol ClockOut = PORTA.2 ;poort 2 van 74hc165
Symbol ReadOut = PORTA.5 ;poort 1 van 74hc165
 
DelayMS 200 'stabilizza LCD
Cls


Dim var1 As Byte
 
DelayMS 500
loop:
Low ReadOut
DelayMS 10
High ReadOut
SHIn DataIn, ClockOut, LsbPre, [var18]
DelayMS 100
Cls
Print At 1,1, "ingang"
Print At 2,1,  Bin var1
GoTo loop



Ik heb alles aangesloten zoals de link die Reddevil gaf http://www.circuitsonline.net/forum/view/91144
Alleen heb ik de 3 poorten aangepast.:

Code
Symbol DataIn = PORTA.3 ;poort 9 van 74hc165
Symbol ClockOut = PORTA.2 ;poort 2 van 74hc165
Symbol ReadOut = PORTA.5 ;poort 1 van 74hc165



Maar op mijn display krijg ik alleen de tekst Ingang te zin en 1 nul

Maar voor de rest gebeurd er niets.
Normaal als ik bv toch op 1 van de poorten bv wissel tussen +5V of ground dat hij 1 of 0 moet aangeven.
Wat kan er fout zijn?


http://pascalbianca.blogspot.nl/
Henk (NL)
Lid
Berichten: 263
Gepost op zaterdag 15 Februari 2014 10:55:53 QuoteWijzig

var8-1 schuine streep kun je niet gebruiken hier in het forum?
 
[Bericht gewijzigd door Henk (NL) op Zaterdag 15 Februari 2014 10:58:42]

Stynus
Admin
Berichten: 2854
Gepost op zaterdag 15 Februari 2014 10:56:52 QuoteWijzig

Ik mis ALL_DIGITAL TRUE in je code. Vooral op portA geeft dat rare dingen.

@Henk, als je quote doet zie je de slash wel. Forum geeft ze dus niet weer om een of andere reden .
 
[Bericht gewijzigd door Stynus op Zaterdag 15 Februari 2014 10:57:51]


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1449
Gepost op zaterdag 15 Februari 2014 16:20:46 QuoteWijzig

Inderdaad @Stynus, die regel was ik vergeten en die deed de truc, stom dat dat zoveel effect heeft


http://pascalbianca.blogspot.nl/
pascalbianca
Lid
Berichten: 1449
Gepost op zaterdag 15 Februari 2014 16:40:41 QuoteWijzig

Nu zal ik uiteraard een stomme vraag gaan stellen.
Ze zeggen dus dat die 74HC165 een extra uitbreiding is op je poorten van je IC.
Deze 74HC165 kan zowel de poorten of als ingangen gebruikt worden of als uitgangen.
In mijn test geval staat hij als ingangen, dus met ander woorden als ik een toch een bv. mijn LM35DZ erop zet zou ik toch een temperatuur moeten kunnen meten of zie ik dat verkeerd met het principe van die 74HC165 ?


http://pascalbianca.blogspot.nl/
Henk (NL)
Lid
Berichten: 263
Gepost op zaterdag 15 Februari 2014 19:07:30 QuoteWijzig


Quote
Nu zal ik uiteraard een stomme vraag gaan stellen.


Nou?

Quote
bv. mijn LM35DZ erop zet zou ik toch een temperatuur moeten kunnen meten of zie ik dat verkeerd met het principe van die 74HC165 ?



Nu snap ik het!
Je knoopt een (analoge) LM35DZ aan 'n (digitale) ingang van de 74HC165

pascalbianca
Lid
Berichten: 1449
Gepost op zaterdag 15 Februari 2014 20:07:48 QuoteWijzig

Mmmm, zoals jij het nu zegt klinkt het inderdaad logisch dat het niet zal gaan werken.
Is het eventueel wel mogelijk met een PCF8574P I2C Remote 8 bit I/O Exp.
Als dat zo is dan kan ik hem op die Eeprom erbij zetten want die staat ook op I2C.


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2854
Gepost op zondag 16 Februari 2014 11:14:09 QuoteWijzig

Die PCF8574P kan ook alleen digitaal, je hebt ofwel een ad converter nodig ofwel een temperatuur sensor die direct I?C doet.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1449
Gepost op zondag 16 Februari 2014 16:25:23 QuoteWijzig

Iemand enig idee hoe je die PCF8574P werkend krijg want adres en alles klopt volgens mij maar hoe kan ik die testen of die wel een signaal verstuurd?

A0&A1 staan op de ground dus zou volgens mij adres $A2 moeten hebben de sda en scl lijn staan ook correct op die van de eeprom (die werkt).



http://pascalbianca.blogspot.nl/
Henk (NL)
Lid
Berichten: 263
Gepost op zondag 16 Februari 2014 17:12:27 QuoteWijzig

Het testen van een PCF8574.
http://hackaday.com/2008/12/27/parts-8bit-io-expander-pcf8574/

pascalbianca
Lid
Berichten: 1449
Gepost op zondag 16 Februari 2014 20:42:15 QuoteWijzig

Thx @Henk, maar helaas heb ik niets aan die code , zoek iets in proton ide.


http://pascalbianca.blogspot.nl/
pascalbianca
Lid
Berichten: 1449
Gepost op zondag 16 Februari 2014 21:09:24 QuoteWijzig

Ik heb nu de volgende code.:

Code
Device 18F4550

Xtal 20
'Tris .  76543210 Register volgorde                                       
;TRISB = %11011100
TRISA=%00000000
TRISB=%01011000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
Declare All_Digital = TRUE  

PORTA=0;ORTB=0
PORTC=0ORTD=0
    PORTE=0
Declare LCD_DTPort = PORTD
Declare LCD_RSPin = PORTC.7
Declare LCD_ENPin = PORTE.0
Declare LCD_RWPin = PORTC.6
Declare LCD_CS1Pin = PORTE.1
Declare LCD_CS2Pin = PORTE.2
Declare LCD_Type = Graphic
Declare Internal_Font = On
Declare Font_Addr = 0
High PORTB.5   'rst pin oftwel reset pin
        
Declare GLCD_STROBE_DELAY = 5                                                                     
Declare Optimiser_Level 3
'Set ports for I2C
;Declare SCL_Pin    = PORTB.1
;Declare SDA_Pin    = PORTB.0 ;Alias voor de SDA (Data) lijn
;!!!!!!!!BOVENSTAANDE SDA EN SCL DECKLARES WAT MET BUSIN WORD GEBRUIKT!!!!!!!!!!!!!!!!!!!!!!! 
;!!!!!!!!IS VERVALLEN OMDAT HBusIn WORD GEBRUIKT DIE HARDWAREMATIG DE POORTEN AL AANWIJST!!!!
Declare Slow_Bus On 
Dim VAR1 As Byte
;Symbol PCF8574A_ADDR =%01000001 'PCF8574 Slave Address (A0,A1,A2 to GND)
;Symbol PCF8574A_ADDR = %01110000 ;Slave Adress A0 t/m A2 aan GND
;Symbol PCF8574A_ADDR = &H71 ;Slave Adress A0 t/m A2 aan GND
Dim PCF8574A_ADDR     As Byte
PCF8574A_ADDR = %01000001

start:
Cls
BStart
Print At 3,1,"PCF8574 schrijf"
BusOut PCF8574A_ADDR, [%11111111]
BStop

DelayMS 1000

BStart
Print At 3,1,"PCF8574 lees"
BusOut PCF8574A_ADDR, [%00000000]
BStop

DelayMS 1000

GoTo start


ik heb een ledje op 1 van de poorten gezet maar er gebeurd niks.
Ik zit alleen aan de adres van die IC te twijfelen ik kom diverse adressen tegen terwijl ze wel overal zetten dat A0,A1 en A2 op de ground zit.

[update]
Omdat ik hbus gebruik heb ik de code aangepast naar het volgende.:

Code
HBStart
HBusout %01110000 ; slave adress
HBusout %00000000 ; alle leds aan
delayms 500
HBusout %11111111 ; alle leds uit
HBStop


Maar idem gebeurd niets met de led.

 
[Bericht gewijzigd door pascalbianca op Zondag 16 Februari 2014 21:18:49]


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2854
Gepost op zondag 16 Februari 2014 22:57:28 QuoteWijzig

Ik mis de code om die PCF te initialiseren.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
Henk (NL)
Lid
Berichten: 263
Gepost op maandag 17 Februari 2014 00:26:05 QuoteWijzig


Quote
Ik mis de code om die PCF te initialiseren.


Klopt.

De R-W bit is vergeten, ik dacht nog, als ik een test-link geef dan lukt het @Pascal het wel, trouwens het 'testen' dat was de vraag ook.
Daar werd het meeste uitgelegd.
Eigenlijk is dit IC minder moeilijk dan MCP23008.

Wat meet je met je scoop(Kit)?

pascalbianca
Lid
Berichten: 1449
Gepost op maandag 17 Februari 2014 05:19:50 QuoteWijzig


Quote
Stynus schreef:
Ik mis de code om die PCF te initialiseren.


Uh dat had ik niet nodig bij die eeprom volgens mij.


Quote
Henk (NL) schreef:

De R-W bit is vergeten, ik dacht nog, als ik een test-link geef dan lukt het @Pascal het wel, trouwens het 'testen' dat was de vraag ook.
Daar werd het meeste uitgelegd.
Eigenlijk is dit IC minder moeilijk dan MCP23008.

Wat meet je met je scoop(Kit)?



Wat wil je dat ik meet?
Maar hulp, weet al niet welke Slave adres hij daadwerkelijk heeft aangezien er diverse worden gebruikt op internet terwijl de ground op A0,A1 en A2 staat aangesloten.

Er word bij jou link @Henk wel veel uitgelegd maar das niet Proton IDE code die gebruikt word.

Ik weet echt niet welke kant ik moet uitgaan met die IC, dus

Dit is de code die ik momenteel heb.:

Code
Device 18F4550

Xtal 20
'Tris .  76543210 Register volgorde                                       
;TRISB = %11011100
TRISA=%00000000
TRISB=%01011000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
Declare All_Digital = TRUE  

PORTA=0;ORTB=0
PORTC=0ORTD=0
    PORTE=0
Declare LCD_DTPort = PORTD
Declare LCD_RSPin = PORTC.7
Declare LCD_ENPin = PORTE.0
Declare LCD_RWPin = PORTC.6
Declare LCD_CS1Pin = PORTE.1
Declare LCD_CS2Pin = PORTE.2
Declare LCD_Type = Graphic
Declare Internal_Font = On
Declare Font_Addr = 0
High PORTB.5   'rst pin oftwel reset pin
        
Declare GLCD_STROBE_DELAY = 5                                                                     
Declare Optimiser_Level 3
'Set ports for I2C
;Declare SCL_Pin    = PORTB.1
;Declare SDA_Pin    = PORTB.0 ;Alias voor de SDA (Data) lijn
;!!!!!!!!BOVENSTAANDE SDA EN SCL DECKLARES WAT MET BUSIN WORD GEBRUIKT!!!!!!!!!!!!!!!!!!!!!!! 
;!!!!!!!!IS VERVALLEN OMDAT HBusIn WORD GEBRUIKT DIE HARDWAREMATIG DE POORTEN AL AANWIJST!!!!
Declare Slow_Bus On 
Dim VAR1 As Byte
;Symbol PCF8574A_ADDR =%01000001 'PCF8574 Slave Address (A0,A1,A2 to GND)
;Symbol PCF8574A_ADDR = %01110000 ;Slave Adress A0 t/m A2 aan GND
;Symbol PCF8574A_ADDR = &H71 ;Slave Adress A0 t/m A2 aan GND
;Dim PCF8574A_ADDR     As Byte
;PCF8574A_ADDR = %00111000
 Symbol PCF8574A_ADDR = %01110001 ;56
start:
Cls
;BStart
;Print At 3,1,"PCF8574 schrijf"
;HBusOut PCF8574A_ADDR, [%11111111]
;BStop

;DelayMS 1000

;BStart
;Print At 3,1,"PCF8574 lees"
;HBusOut PCF8574A_ADDR, [%00000000]
;BStop

;DelayMS 1000
HBStart
HBusOut %01110001 ;%01110000 ; slave adress
HBusOut %00000000 ; alle leds aan
DelayMS 500
HBusOut %11111111 ; alle leds uit
HBStop

GoTo start


 
[Bericht gewijzigd door pascalbianca op Maandag 17 Februari 2014 08:25:32]


http://pascalbianca.blogspot.nl/
pascalbianca
Lid
Berichten: 1449
Gepost op maandag 17 Februari 2014 16:06:17 QuoteWijzig

Met de scoop erop zie ik dit als resultaat , dus iets gaat over de lijn heen.


http://pascalbianca.blogspot.nl/
[1] 2 »

Active Topics

» ? => Mini kerstlan...
» ATSAMD21J18A-AU backupen
» De gevolgen van een kl...
» De tuin.
» Afstandsbediening plaf...
» Virtual Chemist probleem
» Probleem met Toyota Av...
» Whirlpool kookplaat
» 24 volt motor vertrage...
» Show je mini projecten

» Meer actieve topics

Advertenties

ElektronicaStynus

© 2004-2022 SchemaTheek
Laadtijd: 0.30975 sec.