các pro cho e hỏi sao con ds12c887 không lưu lại thời gian nhỉ. Ban đầu thì e set lại thời gian cho nó. gắn vào chạy. Xong xóa chương trình con khởi tạo Realtime đi và gắn vào thì nó đọc lại ko giống thời gian đã lưu. hay mất nguồn thì con ds12c887 nó trở lại thời gian 2h 4 phút 0s là sao nhỉ? ai giúp với thanks all
Thông báo
Collapse
No announcement yet.
RTC DS12C887 sao không lưu thời gian?
Collapse
X
-
ORG 0000H
CALL KTAO_RTIME
MOV DPTR,#MA7DOAN
CALL DOC_RTIME
MOV 32H,#10111111B
MOV 35H,#10111111B
LB1: CALL GIAIMA
MOV GIAYTAM,GIAY
LB2: CALL HIENTHI8
CALL DOC_RTIME
MOV A,GIAY
CJNE A,GIAYTAM,LB1
JMP LB2
GIAIMA:
MOV A,GIAY
ANL A,#0FH
MOVC A,@A+DPTR
MOV 30H,A
MOV A,GIAY
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV 31H,A
MOV A,PHUT
ANL A,#0FH
MOVC A,@A+DPTR
MOV 33H,A
MOV A,PHUT
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV 34H,A
MOV A,GIO
ANL A,#0FH
MOVC A,@A+DPTR
MOV 36H,A
MOV A,GIO
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV 37H,A
RET
$INCLUDE(TV_DELAY.ASM)
$INCLUDE(TV_RTIME.ASM)
$INCLUDE(TV_GM_HT.ASM)
END
====================
thư viện realtime
====================
NAM EQU 50H
THANG EQU 51H
NGAY EQU 52H
THU EQU 53H
GIO EQU 54H
PHUT EQU 55H
GIAY EQU 56H
GIAYTAM EQU 57H
DOC_RTIME:
MOV R0,#00
MOVX A,@R0
MOV GIAY,A
MOV R0,#02
MOVX A,@R0
MOV PHUT,A
MOV R0,#04
MOVX A,@R0
MOV GIO,A
MOV R0,#06
MOVX A,@R0
MOV THU,A
MOV R0,#07
MOVX A,@R0
MOV NGAY,A
MOV R0,#08
MOVX A,@R0
MOV THANG,A
MOV R0,#09
MOVX A,@R0
MOV NAM,A
RET
KTAO_RTIME:
MOV R0,#0BH
MOV A,#22H
MOVX @R0,A
MOV A,#0
MOV R0,#0
MOVX @R0,A
MOV A,#80
MOV R0,#02
MOVX @R0,A
MOV A,#20
MOV R0,#04
MOVX @R0,A
MOV A,#2
MOV R0,#06
MOVX @R0,A
MOV A,#01
MOV R0,#07
MOVX @R0,A
MOV A,#01
MOV R0,#08
MOVX @R0,A
MOV A,#08
MOV R0,#09
MOVX @R0,A
MOV R0,#0AH
MOV A,#02FH
MOVX @R0,A
RET
Comment
-
sơ đồ chân thì nối thế này:
WR\ và RD\ và ALE/PROG\ của chân vi điều khiển 89 tương ứng nối với RW, DS , AS, còn chân Reset\ thì nối +, còn chân MOT nối - hay + nguồn cũng vậy, còn chân CS\ thì nối +
Đây là code của Thầy trong sách ra không sai, nối dây thì có lẽ đúng vì nó vẫn chạy ngon lành. nhưng khi biên dịch nạp lại bỏ khởi tạo thì nó đọc từ realtime ra sai bét, ra giờ khác, hoặc là tháo con realtime ra gắn vào cũng y như vậy.
có khi nào con realtime hết pin hok chời
Comment
-
Thì khi set xong rồi mình gỡ con 89 ra xóa dòng lệnh khởi tạo biên dịch nạp lạiNguyên văn bởi mast090 Xem bài viếtcó thể trong code có đoạn khởi tạo mà set luôn lại giờ cho nó lên nó hiển thị ko đúng vs giá trị set trước
thì lúc đó chương trình đâu còn gọi chương trình con khởi tạo nữa đâu
nó chỉ đọc lại con realtime thôi. mà con realtime này vẫn còn để nguồn nuôi. gắn 89 vào mà đọc thì lại khác giá trị lúc set.
Mà tháo realtime ra gắn lại thì cũng bị khác giờ, nó để cái giờ mặc định là 2h 4phut mười mấy giây
có thể đoạn chương trình trên chưa set được thời gian chăng?
Comment
-
1.chân CS tích cực mức thấp sao bạn nối + phải GND chứNguyên văn bởi okmendima Xem bài viếtThì khi set xong rồi mình gỡ con 89 ra xóa dòng lệnh khởi tạo biên dịch nạp lại
thì lúc đó chương trình đâu còn gọi chương trình con khởi tạo nữa đâu
nó chỉ đọc lại con realtime thôi. mà con realtime này vẫn còn để nguồn nuôi. gắn 89 vào mà đọc thì lại khác giá trị lúc set.
Mà tháo realtime ra gắn lại thì cũng bị khác giờ, nó để cái giờ mặc định là 2h 4phut mười mấy giây
có thể đoạn chương trình trên chưa set được thời gian chăng?
2..khi bạn set các giá trị #80 khác với #80H nhé cái này cơ bản làm sai đấy.....
Comment
-
chân CS nối xuống - hay + không nhớ nữa, nhưng mà đấu ngược thì nó đứng im ak. cái đó testboard bít liền ak. test rồi. Mạch chạy mà. Con #80 với #80H là khác nhau hoàn toàn. Nếu để #80H thì biên dịch lỗi ngay. Vì con này mún nhận ví dụ phút thứ 50 đi thì ta phải cho mã hex là 50 và đổi sang Dec phải là #80 thì nó mới nhận đúng và hiển thị ra số phút là 50 được. Mấy dòng lệnh này không sai đâu do sách của thầy ra mà. Sai là ở chổ khi nạp vào vdk thì hiển thị đúng số giờ phút giây mà mình đã cài đặt. chạy ngon ơ, nhưng khi tháo con vi điều khiển ra xóa bỏ dòng khởi tạo realtime thì con vdk không nhận đúng giờ đã set nữa, hay lúc chạy ngon ơ mà tháo con realtime ra gắn lại nó cũng đổi lại giờ. Có thể mình phải đưa chân nào lên + hay - thì con realtime mới nhớ được giờ giấc không nhỉ?
Comment
-
Vì con này mún nhận ví dụ phút thứ 50 đi thì ta phải cho mã hex là 50 và đổi sang Dec phải là #80 thì nó mới nhận đúng và hiển thị ra số phút là 50 được. quả là rắc rối nhỉ....Nguyên văn bởi okmendima Xem bài viếtchân CS nối xuống - hay + không nhớ nữa, nhưng mà đấu ngược thì nó đứng im ak. cái đó testboard bít liền ak. test rồi. Mạch chạy mà. Con #80 với #80H là khác nhau hoàn toàn. Nếu để #80H thì biên dịch lỗi ngay. Vì con này mún nhận ví dụ phút thứ 50 đi thì ta phải cho mã hex là 50 và đổi sang Dec phải là #80 thì nó mới nhận đúng và hiển thị ra số phút là 50 được. Mấy dòng lệnh này không sai đâu do sách của thầy ra mà. Sai là ở chổ khi nạp vào vdk thì hiển thị đúng số giờ phút giây mà mình đã cài đặt. chạy ngon ơ, nhưng khi tháo con vi điều khiển ra xóa bỏ dòng khởi tạo realtime thì con vdk không nhận đúng giờ đã set nữa, hay lúc chạy ngon ơ mà tháo con realtime ra gắn lại nó cũng đổi lại giờ. Có thể mình phải đưa chân nào lên + hay - thì con realtime mới nhớ được giờ giấc không nhỉ?
bạn dùng trình dịch gì mà #80h báo lổi vậy....
ds12887 này tui sài mấy chục con rồi chưa gặp trường hợp này bao giờ....
còn chân MOT nếu dùng 89xx thì bạn phải đấu (-) để chọn kiểu xung bus intel nếu ngược lại sẽ chọn kiểu bus motorola
Comment
-
12887 có thể xuất 2 dạng dữ liệu là mã BCD và mã đếm thông thường.
Ở dữ liệu BCD thì 50 giây khi đọc 12887 sẽ nhận đc giá trị #50H tương đương #80
Ỡ dữ liệu đếm thông thường thì 50 giây khi đọc 12887 sẽ nhận đc giá trị #32H tương đương #50
Do đoạn code trên ghi vào thanh ghi B giá trị 22H nên BIT DM trong thanh ghi có giá trị 0, dữ liệu nhận đc sẽ có dạng BCD
Comment
-
Nguyên văn bởi chung1608 Xem bài viết12887 có thể xuất 2 dạng dữ liệu là mã BCD và mã đếm thông thường.
Ở dữ liệu BCD thì 50 giây khi đọc 12887 sẽ nhận đc giá trị #50H tương đương #80
Ỡ dữ liệu đếm thông thường thì 50 giây khi đọc 12887 sẽ nhận đc giá trị #32H tương đương #50
Do đoạn code trên ghi vào thanh ghi B giá trị 22H nên BIT DM trong thanh ghi có giá trị 0, dữ liệu nhận đc sẽ có dạng BCDA phía trên nói đúng rồi đó, thấy ông thầy để mov 22h ở dòng lệnh khởi tạo đầu tiên đó.Nguyên văn bởi CONGMINHfs Xem bài viếtVì con này mún nhận ví dụ phút thứ 50 đi thì ta phải cho mã hex là 50 và đổi sang Dec phải là #80 thì nó mới nhận đúng và hiển thị ra số phút là 50 được. quả là rắc rối nhỉ....
bạn dùng trình dịch gì mà #80h báo lổi vậy....
ds12887 này tui sài mấy chục con rồi chưa gặp trường hợp này bao giờ....
còn chân MOT nếu dùng 89xx thì bạn phải đấu (-) để chọn kiểu xung bus intel nếu ngược lại sẽ chọn kiểu bus motorola
Có thể mua con này nó hết pin nên ko lưu được thời gian.
Chắc mua con khác quá, tốn tiền quá đi. Híc
Comment
Bài viết mới nhất
Collapse
-
bởi mèomướpDạ chú rủ cô ấy đi ăn uống, cà phê, xem phim...nhớ nắm tay, rồi thì ôm hôn,...trong vòng 1 tuần mà ko nắm tay được, 1 tháng mà ko ôm đc thì dẹp ngay và luôn ạ. Nhắn tin, gọi điện ít thôi ạ, trả lời quá lâu hoặc ko trả lời cũng dẹp ngay ạ. Nên thể hiện chú là người có điều kiện nữa ạ...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 18:50 -
-
bởi songchodep76Cảm ơn bác đã nhiệt thành chia sẻ kinh nghiệm bản thân mình cho mọi người.
Tuy nhiên, theo tiếp xúc hạn hẹp của em với mosfet thì vấn đề bác đo vôn ở cực D và thấy đỉnh nó 70V/55V Vds max, như thí nghiệm và trong hình của bác...-
Channel: Hướng dẫn sử dụng diễn đàn
07-02-2026, 09:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
05-02-2026, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
05-02-2026, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
meeeeeeeeeeeeeeeeeeeeeeeeeee

Comment