Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Bascom / Assembler, 8051

valkyrie 14 Mar 2003 14:25 2451 4
  • #1
    valkyrie
    Level 14  
    Mój problem pewnie jest prosty ale zapytam bo nie znalazłem podobnego
    albo źle szukałem.
    Prosty program w ASM.
    CLR P1.0
    SETB P1.1
    CLR P1.2
    SETB P1.3
    CLR P1.4
    SETB P1.5
    CLR P1.6
    SETB P1.7
    end
    Ustawia co drugi bit na porcie P1 co daje 01010itd. to samo w Bascomie.
    Reset 1.0
    Set P1.1
    Reset P1.2
    Set P1.3
    Reset P1.4
    Set P1.5
    Reset P1.6
    Set P1.7

    Po wypaleniu eproma z pliku hex generowanego z ASM stany na P1 są jaki miały być, po wypaleniu eproma z hex z bascom'a linie portu P1 pozostają na poziomie +5V.
    Bascom DEMO w wersji dla Elektroniki Praktycznej
    Procesor 80c51
    Z bascomem dopiero zaczynam, ale to pewnie coś z pamiecią .
    Czy ktos ma jakiś pomysł ?
  • #2
    1004kw
    Level 15  
    Czy ustawiles port 1 jako wyjsciowy? Ja mialem podobna sytuacje, ale z procesorem AT90S8515.
  • #3
    valkyrie
    Level 14  
    Rozwiązanie problemu tkwiło gdzie indziej. Poddałem deasembacji HEX z Bascomu. Zawierał na początku przygotowanie miejsca w pamieci na obsługe przerwań a później to samo co ja pisałem w ASM, czy nie ma co się czepiać, więc na próbę z tego asm zrobiłem hex'a assemblerem i dalej porty milczą.
    Napisałem prosty program w ASM który w petli wysyłał znak na port szeregowy, program terminalowy odbirał coś ale nie było to co zamierzałem. Dobieranie predkości z terminala nic nie pomogło.
    Na koniec pożyczyłem inną '51 i jest poprawnie.
    Najprawdopodobnie moja D87C51 jest uszkodzona lub nie toleruje zegara
    11059,2kHz, prawdopodonie wiesza sie po kilku cyklach, kiedys sprawdzę na inny zegarze, wolniejszym i napiszę.
    Myślę że temat możemy uznać za zamknięty, dziękuje za zainteresowanie.
  • #4
    robt
    Level 13  
    A tak na marginesie to po co programujesz porty jako poszczególne bity można przecież programować cały port
    MOV P1,#01010101B
    i trwa to tylko dwa takty zegara.
  • #5
    valkyrie
    Level 14  
    Robt:
    Wiem że można i tak programować porty, problem polegał na znalezieniu przyczyny innego zachowania procesora w przypadku programowania z ASM i Bascom.
    Problem uważam za zamknięty.