วันอาทิตย์ที่ 14 สิงหาคม พ.ศ. 2554

พอร์ทอินพุท/เอาท์พุท

OUTPUT PORT USING 74LS374/FONT>

- OUTPUT 1 # 87
- OUTPUT 2 # 86
- OUTPUT 3 # 85
- OUTPUT 4 # 84


การใช้ 74LS374 ขับ LED


โปรแกรมสำหรับขับ LED ให้ติดเป็นจังหวะ
;โปรแกรมต่อไปนี้ใช้ ลอจิก 1 ขับ LED
;ให้ติด O O O O O O O O O O O O O O O O (O ติด O ดับ
;แล้วให้การติดเลื่อนไปทีละดวง
2000 3E88 LOOP LD A,88H ;เก็บรูปแบบของไฟไว้ใน A
2002 D387 OUT (87),A ;ส่งค่าใน A ไปออกเอาท์พุท #87
2004 D386 OUT (86(,A ;ส่งค่าใน A ไปออกเอาท์พุท #86
2006 CD0021 CALL DELAY ;เรียกใช้โปรแกรมหน่วงเวลา
2009 0F RRCA ;หมุนค่าตัวเลขใน A ไปทางขวา
200A 18F6 JR LOOP :วนกลับไปทำซ้ำ
;โปรแกรมย่อยสำหรับหน่วงเวลา
2100 F5 PUSH AF :ฝากค่า AF ไว้ใน STACK
2101 21 00 80 REPEAT LD HL,8000H :กำหนดจำนวนของการวน
2104 2B DEC HL :ลดค่า HL ลง 1
2105 7C LD A,H :นำค่า H มาเก็บใน L
2106 B5 OR L :OR ค่าใน A กับค่าใน A
2107 20 FB JR NZ,REPEAT :ถ้าผลลัพท์ไม่เป็น 0 กลับไปลดค่า
2109 F1 POP AF :เรียกค่า AF ตัวเดิมกลับมา
210A C9 RET :กลับไปถัดจากที่มา
หมายเหตุ

หมายเลขช่วงของเอาท์พุทต้องเปลี่ยนแปลงตามพอร์ทเอาท์พุททีทใช้ โปรแกรมที่เขียนนี้ใช้ ไมโครคอมพิวเตอร์แผงเดียว ET 3.5 ของบริษัท ETTEAM จำกัด หากใช้ไมโครคอมพิวเตอร์แผงเดียวรุ่นอื่น จะเลื่อนตำแหน่งให้อยู่ใน แอดเดรสของ RAM

INPUT และ OUTPUT PORT

หมายเลข PORT

INPUT # 80H
OUTPUT 1 # 85H
OUTPUT 2 # 86H


PORT สำหรับขับ STEP MOTOR

ใช้ 74 LS 374 เป็นพอร์ทเอาท์พุท โดยต่อกับ ULN 2003 ขับสเต็ปมอเตอร์ชนิดใช้สายคอมมอน เส้นเดียว (สเต็ปมอเตอร์ใช้สาย 5 เส้น)


โปรแกรมที่เขียนนี้ใช้ไมโครคอมพิวเตอร์แผงเดียว ET 3.5 ของบริษัท ETTEAM จำกัด หากใช้ไมโครคอมพิวเตอร์แผงเดียวรุ่นอื่น จะเปลี่ยน แอดเดรสของ RAM
;โปรแกรมขับสเต็ปมอเตอร์
;หมายเลข OUTPUT PORT เรียกใช้ PORT ใดก็ได้ตามที่ออกแบบไว้
;ใช้สัญญาณ IORQ ไป enable port
2800 21 00 29 MAIN LD HL,F900H ;กำหนดข้อมูลไว้ที่ 2900H
2803 06 00 LD B,00H ;นับจำนวน สเต็ป = 4
2805 7E NEXT LD A,(HL) ;โหลดข้อมูลในการหมุนมาใน A
2806 D3 FF OUT (FF),A ;ส่งข้อมูลไปขับมอเตอร์
2808 CD 29 50 CALL DELAY ;หน่วงเวลา
280B 23 INC HL ;เลื่อนตำแหน่งตัวชี้ข้อมูลไป 1
280C 05 DEC B ;ลดตัวนับลง 1
280D 20 F6 JR NZ NEXT ;กลับไปหมุนสเต้ปต่อไปถ้าไม่ครบรอบ;4 สเต็ป
280F 18 EF JR MAIN ;กลับไปตั้งต้นใหม่
;โปรแกรมหน่วงเวลา
2950 16 80 DELAY LD D.80H ;กำหนด D = 80H
2952 1E 80 LOOP2 LD E,80H ;กำหนด E = 80H
2954 1D LOOP1 DEC E ;ลดค่า E ลง 1
2955 20 ED JR NZ LOOP1 ;ถ้า E ไม่เท่ากับ 0 กลับไปลด E
2957 15 DEC D ;ลดค่า D ลง 1
2958 20 F8 JR NZ.LOOP2 ;ถ้า D ไม่เท่ากับ 0 กลับไปลด D
295A C9 RET ;เสร็จแล้วกลับไป MAIN PROGRAM
ข้อมูลเดินหน้า
2900 01 db 01
2901 02 db 02
2902 04 db 04
2903 08 db08
ข้อมูลถอยหลัง
2900 88 db 88
2901 84 db 84
2902 82 db 82
2903 81 db 81

แผงแสดงแบบ DOT MATRIX
การใช้ 74LS374 ขับทรานซิสเตอร์ชนิด PNP ให้ ON

มื่อเอาท์พุ่ Q เป้นลอจิก 1 ทรานซิสเตอร์ จะ OFF ไม่จ่ายกระแสไฟฟ้า แต่เมื่อใดก็ตามที่เอาท์พุท Q เป็น 0 จะทำให้กระแสเบสไหลได้ ทรานซิสเตอร์จะ ON จ่ายกระแสไฟฟ้าออกมาทางขา คอลแลคเตอร์
การจุด LED ใช้หลักการที่ว่า สายเส้นหนึ่งปล่อยไฟฟ้ามาให้ขา Anode และสายอีกเส้นหนึ่งคือ ขา Cathode ส่งลอจิก หรือ Ground ด้วยวิธีการเช่นนี้ทำให้เราสามารถควบคุม LED ให้ติดตามตำแหน่งที่ต้องการได้


แผง LED แบบ 8*8

;โปรแกรมกำหนด PATTERN ตัวอักษรและสร้างตัวอักษรเลื่อน
;MAIN PROGRAM
1000 21 00 17 START LD HL,1700H ;set start data area
1003 10 16 NPT LD D,10H ;set counter for scan
1005 E5 AGA PUSH HL
1006 CD15 10 CALL DSP
1009 E1 POP HL
100A 15 DEC D ;decretment counter
100B 20 F8 JR NZ,AGA ;ถ้า counter ไม่เท่ากับ 0 กลับไป AgA
100D 23 INC HL
100E 7D LD A,L
100F FE 69 CP 69H ;ข้อมูลหมดหรือยัง
1011 20 F0 JR NZ,NPT ;ถ้ายังไม่หมดกับไป NPT
1013 18 EB JR START ;ถ้าหมดแล้วไป start
โปรแกรมย่อยจากจอภาพ
1015 06 08 DSP LD B,08H ;ตั้งจำนวนรอบการสแกน
1017 0E FE LD C,0FEH ;ตั้งข้อมูลสำหรับสแกน
1019 79 LOOP LD A,C
101A D3 80 OUT (A0),A
101C 7E LD A,(HL)
101D 2F CPL ;ทำคอมพลีเมนท์ค่าใน A
101E D3 80 OUT (80),A
1020 CD 29 10 CALL DELALY
1023 CB 01 RLC C
1025 23 INC HL
1026 10 F1 DJNZ LOOP
1028 C9 RET
;โปรแกรมหน่วงเวลา
1029 E5 PUSH HL
102A 21 FF 00 LD HL 00FFH
102D 2B REPEAT DEC HL
102E 7C LD A,H
102F B5 OR L
1030 20FB JR NZ.,PEPEAT
1032 E1 POP HL
1033 C9 RET

;บริเวณข้อมูล
1700 01 00 00 7F 49 49 49 49 00 00 7F 01 01 01 01 00
1710 00 7F 49 49 49 49 00 00 3E 41 41 41 22 00 00 40
1720 40 7F 40 40 00 00 7F 48 48 48 37 00 00 3E 41 41
1730 41 3E 00 00 7F 10 08 00 7F 00 00 00 41 7F 41 00
1740 00 00 3E 41 41 41 22 00 00 32 49 49 49 26 00 00
1750 32 49 49 49 26 00 00 01 00 00 00 00 00 00 00 00
1760 00 00 00 00 00 00 00 00 00

ตัวอย่างโปรแกรมในที่นี้เขียนโดยใช้ ไมโครคอมพิวเตอร์ชิพเดียว ET 2.0 ของบริษัท ETTEAM จำกัด แอดเดรสของโปรแกรมจะต้องปรับ หากใช้แผงไมโครคอมพิวเตอร์เดี่ยวที่แตกต่างจากนี้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น