Đây là hình nguyên lý lúc còn đi học tôi đã làm chơi 1 cái như vậy. Chạy cho tới giờ không có vấn đề gì hết. Ai cần thì lấy dùng, nếu thấy hay thì nhấn cám ơn.
Thông báo
Collapse
No announcement yet.
Hỏi Về Cách Giao Tiếp Giữa Vdk Với Ic Thời Gian Thực
Collapse
X
-
addata equ p0
cs bit p2.7
as bit p2.6
rewr bit p2.5
dss bit p2.4
;**********************MAIN*********************** *****
setb cs
lcall kd_rtc
nop
lcall nap
sjmp $
;**********************KHOI DONG RTC************************
kd_rtc:
mov a,#0ah; địa chỉ thanh ghi a cua rtc
lcall wr_add
mov a,#20h; nạp 20h vào A của RTC để khởi động
lcall write_byte
mov a,#0bh; thanh ghi B
lcall wr_add
mov a,#06h ;binary ,24h; nap 06h vao B
;mov a,#2h;bcd,24h
lcall write_byte
ret
cho hỏi chương trình trên nạp dữ liệu vào A,B của RTC để khởi động còn thanh ghi C,D ko cần khai báo nên ko nạp
mình nghĩ như vậy có đúng ko? , xin chỉ giáo giúp
muốn truy suất dữ liệu ngày thàng năm giờ phút giây chỉ cần khai báo cho thanh ghi A,B như vậy thôi hả?
mình chỉ trích một chút trong ctrinh thui, nhưng xem sẽ hiểu mong Pro chæ giuùp duøm , thank alot
Comment
-
còn vấn đề chỉnh giờ thì sao nhỉ
có phải khởi tạo các giá trị cho phép ngắt, chờ chân ngắt ngoài sẻ nhảy đến chương trình chỉnh giờ, sau đó chỉnh xong quay lại như thế có đúng ko?
nhưng vấn đề là mình ko biết làm cách nào mà mình nhấn tăng Giờ or phút, rùi sao đó quay lại cttinh2 chính mà nó vẫn nhớ giờ mình đã chỉnh?
Comment
-
Khi các bạn làm việc với DS12887 thì lưu ý 2bit này
1.The Update In Progress (UIP) bit trong thanh ghi A
2.The Daylight Savings Enable (DSE) bit trong thanh ghi B
- Cần phải kiểm tra bit UIP trước khi cập nhật lại ngày/giờ cho DS12887, nếu không có thể có rủi ro sảy ra: các rủi ro có thể sảy ra là không cập nhật đúng giờ chúng ta yêu cầu, có thể hiển thị giờ >24 ví dụ: từ 25 giờ đến 255 giờ mới quay 0 giờ như bình thường, tương tự với phút, giây, ngày, tháng, ...
- Nếu bạn ở Bắc Mỹ hoặc viết chương trình để sử dụng ở Bắc Mỹ thì hãy bật bit DSE này lên, còn ngược lại hãy tắt nó đi, nếu không một ngày đẹp trời nào đó bạn thấy mạch của mình chạy nhanh 1 giờ hoặc trễ một giờ mà không biết lý do tại sao ??? Nếu dùng DS12887 làm Alarm giờ hẹn đi chơi với người yêu mà trễ 1 giờ thì hỏng bét rồi, hihi. Tuy nó đơn giản thế nhưng thỉnh thoảng các bảng Quang báo lớn tại TP.HCM và HN ở các ngõ ra vào TP vẫn có sai sót này. mình đã chứng kiến rồi. Chúc các bạn vui vẻ.
Comment
-
Ct real time clock mình viết ko cần dùng đến 1 timer nào hay 1 ngắt nào cả nhưng vẫn đầy đủ chức năng xem giờ, phút, giây, ngày, tháng, năm, chỉnh giờ, chỉnh giờ hẹn. Việc dò các phím bấm ko cần phải dùng đến ngắt mà hãy dùng pp thăm dò (dùng các lệnh JNB nut,rel chèn vào ct Main). Khi chỉnh thì tăng các giá trị xong rùi hãy thiết lập thêm 1 nút có chức năng cập nhật. Chỉnh xong, bấm nút cập nhật thì các giá trị ta chỉnh sẽ được ghi vào thanh ghi trong RTC.Nguyên văn bởi TrucQuanTu Xem bài viếtcòn vấn đề chỉnh giờ thì sao nhỉ
có phải khởi tạo các giá trị cho phép ngắt, chờ chân ngắt ngoài sẻ nhảy đến chương trình chỉnh giờ, sau đó chỉnh xong quay lại như thế có đúng ko?
nhưng vấn đề là mình ko biết làm cách nào mà mình nhấn tăng Giờ or phút, rùi sao đó quay lại cttinh2 chính mà nó vẫn nhớ giờ mình đã chỉnh?
CT Main của ta thực chất chỉ có vài dòng trong đó có các lệnh chính như Đọc gt từ RTC, hiển thị led, dò các nút, Sjmp Main.
Comment
-
Trong RTC 12C887 ko có chân nào dùng cho việc chỉnh giờ cả bạn à. Việc chỉnh giờ ta phải dùng phần mềm bằng cách lập trình cho VXL. Khi ta bấm các nút để chỉnh giờ, các giá trị giờ phút sẽ tăng dần, tới giá trị nào ta cần thì ta sẽ làm thêm 1 nút nữa, nút này có tác dụng là ghi toàn bộ giá trị ta vừa chỉnh vào các thanh ghi giờ phút trong RTC (bằng mấy cái lệnh Movx ấy). Cụ thể hơn thì mình gửi cho bạn sơ đồ, ct của đồng hồ mình làm. Dùng 89V51RB2 + DS12C887, chức năng: xem giờ, phút, giây, ngày, tháng, năm, chỉnh giờ, hẹn giờ báo thức (loa nối với p1.7, tới giờ hẹn thì loa sẽ kêu trong 15s, giá trị này tùy chỉnh được). CT này mình ko dùng 1 ngắt hay 1 timer nào của 89V51 cả nên rất đơn giản, dễ hiểu.Nguyên văn bởi TrucQuanTu Xem bài viếtbạn có thể nói rõ hơn chân nào có chức năng chỉnh giờ trong RTC dc ko? cách khai báo làm sao? thank bạn rất nhiều
Link Down RTC_12C887.rar
Comment
-
REG_CAPNHAT: ;CHUYEN 2GT GIOCHINH VA PHUTCHINH - > BCD NENNguyên văn bởi vodangks Xem bài viếtTrong RTC 12C887 ko có chân nào dùng cho việc chỉnh giờ cả bạn à. Việc chỉnh giờ ta phải dùng phần mềm bằng cách lập trình cho VXL. Khi ta bấm các nút để chỉnh giờ, các giá trị giờ phút sẽ tăng dần, tới giá trị nào ta cần thì ta sẽ làm thêm 1 nút nữa, nút này có tác dụng là ghi toàn bộ giá trị ta vừa chỉnh vào các thanh ghi giờ phút trong RTC (bằng mấy cái lệnh Movx ấy). Cụ thể hơn thì mình gửi cho bạn sơ đồ, ct của đồng hồ mình làm. Dùng 89V51RB2 + DS12C887, chức năng: xem giờ, phút, giây, ngày, tháng, năm, chỉnh giờ, hẹn giờ báo thức (loa nối với p1.7, tới giờ hẹn thì loa sẽ kêu trong 15s, giá trị này tùy chỉnh được). CT này mình ko dùng 1 ngắt hay 1 timer nào của 89V51 cả nên rất đơn giản, dễ hiểu.
Link Down RTC_12C887.rar
PUSH ACC
PUSH 00H
MOV A,CHPHUT_CHINH ;A = 0000 CHPHUT
SWAP A ;A = CHPHUT 0000
MOV R0,#DVPHUT_CHINH
XCHD A,@R0 ;A = CHPHUT DVPHUT
MOV 56H,A ;(56H) = CHPHUT DVPHUT
MOV A,CHGIO_CHINH
SWAP A
MOV R0,#DVGIO_CHINH
XCHD A,@R0
MOV 57H,A
POP 00H
POP ACC
RET
cho mình hỏi trườc khi cập nhật thì cần gì phải lưu acc và 00h vào stack point? nó có tác dụng gì? nói chung mình cũng hiểu sơ sơ nhưng còn vài điềulấn cấn, cam on ban
Comment
-
Phải lưu lại vì thanh ghi ACC và thanh ghi R0 là những thanh ghi trung gian của các quá trình tính toán (có những phép toán chỉ sử dụng được trên ACC mà thôi), chính vì nó quan trọng như vậy cho nên ta cần lưu các gt hiện tại của nó, rùi sau đó mới dùng nó cho ct con, hết ct con thì trả lại giá trị đang có của nó, làm như vậy cốt là để tránh xung đột khi các chương trình con cùng dùng thanh ghi ACC, R0. Và khi dùng như vậy thì ta cũng đỡ phải mắc công suy nghĩ về các thanh ghi ACC, R0... trước đó đã dùng cho việc gì mà ta có thể dùng chúng 1 cách dễ dàng mà ko sợ xung đột.Nguyên văn bởi TrucQuanTu Xem bài viếtREG_CAPNHAT: ;CHUYEN 2GT GIOCHINH VA PHUTCHINH - > BCD NEN
PUSH ACC
PUSH 00H
MOV A,CHPHUT_CHINH ;A = 0000 CHPHUT
SWAP A ;A = CHPHUT 0000
MOV R0,#DVPHUT_CHINH
XCHD A,@R0 ;A = CHPHUT DVPHUT
MOV 56H,A ;(56H) = CHPHUT DVPHUT
MOV A,CHGIO_CHINH
SWAP A
MOV R0,#DVGIO_CHINH
XCHD A,@R0
MOV 57H,A
POP 00H
POP ACC
RET
cho mình hỏi trườc khi cập nhật thì cần gì phải lưu acc và 00h vào stack point? nó có tác dụng gì? nói chung mình cũng hiểu sơ sơ nhưng còn vài điềulấn cấn, cam on ban
Lưu ý: ko phải lúc nào cũng cần dùng những lệnh cất giữ thanh ghi như trên, nhưng khi dùng thì ta yên tâm hơn và đảm bảo ct chạy ổn định, nhất là những ct có quá nhiều ct con chằng chịt. Trong ct mình viết bạn thấy mình dùng rất nhiều lệnh trên, đôi chỗ thực sự ko cần thiết nhưng nó sẽ cần thiết khi bạn viết thêm các ct con vào chẳng hạn.Last edited by vodangks; 26-08-2008, 22:53.
Comment
Bài viết mới nhất
Collapse
-
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
Hôm qua, 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 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -
-
bởi kqbn9091Em có mạch AT89s8253 đang cần sửa số serial no của CHIP mà giờ lâu quá rồi không dùng keil nên không biết phải làm sao, trong khi chỉ còn file hex. Mạch nạp thì progris khi viết không sửa được số serial của IC. Rất cần bác nào còn làm về 89...
-
Channel: Vi điều khiển họ 8051
27-11-2025, 11:13 -

Comment