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 !!!
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, 18: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 mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 16:34 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
07-08-2026, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
07-08-2026, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
06-08-2026, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...-
Channel: Tâm tình dân kỹ thuật
-
-
Trả lời cho Amply bị rò DC 22 voltbởi trung30000Theo sự hướng dẫn của bác, sau khi em kiểm tra tầng Vi sai sử dụng cặp c1815, tiếp đến là 1 con a1013, và cặp thúc sử dụng mje304g và mje305g, em đã tiến hành thay cặp Vi sai c1815 sau đó mở máy lên đo ngõ công suất DC 0,2V hai giây sau máy đo...-
Channel: Điện thanh
05-08-2026, 20:09 -

Comment