giao tiếp máy tính

19 430 0
giao tiếp máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài 6: Giao tiếp máy tính Nội dung  Khối USART  Ứng dụng giao tiếp vi điều khiển với máy tính USART  Universal Synchronous Asynchronous Receiver Transmitter  Synchronous: giao tiếp với các thiết bị ngoại vi như các IC A/D, D/A, EEPROMs  Asynchronous: giao tiếp với máy tính PC USART trong PIC16F877A 5 thanh ghi quan trọng:  2 thanh ghi chức năng TXSTA, RCSTA  2 thanh ghi dữ liệu RCREG, TXREG  Thanh ghi tốc độ Baud: SPBRG TXSTA CSRC: Clock Source Select bit Chế độ bất đồng bộ: không quan tâm Chế độ đồng bộ: 1->chế độ Master( clock từ BRG) 0->chế độ Slave( clock từ bên ngoài) TX9 : 9-bit Transmit Enable bit: chọn chế độ truyền 9 bit: ( =1: 9 bit, =0: 8 bit ) TXEN : Transmit Enable bit =1: cho phép truyền , =0: cấm SYNC : USART Mode Select bit Chọn chế độ truyền đồng bộ hay không đồng bộ( =1: đồng bộ, =0: không đồng bộ ) BRGH : High Baud Rate Select bit Chỉ hoạt động ở chế độ bất đồng bộ: chọn tốc độ cao hay thấp ( =1 HIGH, =0: LOW ) TRMT : Transmit Shift Register Status bit bít báo trạng thái của bộ đệm: =1: TSR rỗng( dữ liệu đã được truyền xong ), =0: TSR đầy ( dữ liệu còn trong bộ đệm của UART ) TX9D : 9th bit of Transmit Data, can be Parity bit giá trị của bít thứ 9 trong chế độ truyền 9 bit. RCSTA Bit 7 SPEN Serial Port Enable bit( = 1 Cho phép cổng giao tiếp USART ) Bit 6 RX9 9-bit Receive Enable bit( = 1 nhận 9 bit dữ liệu, = 0 nhận 8 bit dữ liệu) Bit 5 SREN Single Receive Enable bit Ỡ chế độ USART bất đồng bộ: bit này không cần quan tâm. Ở chế độ USART Master đồng bộ:( = 1 cho phép chức năng nhận 1 byte dữ liệu (8 bit hoặc 9 bit)) Bit 4 CREN Continous Receive Enable bit Ở chế độ bất đồng bộ:( = 1 cho phép nhận 1 chuỗi dữ liệu liên tục) Ở chế độ đồng bộ:(= 1 cho phép nhận dữ liệu cho tới khi xóa bit CREN, = 0 không cho phép nhận chuỗi dữ liệu) Bit 3 ADDEN Address Detect Enable bit Ở chế độ USART bất đồng bộ 9 bit ADDEN = 1 cho phép xác nhận địa chỉ, khi bit RSR<8> được set thì ngắt được cho phép thực thi và giá trị trong buffer được nhận vào. ADDEN = 0 không cho phép xác nhận địa chỉ, các byte dữ liệu được nhận vào và bit thứ 9 có thể được sử dụng như là bit parity. Bit 2 FERR Framing Eror bit( = 1 xuất hiện lỗi “Framing- sai bit Stop” trong quá trình truyền nhận dữ liệu Bit 1 OERR Overrun Error bit(= 1 xuất hiện lỗi “Overrun- tràn”) Bit 0 RX9D Bit này chứa bit dữ liệu thứ 9 của dữ liệu truyền nhận TXREG , RCREG , SPBRG TXREG: chứa dữ liệu truyền đi trong quá trình truyền RCREG: lưu dữ liệu từ ngoài vào trong quá trình nhận SPBRG: thiết lập tốc độ baud (BRGH=0) ( BRGH=1 ) Quá trình truyền và nhận Quá trình nhận dữ liệu : Nhận biết lúc nào có dữ liệu truyền tới:  Kiểu Polling: liên tục kiểm tra cờ RCIF( thanh ghi PIR1) nếu =1 thì đọc dữ liệu  Kiểu dùng ngắt: được thiết lập bằng cách cho RCIE= 1 để cho phép ngắt. Tức là mỗi khi có dữ liệu truyền tới RCREG thì sinh ra một ngắt 1. Khởi tạo tốc độ baud: ở thanh ghi SPBRG. 2. Cho phép quá trình truyền không đồng bộ bắng cách thiết lập SPEN = 1, SYNC= 0 3. Cho phép ngắt quá trình nhận dữ liệu: RCIE=1 4. Cho phép nhận dữ liệu : CREN = 1 5. Cho phép ngắt toàn cục băng việc GIE =1, PEIE = 1 ( GIE, PEIE trong thanh ghi INTCON ) 6. Xử lý các phần khác chương trình khi có ngắt xảy ra thì xử lý dữ liệu Quá trình truyền và nhận 1. Khởi tạo tốc độ baud: ở thanh ghi SPBRG 2. Cho phép quá trình truyền không đồng bộ bắng cách thiết lập SPEN = 1, SYNC= 0 3. Cho phép truyền dữ liệu bằng cách thiết lập bít TXEN = 1 4. Khi cần truyền dữ liệu chỉ cần Load dữ liệu đó lên TXREG Quá trình truyền dữ liệu CCS [...]... được nhận - - setup_uart(baud, stream) setup_uart(baud) set_uart_speed (baud, [stream, clock]) perror(string); Bài toán Chương trình chính S Kbhit() Đ Đọc giá trị từ cổng Com Đẩy ra PORTD Đẩy data lên máy tính #include #include #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)... rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) char h_thi; void main() {trisd=0x00;//dau ra portd=0x00;//ban dau led tat while(true) { if(kbhit()){ h_thi=getc(); portd=h_thi; putc(h_thi); }; } } Bài toán Truyền 1 số có 3 chữ số ( < 256) từ máy tính xuống Vi điều khiển nhận và hiển thị giá trị nhận được lên các led ở portd Chẳng hạn: Ta truyền số 255 thì tất cả các led ở portd đều sáng . Bài 6: Giao tiếp máy tính Nội dung  Khối USART  Ứng dụng giao tiếp vi điều khiển với máy tính USART  Universal Synchronous Asynchronous Receiver Transmitter  Synchronous: giao tiếp. Synchronous: giao tiếp với các thiết bị ngoại vi như các IC A/D, D/A, EEPROMs  Asynchronous: giao tiếp với máy tính PC USART trong PIC16F877A 5 thanh ghi quan trọng:  2 thanh ghi chức năng TXSTA,. thứ 9 trong chế độ truyền 9 bit. RCSTA Bit 7 SPEN Serial Port Enable bit( = 1 Cho phép cổng giao tiếp USART ) Bit 6 RX9 9-bit Receive Enable bit( = 1 nhận 9 bit dữ liệu, = 0 nhận 8 bit dữ liệu) Bit

Ngày đăng: 03/07/2014, 22:59

Từ khóa liên quan

Mục lục

  • Bài 6: Giao tiếp máy tính

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

Tài liệu cùng người dùng

Tài liệu liên quan