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
   87   88   89   90   91   92   93   94   95   96   97