Anh chị nào biết lập trình ngắt để cài đặt giờ phút giây cho DS1307 xin chỉ giúp em với, có code hay giải thuật như thế nào xin cho em vài ý kiến
Thông báo
Collapse
No announcement yet.
lập trình ngắt để cài đặt giờ cho DS1307
Collapse
X
-
àh em tính dùng ngắt ngoài để cài đặt giờ cho 1307 đó anh, 1 nút chọn chế độ(chọn cài đặt giờ, phút hay là giây) 2 nút :tăng và giảm, tại vì đâu phải gắn vô là con 1307 chạy đúng giờ như cái đồng hồ nhà mình đâu, nó chạy theo thời gian mà mình đã thiết lập cho nó mà phải ko ạ, nên phải chỉnh lại thời gian
Comment
-
Bạn tham khảo cái này, test thực tế chạy ok (nguồn tham khảo tại www.dientuvietnam.net có chỉnh sửa tí xíu) có mô phỏng = proteus 7.7, download proteus 7.7 tại chữ kíNguyên văn bởi ylotus Xem bài viếtAnh chị nào biết lập trình ngắt để cài đặt giờ phút giây cho DS1307 xin chỉ giúp em với, có code hay giải thuật như thế nào xin cho em vài ý kiến
http://www.mediafire.com/?1yqdq1rih5q6app
Chúc vuiMạch nạp Pickit 2 SE ---> 170k BH 1 năm
Pic 18F2550 PDIP Thailand bao test 60K/1c
Comment
-
em cám ơn anh đã giúp đỡ nhưng mà em đang lập trình bằng asm anh ơi, C thì em bó tay, mấy anh có biết đồng hồ mà chạy chậm quá thì nguyên nhân là do đâu ko, anh nào rảnh coi giúp em đoạn code này, em làm cho 1con led giây thôi mà sao nó chạy chậm lắm mà sai nữa, ai biết sửa giúp em
;KHAI BAO
GIAY DATA 60H
DONVI_GIAY DATA 63H
CHUC_GIAY DATA 64H
LED_GIAY BIT P2.0
LED_C_GIAY BIT P2.1
;--------I2C-------
SCL BIT P3.0
SDA BIT P3.1
LED_DATA EQU P0
BYTE_W EQU 11010000B
BYTE_R EQU 11010001B
ADD_REG EQU 20H
DATA_RTC EQU 21H
ORG 0000H
MAIN:
MOV GIAY,#0
MOV TMOD,#10H
MOV ADD_REG,#0
MOV DATA_RTC,#0
MOV A,#00H
MOV LED_DATA,#00H
;**********WRITE_CLOCK**********
WRITE_CLOCK:
SETB SCL ;KIEM TRA BUS ROI
SETB SDA
CALL START_CLOCK
MOV A,#BYTE_W
CALL TACH_BYTE
CLR SCL ;4 HANG KT ACK
SETB SCL
JB SDA,$
CLR SCL
MOV A,ADD_REG
CALL TACH_BYTE
CLR SCL ;4 HANG KT ACK
SETB SCL
JB SDA,$
CLR SCL
MOV A,DATA_RTC
CALL TACH_BYTE
CLR SCL ;4 HANG KT ACK
SETB SCL
JB SDA,$
CLR SCL
CALL STOP_CLOCK
;********CHUONG TRINH NHAN DU LIEU VA HIEN THI***********
RECEIVE_DATA:
;========READS SECONDS=============
READ_SEC:
MOV ADD_REG,#00H
LCALL READ_RTC
MOV GIAY,DATA_RTC
LCALL STOP_CLOCK
CALL HIENTHI_S
LJMP RECEIVE_DATA
;*****CHUONG TRINH DOC DU LIEU TU 1307*****
READ_RTC:
SETB SCL ;KIEM TRA BUS ROI
SETB SDA
CALL START_CLOCK
MOV A,#BYTE_W
CALL TACH_BYTE
CLR SCL ;4 HANG ACK
SETB SCL
JB SDA,$
CLR SCL
MOV A,ADD_REG
CALL TACH_BYTE
CLR SCL ;4 HANG ACK
SETB SCL
JB SDA,$
CLR SCL
CALL STOP_CLOCK
SETB SCL ;KIEM TRA BUS ROI
SETB SDA
CALL START_CLOCK
MOV A,#BYTE_R
CALL TACH_BYTE
CLR SCL ;4 HANG ACK
SETB SCL
JB SDA,$
CLR SCL
CALL SEND_DATA
SETB SCL ;NOT ACK
SETB SDA
CALL STOP_CLOCK
RET
;--------------HIENTHI_RTC---------------
;**********************************
HIENTHI_S:
CALL BINBCD_GIAY
MOV DPTR,#MALED
MOV A,DONVI_GIAY
MOVC A,@A+DPTR
MOV LED_DATA,A
SETB LED_GIAY
CLR LED_C_GIAY
CALL DELAY
CLR LED_GIAY
MOV DPTR,#MALED
MOV A,CHUC_GIAY
MOVC A,@A+DPTR
MOV LED_DATA,A
SETB LED_C_GIAY
CALL DELAY
CLR LED_C_GIAY
RET
;**********CHUONG TRINH TACH BYTE***********
TACH_BYTE:
MOV R7,#8
GG: RLC A
MOV SDA,C
SETB SCL
CLR SCL
DJNZ R7,GG
RET
;----------DUA DU LIEU RA MANG I2C--------------
SEND_DATA:
MOV R7,#8
CLR SCL
DG: MOV C,SDA
SETB SCL
CLR SCL
RLC A
DJNZ R7,DG
MOV DATA_RTC,A
RET
;---------START-------------
START_CLOCK:
SETB SCL ;trong khi SCL=1
NOP
SETB SDA ;SDA tu 1
NOP
CLR SDA ;xuong 0
NOP
CLR SCL
RET
;---------STOP-----------
STOP_CLOCK:
SETB SCL ;trong khi SCL=1
NOP
CLR SDA ;SDA tu 0
NOP
SETB SDA ; len 1
NOP
CLR SCL
RET
;**********CHUONG TRINH DOI SANG MA BCD************
BINBCD_GIAY:
MOV A,GIAY
MOV B,#10
DIV AB
MOV CHUC_GIAY,A
MOV DONVI_GIAY,B
RET
DELAY:
clr tr1
mov th1,#high(-500)
mov tl1,#low(-500)
setb tr1
jnb tf1,$
clr tf1
ret
MALED:
DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H
END
Comment
-
- Code bạn có vấn đề
- chạy nhanh hay châm thường là do Ds1307Last edited by vidieukhien1; 09-03-2011, 14:48.Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
Pic 18F2550 PDIP Thailand bao test 60K/1c
Comment
-
Minh thì chưa từng làm con 1307 bao giờ cả, nên không giúp dc bạn.
Nếu bạn chịu khó bỏ thêm mấy chục ngàn mua con DS12C887 thì mình sẽ giúp bạn từ A -> Z
Con 12C887 mình mua 60k, chạy rất tốt, không cần nguồn nuôi, bản thân nó có nguồn nuôi bên trong.
Mình làm 4 cái rồi, cũng mới hơn 1 năm thôi, chưa thấy vấn đề gì xảy ra cả.
Nếu bạn cần thì email cho mình qua: long.nguyenvansc@gmail.com nhé!
Chúc bạn vui!Không biết ngày mai sẽ ra sao?
Mà có ra sao cũng chẳng sao.
Comment
Bài viết mới nhất
Collapse
-
bởi Andrea14Chào mọi người,
Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...-
Channel: Điện tử truyền hình
hôm nay, 12:42 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
06-12-2025, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -

Comment