วารสารปี-40-ฉบับที่-4-resize
มงคล เดชนครินทร์ 149 วารสารราชบัณฑิตยสภา ปีที่ ๔๐ ฉบับที่ ๔ ต.ค.-ธ.ค. ๒๕๕๘ - ขา RS (Register Select, ขา 4) ใช้รับสัญญาณตรรกะ 0 (ต่อกับกราวนด์) เพื่อให้มอดูลรับค� ำสั่ง (เช่น ค� ำสั่งล้างจอ ค� ำสั่งแสดงตัวอักษร) ทางขา D0-D7 หรือไม่เช่นนั้นก็ใช้รับสัญญาณตรรกะ 1 (ต่อกับแรงดัน ๕ โวลต์) เพื่อให้มอดูลรับข้อมูลตัวอักษรทางขา D0-D7 ในที่นี้เราต่อขา RS เข้ากับขา PA0 ของวงจรรวม เบอร์ 8255 (1) เพื่อให้สามารถเปลี่ยนจากการป้อนค� ำสั่งเป็นการป้อนข้อมูลหรือกลับกันได้ - ขา R/W (Read/Write, ขา 5) ใช้รับสัญญาณตรรกะ 0 (1) เพื่อเขียน (อ่าน) ข้อมูลผ่านขา D0-D7 ของตัวมอดูล ในที่นี้เราต่อขา R/W กับสัญญาณตรรกะ 0 (กราวนด์) เพื่อเขียนข้อมูลเท่านั้น - ขา EN (Enable, ขา 6) ใช้รับสัญญาณตรรกะ 1 ในช่วงเวลาสั้น ๆ เพื่อให้ข้อมูลที่ขา D0-D7 สามารถเข้าสู่ภายในตัวมอดูลได้ส� ำเร็จ ในที่นี้เราต่อขา EN เข้ากับขา PA1 ของวงจรรวม 8255 (1) - ขา D0-D7 (ขา 7-14) ใช้รับสัญญาณค� ำสั่ง หรือใช้รับ/ส่งสัญญาณข้อมูลขนาด ๘ บิต ในที่นี้ เราต่อขา D0-D7 เข้ากับขา PB0-PB7 ของวงจรรวม 8255 (1) - ขา A (Anode, ขา 15) ใช้ต่อกับแรงดันไฟฟ้า ๕ โวลต์ผ่านตัวต้านทานขนาด ๒๒๐ โอห์ม เพื่อจุดหลอดไฟฟ้าที่จะส่องแสงจากด้านหลังของตัวมอดูล - ขา K (Cathode, ขา 16) ใช้ต่อกับกราวนด์ เพื่อเป็นทางออกของกระแสจากหลอดไฟฟ้าด้านหลัง ซอฟต์แวร์ที่ใช้ร่วมกับวงจรในรูปที่ ๑๕ มีแสดงไว้ในรูปที่ ๑๖ ซอฟต์แวร์ดังกล่าวเริ่มด้วยการตั้งค่า เริ่มต้น (initialization) ให้แก่มอดูลแสดงผลแอลซีดี ซึ่งในที่นี้ผู้นิพนธ์เลือกใช้แบบที่แสดงผลได้ ๒ บรรทัด บรรทัดละ ๑๖ ตัวอักษร โดยก� ำหนดให้รับข้อมูลขนาด ๘ บิต, แสดงตัวอักษรขนาด 5×7 จุดได้ ๒ บรรทัด, ตัวชี้ต� ำแหน่ง (cursor) เป็นเส้นขีดข้างใต้ที่กะพริบ จากนั้นก็ให้เปิดใช้หน้าจอ, ล้างจอให้ว่าง และท้ายสุด ให้ตั้งแบบรูปการท� ำงาน (mode) ที่ตัวอักษรถูกเขียนลงบนตัวชี้ต� ำแหน่ง ซึ่งจะขยับไปทางขวาโดยอัตโนมัติ ;Prog. LCD1.ASM : LCD mod. (8-bit format) ;Created: July 14, 2015 ;pin PA0 of 8255 linked to pin RS of LCD ;pin PA1 of 8255 linked to pin E of LCD ;pins PB0-PB7 of 8255 -> D0-D7 of LCD ;pin R/W (5) of LCD is grounded for ;writing to it ;use Borland’s Turbo Assembler ;assemble: tasm LCD1 ;link: tlink /t LCD1.OBJ, LCD1.BIN ;burn LCD1.BIN to 32-KB ROM or ;transfer it to ROM emulator .model tiny .code ;I/O port addresses ***** ( ดูใน LED1.ASM ตามรูปที่ ๓ ) ***** org 8000h main proc ;*********************************** lcd8_cmd proc ;8-bit command via al ;save command in ah mov ah,al mov al,02h ;RS=0, E=1 out ppi_port1_a,al ;retrieve command mov al,ah ;put command on line out ppi_port1_b,al call delay1 mov al,0 ;RS=0, E=0 ;send command out ppi_port1_a,al ret lcd8_cmd endp ;***********************************
Made with FlippingBook
RkJQdWJsaXNoZXIy NTk0NjM=