12
ปฏิบัติการ วิชา ไมโครโปรเซสเซอร์ รายวิชา 303361 ภาควิชาไฟฟ้าและคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยนเรศวร ดร. พรพิศุทธิ์ วรจิรันตน1 การทดลองที7 เรื่อง การใช้งาน keyboard ว ัตถุประสงค์ 1. เพื่อให ้นิสิตเข ้าใจภาษา Assembly เบื้องต ้น 2. เพื่อให ้นิสิตสามารถใช ้งาน keyboard ขนาด 4x3 และ 7-segment display อุปกรณ์ในการทดลอง 1. บอร์ดทดลองไมโครคอนโทรลเลอร์ 2. เครื่องคอมพิวเตอร์ PC พร ้อมโปรแกรมสาหรับการเขียนและคอมไพล์ภาษา Assembly SXA51 3. สายต่อพอร์ตอนุกรม 4. บอร์ด 7-segment Display 5. keyboard ขนาด 4x3 ทฤษฎี ในกรณีที่ต ้องการที่รับค่าสถานะจาก Switch จานวนมากนั้น สามารถทาได ้โดยการเพิ่มจานวนของ Input Port ให ้ มากขึ้นตาม อย่างไรก็ดี ในการเพิ่มจานวนของ Input port จะทาให ้ระบบมีราคาแพง การเพิ่มจานวนของ Switch สามารถทาได ้โดยใช ้การทางานของ Software ช่วยอาศัยหลักการพื้นฐานที่ว่า Microcomputer นั้น สามารถทางาน ได ้เร็วมากเมื่อเทียบกับการทางานของ Switch ดังนั้นแล ้ว Microcomputer ก็ไม่จาเป็นต ้องรับค่าของ Switch ทั้งหมดพร ้อมกัน โดยเลือกรับ Input ทีละตัว หรือทีละชุด ก็ได ้ จนครบจานวนของ Switch ทั้งหมด ในการทดลอง เป็นการต่อ Switch แบบ Matrix ซึ่ง Port 1 บิต P1.0-P1.2 ถูกใช ้ในการเลือกว่าจะอ่านค่าสถานะของ Switch ในแถวใด และ Port 1 บิต P1.3-P1.6 เป็ นการเลือกว่าจะอ่านค่าสถานะของ Switch ในหลักใด การเขียน โปรแกรมเพื่อรับค่าสถานะของ Switch ทั้งหมดสามารถแสดงเป็ น Pseudo code ได ้ดังนี1. ส่งข ้อมูล ‘0’ ไปออกทีcolumn แรก และให ้ข ้อมูลที่ บิต อื่นๆ เป็ น ‘1’ ทั้งหมด ( 1111 1011B ออกไปทีPort 1) 2. ถ้า column ถูกกด .ให ้ค่าข ้อมูลการกด keyเป็ น 1 3. ถ้า column แรกไม่ถูกกด ให ้บิตที่เป็ น column ต่อไปเป็น ‘0’ (Ex 1111 1101B) แล ้ววนกลับไปทา ข ้อ 2 อีก ครั้ง แต่ให ้ข ้อมูลการกด key เปลี่ยนเป็ น 2 ทาจนกว่าจะครบทุก column พร ้อมทั ้งเปลี่ยนค่าข ้อมูลการกด key ไปเรื่อยๆตามลาดับ 4. ส่งข ้อมูล ‘1’ ออกไปที่ทุกแถว (Ex 1111 0000B) แล ้วอ่านค่าเข ้ามา ถ ้าบิตที่เป็ นแถว 1 เป็ น ‘0’ บวกค่า 0 เข ้า กับค่าข ้อมูลการกด key ถ ้าบิตที่เป็ นแถว 2 เป็ น ‘0’ บวกค่า 3 เข ้ากับค่าข ้อมูลการกด key ถ ้าบิตที่เป็ นแถว 3 เป็ น ‘0’ บวกค่า 6 เข ้ากับค่าข ้อมูลการกด key ถ ้าบิตที่เป็ นแถว 4 เป็ น ‘0’ บวกค่า 9 เข ้ากับค่าข ้อมูลการกด key

การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 1

การทดลองที ่7

เรือ่ง การใชง้าน keyboard

วตัถปุระสงค ์

1. เพือ่ใหน้สิติเขา้ใจภาษา Assembly เบือ้งตน้

2. เพือ่ใหน้สิติสามารถใชง้าน keyboard ขนาด 4x3 และ 7-segment display

อปุกรณ์ในการทดลอง

1. บอรด์ทดลองไมโครคอนโทรลเลอร ์

2. เครือ่งคอมพวิเตอร ์PC พรอ้มโปรแกรมส าหรับการเขยีนและคอมไพลภ์าษา Assembly SXA51

3. สายตอ่พอรต์อนุกรม

4. บอรด์ 7-segment Display

5. keyboard ขนาด 4x3

ทฤษฎ ี

ในกรณีทีต่อ้งการทีรั่บคา่สถานะจาก Switch จ านวนมากนัน้ สามารถท าไดโ้ดยการเพิม่จ านวนของ Input Port ให ้มากขึน้ตาม อยา่งไรกด็ ีในการเพิม่จ านวนของ Input port จะท าใหร้ะบบมรีาคาแพง การเพิม่จ านวนของ Switch สามารถท าไดโ้ดยใชก้ารท างานของ Software ชว่ยอาศัยหลักการพืน้ฐานทีว่า่ Microcomputer นัน้ สามารถท างานไดเ้ร็วมากเมือ่เทยีบกบัการท างานของ Switch ดังนัน้แลว้ Microcomputer ก็ไมจ่ าเป็นตอ้งรับคา่ของ Switch ทัง้หมดพรอ้มกนั โดยเลอืกรับ Input ทลีะตวั หรอืทลีะชดุ ก็ได ้จนครบจ านวนของ Switch ทัง้หมด ในการทดลอง เป็นการตอ่ Switch แบบ Matrix ซึง่ Port 1 บติ P1.0-P1.2 ถกูใชใ้นการเลอืกวา่จะอา่นคา่สถานะของ Switch ในแถวใด และ Port 1 บติ P1.3-P1.6 เป็นการเลอืกวา่จะอา่นคา่สถานะของ Switch ในหลักใด การเขยีนโปรแกรมเพือ่รับคา่สถานะของ Switch ทัง้หมดสามารถแสดงเป็น Pseudo code ไดด้ังนี ้1. สง่ขอ้มลู ‘0’ ไปออกที ่column แรก และใหข้อ้มลูที ่บติ อืน่ๆ เป็น ‘1’ ทัง้หมด ( 1111 1011B ออกไปที ่Port

1) 2. ถา้ column ถกูกด .ใหค้า่ขอ้มลูการกด keyเป็น 1 3. ถา้ column แรกไมถ่กูกด ใหบ้ติทีเ่ป็น column ตอ่ไปเป็น ‘0’ (Ex 1111 1101B) แลว้วนกลบัไปท า ขอ้ 2 อกี

ครัง้ แตใ่หข้อ้มลูการกด key เปลีย่นเป็น 2 ท าจนกวา่จะครบทกุ column พรอ้มทัง้เปลีย่นคา่ขอ้มลูการกด key ไปเรือ่ยๆตามล าดับ

4. สง่ขอ้มลู ‘1’ ออกไปทีท่กุแถว (Ex 1111 0000B) แลว้อา่นคา่เขา้มา ถา้บติทีเ่ป็นแถว 1 เป็น ‘0’ บวกคา่ 0 เขา้กบัคา่ขอ้มลูการกด key ถา้บติทีเ่ป็นแถว 2 เป็น ‘0’ บวกคา่ 3 เขา้กบัคา่ขอ้มลูการกด key ถา้บติทีเ่ป็นแถว 3 เป็น ‘0’ บวกคา่ 6 เขา้กบัคา่ขอ้มลูการกด key ถา้บติทีเ่ป็นแถว 4 เป็น ‘0’ บวกคา่ 9 เขา้กบัคา่ขอ้มลูการกด key

Page 2: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 2

วธีทีดลอง

การตอ่อปุกรณ์

1. ที ่connector ของ keypad ตอ่ขา 1 เขา้กบัขา 2 และขา 4 เขา้กบัขา 8

2. ตอ่ Port 3 เขา้กบั connector ของ keypad ดังแสดงในตาราง

3. ตอ่ Port 1เขา้กบั connector DATA และ ตอ่ Port 0 เขา้กบั connector Address ของ 7-segment บอรด์

Column Pin Port

2 7 3.0

1 8 3.1

0 9 3.2

Row Pin Port

3 2 3.6

2 3 3.5

1 5 3.4

0 6 3.3

1 2 3

4 5

0

7 8 9

*

6

#

1 2 3 4 5 6 7 8 9

6

5

3

2

9 1 8 74

1 2 3

4 5 6

7 8 9

* 0 #

1 3 5 7 9

2 4 6 8 10

รูปที ่1

Page 3: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 3

การเขยีนและใชง้านโปรแกรม

1.เขยีนโปรแกรมและสรา้ง Hex file

2. ทีเ่ครือ่งคอมพวิเตอร ์ตอ่สายอนุกรมจากพอรต์อนุกรมของเครือ่งคอมพวิเตอร ์(com1) ไปยงัพอรต์อนุกรมของ

บอรด์ Microcontroller (RS232) โดยใชส้ายและ connector ทีแ่จกใหเ้ทา่น ัน้ ท าการโหลดผา่นโปรแกรม Flash

magic ดังนี ้

รปูแสดงลักษณะวงจรของบอรด์ไมโครคอนโทรลเลอร ์

11.0592MHz

Page 4: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 4

a. เปิดโปรแกรม Flash magic โดยท าการตัง้คา่ตา่งๆ ดังนี ้ เลอืกที ่Options----> Advanced Options

b. คลิก้เลอืก Use DTR to control RST ออก

Page 5: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 5

c. ทีห่มายเลข 1 เลอืกรุน่ของ MCS-51 และ com port ใหต้รงกบัทีเ่ราใช ้ตัง้คา่อืน่ๆ ตามหมายเลข 2 และ 4 ตามรปูพรอ้มทัง้ Browse ไฟลท์ีห่มายเลข 3 เลอืก Hex file จากนัน้คลิก้เลอืก Start ทีห่มายเลข 5แลว้โปรแกรมจะให ้Reset MCS-51 เพือ่โหลด Hex file ลงอปุกรณ์

d. กดปุ่ ม reset ทีบ่อรด์ไมโครคอนโทรลเลอร ์

Page 6: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 6

แบบฝึกหดั

1. แกไ้ขโปรแกรมใหแ้สดงคา่บน 7-segment ครบทัง้ 8 หลกั

2. เขยีนโปรแกรมเพือ่แสดงคา่ทีก่ดจากคยีบ์อรด์บน 7-segment ครบทัง้ 8 หลัก และ เมือ่กด key ‘*’ ตวัเลขที่

แสดงทัง้หมดจะเลือ่นไปทางซา้ย เมือ่กด key ‘#’ ตัวเลขทีแ่สดงทัง้หมดจะเลือ่นไปทางขวา

การทดลองที ่7.1

;-------------------------------------------------------------

; Define Port&Pin Name

;-------------------------------------------------------------

DISP EQU P1 ; 7 Segment display

address

DIS_COL EQU P0 ; 7 segment

column address

KPAD_ROW0 BIT P3.3 ; Keypad Input Row

0

KPAD_ROW1 BIT P3.4 ; Keypad Input Row

1

KPAD_ROW2 BIT P3.5 ; Keypad Input Row

2

KPAD_ROW3 BIT P3.6 ; Keypad Input Row

3

KPAD_COL2 BIT P3.0 ; Keypad Output

Column 2

KPAD_COL1 BIT P3.1 ; Keypad Output

Column 1

KPAD_COL0 BIT P3.2 ; Keypad Output

Column 0

;-------------------------------------------------------------

; Define User Register

;-------------------------------------------------------------

FLAG EQU 02FH ; User FLAG

KEYPRESSED BIT FLAG.0 ; Define KEYPRESS

flag

R_SHF BIT FLAG.1 ; Define Right Shift

flag

DIG1_BUFFER EQU 030H ; For storing DIG1

Data

DIG2_BUFFER EQU 031H ; For storing DIG2

Data

KPAD_DATA EQU 032H ; For storing Keypad

Data

;-------------------------------------------------------------

; Main Program.

Page 7: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 7

;-------------------------------------------------------------

ORG 0000H ; Reset

Vector

MOV P3,#11111111B ; Clear

status keypad

MAIN: MOV DIG1_BUFFER,#0 ; Clear

DIG1 Buffer

MOV DIG2_BUFFER,#0 ; Clear

DIG2 Buffer

MOV FLAG,#0 ; Clear

FLAG Status

LOOP: ACALL GET_KPAD ; Get Keypad

Data

MOV A,KPAD_DATA

JZ NEXT ; Check

Keypad Pressed?

JB KEYPRESSED,SHOW ; Check

Keypad still pressed?

SETB KEYPRESSED ; Set bit

keypressed

LEFT_SHIFT: MOV

DIG2_BUFFER,DIG1_BUFFER ; Shift Display

to Right

MOV DIG1_BUFFER,KPAD_DATA

; Shift Keypad data in

AJMP SHOW ;

Jump to Show Display

NEXT: CLR KEYPRESSED ; Clear bit

keypressed

SHOW: ACALL SHOW_DSP ; Call Show

DSP Subroutine

CLR R_SHF ; Clear bit

Right Shift

AJMP LOOP ; Jump to

loop

;-------------------------------------------------------------

; Keypad Scan key Subroutine

;-------------------------------------------------------------

GET_KPAD: MOV P3,#0FFH ; Pull P3 to

High

MOV KPAD_DATA,#0 ; Clear

Keypad Data

CHK_COL0: CLR KPAD_COL0 ; Begin Scan

Column 0

MOV A,P3 ; Get Port3

Value

ANL A,#01111000B

; Get only bit 3 4 5 6

Page 8: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 8

CJNE

A,#01111000B,COL0_DETECT ; Check All

rows '1'?

AJMP CHK_COL1 ; All rows '1'

=> check next column

COL0_DETECT: MOV KPAD_DATA,#01

; Initialize KPAD_DATA = 1

AJMP GET_ROW ;

Jump to get row value

CHK_COL1: SETB KPAD_COL0 ; Stop Scan

Column 0

CLR KPAD_COL1 ; Begin Scan

Column 1

MOV A,P3 ; Get Port3

Value

ANL A,#01111000B

; Get only bit 3 4 5 6

CJNE

A,#01111000B,COL1_DETECT ; Check All

rows '1'?

AJMP CHK_COL2 ; All rows '1'

=> check next column

COL1_DETECT: MOV KPAD_DATA,#02

; Initial KPAD_DATA = 2

AJMP GET_ROW ;

Jump to get row value

CHK_COL2: SETB KPAD_COL1 ; Stop Scan

Column 1

CLR KPAD_COL2 ; Begin Scan

Column 2

MOV A,P3 ; Get Port3

Value

ANL A,#01111000B

; Get only bit 3 4 5 6

CJNE

A,#01111000B,COL2_DETECT ; Check All

rows '1'?

RET ; All rows '1'

=> return

COL2_DETECT: MOV KPAD_DATA,#03

; Initial KPAD_DATA = 3

GET_ROW: MOV P3,#01111000B ; Send

1 to all Row to find Crosspoint

JB KPAD_ROW0,CHK_ROW1 ;

Check Row 0 Detect?

RET ; Row 0

Detect => return

Page 9: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 9

CHK_ROW1: JB KPAD_ROW1,CHK_ROW2 ;

Check Row 1 Detect?

MOV A,KPAD_DATA ; Add 3 with

KPAD_DATA

ADD A,#3

MOV KPAD_DATA,A

RET ; Return

CHK_ROW2: JB KPAD_ROW2,CHK_ROW3 ;

Check Row 2 Detect?

MOV A,KPAD_DATA ; Add 6

with KPAD_DATA

ADD A,#6

MOV KPAD_DATA,A

RET ; Return

CHK_ROW3: MOV A,KPAD_DATA ; Add 9 with

KPAD_DATA

ADD A,#9

MOV KPAD_DATA,A

RET ; Return

;-------------------------------------------------------------

; Show DSP Subroutine

;-------------------------------------------------------------

SHOW_DSP: MOV R4,#150 ; Set loop 5 times

SCAN_DSP_LOOP: MOV A,DIG1_BUFFER ;

Restore DIG1 to Display

MOV DPTR,#SEGCODE ; Move

7-seg code Pointer

MOVC A,@A+DPTR ; Get ROM

Data from Pointer+ACC.

MOV DISP,A ; Out

ACC. to DATABUS

MOV A,#00H

MOV DIS_COL,A ; Select 1st

digit

ACALL DELAY_1ms

MOV A,DIG2_BUFFER ;

Restore DIG2 to Display

MOV DPTR,#SEGCODE ; Move

7-seg code Pointer

MOVC A,@A+DPTR ; Get ROM

Data from Pointer+ACC.

MOV DISP,A ; Out

ACC. to DATABUS

MOV A,#01H

MOV DIS_COL,A ;

Select 1st digit

ACALL DELAY_1ms

Page 10: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 10

DJNZ R4,SCAN_DSP_LOOP; Do

until 5 times

RET

;-------------------------------------------------------------

; Dummy Delay time 1m,10ms,1s

;-------------------------------------------------------------

DELAY_1ms: MOV R6,#0E6H ; Each loop =

1 ms

DELAY_1ms_1: NOP

NOP

DJNZ R6,DELAY_1ms_1

RET

DELAY_10ms: MOV R7,#010 ; Do

10 times

DELAY_10ms_1: MOV R6,#0E6H ; Each

loop = 1 ms

DELAY_10ms_2: NOP

NOP

DJNZ R6,DELAY_10ms_2

DJNZ R7,DELAY_10ms_1

RET

DELAY_1s: MOV R5,#100 ; Do

100 times

DELAY_1s_1: ACALL DELAY_10ms

DJNZ R5,DELAY_1s_1

RET

;-------------------------------------------------------------

;Define Constant < Store in Flash EEPROM

Program Memory >

;-------------------------------------------------------------

;Segment code

SEGCODE: DB 10000000B

DSP_NUM1: DB 00000110B

DSP_NUM2: DB 01011011B

DSP_NUM3: DB 01001111B

DSP_NUM4: DB 01100110B

DSP_NUM5: DB 01101101B

DSP_NUM6: DB 01111101B

DSP_NUM7: DB 00000111B

DSP_NUM8: DB 01111111B

DSP_NUM9: DB 01101111B

DSP_STAR: DB 01110110B

DSP_NUM0: DB 00111111B

DSP_HASH: DB 01100011B

END

Page 11: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา การเชือ่มตอ่ไมโครคอมพวิเตอรแ์ละไมโครคอนโทรลเลอร ์รายวชิา 305381

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 11

การบา้น

1. อธบิายโปรแกรมโดยสรปุและใช ้Flowchart

หมายเหต ุอนุญาตใหพ้มิพไ์ดย้กเวน้ ค าตอบของค าถาม และค าอธบิาย

Page 12: การทดลองที่ 7 keyboard2. เพ อใหน ส ต สามารถใชง านkeyboard ขนาด 4x3 และ 7-segment display อ ปกรณ

ปฏบิตักิาร วชิา การเชือ่มตอ่ไมโครคอมพวิเตอรแ์ละไมโครคอนโทรลเลอร ์รายวชิา 305381

ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร

ดร. พรพศิทุธิ ์วรจรัินตน์ 12