สำนักงานราชบัณฑิตยสภา
149 ศ. ดร.มงคล เดชนคริ นทร์ วารสารราชบัณฑิตยสถาน ปีที่ ๓๘ ฉบับที่ ๓ ก.ค.-ก.ย. ๒๕๕๖ รายละเอียดการท� ำหน้าที่ของบรรดารูทีนเสริมในตารางที่ ๒ มีดังนี้ 1) IN_IT รูทีนนี้จัดเตรียมการท� ำงานของวงจรรวม 8253 และ 8251 ในแผงวงจรไมโคร คอนโทรลเลอร์ เพื่อให้พร้อมที่จะรับหรือส่งข้อมูลอนุกรมกับพีซีที่ต่ออยู่กับแผงวงจรผ่านสายสัญญาณ อนุกรมในระบบ RS 232 รูทีนนี้ยังจัดเตรียมการท� ำงานของวงจรรวม 8255 ในแผงวงจร เพื่อให้พร้อม ที่จะส่งข้อมูลขนานออกทางช่องทาง A, B หรือ C ของวงจรรวมตัวนี้อีกด้วย รายการชุดค� ำสั่งภาษา แอสเซมบลีของรูทีน IN_IT ( Antonakos, 1996: 503) เป็นดังนี้ 2) BLANK รูทีนนี้ส่งอักขระว่างในรูปของข้อมูลแอสกีไปแสดงบนจอของพีซีที่ต่ออยู่กับแผง วงจรไมโครคอนโทรลเลอร์ รายการชุดค� ำสั่งภาษาแอสเซมบลีของรูทีน BLANK (Antonakos, 1996: 504 ) เป็นดังนี้ 1) IN_IT รูทีนนี้จัดเตรียมการทํางานของวงจรรวม 8253 และ 8251 ในแผงวงจรไมโคร คอนโทรลเลอร เพื่อให พร อมที่จะรับหรือส งข อมูลอนุกรมกับพีซีที่ต ออยู กับแผงวงจรผ าน สายสัญญาณอนุกรมในระบบ RS232 รูทีนนี้ยังจัดเตรียมการทํางานของวงจรรวม 8255 ใน แผงวงจร เพื่อให พร อมที่จะส งข อมูลขนานออกทางช องทาง A, B หรือ C ของวงจรรวมตัวนี้อีก ด วย รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน IN_IT (Antonakos, 1996: 503) เป นดังนี้ IN_IT PROC NEAR ; initialize 8253 for 2.5 MHz/32 = 76.8 kHz = 1200 baud X64 MOV AL,00110110B ; mode 3, sq. wave, timer 0 OUT TMR_CTRL,AL ; TMR_CTRL = 33H MOV AL,20H ; divide 2.5 MHz by 32 (=20H) OUT TIMER_0,AL ; TIMER_0 = 30H MOV AL,0 ; most signif byte of divide-by-factor OUT TIMER_0,AL ; initialize 8251 serial port MOV AL,0 ; send three 0s to ensure OUT S_CTRL,AL ; reset of 8251, S_CTRL = 21H OUT S_CTRL,AL OUT S_CTRL,AL MOV CX,4 DELAY0: LOOP DELAY0 MOV AL,01000000B ; reset 8251 to mode set OUT S_CTRL,AL MOV CX,4 DELAY1: LOOP DELAY1 MOV AL,M8251 ; set serial mode OUT S_CTRL,AL MOV CX,4 DELAY2: LOOP DELAY2 MOV AL,C8251 ; command word, C8251 = 37H OUT S_CTRL,AL MOV CX,4 DELAY3: LOOP DELAY3 ; initialize 8255 parallel port, ports a, b, c = output MOV AL,80H ; 8255 config word: mode 0, ports a, b, c = output OUT CTRL_1,AL ; send config wrd to cntrl ports, CTRL_1= 27H OUT CTRL_2,AL ; CTRL_2 = 2BH RET IN_IT ENDP 2) BLANK รูทีนนี้ส งอักขระว างในรูปของข อมูลแอสกีไปแสดงบนจอของพีซีที่ต ออยู กับแผงวงจร ไมโครคอนโทรลเลอร รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน BLANK (Antonakos, 1996: 504) เป นดังนี้ ; Routine to send a blank char to display on PC BLANK PROC NEAR MOV AL,20H ; code for ascii blank CALL C_OUT ; send char RET BLANK ENDP - 4 - 1) IN_IT รูทีนนี้จัดเตรียมการทํางานของวงจรรวม 8253 และ 8251 ในแผงวงจรไมโคร คอนโทรลเลอร เพื่อให พร อมที่จะรับหรือส งข อมูลอนุกรมกับพีซีที่ต ออยู กับแผงวงจรผ าน สายสัญญาณอุ กรมในระบบ RS232 รูทีนนี้ยังจัดเตรียมการทํางานของวงจรรวม 8255 ใน แผงวงจร เพื่อให พร อมที่จะส งข อมูลขนานออกทางช องทาง A, B หรือ C ของวงจรรวมตัวนี้อีก ด วย รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน IN_IT (Antonakos, 1996: 503) เป นดังนี้ IN_IT PROC NEAR ; initialize 8253 for 2.5 MHz/32 = 76.8 kHz = 1200 baud X64 MOV AL,00110110B ; mode 3, sq. wave, timer 0 OUT TMR_CTRL,AL ; TMR_CTRL = 33H 2 H ; divi 2.5 MHz by 32 (=20H) IMER_0,AL I ER_0 = 30H 0 ; most signif byte of divide-by-factor ; initialize 8251 serial port MOV AL,0 ; send three 0s to ensure OUT S_CTRL,AL ; reset of 8251, S_CTRL = 21H OUT S_CTRL,AL MOV CX,4 DELAY0: L OP DELAY0 MOV AL,01000000B ; reset 8251 to mode set OUT S_CTRL,AL CX 4 DELAY1: LOOP DELAY1 MOV AL,M8251 ; set serial mode OUT S_CTRL,AL CX 4 DELAY2: L OP DELAY2 MOV AL,C8251 ; command word, C8251 = 37H OUT S_CTRL,AL CX 4 DELAY3: L OP DELAY3 ; initialize 8255 parallel port, ports a, b, c = output M V AL,80H ; 8255 config word: mode 0, ports a, b, c = output OUT CTRL_1,AL ; send config wrd t cntrl ports, CTRL_1= 27H OUT CTRL_2,AL ; CTRL_2 = 2BH RE IN_IT ENDP 2) BLANK รูทีนนี้ส งอักขระว างในรูปของข อมูลแอสกีไปแสดงบนจอของพีซีที่ต ออยู กับแผงวงจร ไมโครคอนโทรลเลอร รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน BLANK (Antonakos, 1996: 504) เป นดังนี้ ; Routine to send a blank char to display on PC BLANK PROC NEAR MOV AL,20H ; code for ascii blank CALL C_OUT ; send char RET BLANK ENDP
Made with FlippingBook
RkJQdWJsaXNoZXIy NTk0NjM=