ปฏิบัติการ วิชา ไมโครโปรเซสเซอร์...
Transcript of ปฏิบัติการ วิชา ไมโครโปรเซสเซอร์...
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
1
การทดลองที ่10
เรือ่ง การสือ่สารขอ้มลูแบบอนกุรม
วตัถปุระสงค ์
1. เพือ่ใหน้สิติเขา้ใจภาษา Assembly เบือ้งตน้
2. เพือ่ใหน้สิติเขา้ใจการท างาน การสือ่สารอนุกรม (Serial) ของไมโครคอนโทรลเลอรเ์มือ่รับขอ้มลูที่
ก าหนด ใหแ้สดงการท างานผา่น Hyper Terminal
อปุกรณ์ในการทดลอง
1. ชดุทดลองไมโครคอนโทรลเลอร ์SILA-START-C51
2. เครือ่งคอมพวิเตอร ์PC พรอ้มโปรแกรมส าหรับการเขยีนและคอมไพลภ์าษา Assembly SXA51
3. สายตอ่พอรต์อนุกรม
4. โปรแกรม Hyper Terminal
ทฤษฎ ี
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
2
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
3
การรับสง่ขอ้มลูแบบอนุกรมม ี4 โหมด คอื
Mode 0 สง่ขอ้มลูชดุละ 10 bits คอื 1 Start bit, 8 Data bits และ 1 Stop bit
อตัราการสง่ขอ้มลู
Baud Rate 12
oscf : oscf Oscillator frequency
Mode 1 สง่ขอ้มลูชดุละ 10 bits เหมอืน Mode 0 แตอ่ตัราการสง่ขอ้มลู สามารถก าหนดไดด้ว้ย Timer 1
(ใน Mode 2) หรอื Timer 2 (8052)
อตัราการสง่ขอ้มลู
Baud Rate 12561232 TH
fK osc
If SMOD = 0, then K=1
If SMOD = 1, then K=2 (SMOD is in PCON register)
Mode 2 สง่ขอ้มลูชดุละ 11 bits คอื 1 Start bit, 8 Data bits, 1 programmable data bit จาก TB8
หรอื RB8 และ 1 Stop bit อตัราการสง่ขอ้มลูขึน้อยูก่บั SMOD bitใน PCON
อตัราการสง่ขอ้มลู
SMOD = 1, Baud Rate 32
oscf
SMOD = 0, Baud Rate 64
oscf
แตก่ารก าหนดคา่ SMOD ใน PCON ไมส่ามารถเขา้ถงึ ขอ้มลูระดับบติได ้ตอ้งอา่นคา่ขึน้มาแกไ้ขแลว้เขยีน
ลงไปใหม ่(Read-Modify-Write) เชน่
MOV A, PCON
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
4
SETB ACC.7
MOV PCON, A
Mode 3 สง่ขอ้มลูชดุละ 11 bits เหมอืน Mode 2 แตอ่ตัราการสง่ขอ้มลูสามารถก าหนดไดด้ว้ย Timer 1
(ใน Mode 2) หรอื Timer 2 (8052)
Baud Rate Crystal (MHz) SMOD TH1 Baud Rate *
9,600 12 1 -7(F9H) 8,923
2,400 12 0 -13(F3H) 2,404
1,200 12 0 -16(E6H) 1,202
19,200 11.059 1 -3(FDH) 19,200
9,600 11.059 0 -3(FDH) 9,600
2,400 11.059 0 -12(F4H) 2,400
1,200 11.059 0 -24(E8H) 1,200
Example 1 เขยีนฟังกช์ัน่ initializing ก าหนดคา่เริม่ตน้ใหพ้อรท์อนุกรม โดยใช ้
Timer 1 สง่ขอ้มลู 8 bits ดว้ยอตัรา Baud 2,400
1. Set bit REN เป็น “1” เพือ่ใหรั้บขอ้มลูได ้และเลอืก Mode 1 เพือ่การรับสง่
2. Set bit T1 เป็น “1” เพือ่บอกวา่ buffer สง่ขอ้มลูวา่ง
3. Set bit M1/M0 ใน TMOD เป็น “1/0” ใหท้ างานในโหมด 2, 8 bits auto-reload
4. ก าหนดให ้TH1 เป็น 0F3H เพือ่ก าหนด Baud rate 2,400
5. Set bit TR1 ใน TCON เป็น “1” เพือ่เริม่ใช ้Timer 1
INIT: MOV SCON, #52H ; ก าหนดพอรท์อนุกรมโหมด 1
MOV TMOD, #20H ; ก าหนด Timer 1 โหมด 2
MOV TH1, #0F3H ; ใสค่า่ก าหนด Baud rate
SET TR1 ; เริม่ Timer 1
RET
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
5
Example 2 เขยีนฟังกช์ัน่ สง่คา่ตัวอกัษรออกทางพอรท์อนุกรม โดย TX_DATA คอื data memory
address 80H และ RX_DATA คอื data memory address 81H
TX_TEXT: MOV A, TX_DATA
JNB TI, $ ; เชค็วา่ Buffer วา่งรยึงั
CLR TI
JNB TF, $ ; รอจน Timer overflow
MOV SBUF, A; สง่ขอ้มลูออก
CLR TF
RET ; กลับโปรแกรมหลัก
Example 3 เขยีนฟังกช์ัน่ รับขอ้มลู ASCII จากทางพอรท์อนุกรม
RX_TEXT : JNB RI, $ ; รอรับขอ้มลู
CLR RI
MOV A, SBUF ; อา่นขอ้มลูจากพอรท์
MOV RX_DATA, A; เอาไปเก็บไวใ้น RX_DATA
RET ; กลับโปรแกรมหลัก
Note: เมือ่ตอ้งการสง่ตวัอกัษรออก
MOV TX_DATA, ‘Z’ ; เอาตวั Z ไปใสใ่น TX_DATA พรอ้มแปลงเป็น ASCII
ACALL TX_TEXT
Note: เมือ่ตอ้งการรับตวัอกัษร
ACALL RX_TEXT
Example 4 เขยีนโปรแกรม รับสง่ขอ้มลู 8 bits และ parity จากทางพอรท์อนุกรม Baud rate 19,200
1. Set SMOD PCON เพือ่ double baud rate
2. Set bit REN เป็น “1” เพือ่ใหรั้บขอ้มลูได ้และเลอืก Mode 3 เพือ่การรับสง่
3. Set bit T1 เป็น “1” เพือ่บอกวา่ buffer สง่วา่ง
4. Set bit M1/M0 ใน TMOD เป็น “1/0” ใหท้ างานในโหมด 2
5. ก าหนดให ้TH1 เป็น 0FDH เพือ่ก าหนด Baud rate 19,200
6. Set bit TR1 ใน TCON เป็น “1” เพือ่เริม่ใช ้Timer 1
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
6
INT: MOV A, PCON
SETB ACC.7 ; Double baud rate
MOV PCON, A
MOV SCON, #0D2H; เลอืกโหมด 3
MOV TMOD,#20H ; ก าหนด Timer1 โหมด2
MOV TH1, #0FDH ; ใสค่า่ก าหนด Baud rate
SET TR1 ; เริม่ Timer1
OUT: MOV C, P ; ใสค่า่ parity bit ใน C
MOV TB8, C ; ใสล่งใน TB8
WAIT: JNB TI, WAIT ; เชค็วา่ Buffer วา่งรยึงั
CLR TI
JNB TF, $ ; รอจน Timer overflow
MOV SBUF, A ; สง่ขอ้มลูออก
CLR TF
RET ; กลับโปรแกรมหลัก
IN: JNB RI, $ ; รอรับขอ้มลู
CLR RI
MOV A, SBUF ; อา่นขอ้มลูจากพอรท์
MOV C, TB8 ; ตรวจสอบ parity
CPL C ;ถา้ขอ้มลูผดิพลาด C จะมคีา่ 1*
RET ; กลับโปรแกรมหลัก
วธิทีดลอง
1.เขยีนโปรแกรมและสรา้ง Hex file
2. ทีเ่ครือ่งคอมพวิเตอร ์ตอ่สายอนุกรมจากพอรต์อนุกรมของเครือ่งคอมพวิเตอร ์(com1) ไปยงัพอรต์อนุกรม
ของบอรด์ Microcontroller (RS232) โดยใชส้ายและ connector ทีแ่จกใหเ้ทา่น ัน้ ท าการโหลดผา่น
โปรแกรม ลงไปยงับอรด์ Microcontroller
3. เมือ่load hex file ลงในบอรด์ microcontroller แลว้ ที ่computer เลอืก Accessories communications Hyper terminal ตัง้ชือ่ Lab10 เลอืก com1 ใชค้า่ bit/sec 9600 แลว้สัง่ run program
4. เมือ่ตอ้งการแกไ้ข program และ load hex file ลงในบอรด์ microcontroller อกีครัง้ ตอ้ง disconnect
Hyper terminal ตัง้คา่ mode ของ com1 ใหม ่แลว้จงึ connect Hyper terminal เพือ่ run program
การทดลองที ่10.1
สง่ขอ้มลูออกทาง Serial port
การทดลองที ่10.2
สง่และรับขอ้มลูทาง Serial port
การทดลองที ่10.3
สง่และรับขอ้มลูทาง Serial port โดยใช ้Interrupt
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
7
แบบฝึกหดั
ทดลองแกไ้ขขอ้มลูตามใจชอบ
จากโปรแกรมที ่10.3 ทดลองเปลีย่นคา่ Baud rate เป็น 57600 และ 600
ท าเสร็จแลว้รายงานตอ่อาจารยผ์ูส้อน ท ารายงานสง่
การทดลองที ่10.1
;FILENAME: LAB10_1.ASM
;DESCRIPTION:
;DATE: 04/02/2553
;NOTE: Transmit
;-------------------------------------------------------
; Main Program.
;-------------------------------------------------------------
ORG 0000H ; Reset
Vector
MAIN: MOV TMOD,#021H ; T1 8Bit
Auto, T0 16Bit
MOV TH1,#0FDH ; 9600 bps
Timer1 Default
MOV TL1,#0FDH ;
SETB TR1 ; Start Timer1
MOV SCON,#040H ; Mode1 RX
Disable
MOV DPTR,#SERIAL_TEXT ; Set
Pointer Serial TX
ACALL TX_TEXT ; TX Text to
Serial Port
MOV DPTR,#HELLO_TEXT ; Set
Pointer Serial TX
ACALL TX_TEXT ; TX
Text to Serial Port
AJMP $
;-------------------------------------------------------------
; TX Serial Text from ROM Pointer
;-------------------------------------------------------------
TX_TEXT: CLR TI ; Clear
TI
TX_LOOP: CLR A ; Clear ACC.
MOVC A,@A+DPTR ; Get Data
from ROM with Pointer
INC DPTR ; Increase
Pointer
CJNE A,#0,TX_CHAR ;
Check null terminated 000H Char.
RET ; End =>
Return
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์ 8
TX_CHAR: MOV SBUF,A ; Send Data
to SBUF
JNB TI,$ ; Wait until
TX already (TI=1)
CLR TI ; Clear TI
ACALL DELAY_100ms ; Delay each
character
AJMP TX_LOOP ;
Jump to TX_LOOP
;-------------------------------------------------------------
; Dummy Delay time 100m
;-------------------------------------------------------------
DELAY_100ms: MOV R7,#100
; Do 100 times
DELAY_100ms_1: MOV R6,#0E6H ; Each
loop = 1 ms
DELAY_100ms_2: NOP
NOP
DJNZ R6,DELAY_100ms_2
DJNZ R7,DELAY_100ms_1
RET
;-------------------------------------------------------------
;Define Constant < Store in Flash EEPROM
Program Memory >
;-------------------------------------------------------------
NULL EQU 0
SERIAL_TEXT: DB 00AH,00DH
DB 00AH,00DH
DB 'Serial UART Communication
< baudrate 9600bps > ',00AH,00DH
DB 'Kind friends and
companions, come join me in rhyme ',00AH,00DH
DB 'Come lift up your voices in
chorus with mine ',00AH,00DH
DB 'Come lift up your voices in
chorus with mine ', 00AH,00DH,NULL
HELLO_TEXT: DB 00DH,'For we may or might
never all meet here again .',00AH,00DH,NULL
END
การทดลองที ่10.2
;FILENAME: LAB10_2.ASM
;DESCRIPTION:
;DATE: 04/02/2553
;NOTE: Transmit and receive
;--------------------------------------------------------
; Define User Register
;-------------------------------------------------------------
BUFFER EQU 030H ;
Buffer
;-------------------------------------------------------------
; Main Program.
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์ 9
;-------------------------------------------------------------
ORG 0000H ; Reset Vector
MAIN: MOV TMOD,#021H ; T1 8Bit Auto, T0
16Bit
MOV TH1,#0FDH ; 9600 bps Timer1
Default
MOV TL1,#0FDH ;
SETB TR1 ; Start Timer1
MOV SCON,#040H ; Mode1 RX Disable
MOV DPTR,#SERIAL_TEXT ; Set Pointer
Serial TX
ACALL TX_TEXT ; TX Text to Serial
Port
MOV DPTR,#HELLO_TEXT ; Set Pointer
Serial TX
ACALL TX_TEXT ; TX Text to Serial
Port
START_LOOP: MOV R0,#BUFFER ; Clear
BUFFER to start pointer
SETB REN ; Set RX Enable
LOOP: JNB RI,$ ; Wait byte
received
CLR RI ;
MOV A,SBUF ; Get byte
from SBUF
MOV @R0,A ;
CJNE A,#00DH,RX_NEXT ; Check
Enter key receive?
MOV A,R0
CJNE A,#BUFFER,DATA_VALID ;
Check enter key only?
DATA_EMPTY: MOV DPTR,#NODATA_TEXT1
; Set Pointer Serial TX
ACALL TX_TEXT ; TX
Text to Serial Port
AJMP START_LOOP
DATA_VALID: MOV DPTR,#GOT_TEXT1 ; Set
Pointer Serial TX
ACALL TX_TEXT ; TX
Text to Serial Port
MOV A,R0 ; Keep end of
message pointer
MOV R0,#BUFFER ; Reset
Pointer
REPLY_LOOP: CLR TI ; Send reply
byte to PC
MOV SBUF,@R0 ; by get data from
BUFFER
JNB TI,$ ;
CLR TI ;
INC R0 ; Increase to next pointer
CJNE A,0,REPLY_LOOP ; Check end
of message already?
MOV DPTR,#GOT_TEXT2 ; Set Pointer
Serial TX
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์ 10
ACALL TX_TEXT ;TX Text to Serial
Port
AJMP START_LOOP
RX_NEXT: INC R0 ; Increase pointer
AJMP LOOP ; Back to do loop
;-------------------------------------------------------------
; TX Serial Text from ROM Pointer
;-------------------------------------------------------------
TX_TEXT: CLR TI ; Clear TI
TX_LOOP: CLR A ; Clear ACC.
MOVC A,@A+DPTR ; Get Data
from ROM with Pointer
INC DPTR ; Increase
Pointer
CJNE A,#0,TX_CHAR ;
Check null terminated 000H Char.
RET ; End => Return
TX_CHAR: MOV SBUF,A ; Send Data to SBUF
JNB TI,$ ; Wait until TX
already (TI=1)
CLR TI ; Clear TI
AJMP TX_LOOP ; Jump to
TX_LOOP
;-------------------------------------------------------------
;Define Constant < Store in Flash EEPROM
Program Memory >
;-------------------------------------------------------------
NULL EQU 0
SERIAL_TEXT: DB 00AH,00DH
DB 00AH,00DH
DB 'Serial UART Communication
< baudrate 9600bps > ',00AH,00DH
DB 'So here',027H,'s a health to
the company and one to my lass',00AH,00DH
DB 'Let',027H,'s drink and be
merry all out of one glass ',00AH,00DH
DB 'Let',027H,'s drink and be
merry all grief to refrain', 00AH,00DH,NULL
HELLO_TEXT: DB 'For we may or might never
all meet here again.',00AH,00DH
DB ' I',027H,'m waiting for a
message from you.',00AH,00DH
DB 'type any message then
press ENTER key.',00AH,00DH,NULL
NODATA_TEXT1: DB 'No more data
received',00AH,00DH,NULL
GOT_TEXT1: DB 'I',027H,'d got message
[',NULL
GOT_TEXT2: DB '] from
you.',00AH,00DH,NULL
END
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์
11
การทดลองที ่10.3
;FILENAME: LAB10_3.ASM
;DESCRIPTION:
;DATE: 04/02/2553
;NOTE:
;-------------------------------------------------------------
RX_OK BIT F0 ; Define bit to show
that receiving message is finished
;-------------------------------------------------------------
; Define User Register
;-------------------------------------------------------------
TX_DATA EQU 02FH ; For
keeping TX Data
BUFFER EQU 030H ;
Buffer
;-------------------------------------------------------------
; Main Program.
;------------------------------------------------------------
ORG 0000H ; Reset
Vector
AJMP MAIN ; Jump to
Main
ORG 0023H ; TI+RI
Vector
AJMP SER_INT ; Goto
Serial interrupt subroutine
MAIN: MOV TMOD,#021H ; T1 8Bit
Auto, T0 16Bit
MOV TH1,#0FDH ; 9600 bps
Timer1 Default
MOV TL1,#0FDH ;
MOV IE,#10010000B ; En.
EA, ES
SETB TR1 ; Start Timer1
MOV SCON,#050H ; Mode1 RX
Enable
CLR RX_OK ; Clear
RX_OK flag
MOV DPTR,#SERIAL_TEXT ; Set
Pointer Serial TX
ACALL TX_TEXT ; TX
Text to Serial Port
MOV DPTR,#HELLO_TEXT ; Set
Pointer Serial TX
ACALL TX_TEXT ; TX
Text to Serial Port
MOV R0,#BUFFER ; Clear
BUFFER to start pointer
REPLY_LOOP: JNB RX_OK,$
MOV DPTR,#GOT_TEXT1 ; Set
Pointer Serial TX
ACALL TX_TEXT ; TX
Text to Serial Port
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์ 12
ACALL TX_BUFFER ; TX Buffer to
Serial Port
MOV DPTR,#GOT_TEXT2 ; Set
Pointer Serial TX
ACALL TX_TEXT ; TX
Text to Serial Port
EXIT: AJMP REPLY_LOOP ; Back to
received next message
;-------------------------------------------------------------
; TX Serial Text from ROM Pointer
;-------------------------------------------------------------
TX_TEXT: CLR TI ; Clear TI
TX_TEXT_LOOP: CLR A ; Clear
ACC.
MOVC A,@A+DPTR ; Get Data
from ROM with Pointer
INC DPTR ; Increase
Pointer
CJNE A,#000H,TX_TEXT_CHAR ;
Check null terminated 000H Character.
RET ; End =>
Return
TX_TEXT_CHAR: MOV TX_DATA,A ; Send
Data to SBUF
SETB TI ; Set TI to
SER_INT subroutine
AJMP TX_TEXT_LOOP ; Wait
for TX
;-------------------------------------------------------------
; TX Buffer Text from Internal RAM
;-------------------------------------------------------------
TX_BUFFER: CLR TI ; Clear TI
MOV R0,#BUFFER ; Set BUFFER
to start pointer
TX_BUFFER_LOOP: MOV A,@R0 ; Get
Data from ROM with buffer offset
INC R0 ; Increase
buffer pointer
CJNE A,#00DH,TX_BUFFER_CHAR
; Check 0FFH End of Text Char.
CLR RX_OK ; Clear
RX_OK flag after TX all
RET ; End =>
Return
TX_BUFFER_CHAR: MOV TX_DATA,A ; Send
Data to SBUF
SETB TI ; Set TI to
SER_INT subroutine
AJMP TX_BUFFER_LOOP ; Wait
for TX
;-------------------------------------------------------------
; Serial interrupt subroutine
;-------------------------------------------------------------
SER_INT: PUSH ACC ; Push ACC.
to stack
JB RI, SER_RX ; RX or TX? If
RX then received and clear RI
SER_TX: CLR TI ; Clear
TI
MOV SBUF,TX_DATA
ปฏบิตักิาร วชิา ไมโครโปรเซสเซอร ์รายวชิา 303361
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์ 13
SER_TX_WAIT: JNB TI,$ ; Wait
until TX already (TI=1) then clear TI
SER_TX_EXIT: CLR TI
POP ACC ; Pop Acc. to
Stack
RETI ; Return
interrupt
SER_RX: CLR RI ; Clear RI
CLR RX_OK ; Clear
RX_OK flag
MOV A,SBUF ; Get data to
ACC.
MOV @R0,A ; Move to
Buffer @R0
INC R0 ; Increase R0
CJNE A,#00DH,SER_RX_EXIT
; Check 00DH End of Buffer text
SETB RX_OK ; Set RX_OK
received message ok.
SER_RX_EXIT: POP ACC ; Pop Acc. to
Main
RETI ; Return
interrupt
;-------------------------------------------------------------
;Define Constant < Store in Flash EEPROM
Program Memory >
;-------------------------------------------------------------
NULL EQU 0
SERIAL_TEXT: DB 00AH,00DH
DB 00AH,00DH
DB 'Serial UART Communication
< baudrate 19200bps > ',00AH,00DH
DB 'Our ship lies at anchor, she
is ready to dock ',00AH,00DH
DB 'I wish her safe landing
without any shock',00AH,00DH
DB 'And if ever I should meet
you by land or by sea', 00AH,00DH,NULL
HELLO_TEXT: DB 'I will always remember your
kindness to me. ',00AH,00DH
DB ' I',027H,'m waiting for a
message from you.',00AH,00DH
DB 'type any message then
press ENTER key.',00AH,00DH,NULL
NODATA_TEXT1: DB 'No more data
received',00AH,00DH,NULL
GOT_TEXT1: DB 'I',027H,'d got message
[',NULL
GOT_TEXT2: DB '] from
you.',00AH,00DH,NULL
END
การบา้น
1. จากการทดลอง 10.3 เขยีน code รับสง่ขอ้มลูโดยใช ้baud rate 300 และ 38400 (เขยีนเฉพาะสว่นทีต่อ้ง
แกไ้ข)
ปฏบิตักิาร วชิา การเชือ่มตอ่ไมโครคอมพวิเตอรแ์ละไมโครคอนโทรลเลอร ์รายวชิา 305381
ภาควชิาไฟฟ้าและคอมพวิเตอร ์คณะวศิวกรรมศาสตร ์มหาวทิยาลยันเรศวร
ดร. พรพศิทุธิ ์วรจรัินตน์ 14