Để kớch hoạt tớnh năng giao tiếp nối tiếp UART thành cụng, điều cần thiết để đỏp ứng cỏc quy định cụ thể của chuẩn RS232. Nú chủ yếu đề cập đến cỏc cấp điện ỏp theo yờu cầu của chuẩn nàỵ Theo đú,-10V đến -3V là mức logic một (1) trong thụng điệp, trong khi 3V đến 10 V là mức logic khụng (0). Cỏc vi điều khiển chuyển đổi chớnh xỏc dữ liệu về định dạng nối tiếp, nhưng nguồn cung cấp điện ỏp chỉ 5V. Từ đú, khụng phải dễ dàng để chuyển đổi 0V thành 10V và 5V thành -10V, Hoạt động này trờn cả đường truyền và đường nhận dữ liệụ Ở đõy, MAX232 của Maxim được sử dụng bởi vỡ nú được phổ biến rộng rói, rẻ và đỏng tin cậỵ
Vớ dụ này cho thấy làm thế nào để nhận được thụng điệp gửi từ PC. Timer T1 tạo tốc độ baud. Từ khi thạch anh 11,0592 MHz được sử dụng, rất dễ dàng để cú được tiờu chuẩn tốc độ truyền mà tốc độ baud là 9600 bps. Mỗi dữ liệu nhận được ngay lập tức được chuyển ra P1.
;************************************************************************ ;* PROGRAM NAME : UartR.ASM
;* DESCRIPTION: Each data received from PC via UART appears on the port ;* P1.
;*
Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 162 ;BASIC DIRECTIVES $MOD53 $TITLE(UARTR.ASM) $PAGEWIDTH(132) $DEBUG $OBJECT $NOPAGING ;STACK DSEG AT 03FH STACK_START: DS 040H ;RESET VECTORS CSEG AT 0
JMP XRESET ; Reset vector
ORG 023H ; Starting ađress of ;UART interrupt routine JMP IR_SER
ORG 100H
XRESET: MOV IE,#00 ; All interrupts are disabled MOV SP,#STACK_START ; Initialization of Stack pointer MOV TMOD,#20H ; Timer1 in mode2
MOV TH1,#0FDH ; 9600 baud rate at the frequency of ; 11.0592MHz
MOV SCON,#50H ; Receiving enabled, 8-bit UART MOV IE,#10010000B ; UART interrupt enabled
CLR TI ; Clear transmit flag CLR RI ; Clear receive flag SETB TR1 ; Start Timer1
LOOP: SJMP LOOP ; Remain here
IR_SER: JNB RI,OUTPUT ; If any data is received, ; move it to the port MOV A,SBUF ; P1
MOV P1,A
CLR RI ; Clear receive flag OUTPUT: RETI
END ; End of program