Thaimicrotron.com : Home | ||||||||||||||
EXAM-2 การใช้งาน
INPUT PORT |
||||||||||||||
การใช้งานไมโครคอนโทรลเลอร์ให้เป็นพอร์ตอินพุต (INPUT PORT) | ||||||||||||||
- การกำหนดให้บิตใดๆของพอร์ต ไมโครคอนโทรลเลอร์ MCS-51 เป็นพอร์ตอินพุต เพื่อรับค่าของข้อมูล จะต้องเขียนข้อมูล ให้กับพอร์ต หรือบิตนั้นๆ เป็นสถานะโลจิก "1" ก่อน แล้วจึงให้อุปกรณ์ภายนอก ทำให้โลจิกนั้นเป็น "0' จึงจะสามารถอ่านข้อมูลที่บิตนั้นเข้ามาได้ | ||||||||||||||
ตัวอย่างที่ 2 การใช้งานพอร์ตแบบอินพุต |
||||||||||||||
ผลการทดลอง | ||||||||||||||
|
||||||||||||||
วิธีการทดลอง | ||||||||||||||
1). ตรวจสอบตำแหน่ง DIPSWITCH ให้อยู่ที่ต่ำแหน่ง OFF ทั้งหมด (เลื่อนไปทางซ้าย) | ||||||||||||||
ตำแหน่งของสวิทซ์และจุดต่อสาย บนบอร์ดทดลอง |
||||||||||||||
2). ต่อสายจาก p3.2,p3.3 ไปยังสวิทซ์ SW1,SW2 ดังรูป | ||||||||||||||
3). นำโปรแกรมจากตัวอย่างไป compile แล้วนำ HEX ไฟล์ที่ได้มาโปรแกรมลงชิพ ด้วยเครื่องโปรแกรม JDT-2008 | ||||||||||||||
EXAM2 | ||||||||||||||
;EXAM2.ASM ;USE p3.2,p3.3 to Input Port and Control toggle LED1,LED2 on/off ORG 0000H START: MOV P1,#0FFH ;Clear Port P1 All LED OFF ;*** SET PORT = "1" before use to Input *** SETB p3.2 ;SET P3.2 TO Input SETB p3.3 ;SET P3.3 TO Input ;*** Check Key Press *** LOOP: JNB p3.2,WAIT1 ;if p3.2 = "0" Debounce Check L1: JNB p3.2,KEY1P ;If p3.2 still "0' Jump to KEY1P JNB p3.3,WAIT2 ;if p3.3 = "0" Debounce Check L2: JNB p3.3,KEY2P ;If p3.3 still "0' Jump to KEY2P AJMP LOOP ;Scan Key Loop ;*** KEY1 PRESS *** KEY1P: JNB p3.2,KEY1P ;WAIT Release Key JB p1.0,K1SET ;if p3.2=0 SETB P1.0 ;LED1 Off LCALL DISDLY AJMP LOOP K1SET: CLR P1.0 ;LED1 On LCALL DISDLY AJMP LOOP ;*** KEY2 PRESS *** KEY2P: JNB p3.3,KEY2P ;WAIT Release Key JB p1.1,K2SET ;if p3.3=0 SETB P1.1 ;LED2 Off LCALL DISDLY AJMP LOOP K2SET: CLR P1.1 ;LED2 On LCALL DISDLY AJMP LOOP ;*** Wait for test Debounce *** WAIT1: MOV R2,#100 LCALL DMSEC LJMP L1; WAIT2: MOV R2,#100 LCALL DMSEC LJMP L2; ;*** LED Display Delay *** DISDLY: MOV R2,#2 LCALL DMSEC RET ; ********** DMSEC SUB ********** 03 ; DELAY 1/1000 SECOND ; IN = R2 ; REG = R2,R3 DMSEC: MOV R3,#230 ;1 MSEC LOOP DMSEC1: NOP NOP DJNZ R3,DMSEC1 DJNZ R2,DMSEC RET END |
||||||||||||||