Luận văn Thiết kế mô hình Voltmet điện tử hiển thị bằng màn hình máy tính

doc 22 trang yendo 7660
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Thiết kế mô hình Voltmet điện tử hiển thị bằng màn hình máy tính", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docluan_van_thiet_ke_mo_hinh_voltmet_dien_tu_hien_thi_bang_man.doc

Nội dung text: Luận văn Thiết kế mô hình Voltmet điện tử hiển thị bằng màn hình máy tính

  1. Luận văn Thiết Kế Mô Hình Voltmet Điện Tử Hiển Thị Bằng Màn Hình Máy Tính
  2. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. LỜI MỞ ĐẦU Ngày nay, các vi điều khiển đã thâm nhập vào mọi lĩnh vực của đời sống từ dân sự, quân sự đến an ninh quốc phòng, có mặt trong hầu hết các ứng dụng hàng ngày từ những thiết bị nhỏ như điện thoại di động, máy bay, trò chơi điện tử, các thiết bị gia dụng( máy giặt, điều hòa, tủ lạnh ) đến những thiết bị lớn như ô tô, tàu thủy, xe lửa, máy bay, hệ thống mạng điện thoại, các bộ điều khiển tự động trong nhà máy, các bộ điều chỉnh trong nhà máy điện hạt nhân, trong các hệ thống điều khiển ánh sang ngoài đường Với sự giảng dạy của thầy Phạm Văn Chiến chúng em đã được tiếp xúc với môn ghép nối máy tính. Để đưa kiến thức học được trên lớp vào thực tế, và để hiểu rõ hơn về kiến thức môn học, nhóm chúng em xin làm đề tài số 26 : “Thiết Kế Mô Hình Voltmet Điện Tử Hiển Thị Bằng Màn Hình Máy Tính”. Song đây là lần đầu tiên nhóm làm đề tài môn Vi Điều Khiển nên nhóm đã gặp không ít những khó khăn trong quá trình làm đề tài. Nhưng với những kiến thức dạy trên lớp và kết hợp với thời gian thực hành nhóm đã được thầy Nguyễn Văn Tùng và thầy Phạm Văn Chiến tận tình hướng dẫn, giải đáp những vướng mắc của nhóm nên nhóm đã hoàn thành được đề tài của mình. Chúng em xin chân thành cảm ơn các thầy! Tuy đã hoàn thành được đề tài nhưng sẽ không tránh khỏi những thiếu sót , vì vậy nhóm xin được sự góp ý của các thầy và các bạn để đề tài của nhóm có thể hoàn thiện hơn. Một lần nữa chúng em xin cảm ơn các thầy và các bạn! Đề Tài Gồm 3 Phần: Phần 1: Cấu Trúc Vi Điều Khiển 8051. Phần 2: Thiết Kế Voltmet Điện Tử Dùng AT89S52. Phân 3: Ưu, Nhược Điểm và Hướng Phát Triển. Nhóm Sinh viên thực hiện: Phùng Xuân Quân. Lê Văn Quảng. Lớp: CĐ Điện Tử 3 K10. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 2 -
  3. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. Phần I: Cấu Trúc Vi Điều Khiển 8051. 1. Giới Thiệu Tổng Quan Về Họ 8051( AT89S52). Họ vi điều khiển 8051( còn gọi là C51) là một trong những họ vi điều khiển thông dụng nhất. Đây là các bộ vi điều khiển 8 bit được sản xuất theo công nghệ CMOS. Một số loại điều khiển thuộc họ 8051 thông dụng nhất: AT89C2051, AT89C4051, AT89C51, AT89S52 . Trong đó AT89S52 là một bộ vi điều khiển thông dụng giá rẻ, có nhiều chức năng và đặc biệt có tích hợp sẵn bộ nạp trên chíp. Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây: CPU(Central Processing Unit) bao gồm: -Thanh ghi tích lũy A. -Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia. -Đơn vị logic học( ALU: Arithmetic Logic Unit). -Thanh ghi từ trạng thái chương trình( PSW: Program Status Word). -4 băng thanh ghi. -Con trỏ ngăn xếp. Bộ nhớ chương trình( Bộ nhớ ROM) 8Kb Flash. Bộ nhớ dữ liệu gồm 256 bytes. Bộ UART( Universal Ansynchronous Receiver and Tranmitter) làm chức năng truyền nhận nối tiếp, nhờ khối này, AT89S52 có thể giao tiếp với máy tính qua cổng COM. 3 bộ Timer/Counter 16 bit thực hiện các chức năng định thời và đếm sự kiện. WDT( Watch Dog Timer) được dùng để phục hồi lại hoạt động của CPU khi nó bị treo bởi một nguyên nhân nào đó. WDT ở AT89S52 gồm 1 bộ Timer 14 bit, một bộ Timer 7 bit, thanh ghi WDTPRG( WDT Program) điều khiển Timer 7 bit và 1 thanh ghi chức năng WDTRST( WDT Register). Bình thường WDT không hoạt động( bị cấm), để cho phép WDT, các giá trị 1EH và E1H cần phải cần phải được ghi liên tiếp vào thánh ghi WDTRSRT. Timer 14 bit của WDT sẽ đếm tăng dần sau mỗi chu kỳ máy, cho đến giá trị 16383 thì xẩy ra tràn, chân RST sẽ được đặt ở mức cao trong thời gian 96Tosc và AT89S52 sẽ được reset. Khi WDT hoạt động, ngoại trừ reset phần cứng và do reset WDT tràn thì không có cách nào cấm được WDT, vì vậy khi sử dụng WDT thì các đoạn mã chương trình phải được đặt trong các khe thời gian từ giữa các lần WDT được khởi tạo lại. 2. Sơ Đồ Chân Và Chức Năng. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 3 -
  4. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. - Port 0 (P0.0 – P0.7). Port 0 gồm 8 chân, ngoài chức năng xuất nhập, Port 0 còn là bus đa hợp dữ liệu và địa chỉ (AD0-AD7), chức năng này sẽ được sử dụng khi AT89S52 giao tiếp với thiết bị ngoài có kiến trúc Bus như địa vị các mạch nhớ, - Port 1 (P1.0 – P1.7). Đối với họ 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác, Port 1 có thể xuất nhập theo bit và theo byte. Riêng dòng 89Sxx, ba chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP, hai chân P1.0 và P1.1 được dùng cho bộ Timer 2. - Port 2 (P2.0 – P2.7). Port 2 ngoài chức năng là cổng vào/ra như Port 0 và Port 1 còn là byte cao của địa chỉ khi sử dụng bộ nhớ ngoài. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 4 -
  5. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. - Port 3 (P3.0 – P3.7). Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng cụ thể như sau: Bit Tên Chức năng P3.0 RXD Dữ liệu nhận cho Port nối tiếp P3.1 TXD Dữ liệu truyền cho Port nối tiếp P3.2 INT0 Ngắt bên ngoài 0 P3.3 INT1 Ngắt bên ngoài 1 P3.4 T0 Ngõ vào của Timer/counter 0 P3.5 T1 Ngõ vào của Timer/counter 1 P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài - Chân /PSEN (program Store Enable ). /PSEN là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nối với chân /OE để cho phép đọc các byte mã lệnh trên ROM ngoài. /PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh. Mã lệnh được đọc từ bộ nhớ ngoài qua bus dữ liệu (Port 0) thanh ghi lệnh để được giải mã. Khi thực hiện chương trình trong ROM nội thì /PSEN ở mức cao. - Chân ALE (Address Latch Enable ). ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động cung cấp cho vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 74373, 74375 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ liệu (P0). - Chân /EA (External Access ). Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài của vi điều khiển. Nếu /EA ở mức cao (nối với Vcc), thì vi điều khiển thi hành chương trình trong ROM nội. Nếu /EA ở mức thấp (nối GND) thì vi điều khiển thi hành chương trình từ bộ nhớ ngoài. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 5 -
  6. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. - RST (Reset). Ngõ vào RST trên chân 9 là ngõ reset của chíp. Khi tín hiệu này được đưa lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong bộ vi điều khiển được tải những giá trị thích hợp để khởi động hệ thống. - XTAL1, XTAL2. AT89S52 có một bộ dao động trên chíp, nó thường được nối với bộ dao động thạch anh có tần số lớn nhất là 33MHz, thông thường là 12MHz. - VCC, GND. AT89S52 dùng nguồn một chiều có dải điện áp từ 4V đ ến 5,5V được cấp qua chân 40 và 20, trong đó: Chân 40 nối với nguồn nuôi 5V và chân 20 nối Mass. Phần II: Thiết Kế Volmet Dùng AT89S52. 1. Thiết Kế Phần Cứng. Sơ Đồ Nguyên Lý Điện áp cần đo được đi qua các cầu phân áp điện trở thích hợp đến chuyển Mạch Xoay. Chuyển Mạch Xoay là chuyển mạch đối xứng. Có chức năng vừa đưa điện áp cần đo với thang đo thích hợp vào chân Vin+ của ADC 0804, vừa báo cho VĐK biết chuyển mạch đang ở thang đo nào để thực hiện nhân với hệ số biến đổi ADC tương ứng ở thang đó. VĐK đọc dữ liệu từ ADC 0804 xử lý và gửi kết quả lên máy tính. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 6 -
  7. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. Mạch In 1.1. Khối Nguồn. Có chức năng ổn định điện áp ra ở mức 5VDC ổn định để nuôi mạch. Gồm các linh kiện: +Tụ Điện để lọc nhiễu tần số thấp và cao bám vào đường nguồn. +Điện Trở và Led để báo có nguồn. +IC7805 để ổn định điện áp ra ở 5VDC. +Diode để bảo vệ mạch khi cắm nhầm chiều điện áp vào. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 7 -
  8. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. 1.2. Khối Ghép Nối Với Máy Tính. Gồm cổng Nối Tiếp(com) và Max232 giúp Máy Tính và VĐK giao tiếp được với nhau. 1.4.1. Cổng Nối Tiếp.  Các Phương Thức Truyền Tin Nối Tiếp: + Phương thức đồng bộ : Các byte chứa các bít thông tin được truyền liên tiếp trên đường truyền và chỉ được ngăn cách( phân biệt ) nhau bằng bit đồng bộ khung (sync) . + Phương thức không đồng bộ : Các byte chứa các bít thông tin được chứa trong một khung. Một khung bắt đầu bằng 1 bit start, tiếp theo là các bit mang thông tin, kế tiếp là các bit kiểm tra chẵn lẻ và kết thúc là bit stop. Khoảng cách giữa các khung là các bit dừng bất kỳ, khi đó dường truyền được đẩy lên mức cao. + Phương thức lai : Đây là phương thức kết hợp của hai phương thức trên, trong đó các bit trong một khung được truyền theo phương thức không đồng bộ còn các byte được truyền theo phương thức đồng bộ.  Cấu tạo và các thanh ghi : Cổng nối tiếp RS232 là một loại giao tiếp phổ biến rộng rãi nhất, ta còn gọi là cổng COM1, COM2 để phục vụ cho các ứng dụng khác nhau. Giống như cổng máy in, cổng nối tiếp RS232 cũng được sử dụng rất thuận tiện trong việc ghép nối máy tính với các thiết bị ngoại vi. Việc truyền dữ liệu qua cổng RS232 được tiến Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 8 -
  9. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi đi nối tiếp với nhau trên một đường dẫn. Trước hết loại đường truyền này có khả năng dùng cho những khoảng cách lớn hơn, bởi vì khả năng gây nhiễu nhỏ đáng kể hơn khi dùng cổng song song. Việc dùng cổng song song có một nhược điểm là cáp tuyền nhiều sợi, vì vậy rất đắt tiền, hơn nữa mức tín hiệu nằm trong khoảng 0- 5v đã tỏ ra không thích ứng với khoảng cách lớn. +Cấu trúc của cổng nối tiếp : Ý nghĩa các chân tín hiệu như sau : CHÂN CHÂN KÝ HIỆU Ý NGHĨA (loại 9 chân ) (loại 25 chân) 1 8 DCD Data carrier detect 2 3 RXD Nhận dữ liệu 3 2 TXR phát dữ liệu 4 20 DTR Dữ liệu đầu cuối sẵn sàng 5 7 GND Nối đất 6 6 DSR Thiết bị thông tin sẵn sàng 7 4 RTS Yêu cầu gửi 8 5 CTS Xoá để gửi 9 22 RI Ring in dicator Mức tín hiệu trên các chân của cổng nối tiếp thường nằm trong khoảng từ -12V đến +12V các bit dữ liệu được đảo ngược lại. Mức điện áp ở mức logic 1 nằm trong khoảng từ -3V đến -12V, mức logic 0 nằm trong khoảng từ +3V đến +12V. Trạng thái tĩnh trên đường dẫn có mức điện áp -12V. Bằng tốc độ baud ta thiết lập tốc độ truyền dữ liệu các giá trị thông thường là 300, 600, 1200, 2400, 4800, 9600, 19200 baud. Ký hiệu baud là số lượng bit truyền trong 1s. Còn một vấn đề nữa là khuôn mẫu (Format) truyền dữ liệu cần phải được thiết lập như nhau cả bên gửi cũng như bên nhận, các thông số truyền có thể được thiết lập trên máy tính PC bằng các câu lệnh trên DOS. Ngày nay Windows cũng có các chương trình hỗ trợ các thông số truyền dữ liệu như : tốc độ baud, số bit dữ liệu, số bit dừng, bit chẵn lẻ (parity) có thể được thiết lập một cách rất đơn giản. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 9 -
  10. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. Sự trao đổi của các đường dẫn tín hiệu: Cũng như ở cổng máy in, các đường dẫn tín hiệu riêng biệt cũng cho phép trao đổi qua lại các địa chỉ trong máy tính PC. Trong trường hợp này người ta thường sử dụng những vi mạch có độ tích hợp cao để có thể hợp nhất nhiều chức năng trên một chip. Ở Máy Tính PC thường có một bộ phận Truyền/Nhận không đồng bộ vạn năng gọi tắt là UART( Universal Asynchronnous Receiver/Transmitter) để điều khiển sự trao đổi thông tin giữa máy tính và các thiết bị ngoại vi. Phổ biến nhất là vi mạch 8250 của hãng NSC hoặc các thiết bị như 16C550. Bộ UART 8250 có 9 thanh ghi để điều khiển tất cả chức năng của việc nhập vào, xuất ra dữ liệu theo cách nối tiếp . +Các thanh ghi: -Thanh ghi điều khiển modem( địa chỉ cơ sở + 4): D7 D6 D5 D4 D3 D2 D1 D0 x x x LOOP x x RTS DTR D0=D1=1 thì 2 chân RST và DTR sẽ có mức điện áp tương ứng mức 1 (-12V). D4=1 thì Cổng Nối Tiếp hoạt động ở chế độ vòng( dùng để kiểm tra đường truyền nhận của Cổng Nối Tiếp trên cùng 1 Máy Tính). x : là các bít không sử dụng. -Thanh ghi trạng thái modem( địa chỉ cơ sở + 6): D7 D6 D5 D4 D3 D2 D1 D0 x RI DSR CTS x x x x Thanh ghi này có chức năng thông báo về trạng thái các đường dẫn bắt tay. Điều chú ý ở thanh ghi này là có 3 bit D4, D5, D6, đây chính là lối vào của các đường dẫn CTS, DSR và RI -Thanh ghi điều khiển đường truyền( địa chỉ cơ sở + 3): DLAB C6 C5 C4 C3 C2 C1 C0 Lưu trữ các tham số được người lập trình thiết lập và xác định khuôn mẫu khung truyền của cuộc trao đổi tin. C1, C2: Đặt số bit trong mỗi từ: 00 – 5 bit, 01 – 6 bit 10 – 7 bit, 11 – 8 bit C2: các bit dừng. 0 – 1 bit dừng 1 – 1.5 bit dừng C3: Bit parity. 0 - không kiểm tra chẵn lẻ 1 - Có kiểm tra chẵn lẻ C4: Loại parity. 0 - Parity lẻ 1 - parity chẵn C5:Stick bit. 0 - không có stick bit 1- Stick bit C6: Đặt break. 0 - Normal out put 1- Dừng không truyền. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 10 -
  11. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. DLAB: Bít phân chia truy nhập cho các thanh ghi có cùng địa chỉ. - Thanh ghi trạng thái đường truyền( Địa chỉ cơ sở + 5): 0 S6 S5 S4 S3 S2 S1 S0 S0=1 khi có 1 byte mới nhận được. S1=1 khi ký tự trước chưa đọc được, ký tự mới đến sẽ xóa ký tự cũ trong bộ đệm. S2=1 khi có lỗi chẵn lẻ. S3=1 khi có lỗi khung truyền. S4=1 khi có lỗi gián đoạn đường truyền. S5=1 khi bộ đệm truyền trống rỗng, báo được phép truyền. S6=1 khi bộ đệm truyền rỗng. -Thanh ghi phép ngắt( địa chỉ cơ sở + 1): x x x x D3 D2 D1 D0 D0: Đặt ngắt khi nhận được 1 ký tự. D1: Đặt ngắt khi bộ đệm truyền rỗng. D2: Đặt ngắt khi thay đổi trạng thái đường truyền. D3: Đặt ngắt khi thay đổi trạng thái Modem. -Thanh ghi nhận dạng ngắt( địa chỉ cơ sở + 2): x x x x x D2 D1 D0 D2 D1 D0 Mức ưu tiên Nguồn gây ngắt Đặt lại ngắt 0 0 1 Không kiểm tra ngắt 1 1 0 Cao nhất Lỗi đường nhận Đọc thanh ghi dữ liệu trạng thái đường truyền 1 0 0 Thứ 2 có dữ liệu nhận Đọc thanh ghi đệm 0 1 0 Thứ 3 Thanh ghi đệm Đọc thanh ghi truyền rỗng IER 0 0 0 Thứ 4 Modem Đọc thanh ghi trạng thái Modem Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 11 -
  12. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. -Thanh ghi chứa số chỉ tốc độ baud( byte thấp - Địa chỉ cơ sở ). Thanh ghi này gồm 8 bit , chứa phần thấp của số chia tốc độ baud, số chia tốc độ baud được tính theo công thức sau: Số chia tốc độ baud = 1843200/(16* tốc độ baud cần thiết lập). -Thanh ghi chứa số chỉ tốc độ baud( byte cao- Địa chỉ cơ sở + 1). -Thanh ghi đệm đọc / viết( địa chỉ cơ sở). 1.2.2. Max232. MAX232 là vi mạch của hãng MAXIM chứa 02 bộ chuyển đổi mức từ TTL sang RS232 và 02 bộ làm chức năng ngược lại. Vcc + C3 C1 16 8051 2 + + Max232 11 11 14 2 C2 6 C4 P3.1 TxD 5 + T1IIN T1OUT 11 14 P3.0 RxD 10 12 13 3 2 R1 R1- 12 OUT 13 2 IIN T2IIN T2OUT DB - 9 10 7 R2OUT R2- 9 8 IIN 15 b. TTL side Rs232 side a) Sơ đồ bên trong Max232 a. b) Sơ đồ ghép nối của Max232 với 8051 Max232 cã hai bé ®iÒu khiÓn ®­êng truyÒn lµ nhËn vµ truyÒn d÷ liÖu nh­ giíi thiÖu ë h×nh trªn. C¸c bé ®iÒu khiÓn ®­êng truyÒn dïng cho TxD ®­îc gäi lµ T1 vµ T2. Trong nhiÒu øng dông th× chØ cã mét cÆp ®­îc dïng. VÝ dô T1 vµ R1 ®­îc dïng víi nhau cho tr­êng hîp TxD vµ RxD cña 8051, cßn cÆp R2 vµ T2 th× kh«ng dïng ®Õn. §Ó ý r»ng, bé ®iÒu khiÓn T1 cña Max232 cã g¸n T1in vµ T1out trªn c¸c ch©n sè 11 vµ 14 t­¬ng øng. Ch©n T1in lµ ë phÝa TTL vµ ®­îc nèi tíi ch©n RxD cña bé vi ®iÒu khiÓn, cßn T1out lµ ë phÝa RS232 ®­îc nèi tíi ch©n RxD cña ®Çu nèi DB cña RS232. Bé ®iÒu khiÓn ®­êng R1 còng cã g¸n R1in vµ R1out trªn c¸c ch©n sè 13 vµ 12 t­¬ng øng. Ch©n R1in (ch©n sè 13) lµ ë phÝa RS232 ®­îc nèi tíi ch©n TxD ®Çu nèi DB cña RS232 vµ ch©n R1out (ch©n sè 12) lµ ë phÝa TTL vµ ®­îc nèi tíi ch©n RxD cña bé vi ®iÒu khiÓn. §Ó ý r»ng nèi ghÐp modem rçng lµ nèi ghÐp mµ ch©n TxD bªn ph¸t ®­îc nèi víi RxD cña bªn thu vµ ng­îc l¹i. MAX232 cÇn cã 4 tô ®iÖn gi¸ trÞ tõ 1 ®Õn 22F. gi¸ trÞ th­êng dïng lµ 10F. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 12 -
  13. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. 1.3. Khối Vi Điều Khiển Có chức năng đọc dữ liệu từ ADC 0804 để xử lý và gửi kết quả lên Máy Tính. 1.4. Khối Chuyển Mạch Thang Đo và ADC. 1.4.1. ADC 0804. Các bộ chuyển đổi ADC thuộc những thiết bị được sử dụng rộng rãi nhất để thu dữ liệu.Các máy tính số sử dụng các giá trị nhị phân, nhưng trong thế giới vật lý thì mọi đại lượng ở dạng tương tự(liên tục). Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và vận tốc và một số ít những đại lượng vật lýcủa thế giới thực mà ta gặp hằng ngày. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 13 -
  14. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. Một đại lượng vật lý được chuyển về dòng điện hoặc điện áp qua một thiết bị được gọi là các bộ biến đổi. Các bộ biến đổi cũng có thể coi như các bộ cảm biến. Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lượng tự nhiên khác nhưng chúng đều cho ra các tín hiệu dạng dòng điện hoặc điên áp ở dạng liên tục. Do vậy, ta cần một bộ chuyển đổi tương tự số sao cho bộ vi điều khiển có thể đọc được chúng. Một chip ADC được sử dụng rộng rãi là ADC0804.  Cấu Tạo. Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng National Semiconductor. Chip này cũng được nhiều hãng khác sản xuất. Chip có điện áp nuôi +5V v à độ phân giải 8 bit. Ngoài độ phân giải thì thời gian chuyển đổ i cũng là một tham số quan trọng khi đánh giá bộ ADC. Thời gian chuyển đổi được định nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số nhị phân. Đối với ADC0804 thì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ đ ược cấp tới chân CLK và CLK IN và không bé hơn 110µs. Các chân khác của ADC0804 có chức năng như sau: + CS (Chip select): Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp được sử dụng để kích hoạt Chip ADC0804. Để truy cập ADC0804 th ì chân này phải ở mức thấp. + RD (Read): Chân số 2, là một tín hiệu vào, tích cực ở mức thấp. Các bộ chuyển đổi đầu vào tương tự thành số nhị phân và giữ nó ở một thanh ghi trong. RD được sử dụng để có dữ liệu đã được chyển đổi tới đầu ra của ADC0804. Khi CS = 0, nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit được đưa tới các chân dữ liệu (DB0 – DB7). + WR (Write): Chân số 3, đây là chân vào tích c ực mức thấp được dùng để báo cho ADC biết bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra xung cao xuống thấp thì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự V in về số nhị phân 8 bit. Khi việc chuyển đổi hoàn tất thì chân INTR được ADC hạ xuống thấp. + CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồ ngo ài được sử dụng để tạo thời gia n. Tuy nhiên ADC0804 c ũng có một bộ tạo xung đồng hồ riêng. Để dùng đồng hồ riêng thì các chân CLK IN và CLK R (chân s ố 19) được nối với một tụ điện v à một điện trở (như hình vẽ). Khi đó tần số được xác định bằng biểu thức: F = 1/ 1.1RC Với R = 10 kΩ, C = 150 pF và tần số f = 606 kHz và thời gian chuyển đổi l à 110 µs. + Ngắt INTR (Interupt): Chân số 5, là chân ra tích c ực mức thấp. Bình thường chân này ở trạng thái cao v à khi việc chuyển đổi ho àn tất thì nó xuống thấp để báo cho CPU biết l à dữ liệu chuyển đổi sẵn sàng để lấy đi. Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung cao xuống thấp tới chân RD để đ ưa dữ liệu ra. + Vin (+) và Vin (-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai, trong đó V in = Vin(+) – Vin(-). Thông thường Vin(-) được nối tới đất và Vin(+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi về dạng số. + Vcc: Chân số 20, là chân nguồn nuôi +5V. Chân này còn được dùng làm điện áp tham chiếu khi đầu vào Vref/2 để hở. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 14 -
  15. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. + Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham chiếu. Nếu chân này hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 đến +5V. Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến V in khác với dải 0 đến +5V. Chân Vref/2 được dùng để thực hiện các điện áp đầu ra khác 0 đến +5V. Bảng: Quan hệ điện áp V ref/2 với Vin. Vref/2 (V) Vin (V) Kích thước bước (mV) Hở 0 – 5 5/256 = 19.53 2.0 0 – 4 4/256 = 15.62 1.5 0 – 3 3/256 = 11.71 1.28 0 – 2.56 2.56/256 = 10 1.0 0 – 2 2/256 = 7.81 0.5 0 – 1 1/256 = 3.90 + D0 - D7: D0 - D7, chân số 18 – 11, là các chân ra d ữ liệu số (D7 là bit cao nhất MSB và D0 là bit thấp nhất LSB). Các chân này được đệm ba trạng thái và dữ liệu đã được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân RD đưa xu ống mức thấp. Để tính điện áp đầu ra ta tính theo công thức sau: Dout = Vin / Kích thước bước 1.4.2. Chuyển Mạch Thang Đo. Tín hiệu điện áp cần đo được phân áp xuống khoảng điện áp 0V÷5V nhờ các cầu phân áp điện trở( mỗi thang có 1 cầu phân áp riêng), đến chờ ở chuyển mạch xoay để đưa vào chân Vin+ của ADC 0804 để thực hiện biến đổi từ tương tự sang số. Đây là chuyển mạch xoay, vừa chọn thang đo và, vừa báo cho VĐK biết chuyển mạch đang ở thang nào. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 15 -
  16. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. 2. Lập Trình. 2.1. Lưu Đồ Thuật Toán. Bắt Đầu Chuyển Đổi A-D Kiểm Tra Thang Đo Không Có Thang Thang Đo x Được Đo Nào Được Chọn Chọn( x ứng với thang đo: 5V, 25V, 50V. Tính Giá Trị Đo Được Gửi Tín Hiệu “OFF” Gửi Kết Quả Lên Máy Tính 2.2. Chương Trình Điều Khiển Cho VĐK 89S52. #include #include #include sbit WR_ADC = P3^2; sbit INTR_ADC = P3^3; sbit T_OFF = P3^4; sbit T_50V = P3^5; sbit T_25V = P3^6; sbit T_5V = P3^7; Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 16 -
  17. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. unsigned int m; unsigned char x,j; unsigned char so1,so2,so3,so4; float volt ; void adc_convert(void) // hàm chuyển đổi ADC. { WR_ADC=0; for(j=0;j<10;j++); WR_ADC=1; while(!INTR_ADC); x=P1; } void delay_ms(unsigned int time) // Hàm Trễ. { unsigned int k,t; for(k=0;k< time;k++) for(t=0;t<120;t++); } void tranfer(char buff) // Hàm gủi 1 byte ra cổng nối tiếp. { while(!TI); SBUF = buff; TI=0; } void xuong_dong(void) // Hàm xuống dòng. { tranfer(0xa); tranfer(0xd); } void tranfer_string(char*s) // Hàm chuyển 1 chuỗi ký tự. { while(*s) { tranfer(*s); s++; } } void tranfer_real(unsigned int buff) // Hàm truyền 1 số thực. { so1=buff/1000; so2=(buff%1000)/100; so3=((buff%1000)%100)/10; so4=((buff%1000)%100)%10; if(T_5V==0) { tranfer(so1+0x30); tranfer('.'); tranfer(so2+0x30); tranfer(so3+0x30); Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 17 -
  18. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. tranfer(so4+0x30); tranfer('V'); delay_ms(100); for(j=0;j<=5;j++) tranfer(0x08); } if(T_25V==0) { tranfer(so1+0x30); tranfer(so2+0x30); tranfer('.'); tranfer(so3+0x30); tranfer(so4+0x30); tranfer('V'); delay_ms(100); for(j=0;j<=5;j++) tranfer(0x08); } if(T_50V==0) { tranfer(so2+0x30); tranfer(so3+0x30); tranfer('.'); tranfer(so4+0x30); tranfer('V'); delay_ms(100); for(j=0;j<=4;j++) tranfer(0x08); } } void intal_serial(void) // Hàm thiết lập cổng nối tiếp. { SCON=0X52; TMOD=0X20; TL1=TH1=-3; TR1=1; tranfer(0xc); tranfer_string("Do An Mon Vi Dieu Khien."); delay_ms(1000); xuong_dong(); tranfer_string(" VoltMet Dien Tu."); delay_ms(1000); xuong_dong(); tranfer_string(" Lop Dien Tu 3-K10."); delay_ms(1000); xuong_dong(); tranfer_string("Nhom SV Thuc Hien:"); tranfer(0xa); tranfer_string("Phung Xuan Quan."); xuong_dong(); tranfer_string(" Le Van Quang."); delay_ms(5000); Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 18 -
  19. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. } void main(void) // hàm chính. { intal_serial(); while(1) { while(!T_OFF) { tranfer(0xc); while(!T_OFF) { tranfer_string("-Volmet Dang O Che Do:OFF."); while(!T_OFF); } } while(T_5V==0) { tranfer(0xc); tranfer_string("-Thang Do 5V:"); xuong_dong(); tranfer_string(" Dien Ap Do Duoc La: "); while(!T_5V) { adc_convert(); volt=(float)(5*x)/255; m=(int)(volt*1000); tranfer_real(m); } } while(!T_25V) { tranfer(0xc); tranfer_string("-Thang Do 25V:"); xuong_dong(); tranfer_string(" Dien Ap Do Duoc La: "); while(!T_25V) { adc_convert(); volt=(float)(5*x)/255; m=(int)(volt*500); tranfer_real(m); } } while(!T_50V) { tranfer(0xc); tranfer_string("-Thang Do 50V:"); Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 19 -
  20. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. xuong_dong(); tranfer_string(" Dien Ap Do Duoc La: "); while(!T_50V) { adc_convert(); volt=(float)(5*x)/255; m=(int)(volt*100); tranfer_real(m); } } } } Phần III: Ưu Nhược Điểm Và Hướng Phát Triển. 1. Ưu, Nhược Điểm: 1.1. Ưu Điểm: +Mạch có khả năng đo được dải điện áp rộng: 0÷50 VDC. +Mạch có 3 thang đo để tăng độ chính xác giá trị đo. +Mạch có tốc độ nhanh, chính xác và ổn định. +Mạch hiển thị thang đo và kết quả rõ ràng. +Mạch được thiết kế nhỏ gọn, dễ sử dụng. 1.2. Nhược Điểm: +Do chưa được thiết kế chuyên nghiệp và cách làm mạch còn thủ công nên không tránh khỏi nhiễu ký sinh trong quá trình đo dẫn tới làm giảm độ chính xác khi đo giá trị nhỏ. +Mạch mới chỉ đo được điện áp 1 chiều, muốn đo điện áp xoay chiều cần phải thực hiện chỉnh lưu trước khi đo. +Phải có Máy Tính để hiển thị kết quả đo. 2. Hướng Phát Triển. Để tăng tính linh hoạt, cần có thêm 3 rơ le để tự động đo ở thang đo phù hợp mà không phải chuyển mạch bằng tay. Nên có thêm Led 7 thanh để hiển thị khi không mang theo được máy tính. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 20 -
  21. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. 2.1. Lưu Đồ Thuật Toán Phát Triển. Bắt Đầu Chuyển Đổi A - D Tự Động Chọn Thang 50V nhờ role 1 Kiểm Tra Kết Quả 5V =25V 25V Nhờ Role 2 5V Nhờ Role 3 Gửi Kết Quả Lên Máy Tính 2.2. Phần Cứng Phát Triển. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 21 -
  22. Khoa Điện Tử. Đồ Án Môn: Ghép Nối Máy Tính. Lớp :CĐ Điện Tử 3 K10. SV: Phùng Xuân Quân. Lê Văn Quảng. - 22 -