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
-
bởi nguyendinhvanỞ đây thì cũng chỉ có mấy cái máy tập gym là cùng, vào Nhà máy thì không đủ tuổi, mà bài thực hành thì không đủ cơm trưa.
Mà mấy cái máy gym thì cần giải pháp đồng bộ tốt hơn là biện pháp chắp vá....-
Channel: Đặt hàng
Hôm qua, 23:12 -
-
Trả lời cho Mạch tự động bật nguồnbởi nguyendinhvanMấy cái hệ thống Minh Thông đó là tôi tránh xa.
Vì một ngày mình bấm nút La- bô mấy lần, bấm vào những giờ nào nó cũng lưu vào datalog.
Dễ lộ bảo mật.
...-
Channel: Điện tử gia dụng
Hôm qua, 23:00 -
-
Trả lời cho Mạch tự động bật nguồnbởi vi van phamĐinh Vặn và Nhà Thùng ngồi uống bia thì cúp điện. Đinh Vặn vào trạng thái stanby, cầm ly bia mà không uống được. Đến khi có điện, cảm biến của Đinh Vặn phát huy chức năng, cầm chai bia tu 1 hơi.
Nhà Thùng vào trạng thái stanby,...-
Channel: Điện tử gia dụng
Hôm qua, 07:47 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Lão hôm nay uốn mấy lọ? Làm tôi đọc bài của lão toát cả mồ hôi, mãi khi nhìn sơ đồ mới hiểu....
Aiza... Lão lại đi về thời 0.4 rồi! Giờ cảm biến và trợ lý và thiết bị có đầy...
Tôi về đến Pháp Vân, gọi...-
Channel: Điện tử gia dụng
25-12-2024, 23:30 -
-
bởi nguyendinhvanĐa số các đồ điện là cứ có điện là sẽ hoạt động.
Nhưng ngày nay, nhiều thiết bị điện có điều khiển không tự hoạt động khi có điện nguồn. Máy chỉ ở chế độ stanby, tới khi người sử dụng nhấn phím power.
Ví dụ...-
Channel: Điện tử gia dụng
25-12-2024, 21:02 -
-
bởi nhathung1101Muốn đặt gì thì cũng phải có thông tin cơ bản. Việc nhỏ thế này mà phải dấu giếm thì người lớn không thèm làm đâu.
Cho bạn 3 ngày, không là sẽ xóa.-
Channel: Đặt hàng
22-12-2024, 22:02 -
-
Trả lời cho Hỏi cách điều chế xungbởi nhathung1101Schmit Trigger là chuẩn với điều kiện rise > 0,8V.
Bí thì dùng vi với tích gì đó, miễn đừng nói phân kẻo chó ở đây lại sủa nhặng.-
Channel: Kỹ thuật điện tử tương tự
22-12-2024, 21:57 -
-
bởi trungautMình cần đặt hàng thiết kế chế tạo mạch nghịch lưu 3 pha để cài đặt các thuật toán điều khiển động cơ FOC, DTC, ... Xin liên hệ trungaut@gmail.com để bàn chi tiết. Xin cảm ơn diễn dàn đăng tin!
-
Channel: Đặt hàng
22-12-2024, 14:27 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
21-12-2024, 08:56 -
Comment