Mình đang học lập trình ASM, làm chương trình báo chuông. MÌnh dùng ds12887+89s52 hiện thị led 7 đoạn.Mình đọc hết trong diễn đàn chỉ thấy làm để hiện thị giờ phút giây, chưa thấy ai lập trình báo chuông (dùng ds12887). Ai tưng làm hay có kinh nghiệm chỉ giúp mình với. Hiện thị giờ, phút, giây thì được rồi nhưng làm cách nào để có thể cài đặt số lần báo giờ, đổ chuông theo ý mình cài đặt.
Thông báo
Collapse
No announcement yet.
Ai có kinh nghiệm giúp với
Collapse
X
-
Nguyên văn bởi rebelhp Xem bài viếtMình đang học lập trình ASM, làm chương trình báo chuông. MÌnh dùng ds12887+89s52 hiện thị led 7 đoạn.Mình đọc hết trong diễn đàn chỉ thấy làm để hiện thị giờ phút giây, chưa thấy ai lập trình báo chuông (dùng ds12887). Ai tưng làm hay có kinh nghiệm chỉ giúp mình với. Hiện thị giờ, phút, giây thì được rồi nhưng làm cách nào để có thể cài đặt số lần báo giờ, đổ chuông theo ý mình cài đặt.
-
Nguyên văn bởi rebelhp Xem bài viếtnói vậy ai chả nói được. Ko biết thì mình mới hỏi chứ? bạn có thể nói rõ hơn ko? nếu có tài liệu cụ thể thì hay. muốn đặt bao nhiều lần báo giờ trong ngày chằng hạn?
Đây là trích đoạn phần so sánh giúp bạn dễ hình dung:
SOSANHHEN:
MOV R0,#REG_PHUTHEN
MOVX A,@R0
MOV 3AH,A
MOV R0,#REG_GIOHEN
MOVX A,@R0
MOV 3BH,A
MOV A,05H
CJNE A,3AH,THOATSOSANH
MOV A,06H
CJNE A,3BH,THOATSOSANH
MOV A,R4
IF A < #16H THEN LJMP KICHLOA ;THOI GIAN LOA KEU (TINH BANG GIAY)
SETB LOA
RET
KICHLOA:
CLR LOA
RET
THOATSOSANH:
SETB LOA
RET
Comment
-
thanks anh rất nhiều. đọc hướng dẫn của anh cũng sáng ra được một ít. ASM lại có cả lệnh IF...THEN ah?Em có một ví dụ lập trình xong về giờ, phút, giây như sau. anh có thể cho hướng đi cụ thể về phần hẹn giờ ko? và mình hẹn nhiều lần để nó tự đổ chuông thì làm thế nào( như chuông báo tiết học
;##########P3 điều khiển các đoạn, P1 dk các led, P0 nối vơi AD RTC,
; ##########P2.3 chỉnh thời gian, P2.2 TANG_H, P2.1 TANG PHUT,P2.0 UPDATE
AD EQU P0
CS BIT P2.7
AS BIT P2.6
RW BIT P2.5
DSS BIT P2.4
PHUT_CHINH EQU 42H
GIO_CHINH EQU 43H
THU_CHINH EQU 44H
MAIN: SETB CS
MOV 30H,#0; o nho giây
MOV 31H,#0; chuc giây
MOV 32H,#0;phút
MOV 33H,#0;chuc phút
MOV 34H,#0; giờ
MOV 35H,#0; chục giờ
MOV 36H,#0;lưu ô nhớ giây
MOV 37H,#0;lưu ô nhớ phút
MOV 38H,#0; lưu o nhớ giờ
MOV 39H,#0; luu o nhớ thứ
MOV 40H,#0; thứ
MOV 41H,#0; CHUCTHU
MOV 42H,#0; giá trị phút sau khi đã chỉnh xong
MOV 43H,#0; giá trị giờ sau khi đã chỉnh xong
AGAIN: LCALL DOC
LCALL BIN_BCD
LCALL OUTLED
JNB P2.3,TIEPSUC
SJMP AGAIN
TIEPSUC: LJMP CHINH_TG
DOC: MOV A,#00H
LCALL WRITE_ADD
MOV A,#0FFH
MOV AD,A
LCALL READ
MOV 36H,A
MOV A,#02H
LCALL WRITE_ADD
MOV A,#0FFH
MOV AD,A
LCALL READ
MOV 37H,A
MOV A,#04H
LCALL WRITE_ADD
MOV A,#0FFH
MOV AD,A
LCALL READ
MOV 38H,A
MOV A,#06H
LCALL WRITE_ADD
MOV A,#0FFH
MOV AD,A
LCALL READ
MOV 39H,A
RET
WRITE_ADD: SETB CS
MOV AD,#0FFH
CLR RW
CLR DSS
CLR AS
NOP
SETB DSS
SETB RW
NOP
SETB AS
CLR CS
MOV AD,A
CLR AS
RET
READ: CLR DSS
NOP
MOV A,AD
SETB DSS
SETB CS
SETB AS
RET
BIN_BCD: MOV A,36H
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,37H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
MOV A,38H
MOV B,#10
DIV AB
MOV 34H,B
MOV 35H,A
MOV A,39H
MOV B,#10
DIV AB
MOV 40H,B
MOV 41H,A
RET
OUTLED: MOV A,40H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.6
LCALL DELAY500US
SETB P1.6
MOV A,41H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.7
LCALL DELAY500US
SETB P1.7
MOV A,30H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.0
LCALL DELAY500US
SETB P1.0
MOV A,31H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.1
LCALL DELAY500US
SETB P1.1
MOV A,32H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.2
LCALL DELAY500US
SETB P1.2
MOV A,33H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.3
LCALL DELAY500US
SETB P1.3
MOV A,34H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.4
LCALL DELAY500US
SETB P1.4
MOV A,35H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.5
LCALL DELAY500US
SETB P1.5
RET
DELAY500US: MOV R0,#250
DJNZ R1,$
RET
;##################CHINH_THOI_GIAN################ ########
CHINH_TG:
LCALL DELAYNUT
JB P2.3,TIEPSUC4
LCALL LED_CHINH; HIEN THI RA LED GIA TRI HIEN TAI
CHINH_GIO1: LCALL DISPLAY
JNB P2.2,TIEPSUC1
JNB P2.1,TIEPSUC2
JNB P2.0,TIEPSUC3
JNB P2.3,TIEPSUC5
SJMP CHINH_GIO1
TIEPSUC1: LJMP TANG_GIO
TIEPSUC2: LJMP TANG_PHUT
TIEPSUC3: LJMP TANG_THU
TIEPSUC4: LJMP AGAIN
TIEPSUC5: LCALL DELAYNUT
JB P2.3 ,CHINH_GIO1
LJMP UPDATE
LED_CHINH:
DV_P EQU 32H; LUU GIA TRI DON VI PHUT VAO DV_P(32H)
CH_P EQU 33H; LUU GIA TRI CHUC PHUT VO CH_P(33H)
DV_H EQU 34H; LUU DON VI GIO VAO DV_H(34H)
CH_H EQU 35H; LUU CHUC GIO VAO CH_H(35H)
DV_THU EQU 40H
DISPLAY: MOV A,DV_P
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.2
LCALL DELAY500US
SETB P1.2
MOV A,CH_P
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.3
LCALL DELAY500US
SETB P1.3
MOV A,DV_H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.4
LCALL DELAY500US
SETB P1.4
MOV A,CH_H
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CLR P1.5
LCALL DELAY500US
SETB P1.5
mov a,DV_thu
mov dptr,#maled
movc a,@a+dptr
mov p3,a
clr p1.6
lcall delay500us
setb p1.6
RET
TANG_GIO:
LCALL DELAYNUT ;CHONG NHIEU NUT
JB P2.2,THOATCHINH
MOV A,CH_H
CJNE A,#02,TANG_GIO1
MOV A,DV_H
CJNE A,#03,TANG_GIO2
MOV CH_H,#00
MOV DV_H,#00
LJMP CHINH_GIO1
TANG_GIO1: MOV A,DV_H
CJNE A,#09,TANG_GIO2
INC CH_H
MOV DV_H,#00
LJMP CHINH_GIO1
TANG_GIO2:
INC DV_H
LJMP CHINH_GIO1
;TAÊNG PHUÙT NAØ-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TANG_PHUT: LCALL DELAYNUT
JB P2.1,THOATCHINH
INC DV_P
MOV A,DV_P
CJNE A,#10,THOATCHINH
MOV DV_P,#00
INC CH_P
MOV A,CH_P
CJNE A,#06,THOATCHINH
MOV DV_P,#00
MOV CH_P,#00
TANG_THU: LCALL DELAYNUT
JB P2.0,THOATCHINH
INC DV_THU
MOV A,DV_THU
CJNE A,#08,THOATCHINH
MOV DV_THU,#00
THOATCHINH: LJMP CHINH_GIO1
UPDATE:
ACALL RE_UPDATE
MOV A,#00H
LCALL WRITE_ADD
MOV A,#00
LCALL WRITE_BYTE
NOP
NOP
MOV A,#02H
LCALL WRITE_ADD
MOV A,42H
LCALL WRITE_BYTE
NOP
NOP
MOV A,#04H
LCALL WRITE_ADD
MOV A,43H
LCALL WRITE_BYTE
MOV A,#06H
LCALL WRITE_ADD
MOV A,39h
LCALL WRITE_BYTE
LJMP AGAIN
RE_UPDATE: ;CHUYEN 2GT GIOCHINH VA PHUTCHINH - > BINARY
MOV A,CH_P
MOV B,#10
MUL AB
ADD A,DV_P
MOV 42H,A
MOV A, CH_H
MOV B,#10
MUL AB
ADD A,DV_H
MOV 43H,A
mov 39h,DV_THU
RET
WRITE_BYTE:
CLR RW
NOP
MOV AD,A
SETB RW
NOP
SETB CS
SETB AS
ret
DELAYNUT: MOV R7,#255
LAP: MOV R6,#200
DJNZ R6,$
DJNZ R7,LAP
RET
MALED: DB 0C0H
DB 0F9H
DB 0A4H
DB 0b0H
DB 99H
DB 92H
DB 82H
DB 0f8H
DB 80H
DB 90H
END
Comment
-
Muốn xài If...then trong ASM thì bạn phải xài trình biên dịch prog-studio v5.28. Nó hỗ trợ cho bạn lệnh if...then, nhờ lệnh này mà bạn viết ct sẽ gọn nhẹ và dễ dàng hơn nhiều. Muốn hẹn giờ theo nhiều lần thì phải so sánh các gt giờ hiện tại với các gt hẹn đó thôi bạn à.
Comment
-
Mình cũng đang làm về bộ báo giờ.Khi nhận đề tài ko đọc kĩ cứ tưởng chỉ làm mạch báo chuông thôi ai ngờ khi đọc lại là làm về mạch báo chuông trường học. Phát sinh ra ở đây là phải làm nhiều lần hẹn chuông, rồi đổ chuông trong ngày. Ai từng làm về vấn để này có thể chỉ giúp ko? Mình dùng vdk + RTC
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về bơm màng bldcbởi vi van phamPhải xem cơ cấu bơm, chứ xem cơ cấu rotor, thì chỉ làm thầy bói xem voi.
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 08:19 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11vg, cám ơn bác...........
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 14:37 -
-
bởi khoine9899
Em chào các anh và mọi người.
Hiện em đang có 1 con bơm màng trong thiết bị y tế đang gặp tình trạng yếu dần hoặc ngừng hoạt động sau thời gian sử dụng
Sau khi tìm hiểu về thông tin của bơm trên mạng thì em được biết...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 11:22 -
-
Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửabởi bqviet
-
Channel: Điện tử công suất
27-11-2024, 20:26 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
27-11-2024, 11:37 -
-
bởi pia2k1Cùng câu hỏi và cần được giải đáp thêm ạ...
-
Channel: Hướng dẫn sử dụng diễn đàn
27-11-2024, 11:28 -
-
Trả lời cho Công thức điện tửbởi mèomướpDạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
-
Channel: Tâm tình dân kỹ thuật
26-11-2024, 21:21 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 20:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11Ok , thanks bác đã chỉ...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 15:06 -
-
bởi nguyendinhvanSau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !
Chập thì thay. Cháy thì tháo
Làm thì láo. Báo thì hay
May thì khoe. Rủi thì bỏ
Thành tích nhỏ. Báo thành to
Làm cho có. Báo chi li
Sai cả li. Báo...-
Channel: Tâm tình dân kỹ thuật
26-11-2024, 00:35 -
Comment