Bài giảng vi xử lý Chương 5: Giao tiếp

Chuyển đổi Iout thành điện áp: trong trường hợp lý tưởng ta có thể kết nối ngõ ra chân

Ioutvới một điện trở để chuyển đổi thành điện áp. Tuy nhiên, trong thực tế do điện trở

ngõ vào của tải có thể ảnh hưởng đến điện áp ngõ ra khiến điện áp ngõ ra trở nên không

chính xác. Vì vậy, dòng ngõ ra được cách ly bằng cách kết nối chân dòng ngõ ra với một

OP-AMP với điện trở hồi tiếp Rf= 5KO(hình 5.43), tạo thành mạch chuyển đổi từ dòng

sang áp.

pdf39 trang | Chia sẻ: thienmai908 | Lượt xem: 1064 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng vi xử lý Chương 5: Giao tiếp, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
RS ; chọn chế độ gởi lệnh MOV DATA,#06H ; vị trí cursor tự động dịch sang phải khi có ; ký tự được gởi CLR E ; tạo cạnh xuống trên E LCALL WAIT_LCD ; chờ đến khi LCD hết bận RET Xóa màn hình hiển thị LCD CLR_LCD: SETB E CLR RS MOV DATA,#01H CLR E LCALL WAIT_LCD RET 25 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Ghi ra màn hình WRITE_TEXT: SETB E SETB RS MOV DATA,A CLR E LCALL WAIT_LCD RET Đặt cursor đúng vị trí - Tổ chức vùng nhớ hiển thị của LCD: Hình 5.29 - Trong bảng bộ nhớ trên, số được ghi trong mỗi ô là địa chỉ của bộ nhớ tương ứng với vị trí trên màn hình LCD. Muốn hiển thị một ký tự ở một vị trí bất kỳ (chứ không theo thứ tự từ kí tự thứ nhất ở góc trái phía trên) thì ta phải gởi lệnh “Set Cursor Position” (đặt vị trí cursor), giá trị của lệnh này là 80H. - Ví dụ, muốn đặt vị trí cursor ở hàng thứ 2, ký tự đầu tiên thì ta phải gởi lệnh “Set Cursor Position”, giá trị của lệnh này là 80H cộng với địa chỉ 40H, kết quả là C0H. SETB E CLR RS MOV DATA,#0C0H CLR E LCALL WAIT_LCD 4. Giao tiếp với ma trận LED 8x8 (8x8 DOT MATRIX) Hình 5.30 - Ma trận LED gồm 64 LED có thể sáng 2 màu xanh và đỏ, được bố trí theo ma trận 8x8. - Mỗi LED hai màu được tổ hợp từ hai LED đơn xanh và đỏ có chân Anode chung (DOTC), hai chân Cathode tương ứng với hai màu xanh (GREEN) và đỏ (RED). - Muốn LED tại tọa độ nào sáng, ta cung cấp mức logic 0 cho DOTCn và mức logic 1 cho GREENn hoặc REDn tương ứng. - Muốn hiển thị một kí tự lên ma trận LED ta lần lượt quét từng cột LED (bằng cách cho một cột tích cực, các cột còn lại không tích cực). Trong khi quét một cột, ta xuất mã quét 26 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp hàng tương ứng và tạo trễ một khoảng thời gian để LED ở toạ độ có hàng và cột tích cực sáng, sau đó tiếp tục quét sang cột kế cho đến khi quét hết tất cả các cột rồi lặp lại. Việc hiển thị toàn bộ kí tự trên ma trận LED là nhờ hiện tượng lưu ảnh. Ví dụ: Bảng mã chữ A khi quét từng cột: C2 H7 C6C4 H8 H5 H3 H1 C7 H6 C1 H4 H2 C8C5C3 Hàng 8→1 (tích cực mức 1) Cột (tích cực mức 0) BIN HEX 1 1 1 1 1 1 1 0 0 FCH 2 0 0 0 1 0 0 1 0 12H 3 0 0 0 1 0 0 0 1 11H 4 0 0 0 1 0 0 1 0 12H 5 1 1 1 1 1 1 0 0 FCH 6 0 0 0 0 0 0 0 0 00H 7 0 0 0 0 0 0 0 0 00H 8 0 0 0 0 0 0 0 0 00H Hình 5.31 IV. MỞ RỘNG PORT I/O Do 8051 chỉ có 4 port I/O và các port này cũng đồng thời có các chức năng đặc biệt khác như là đường địa chỉ, đường dữ liệu, ngõ vào/ra của các mạch chức năng đặc biệt, nên đối với những thiết kế lớn cần giao tiếp với nhiều I/O khác nhau thì việc mở rộng port I/O là rất cần thiết. 1. Sử dụng các IC giao tiếp nhập/xuất cơ bản Giao tiếp nhập cơ bản - Thường sử dụng các bộ đệm 3 trạng thái như hình vẽ sau: D0 D1 ĐẾN BUS DỮ LIỆU 8051 D2 0 74LS244 2 4 6 8 1 18 16 14 12 11 13 15 17 9 7 5 3 19 A1 A2 A3 A4 1OE Y1 Y2 Y3 Y4 A5 A6 A7 A8 Y5 Y6 Y7 Y8 2OE D3 SW DIP-8 /RD D4 VCC D5 CON8 1 2 3 4 5 6 7 8 /CS D6 10k x 8 1 23456789 D7 Hình 5.32 - Kết nối như trên cho phép vi xử lý đọc nội dung của 8 SW được nối vào bus dữ liệu khi tín hiệu chọn /CS ở mức logic 0 (tín hiệu này có thể là từ vi xử lý hoặc mạch giải mã địa chỉ) khi có lệnh truy xuất cổng nhập này. Bằng cách này ta có thể sử dụng nhiều bộ đệm để kết nối với nhiều thiết bị nhập khác nhau, mỗi thiết bị nhập có một địa chỉ nhất định, và việc chọn thiết bị truy xuất sẽ được thực hiện thông địa chỉ của thiết bị và mạch giải mã địa chỉ, hoặc có thể điều khiển trực tiếp từ các chân tín hiệu của vi xử lý. 27 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Giao tiếp xuất cơ bản - Thường sử dụng các mạch chốt như hình vẽ (dùng IC chốt là 74374) /WR TỪ BUS DỮ LIỆU 8051 D6 /CS 74LS374 3 4 7 8 13 14 17 18 1 11 2 5 6 9 12 15 16 19 D0 D1 D2 D3 D4 D5 D6 D7 OE CLK Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 D1 0 D0 D2 D3 D4 D5 D7 CON8 1 2 3 4 5 6 7 8 VCC Hình 5.33 - Các ngõ vào mạch chốt được lấy từ bus dữ liệu (từ vi xử lý). Khi có lệnh xuất ra cổng này thì tín hiệu chọn /CS sẽ xuống mức thấp để cho phép dữ liệu được chuyển qua mạch chốt và khi tín hiệu chọn /CS lên mức cao thì mạch chốt sẽ chốt lại, không cho dữ liệu đi qua. Tín hiệu chọn /CS có thể là từ mạch giải mã địa chỉ hoặc trực tiếp từ vi xử lý. - Một số IC chốt thông dụng khác: 74373, 74573, 4050 2. PPI 8255 PPI (Programmable Parallel Interface) 8255A là IC giao tiếp song song lập trình được. ƒ D0 ÷ D7: port dữ liệu (2 chiều) ƒ PA0 ÷ PA7: port A ƒ PB0 ÷ PB7: port B ƒ PC0 ÷ PB7: port C ƒ RD : ngõ nhận tín hiệu điều khiển đọc (read) ƒ WR : ngõ nhận tín hiệu điều khiển ghi (write) ƒ A1, A0: 2 bit địa chỉ chọn port làm việc A1 A0 Chọn 0 0 Port A 0 1 Port B 1 0 Port C 1 1 Thanh ghi điều khiển ƒ RESET: ngõ nhận tín hiệu reset (tích cực mức cao) ƒ CS : ngõ nhận tín hiệu chọn chip (tích cực mức thấp) Sơ đồ chân vi mạch: 28 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp 8255 34 33 32 31 30 29 28 27 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 RD WR A0 A1 RESET CS Hình 5.34 Sơ đồ khối chức năng của 8255A: Hình 5.35 Điều khiển hoạt động của PPI 8255A: - Để xác lập chế độ hoạt động của PPI 8255A, phải ghi giá trị từ điều khiển (control word) vào thanh ghi điều khiển (control register). Logic điều khiển đọc/ghi /RD /WR A0 A1 RST /CS Nhóm B port C (thấp) Nhóm B port B Nhóm A port C (cao) Nhóm A port A Đệm bus D Điều khiển nhóm A Điều khiển nhóm B PA0 ÷ PA7 PC4 ÷ PC7 PB0 ÷ PB7 PC0 ÷ PC3 D0 ÷D7 29 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp - Có 2 loại từ điều khiển cho PPI 8255A: ƒ Từ điều khiển định nghĩa cấu hình cho các port PA, PB, PC. Cách xác lập: D7 D6 D5 D4 D3 D2 D1 D0 Chọn Mode nhóm A 00: Mode 0 0: PA out 0: PCH out Chọn Mode nhóm B 0: PB out 0: PCL out 01: Mode 1 1: PA in 1: PCH in 0: Mode 0 1: PB in 1: PCL in 1 1x: Mode 2 1: Mode 1 ƒ Từ điều khiển lập/xoá bit ở port C (BSR): Từ điều khiển lập/xoá từng bit ở port C. Mỗi bit của port C có thể được set hay reset bằng cách ghi vào thanh ghi điều khiển giá trị thích hợp mà không làm ảnh hưởng đến chế độ làm việc của PPI 8255A đã xác lập trước đó. D7 D6 D5 D4 D3 D2 D1 D0 000: chọn PC0 001: chọn PC1 0: Reset … 1: set 0 x x x 111: chọn PC7 Ghi chú: Nhóm A: gồm PA và PCH (PC4 ÷PC7) Nhóm B: gồm PB và PCL(PC0 ÷PC3) Các chế độ làm việc (Mode) của PPI 8255A: ƒ Mode 0 (D7D6D5 = 100): Nhập/xuất cơ bản Trong chế độ này, các port PA, PB, PCH, PCL là các cổng nhập hoặc xuất. PA, PB, PC được sử dụng độc lập với nhau. PA, PB, PCH, PCL có thể là cổng nhập hay xuất tuỳ thuộc từ điều khiển ghi vào thanh ghi điều khiển. Dữ liệu ra được chốt. Dữ liệu vào không được chốt. ƒ Mode 1 (D7D6D5 = 101): Nhập/xuất có xung cho phép Trong chế độ này, mỗi port PA, PB có thể được định nghĩa thành các cổng xuất hoặc nhập với các tín hiệu bắt tay (handshaking) do các bit tương ứng của port C trong cùng nhóm đảm nhận. ƒ Mode 2 (D7D6D5 = 11x): Nhập/xuất 2 chiều Trong chế độ này, chỉ riêng port A có thể được định nghĩa thành các cổng nhập/xuất 2 chiều với các tín hiệu bắt tay do các bit của port C đảm nhận. Port B có thể làm việc trong chế độ 0 hoặc 1. ƒ Mode BSR: Lập/xoá từng bit cho port C bằng cách ghi từ điều khiển (của chế độ này) vào thanh ghi điều khiển. Ví dụ 5.16: Cho mạch như hình 5.36 a. Tìm địa chỉ được gán cho các port A, B, C, và thanh ghi điều khiển. b. Xác định giá trị của thanh ghi điều khiển để PA = out, PB = in, PC0-PC3 = in và PC4- PC7 = out. c. Viết chương trình nhận dữ liệu từ PB và gởi dữ liệu đó cho PA. Ngoài ra, dữ liệu từ PCL cũng được chuyển đến PCH. 30 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Hình 5.36 Giải a. Đây là I/O ánh xạ bộ nhớ, khi đường địa chỉ A14 ở mức cao (logic 1) thì chân /CS được tích cực. Giả sử tất cả các đường không quan tâm (A15 và A13÷A2) đều bằng 0 thì ta có địa chỉ các cổng và thanh ghi điều khiển như sau: /CS (/A14) A1 A0 Địa chỉ Port 0 0 0 4000 Port A 0 0 1 4001 Port B 0 1 0 4002 Port C 0 1 1 4003 Thanh ghi điều khiển b. Vì chỉ là nhập xuất cơ bản nên ta cho các cổng hoạt động ở Mode 0. D7 D6 D5 D4 D3 D2 D1 D0 Chế độ I/O nhóm A 00: Mode 0 0: PA out 0: PCH out nhóm B 0: Mode 0 1: PB in 1: PCL in 1 0 0 0 0 0 1 1 Giá trị của từ điều khiển: 10000011B hay 83H c. Chương trình: PORTA EQU 4000H PORTB EQU 4001H PORTC EQU 4002H CTRLPORT EQU 4003H CTRLBYTE EQU 83H MOV A,#CTRLBYTE ;PA = out, PB = in, PCH = out, PCL = in MOV DPTR,#CTRLPORT ;trỏ đến thanh ghi điều khiển MOVX @DPTR,A ;ghi dữ liệu vào thanh ghi điều khiển MOV DPTR,#PORTB ;đọc port B MOVX A,@DPTR MOV DPTR,#PORTA ;ghi ra port A MOVX @,DPTR 31 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp MOV DPTR,#PORTC ;đọc port C MOVX A,@DPTR ANL A,#0FH ;xóa 4 bit cao, chỉ giữ 4 bit thấp MOVX @DPTR,A ;ghi ra port C END V. GIAO TIẾP A/D – D/A 1. Giao tiếp với ADC a. ADC0804 - ADC0804 là thiết bị chuyển đổi tín hiệu tương tự (analog) thành tín hiệu số (digital) mã hoá 8 bit song song. - Thời gian chuyển đổi dữ liệu từ tương tự sang số phụ thuộc vào nguồn clock cấp cho chân CLK IN và thường trong khoảng thời gian 100μs. - Mô tả các chân của ADC0804: + CS: chân chọn chip + RD : ngõ vào đọc dữ liệu từ ADC. + WR : cho phép ADC0804 bắt đầu quá trình chuyển đổi. Khi việc biến đổi hoàn tất, ADC0804 xác lập chân INTR xuống mức thấp. + CLK IN và CLK R: CLK IN là chân ngõ vào được kết nối với nguồn clock ngoài khi định thì dùng clock ngoài. Để sử dụng bộ tạo clock nội bên trong có sẵn của ADC0804, các chân CLK IN và CLK R phải kết nối với một tụ điện và điện trở như hình 5.37õ. Trong trường hợp này, tần số của clock được xác định theo f = 1/(1.1RC). + INTR : là chân ngõ ra báo hiệu kết thúc việc chuyển đổi dữ liệu. Khi chân này xuống mức thấp, ta cho CS = 0 và gởi một xung cạnh xuống trên chân RD để đọc dữ liệu từ ADC. + VIN(+) và VIN(-): là các ngõ vào tương tự. Điện áp ngõ vào tương tự chính là điện áp sai biệt đặt trên hai chân này. Thông thường, VIN(-) được nối đất và tín hiệu điện áp tương tự cần chuyển đổi được đưa vào chân VIN(+). + VCC: chân nguồn +5V. Chân này cũng được sử dụng như là một điện áp tham chiếu khi chân Vref/2 hở (không kết nối). + Vref/2: ngõ vào điện áp chuẩn cho phép chỉnh thang đo. Vref/2 (V) Vin (V) Độ phân giải (mV) Không kết nối 0 đến 5 5/256 = 19.53 2.0 0 đến 4 4/256 = 15.62 1.5 0 đến 3 3/256 = 11.71 1.28 0 đến 2.56 2.56/256 = 10 + D0 – D7: 8 bit dữ liệu số ngõ ra. Đây là các bộ đệm 3 trạng thái và dữ liệu được chuyển đổi chỉ được truy xuất khi CS = 0 và RD xuống mức thấp. Để tính điện áp ngõ ra, ta sử dụng công thức: Dout = Vin / Độ phân giải với Dout là ngõ ra dữ liệu số (thập phân), Vin là điện áp tương tự ngõ vào. 32 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Hình 5.37 Ví dụ 5.17: Cho ADC0804 kết nối với 8051 như hình 5.37. Trong đó RD nối với P2.5, WR nối với P2.6, INTR nối với P2.7, CS nối mass, D0-D7 nối với P1.0-P1.7, Vref/2 = 1.28V. Chương trình sau sẽ kiểm tra chân INTR và đọc dữ liệu tương tự vào thanh ghi A. Sau đó nó gọi các chương trình con chuyển đổi từ mã HEX sang mã ASCII và hiển thị dữ liệu. RD BIT P2.5 ;/RD WR BIT P2.6 ;/WR (bắt đầu chuyển đổi) INTR BIT P2.7 ;kết thúc chuyển đổi MYDATA EQU P1 ;D0-D7 33 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp MOV P1,#0FFH SETB INTR BACK: CLR WR ;tạo cạnh lên SETB WR JB INTR,$ ;chờ cho đến khi kết thúc chuyển đổi CLR RD ;kết thúc chuyển đổi, cho phép RD MOV A, MYDATA ;đọc dữ liệu ACALL CONVERSION ACALL DATA_DISPLAY SETB RD ;chuẩn bị cho lần đọc kế tiếp SJMP BACK b. ADC0809 - ADC0809 là thiết bị chuyển đổi tín hiệu tương tự (analog) thành tín hiệu số (digital) mã hoá 8 bit, multiplex 8 kênh và tương thích với bộ vi xử lý. ADC0809 dùng kỹ thuật chuyển đổi A/D xấp xỉ liên tiếp. - Sơ đồ chân và sơ đồ khối: ADC0809 10 9 7 17 14 15 8 18 19 20 21 6 22 11 12 16 26 27 28 1 2 3 4 5 25 24 23 CLK OE EOC D0 D1 D2 D3 D4 D5 D6 D7 START ALE VCC REF+ REF- IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 A0 A1 A2 Hình 5.38 Hình 5.39 - Khả năng: 34 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp + Giao tiếp dễ dàng với tất cả các bộ vi xử lý. + Hoạt động với thang đo tỷ lệ với 5VDC hoặc điện áp chuẩn có thể điều chỉnh được. + Không cần chỉnh không hay toàn thang (full-scale). + Multiplex 8 kênh với địa chỉ logic. + Tầm điện áp vào 0-5V với nguồn cung cấp đơn 5V. + Ngõ ra phù hợp với mức điện áp TTL. + Độ phân giải: 8 bit + Sai số không điều chỉnh được tổng cộng: ±1 LSB. + Nguồn cung cấp đơn: 5VDC. + Công suất thấp: 15mW. + Thời gian chuyển đổi: khoảng 100μs. - Đặc tính kỹ thuật: Ký hiệu Thông số Điều kiện Tối thiểu Điển hình Tối đa Đơn vị VREF+ Điện áp cao nhất của thang đo VCC VCC +0.1 V VREF- Điện áp thấp nhất của thang đo -0.1 0 V IIN Dòng vào fCLK = 640Khz -2 ±0.5 2 μA VIN(1) Điện áp vào logic 1 VCC –1.5 V VIN(0) Điện áp vào logic 0 1.5 V VOUT(1) Điện áp ra logic 1 IOUT = -360μA VCC –0.4 V VOUT(0) Điện áp ra logic 0 IOUT = 1.6mA 0.45 V fCLK Tần số xung clock 10 640 1280 Khz tEOC Thời gian delay EOC (Xem giản đồ xung) 0 8 + 2μs Chu kỳ clock tC Thời gian biến đổi fCLK = 640Khz 90 100 116 μs tWS Độ rộng xung Start tối thiểu (Xem giản đồ thời gian) 100 200 ns tALE Độ rộng xung ALE tối thiểu (Xem giản đồ thời gian) 100 200 ns - Mô tả chức năng: + Mạch chọn kênh (multiplexer) + Mỗi kênh ngõ vào riêng biệt được chọn bằng cách giải mã địa chỉ theo bảng sau: Địa chỉ Kênh analog được chọn A2 A1 A0 IN0 0 0 0 IN1 0 0 1 … IN7 1 1 1 + Địa chỉ được chốt vào bộ giải mã bên trong tại cạnh lên của xung chốt địa chỉ (ALE). - Đặc tính chuyển đổi: Thanh ghi xấp xỉ liên tiếp (SAR – Successive Approximation Register) của bộ biến đổi A/D được reset tại cạnh lên của xung Start. Việc chuyển đổi được bắt đầu 35 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp tại cạnh xuống của xung Start. Quá trình chuyển đổi sẽ bị ngắt nếu nhận một xung Start mới. Sự chuyển đổi liên tiếp có thể được thực hiện bằng cách nối ngõ ra của EOC (End Of Convert – Kết thúc chuyển đổi) vào ngõ Start. Nếu sử dụng ở chế độ này, một xung Start bên ngoài phải được cung cấp sau khi bật nguồn. Xung EOC sẽ xuống mức thấp sau cạnh lên của xung Start từ 0 đến 8 xung clock và lên mức cao khi việc chuyển đổi đã xong. - Giản đồ thời gian: Hình 5.40 - Biểu thức chuyển đổi: Dữ liệu ngõ ra ADC là một số nguyên N nằm trong tầm: đốituyệt xác chính Độ±×+ −= −+ − 256 REFREF REFIN VV VVN Ví dụ 5.18: (kết nối như hình vẽ 5.41) Xác định địa chỉ của các kênh analog. Giải Một tập địa chỉ có thể của các kênh: IN0 8000H IN1 8001H IN2 8002H IN3 8003H IN4 8004H IN5 8005H IN6 8006H IN7 8007H 36 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp P1.0 ADC0809 10 9 7 17 14 15 8 18 19 20 21 6 22 11 12 16 26 27 28 1 2 3 4 5 25 24 23 CLK OE EOC D0 D1 D2 D3 D4 D5 D6 D7 START ALE VCC REF+ REF- IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 A0 A1 A2 A1/CS: 8000H-9FFFH /RD A0 /CS A2 Hình 5.41 Giải thuật điều khiển đọc ADC EXIT Chọn kênh Analog ngõ vào Tạo xung ALE cho phép chốt địa chỉ Tạo xung START cho phép bắt đầu biến đổi Chờ biến đổi xong Đọc dữ liệu ở ngõ ra BEGIN 2. Giao tiếp với DAC0808 - Biến đổi giá trị số thành giá trị tương tự (áp hoặc dòng). Hình 5.42 37 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp - Trong DAC0808 (hay MC1408) các ngõ vào số được chuyển đổi thành dòng (Iout) và bằng cách nối một điện trở đến chân Iout, ta đổi thành điện áp ra. Dòng tổng cung cấp cho chân Iout là một hàm của các số nhị phân tại các ngõ vào A0 đến A7 và dòng tham chiếu (Iref) như sau: ⎟⎠ ⎞⎜⎝ ⎛ +++++++= 256 0 128 1 64 2 32 3 16 4 8 5 4 6 2 7 AAAAAAAAII refout với Iref là dòng vào chân 14. Iref thường được cài đặt ở 2mA. - Chuyển đổi Iout thành điện áp: trong trường hợp lý tưởng ta có thể kết nối ngõ ra chân Iout với một điện trở để chuyển đổi thành điện áp. Tuy nhiên, trong thực tế do điện trở ngõ vào của tải có thể ảnh hưởng đến điện áp ngõ ra khiến điện áp ngõ ra trở nên không chính xác. Vì vậy, dòng ngõ ra được cách ly bằng cách kết nối chân dòng ngõ ra với một OP-AMP với điện trở hồi tiếp Rf = 5KΩ (hình 5.43), tạo thành mạch chuyển đổi từ dòng sang áp. Hình 5.43 Ví dụ 5.19: Viết đoạn chương trình gởi dữ liệu đến DAC (được kết nối với P1) để tạo điện áp ngõ ra dạng hình bậc thang. CLR A AGAIN: MOV P1,A ;gởi dữ liệu đến DAC INC A ;đếm từ 0 đến FFH ACALL DELAY ;chờ DAC chuyển đổi SJMP AGAIN Ví dụ 5.20: Viết chương trình tạo sóng sine thông qua DAC (được kết nối với P1). Để tạo một sóng sine, ta lập bảng biểu diễn giá trị của sóng sine theo góc quay θ trong khoảng từ 0 đến 360 độ. Giá của hàm sine thay đổi từ –1.0 đến 1.0 khi góc θ thay đổi từ 0 đến 360 độ. Giả sử điện áp toàn thang cho ngõ ra của DAC là 10V, ta có ngõ ra Vout được tính theo công thức: )sinV(VVout θ×+= 55 Và giá trị nhị phân tương ứng cần đưa đến DAC là : 625256 10 256 .V V V V N out out thang toàn out ×=×=×= Bảng sau cho giá trị của Vout và N theo góc θ, với góc θ thay đổi mỗi lần là 30 độ. 38 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Góc θ (độ) Sinθ Vout N 0 0 5 128 30 0.5 7.5 192 60 0.866 9.33 238 90 1.0 10 255 120 0.866 9.33 238 150 0.5 7.5 192 180 0 5 128 210 -0.5 2.5 64 240 -0.866 0.669 17 270 -1.0 0 0 300 -0.866 0.669 17 330 -0.5 2.5 64 360 0 0 128 COUNT EQU 12 AGAIN: MOV DPTR,#TABLE MOV R2,#COUNT BACK: CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR DJNZ R2,BACK SJMP AGAIN ORG 300 TABLE: DB: 128,192,238,255,238,192,128,64,17,0,17,64,128 Muốn tạo được sóng sine nhuyễn hơn ta giảm bước nhảy của góc θ, từ đó ta có một bảng chuyển đổi mới. Thông thường, ở ngõ ra của OP-AMP ta gắn thêm một mạch lọc thông thấp để lọc phẳng. 39

Các file đính kèm theo tài liệu này:

  • pdfCh5.pdf
Tài liệu liên quan