Neung_cmi
member
คะแนน 3
ออฟไลน์
กระทู้: 79
|
|
« เมื่อ: ตุลาคม 13, 2007, 10:31:27 pm » |
|
ตอนนี้ผมลองทำสวิต 6 ช่องแบบ กดปิด กดเปิด ใช้ mcs-51 ถ้าผมจะต่อ sw เข้ากับ P3.7 ถ้ากดค้างประมาณ 4 วินาทีแล้วจะทำให้ p1.7 - p1.2 ปิดหมดจะเขียนอย่างไงครับ
OUT1 BIT P1.7 OUT2 BIT P1.6 OUT3 BIT P1.5 OUT4 BIT P1.4 OUT5 BIT P1.3 OUT6 BIT P1.2 STORBE BIT P1.1 BUZER BIT P1.0 SW1 BIT P3.0 SW2 BIT P3.1 SW3 BIT P3.2 SW4 BIT P3.3 SW5 BIT P3.4 SW6 BIT P3.5
ORG 0000H START: MOV P3,#0FFH MOV P1,#00H SCAN: JNB SW1,RELAY1 JNB SW2,RELAY2 JNB SW3,RELAY3 JNB SW4,RELAY4 JNB SW5,RELAY5 JNB SW6,RELAY6 SJMP SCAN RELAY1: ACALL DELAY_D JB SW1,SCAN ACALL STORBE_SIG ACALL BEEP JNB SW1,$ CPL OUT1 SJMP SCAN RELAY2: ACALL DELAY_D JB SW2,SCAN ACALL STORBE_SIG ACALL BEEP JNB SW2,$ CPL OUT2 SJMP SCAN RELAY3: ACALL DELAY_D JB SW3,SCAN ACALL STORBE_SIG ACALL BEEP JNB SW3,$ CPL OUT3 SJMP SCAN RELAY4: ACALL DELAY_D JB SW4,SCAN ACALL STORBE_SIG ACALL BEEP JNB SW4,$ CPL OUT4 SJMP SCAN RELAY5: ACALL DELAY_D JB SW5,SCAN ACALL STORBE_SIG ACALL BEEP JNB SW5,$ CPL OUT5 SJMP SCAN RELAY6: ACALL DELAY_D JB SW6,SCAN ACALL STORBE_SIG ACALL BEEP JNB SW6,$ CPL OUT6 SJMP SCAN
BEEP: MOV R5,#50H BEEP1: MOV R6,#20H MOV R7,#10H DEC_1: DEC R6 NOP NOP NOP DJNZ R6,DEC_1 MOV R6,#20H CPL BUZER DEC_2: DEC R7 NOP NOP NOP DJNZ R7,DEC_2 MOV R7,#10H CPL BUZER DJNZ R5,BEEP1 RET
STORBE_SIG: SETB STORBE ACALL DELAY CLR STORBE RET DELAY_D: MOV R7,0FFH DJNZ R0,$ RET DELAY: MOV R1,#0FFH DELAY1: MOV R2,#0FFH DJNZ R2,$ DJNZ R1,DELAY1 RET END
|