Jak zakodować sekundy w zegarku programowalnym 8583 w pracy dyplomowej?
Re: Programowanie 8583 ?
From: "Marek Lewandowski" <locust_at_nospam_priv4.onet.pl>
Subject: Re: Programowanie 8583 ?
Date: Sun, 1 Apr 2001 02:02:48 +0200
Użytkownik "Emotivex" <emotivex_at_nospam_o2.pl> napisał w wiadomości
news:3ac22c2d_at_nospam_news.vogel.pl...
Witam wszystkich.
Czy ktos programowal ten zegarek i moglby mi pomoc ?
Uzywam go w pracy dyplomowej ale z procesem
programowanie tego ukladu idzie mi kiepsko :(
Jak wyglada format zapisu sekund ? [ jak sa kodowane sekundy ]
BCD
Wal z resztą pytań - jak chcesz: tu, albo na priv (choć lepiej tu).
Marek
marek.lewandowski_at_nospam_multicon.pl
From: "Emotivex" <emotivex_at_nospam_o2.pl>
Subject: Re: Programowanie 8583 ?
Date: Sun, 1 Apr 2001 16:33:13 +0200
Czesc
Jak sa kodowane sekundy i minuty ?
Czy format minut i sekund ( dla zegara ) jest identyczny i wyglada tak:
nr bitow: [ 76543210 ]
7 - do czego on sluzy ?
-------------
6
5 czy te 3 bity sa przeznaczone na dziesiatki skund/minut ? [ binarnie ]
4
-------------
3
2
1 czy te 4 bity sa przeznaczone na jednostki skund/minut ? [ BCD ]
0
-------------
W opisie tego nie ma wiec mam watpliwosci.
Jest to moj pierwszy program na i2c i mam maly problem poniewaz moj program
nie chodzi na pracy dyplomowej :(
Mam prosbe czy ktos ma sprawdzony dobry program [ w asemblerze ] na ten proc
esor i moglby go podeslac ?
[ oczywiscie w celach testowych ]
Z gory dzieki.
Pozdrawiam
Emotivex
qakson_at_nospam_poczta.onet.pl
emotivex_at_nospam_o2.pl
From: "Marek Lewandowski" <locust_at_nospam_priv4.onet.pl>
Subject: Re: Programowanie 8583 ?
Date: Mon, 2 Apr 2001 22:49:28 +0200
Użytkownik "Emotivex" <emotivex_at_nospam_o2.pl> napisał w wiadomości
news:3ac73c5d_at_nospam_news.vogel.pl...
Czesc
Jak sa kodowane sekundy i minuty ?
Czy format minut i sekund ( dla zegara ) jest identyczny i wyglada tak:
nr bitow: [ 76543210 ]
7 - do czego on sluzy ?
-------------
6
5 czy te 3 bity sa przeznaczone na dziesiatki skund/minut ?
[ binarnie ]
4
-------------
3
2
1 czy te 4 bity sa przeznaczone na jednostki skund/minut ? [ BCD ]
0
-------------
Dokładnie tak. Bit 7 nie służy do niczego.
W opisie tego nie ma wiec mam watpliwosci.
Jest to moj pierwszy program na i2c i mam maly problem poniewaz moj
program
nie chodzi na pracy dyplomowej :(
Mam prosbe czy ktos ma sprawdzony dobry program [ w asemblerze ] na ten
proc
esor i moglby go podeslac ?
[ oczywiscie w celach testowych ]
masz bibliotekę do i2c. Nie napisałeś jaki procesor, to jest dla rodziny
MCS51
;constants required:
;SDA_port equ p1
;SDA_line equ 1
;SCL_port equ p1
;SCL_line equ 0
;i2c_error equ 6fh
; **********************************************************************
i2c_start:
setb SCL_port.SCL_line
nop
clr SDA_port.SDA_line
nop
clr SCL_port.SCL_line
ret
; **********************************************************************
i2c_stop:
setb SCL_port.SCL_line
nop
setb SDA_port.SDA_line
ret
; **********************************************************************
i2c_write:
push b
push psw
mov b,#08h
i2c_write_loop:
rlc a
mov SDA_port.SDA_line,c
nop
setb SCL_port.SCL_line
nop
clr SCL_port.SCL_line
nop
djnz b,i2c_write_loop
rlc a
setb SDA_port.SDA_line
nop
setb SCL_port.SCL_line
jb SDA_port.SDA_line,i2c_write_error
clr SCL_port.SCL_line
mov i2c_error,#00h
pop psw
pop b
ret
i2c_write_error:
clr SCL_port.SCL_line
mov i2c_error,#01h
pop psw
pop b
ret
; **********************************************************************
i2c_read_ack: ;data read -> acc, send ack
push psw
push b
mov b,#08h
setb SDA_port.SDA_line
i2c_read_ack_loop:
setb SCL_port.SCL_line
nop
mov c,SDA_port.SDA_line
rlc a
clr SCL_port.SCL_line
djnz b,i2c_read_ack_loop
clr SDA_port.SDA_line
setb SCL_port.SCL_line
clr SCL_port.SCL_line
setb SDA_port.SDA_line
pop b
pop psw
ret
; **********************************************************************
i2c_read_nack: ;data read -> acc, don't send ack
push psw
push b
mov b,#08h
setb SDA_port.SDA_line
i2c_read_nack_loop:
setb SCL_port.SCL_line
nop
mov c,SDA_port.SDA_line
rlc a
clr SCL_port.SCL_line
djnz b,i2c_read_nack_loop
setb SDA_port.SDA_line
setb SCL_port.SCL_line
clr SCL_port.SCL_line
pop b
pop psw
ret
i juź. Możesz wywalić część nop-ów jeśli ci PCF wyrobi - na 16MHz bez nich
miał problemy, ale nie chciało mi się kombinować i je po prostu powstawiałem
gdzie popadnie i chodzi.
--
Marek Lewandowski
marek.lewandowski_at_nospam_multicon.pl UIN: 10139051
http://www.callisto.krakow.pl/~twilight