Page 92 - 22-0722 EBOOK
P. 92
วารสารราชบััณฑิิตยสภา
ปีีที่่� ๔๖ ฉบัับัที่่� ๓ กัันยายน-ธัันวาคม ๒๕๖๔
82 การแลกเปล่�ยนข้้อมููลแบบอนุกรมูระหว่่างไมูโครคอนโทรลเลอร์โดยใช้้เกณฑ์์ว่ิธี่ข้องแผงแป้นอักข้ระ
ส่งข้้อมูลแล้ว ไมโครคอนี้โทรลเลอร์ PIC16F627A จะประวิงเวลาเป็นี้ระยะ ๑ วินี้าท้ เพิ่�อเตัร้ยมรับข้้อมูล
จากแผงวงจรตััวหลักตั่อไป
ในี้การรับข้้อมูลจากแผงวงจรตััวหลัก ไมโครคอนี้โทรลเลอร์ PIC16F627A จะเข้้าสู่สถูานี้ะ
เดินี้เคร่�องเปล่าโดยกำาหนี้ดให้ข้า RA0 และ RA1 เป็นี้ข้าส่งสัญญาณออก แล้วตัั�งค่าตัรรกะ “1” ท้�ข้า
ทั�งสองนี้้� จากนี้ั�นี้จ่งกำาหนี้ดให้ข้า RA0 และ RA1 เป็นี้ข้ารับสัญญาณเข้้า แล้วคอยตัรวจสอบค่าตัรรกะ
ท้�ข้าทั�งสองเพิ่�อดูว่า แผงวงจรตััวหลักแสดงความตั้องการท้�จะส่งข้้อมูลมาให้หร่อไม่ เม่�อพิบว่าแผงวงจร
ตััวหลักพิร้อมท้�จะส่งข้้อมูลแล้ว (จากการท้�สัญญาณ CLK ท้�ข้า RA1 ม้ค่าตัรรกะ“1” ในี้ข้ณะท้�สัญญาณ
DAT ท้�ข้า RA0 ม้ค่าตัรรกะ “0”) ก็ตัอบรับโดยตัั�งค่าสัญญาณ CLK เป็นี้ตัรรกะ “0” ท้�ข้า RA1 แล้วใช้้
กระบวนี้คำาสั�ง RcvHdat ทยอยรับบิตัข้้อมูลทั�งหมดโดยประสานี้จังหวะเวลากับสัญญาณนี้าฬิิกา
ท้�ส่งออกทางข้า RA1 จนี้ได้เป็นี้ไบตั์ข้้อมูล ๑ ไบตั์ และแสดงผลข้้อมูลนี้้�ผ่านี้ไดโอดเปล่งแสงจำานี้วนี้
๘ หนี้่วยท้�ตั่ออยู่กับข้า RB7-RB0 จากนี้ั�นี้ก็รับข้้อมูลในี้รอบใหม่ซำ�าแล้วซำ�าอ้กจนี้ได้ครบจำานี้วนี้ไบตั์ตัาม
ท้�กำาหนี้ดไว้ (ในี้ท้�นี้้�ค่อ ๑๑ ไบตั์) จ่งเป็นี้อันี้สิ�นี้สุดการทำางานี้
ซอฟต์แว่ร์ภาษาแอสเซมูบล่สำาหรับแผงว่งจรไมูโครคอนโทรลเลอร์ 8088
;Page 1/8 of Fig.8 ;Page 2/8 of Fig.8
;uC 8088 serial data exchange mov si,(59h*4) ;install 59h
;with uC PIC16F627A mov dx,offset pulse2 ;59h ISR addr
;using Keyboard Protocol mov word ptr[si],dx ;offset -> IP
;Inp DAT: 8255(1) pin PA4<-100-ohm<-PIC pin RA0 add si,2
;Inp CLK: 8255(1) pin PA7<-100-ohm<-PIC pin RA1 mov word ptr[si],0 ;segment -> CS
;Out DAT: 8255(1) pin PB3->diode->8255 pin PA4
;Out CLK: 8255(1) pin PC3->diode->8255 pin PA7 ;configure 8259
;Inp INT: 8259 pin 25<-inverter<-8255 pin PA7 mov al,int_icw1_word
;Program name: uC8088HT.ASM out int_icw1_port,al
;Date: April 15, 2021 mov al,int_icw2_word
;use Borland's Turbo Assembler and Linker out int_icw2_port,al
;assemble: tasm uC8088HT mov al,int_icw4_word
;link: tlink /t uC8088HT.OBJ, uC8088HT.BIN out int_icw4_port,al
;burn uC8088HT.BIN to 32-KB ROM or transfer it mov al,int_ocw1_word ;unmask IR7
;to ROM emulator out int_ocw1_port,al
.model tiny sti ;allows interrupts
.code
;blink 8 LEDs on Port2B for 5 cycles
;CONSTANTS for 8255 init0: mov cx,5
ppi_port1_a equ 24h ;8255 Port 1A (input) here0: mov al,0FFh
ppi_port1_b equ 25h ;8255 Port 1B (output) call showcode
ppi_port1_c equ 26h ;8255 Port 1C (output) loop here0
ppi_ctrl_port1 equ 27h ;8255 control port 1
ppi_port2_a equ 28h ;8255 Port 2A (input) ;**********************************
ppi_port2_b equ 29h ;8255 Port 2B (output) ;8088 receives data from PIC16F627A
ppi_port2_c equ 2Ah ;8255 Port 2C (output) ;**********************************
ppi_ctrl_port2 equ 2Bh ;8255 control port 2 ;initialize parameters
mov cl,0 ;count for 10 codes
;CONSTANTS for 8259 mov di,buf0 ;addr: 1st stored code
int_icw1_port equ 2ch ;8259 port 1 init1:
ภาพท่� ๘ ซอฟตั์แวร์การรับ-ส่งข้้อมูลแบบอนีุ้กรมข้องแผงวงจรไมโครคอนี้โทรลเลอร์ 8088