วารสารปี-40-ฉบับที่-4-resize

มงคล เดชนครินทร์ 151 วารสารราชบัณฑิตยสภา ปีที่ ๔๐ ฉบับที่ ๔ ต.ค.-ธ.ค. ๒๕๕๘ ;********************************** lcd8_wrt proc ;write char in al to LCD mov ah,al ;save al in ah mov al,03h ;RS=1, E=1 out ppi_port1_a,al mov al,ah ;retrieve al out ppi_port1_b,al out ppi_port2_b,al call delay1 mov al,1 ;RS=1, E=0 ;write char out ppi_port1_a,al ret lcd8_wrt endp ;*********************************** lcd8_shr proc ;shift cursor to right mov al,1Ch call lcd8_cmd ret lcd8_shr endp ;*********************************** lcd8_shl proc ; shift cursor to left mov al,18h call lcd8_cmd ret lcd8_shl endp ;********************************* ;*********************************** delay1 proc ;time delay of about 160 ms push cx mov cx,4000h delay5: loop delay5 pop cx ret delay1 endp ;******************************** delay2 proc ;time delay about 0.6 sec push cx mov cx,0F000h delay6: loop delay6 pop cx ret delay2 endp ;********************************* org 0fff0h db 0eah, 0,80h, 0,0 end main รูปที่ ๑๖ ซอฟต์แวร์ส� ำหรับแสดงตัวอักษรภาษาอังกฤษ ๒ บรรทัดในมอดูลแสดงผลชนิดแอลซีดี เมื่อตั้งค่าเริ่มต้นเสร็จแล้ว ซอฟต์แวร์ก็จะเข้าวงวน (loop) ของการแสดงตัวอักษร Hello บนบรรทัด ที่ ๑ และ END บนบรรทัดที่ ๒ หลังจากรอครู่หนึ่งแล้วก็ล้างหน้าจอแสดงผล กิจกรรมทั้ง ๓ อย่างนี้จะท� ำเป็น วัฏจักรไปเรื่อย ๆ มอดูลแสดงผลชนิดแอลซีดีในที่นี้ยังสามารถท� ำงานโดยรับข้อมูลขนาด ๔ บิตได้ด้วย ในกรณีนี้ ขา PB0-PB3 ของวงจรรวมเบอร์ 8255 (1) ตามรูปที่ ๑๕ จะถูกปล่อยว่างไว้ ส่วนขา D0-D3 ของมอดูล แสดงผลจะถูกต่อลงกราวนด์ เหลือไว้ใช้งานเพียงขา D4-D7 เท่านั้น ส่วนอื่น ๆ ของวงจรตามรูปที่ ๑๕ จะยังเหมือนเดิม การตั้งค่าเริ่มต้นให้แก่มอดูลจะเริ่มด้วยการใช้ค� ำสั่งขนาด ๘ บิตบังคับให้มอดูลเข้าสู่แบบ รูปการใช้ข้อมูลขนาด ๔ บิต เมื่อจะป้อนข้อมูลขนาด ๘ บิตให้แก่มอดูล ก็ต้องท� ำครั้งละ ๔ บิต รวม ๒ ครั้ง ครั้งแรกส่งข้อมูลด้านนัยส� ำคัญสูง ครั้งที่ ๒ ส่งข้อมูลด้านนัยส� ำคัญต�่ ำกว่า ผู้นิพนธ์จะไม่ลงรายละเอียด เกี่ยวกับการท� ำงานในแบบวิธีนี้ แต่ผู้ที่สนใจสามารถศึกษาได้จากบทความอย่างเช่น Ilett (1997 a)

RkJQdWJsaXNoZXIy NTk0NjM=