hix..!!!củ chuối em viết hơi lộn.mấy cái thanh ghi đó em cũng biết rồi nhưng các bác nói cũng không thừa nhiều cái vỡ ra thật.RẤT CÁM ƠN SỰ NHIỆT TÌNH CỦA CÁC BÁC !!!
Thông báo
Collapse
No announcement yet.
Anh em nào có kinh nghiệm về ngắt trong trao đổi cho mọi người cùng học hỏi?
Collapse
X
-
em xét ngon lành con time mà có cần phải xét tmod đâu bác.em nghĩ tmod chỉ khai báo khi sủ dụng xet các chế độ time thôi các bác à.
em có một chương trình thế này các bác xem hộ e với em mô phỏng kelc ngon thế mà khi nạp ra ngoàn nó chạy linh tinh cả em không biết sai chỗ nào nữa;
org 0000h
mov P0,#00h ;LUC DAU CHO CAC CONG =0
mov p1,#00h
MOV P2,#00H
;***************KHAI BAO BIT DAU RA*****************************************
D_CUA BIT P0.0
D_NHA BIT P0.1
D_PHONG_NGU BIT P0.2
D_NGU BIT P0.3
D_BAO_DONG BIT P0.4
D_NHA_WC BIT P0.5
NOI_COM BIT P0.6
D_CAU_THANG BIT P0.7
MO_REM_1 BIT P1.0
DONG_REM_1 BIT P1.1
MO_REM_2 BIT P1.2
DONG_REM_2 BIT P1.3
;********DAU RA CAM BIEN*********************
CB_MO_CUA BIT P2.0
CB_D_NHA BIT P2.1
CB_D_PHONG_NGU BIT P2.2
CB_D_NGU BIT P2.3
CB_CHONG_TROM BIT P2.4
CB_NHA_WC BIT P2.5
CB_DEM_NGAY BIT P2.6
CB_CAU_THANG BIT P2.7
CB_MAT_THU BIT P3.3
;************************************************
main:
XET_CHE_DO_TU_DONG:
;************CHUONG TRINH SANG DEN***************************
JNB CB_DEM_NGAY,CT_BAN_DEM
JB CB_DEM_NGAY,CT_BAN_NGAY
CT_BAN_NGAY:
MOV P0,#00H ;TAT TAT CA CAC DEN
CLR DONG_REM_1 ;KHOA LIEN DONG CHONG QUAY NGUOC
CALL DELAY ;TRE MOT LUC DE DAM BAO DA KHOA CHIEU NGUOC
SETB MO_REM_1 ;MO REM
CALL DELAY ;TIME MO REM
JMP XET_CHE_DO_TU_DONG
CT_BAN_DEM: ;KIEM TRA TAT CA CAC CAM BIEN DE XET CAC DEN
SETB D_CUA ;DEN CUA TU SANG
DEN_NHA:
DJNZ R4,KT6
CALL DELAY1
MOV R0,#7
LAP4: ;BAT
CLR D_CAU_THANG
CALL DELAY2
SETB D_CAU_THANG
CALL DELAY2
DJNZ R0,LAP3
call delay2
KT6: JnB CB_D_NHA,DEN_PHONG_NGU ;TIM TIN HIEU CB_D_NHA
setb D_NHA
MOV R1,#2
jmp KT1
DEN_PHONG_NGU:
DJNZ R1,KT1 ;NEU R0=0 THI TRE MOT 1S 1S+4LAN LAP ~ 5S. NEU RO #0 THI NHAY TOI XET CAM BIEN # LUON MA KHONG DEM NUA
;INC R0
CALL DELAY1
CLR D_NHA
KT1: JnB CB_D_PHONG_NGU,DEN_NGU
SETB D_PHONG_NGU
MOV R2,#1
jmp KT2
DEN_NGU:
DJNZ R2,KT2
CALL DELAY1
CLR D_PHONG_NGU
KT2: JnB CB_D_NGU,DEN_BAO_DONG
SETB D_NGU
MOV R3,#2
JMP KT3
DEN_BAO_DONG:
DJNZ R3,KT3
CALL DELAY1
CLR D_NGU
KT3: JnB CB_CHONG_TROM,DEN_NHA_WC
SETB D_BAO_DONG
MOV R4,#2
jmp KT4
DEN_NHA_WC:
DJNZ R4,KT4
CALL DELAY1
CLR D_BAO_DONG
KT4: JnB CB_NHA_WC,DEN_CAU_THANG
SETB D_NHA_WC
MOV R5,#2
JMP KT5
DEN_CAU_THANG:
DJNZ R5,KT5
MOV R0,#7
CALL DELAY1
CLR D_NHA_WC
KT5: JNB CB_CAU_THANG,D1
LAP3:
MOV R4,#2 ;BAT
CLR D_CAU_THANG
CALL DELAY2
SETB D_CAU_THANG
CALL DELAY2
DJNZ R0,LAP3
call delay2
D1: JMP MAIN
delay2:
GEC:
MOV 20H,#03H
DEL3:
MOV 21H,#25H
DEL2:
MOV 22H,#0FFH
DEL1:
JNB P3.3,GEC ;tao khoang do bit cao
DJNZ 22H,DEL1
DJNZ 21H,DEL2
DJNZ 20H,DEL3
RET
delay:
mov r0,#165
k6: nop
nop
nop
djnz r0,k6
ret
delay1:
MOV R1,#5
MOV R2,#0
MOV R3,#0
LOOO:
DJNZ R3,LOOO
DJNZ R2,LOOO
DJNZ R1,LOOO
RET
longdelay:
mov r1,#70
k7: mov r2,#255
k8: djnz r2,k8
djnz r1,k7
ret
end
chương trình của em là nếu cảm biến phòng này xét thì nó sẽ setb den của phòng này nếu cảm biến phòng này không xét nữa thì nó sẽ clr đèn phòng này trong mấy giây.trong thời gian trễ đó nó sẽ đi làm việc khác là xét các cảm biến khác. ý tưởng của em là cho nó thực hiện vòng lặp và đếm số vòng lặp đó để xét trạng thái các đèn(tắt đèn) như vậy thì trong quá trình xét các vòng lặp đó nó vẫn đi xét được các cảm biến # và thay đổi trạng thái các đền khác.em tét trực tiếp trên kelc ngon rồi (tét theo kiểu kiểm tra từng lệnh thực hiện )thế mà nạp chương trình ra ngoài nó chạy lại không đúng cụ thể là có mỗi DEN_NHA_WC và DEN_BAO_DONG: hoạt động đúng thôi mà em chịu không biết tại sao các cảm biến khác có xét dèn sáng lên rồi nhung không tắt đươc các bác ạ.các bác xem gỡ rối hộ e phát, hay các bác có ý tưởng nào khác về xét trễ một đèn mà trong thời gian trễ đó mình có thể đi làm việc khác không gần như là cho phép vi diều khiển làm 2 việc cùng một lúc đấy.bam đầu em định dùng trễ time nhưng không biết làm thế nào.các bác nào có ý tưởng hay nào giúp em cùng mọi người cùng biết nhé,em nghĩ vấn đề này là rất cần thiết và được nhiều người quan tâm đấy.vì trên thực tế vi điều khiển chỉ thực hiện dc một viêc trong cùng một time nhất định thôi...Last edited by toan258; 17-10-2011, 19:16.đùa chứ tớ hơi ngu...thông cảm nha..heee...
Comment
-
các bác cho em hỏi chút nữa là trước khi xảy ra ngắt thì stack se dc lưu địa chỉ hiện tại và nạp dịa chỉ vecto ngắt vào để khi thực hiện xong ngắt nó có thể trở về đoạn chương trình mà nó đang thực hiện dở trước đó để thực hiện tiếp. nhưng bây giờ em không muốn nó trở về đoạn chương trình đó nữa mà sẽ nhảy đến một địa chỉ đặt nào đó thì phải làm thế nào.mong các bác giúp đỡ..!!!đùa chứ tớ hơi ngu...thông cảm nha..heee...
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
12-12-2025, 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 -

Comment