วารสารปี-40-ฉบับที่-4-resize
การแสดงผลข้อมูลผ่านช่องทางออกแบบขนานของแผงวงจรไมโครคอนโทรลเลอร์เพื่อการเรียนรู้ 140 The Journal of the Royal Society of Thailand Volume 40 Number 4 Oct-Dec 2015 ซอฟต์แวร์ที่ใช้ควบคุมวงจรในรูปที่ ๘ เพื่อให้ผลัดกันแสดงผลตัวเลข 0-9 และตัวหนังสือ A-F นั้น มีแสดงไว้ในรูปที่ ๙ ในวงจรตามรูปที่ ๘ เราสามารถประหยัดวงจรรวม 74LS240 ตัวบนได้ ๑ ตัว โดยการต่อสายสัญญาณ ออกจากขั้ว PA0-PA3 ของวงจรรวม 8255 (1) ไปควบคุมทรานซิสเตอร์เบอร์ 2N2907 จ� ำนวน ๔ ตัวโดยตรง แต่พร้อมกันนี้เราต้องเพิ่มค่าความต้านทานที่ขาเบสของทรานซิสเตอร์ดังกล่าว จาก ๑ กิโลโอห์มเป็น ๒ กิโลโอห์ม เพื่อจ� ำกัดกระแสที่จะไหลเข้าสู่ขั้ว PA0-PA3 ของวงจรรวม 8255 (1) ไว้ไม่ให้สูงเกิน ๒.๕ มิลลิแอมป์ ตามข้อก� ำหนดของผู้ผลิต (Intel Corp., 1995) เนื่องจากทรานซิสเตอร์เบอร์ 2N2907 มีอัตราขยายกระแสไฟฟ้า ประมาณ ๙๐ เท่า และตัวแสดงผลแอลอีดีแบบ ๗ ส่วนแต่ละตัวต้องการกระแส (ผ่านทรานซิสเตอร์) เพียงประมาณ ๑๔๐ มิลลิแอมป์ (Hall, 1992: 268) ดังนั้น ค่าความต้านทาน ๒ กิโลโอห์มที่ใช้จึงเพียงพอ ที่จะจ� ำกัดกระแสที่ผ่านขั้ว PA0-PA3 ของวงจรรวม 8255 (1) และพร้อมกันนั้นก็ท� ำให้ตัวแสดงผลแบบ ๗ ส่วน แต่ละตัวมีแสงสว่างที่มองเห็นได้ชัด อย่างไรก็ตาม เราต้องแก้ซอฟต์แวร์ในรูปที่ ๙ ให้สอดคล้องกัน โดยใช้สัญญาณ ออกจากขั้ว PA0-PA3 ของวงจรรวม 8255 (1) ในรูปของตรรกะลบ ในวงจรที่ใช้ตัวแสดงผลแอลอีดีแบบ ๗ ส่วนตามรูปที่ ๗ และรูปที่ ๘ ข้างบนนี้ เราใช้ตัวแสดงผล แอลอีดีที่ไดโอดเปล่งแสง (แอลอีดี) ย่อยทุกหน่วยต่อแอโนดร่วมกัน (หรือต่อกันแบบแอโนดร่วม) การควบคุม การต่อหรือตัดวงจรของตัวแสดงผลแต่ละตัว อย่างเช่นในรูปที่ ๘ จึงใช้ทรานซิสเตอร์แบบพีเอ็นพี เบอร์ 2N2907 เป็นสวิตช์คั่นระหว่างตัวแสดงผลแต่ละตัวกับแหล่งจ่ายแรงดันไฟฟ้า ๕ โวลต์ และซอฟต์แวร์ที่ควบคุม ตัวแสดงผลเหล่านี้จะใช้ตรรกะบวก (positive logic) ถ้าหากเราเปลี่ยนไปใช้ตัวแสดงผลแอลอีดีแบบ ๗ ส่วน ที่ไดโอดเปล่งแสงย่อยทุกหน่วยต่อแคโทดร่วมกัน (หรือต่อกันแบบแคโทดร่วม) วงจรตามรูปที่ ๘ จะต้อง เปลี่ยนแปลงไปให้สอดคล้องกัน โดยที่เราต้องใช้ทรานซิสเตอร์แบบเอ็นพีเอ็น (เช่น ทรานซิสเตอร์เบอร์ 2N2222) เป็นสวิตช์คั่นระหว่างตัวแสดงผลแต่ละตัวกับกราวนด์ ส่วนซอฟต์แวร์ที่เกี่ยวข้องต้องเปลี่ยนไปใช้ตรรกะลบ (negative logic) ;Program for displaying data via ;IC 8255(1) of the uC8088 board ;Program name: SEVEN1.ASM ;Date: June 30, 2015 ;use Borland’s Turbo Assembler ;assemble: tasm SEVEN1 ;link: tlink /t SEVEN1.OBJ,SEVEN1.BIN ;burn SEVEN1.BIN to 32-KB ROM or ;transfer it to ROM emulator .model tiny .code ;I/O port addresses **** ( ดูใน LED1.ASM ตามรูปที่ ๓ ) **** org 8000h main proc cmp dl,8 ;4th 7-seg? ;repeat for next three 7-seg modules jbe begin7 ret run71 endp ;******************************* outport1 proc ;turn on 7-seg module out ppi_port1_a,al ;delay before showing next 7-seg call delay2 call delay2 ret outport1 endp ;*******************************
Made with FlippingBook
RkJQdWJsaXNoZXIy NTk0NjM=