RTC ds 1.302 kods nepieciešams (RTC neskaitās)

T

tapan.entc

Guest
Es esmu uzrakstījis ASM kodekss 1.302 DS.
Man ir rakstīšanas LAIKS RTC reģistrā un READIND laiku, kas ir pareizs.

BET problēma ir LAIKS IR nepalielināt ...

CAN ANY ONE HELP ME?

 
Čau,
Pēc 00h adrese (adrese 0), nedaudz 7 CH (pulksteni apstādinātu).Pārliecinieties, ka Jums ir notīrīta šis bits.Ja vien jūs to darāt, laiks netiek ņemts vērā.Kad notīrīta, jūsu problēmas būtu atrisinātas.
Hope this helps.
Tahmid.

 
Hi Tahmid
Paldies par atbildi.
Pirmais esmu devusi 00h Otrajā reģistrēties ..bet pulksteņa nav pieaug ..
Atdošu u my code ... lūdzu dodiet man ieteikums ....

attiecībā
Tapan

 
Čau,
Tas būs lietderīgi, ja jūs publicējat savu kodu.
Pēc tā, kuru valodu un kompilatoru jūs lietojat?

 
hi Tahmid

Es lietoju Keil programmatūras un mans kods ir uzrakstīts asamblervaloda ..

i ir pabeigt šo projektu, rīt, tāpēc, lūdzu, iedodiet man kādu ieteikumu.mans kods ir:

;###############################################
; PROGRAM sasaistei RTC AR AT89S8252
, autors: Tapan sakaut
;###############################################
CE EQU P1.7; Chip Enable pin P1.7
IO EQU P3.4, datu pin P3.4
SCLK EQU P1.6; Clock pin P1.6

com_adr equ 0fe00h; LCD IEKĀRTU REĢISTRĒTIES ADRESE
dat_adr equ 0fe01h; LCD datu reģistra ADRESE

ORG 0000H
AJMP GALVENĀ

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;
; GALVENIE PROGRAMMAS STARTS HERE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;
ORG 030H
MAIN:

ACALL LCD_INIT; inicializējot LCD
/ *
mov scon, # 50h
mov tmod, # 02h
mov th0, # 0fdh
, MOV TL1, 0FDH
mov TCON, # 45st
setb tr0 * /

CLR CE;
CLR SCLK
NOP
NOP
SETB CE

MOV R1, # 8EH; RAKSTIET PROTECT MODE
MOV R0, # 0
LCALL WRITE

MOV R1, # 90H; sūkties CHARGER reģistrā un DIODE SELECT
MOV R0, # 0ABH, 2 diodes, 8K
ACALL WRITE

MOV R1, # 80H; RAKSTIET sekundes
MOV R0, # 0
ACALL WRITE

MOV R1, # 82H; RAKSTIET PROTOKOLS
MOV R0, # 05H
ACALL WRITE

MOV R1, # 84H; RAKSTIET HOURS
MOV R0, # 11H
CALL WRITE

MOV R1, # 86H; WRITE DATUMS: 27
MOV R0, # 27H
ACALL WRITE

MOV R1, # 88H; WRITE mēnesī: 9 (septembris)
MOV R0, # 9
ACALL WRITE

MOV R1, # 8CH; WRITE GADS: 09 (2009)
MOV R0, # 09H
ACALL WRITE
/ *
MOV R1, # 80H; RAKSTIET sekundes
mov, # 00h
MOV @ R1,
NOP
NOP * /

SS:

MOV R1, # 81H; READ sekundes
CALL READ
MOV 20h, R0

MOV R1, # 83H; READ PROTOKOLS
CALL READ
MOV 21h, R0

MOV R1, # 85.h; READ HOUR
CALL READ
MOV 22H, R0

MOV R1, # 87H; READ DATE
CALL READ
MOV 23H, R0

MOV R1, # 89H; READ MONTH
CALL READ
MOV 24H, R0

MOV R1, # 8DH; READ GADS
CALL READ
MOV 25H, R0DIS:
MOV, 21h, lasīt minūtēm un displejs LCD
PUSH ACC
MOV, # 86H
ACALL COMNWRT
ACALL DELAY
MOV ,#':'
ACALL DATAWRT
ACALL DELAY
POP ACC
ACALL ASCIICONV

MOV, 22H, rad stundas un attēlošanu lcd
PUSH ACC
MOV, # 84H
ACALL COMNWRT
ACALL DELAY
POP ACC
ACALL ASCIICONV

MOV, 22H
JB ACC.5, PM, čeku nosacījums AM vai PM
MOV, # 8AH
ACALL COMNWRT
ACALL DELAY
MOV, # ""
ACALL DATAWRT
ACALL DELAY
/ * MOV, # 'M'
ACALL DATAWRT
ACALL DELAY * /
SJMP M
PM: MOV, # 8AH
ACALL COMNWRT
ACALL DELAY
MOV, # "P"
ACALL DATAWRT
ACALL DELAY
M: MOV, # 'M'
ACALL DATAWRT
ACALL DELAY

SJMP SS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;
; Write operation
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;
WRITE:
; CLR SCLK; CLEAR SCLK LINE
; NOP
; NOP
SETB CE; SET CE Augstā write operation
NOP
MOV, R1; KRAVAS ADRESE
MOV R2, # 8; COUNT = 8
WRITE_1: RRC;
MOV IO, C; NOSŪTĪT LSB FIRST AND THEN CONTINUE
NOP
NOP
SETB SCLK
NOP
NOP
CLR SCLK
DJNZ R2, WRITE_1
NOP
NOP
;*************
MOV, R0; LOAD DATA
MOV R2, # 8; SET COUNT = 8
WRITE_2: RRC;
MOV IO, C
NOP
NOP
SETB SCLK
NOP
NOP
CLR SCLK
DJNZ R2, WRITE_2
NOP
NOP
CLR CE
NOP
NOP

RET
;**********************************************/
; READ OPERAION
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Lasīts:
SETB CE; SET CE
MOV, R1; KRAVAS ADRESE FIRST
MOV R2, # 8
READ_1: RRC
MOV IO, C; MOVE jārisina ar IO PIN
NOP
NOP
SETB SCLK; SET SCLK
NOP
NOP
CLR SCLK; CLEAR SCLK FOR write operation
DJNZ R2, READ_1
NOP
NOP
SETB IO
CLR
CLR C
MOV R2, # 8
READ_2: MOV C, IO
RRC
NOP
NOP
SETB SCLK
NOP
NOP
CLR SCLK
NOP
NOP
DJNZ R2, READ_2
MOV R0,
; ANL, # 7FH
CLR CE

RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; LCD inicializācijas
;...............................................
LCD_INIT:
MOV, # 38H
ACALL COMNWRT
ACALL DELAY

MOV, # 0CH
ACALL COMNWRT
ACALL DELAY

MOV, # 01H
ACALL COMNWRT
ACALL DELAY

MOV, # 06H
ACALL COMNWRT
ACALL DELAY

RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;
COMNWRT:
MOV DPTR, # COM_ADR
MOVX @ DPTR,
NOP
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATAWRT:
MOV DPTR, # DAT_ADR
MOVX @ DPTR,
NOP
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ASCIICONV:
PUSH ACC
, MOV, R0
SWAP
ANL, # 0FH
ORL, # 30h
ACALL DATAWRT
ACALL DELAY
, MOV, R0
POP ACC
ANL, # 0FH
ORL, # 30h
ACALL DATAWRT
ACALL DELAY
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
DELAY:
MOV R3, # 200
Mugura: MOV R4, # 255
DJNZ R4, $
DJNZ R3, ATPAKAĻ

RET

END
attiecībā
Tapan

 
Hi Tapan,
Piedodiet man, man nav ne jausmas, ko jūs rakstījāt.Es strādāju ar PIC un nav AVR.Pievienots pēc 4 minūtēm:Bet, tā kā jūs teicāt, jūs noskaidroti CH bit, nevajadzētu būt jebkura cita problēma, jo Jūs minējāt read / write strādā labi.
Pārbaudiet 32.768kHz kristāla un jūs noteikusi nekādu frekvences SQW PIN?Ja tas tā ir, pārliecinieties, ka saņemat pareizu frekvenci, ja jums nav iespēju to un pārbaudītu pareizu frekvenci.
Es domāju, ka ir viss, es varu teikt.Es nevaru saprast vienu vārdu, ko jūs rakstījāt.

 
Jums ir jāpārbauda jūsu kodu posmos ..
Mēģināt, piemēram, palielināt vērtību (21) => M minūtēm

Modificēt kodu šādi:

, MOV R1, # 83H; READ PROTOKOLS
; CALL READ
, MOV 21h, R0

MOV R1, # 21h
INC @ R1

Un uzzināt, kas ir redzams LCD ..

...

 
hello IanP

Thanks for Atbildēt.
Es domāju, ka ar RTC laikā jāpalielina automātiski.
Man lasīt laiks un izstāde, lcd.

Bet kā u teica, ka pieaugums laika programmā.

Modificēt kodu šādi:

, MOV R1, # 83H; READ PROTOKOLS
; CALL READ
, MOV 21h, R0

MOV R1, # 21h
INC @ R1Šeit man ir cits šaubu, ka:
par 21h, nav datu, cik es pieaugums šiem datiem.

lūdzu atbildi man un man palīdzēt.

Attiecībā

Tapan

 
Varu-on vērtība (21h) M nav definēts, tāpēc, lai pārliecinātos, ka tas ir 00h pievienot vienu rindiņu koda paša sākuma programma ..

ORG 030H
MAIN:
ACALL LCD_INIT; inicializējot LCD
MOV 21h, # 00h
...

Ja viss cits works fine jums vajadzētu redzēt PROTOKOLS mainīgo ..Tas viss tiek darīts uz laiku, tikai lai pārbaudītu pārējo savu kodu, kas ir atbildīga par displeja un parādīt jums, ka kods darbojas un nav bloķēta kaut kur infinite loop ..

Rgds,
IanP

 
Hello IanP

Es esmu darījis, kā jūs sakāt, bet tas pats notiek.

mana problēma ir
Rakstot RTC ir ok
tad lasījums no RTC ir tas pats, kas tika rakstīts .....

lasot sec reģistrs pēc Displaying otrās
dažas jautājuma zīme ir parādīti kuru man nav norādītas programmā.

lūdzu ar manu kodu.
Es esmu jauns, lai iegultās jomā ..
Es gaidīju vairāk no jums.
Es ceru, ka jūs man palīdzēt .....With Regards
Tapan

 

Welcome to EDABoard.com

Sponsor

Back
Top