Đề tài Hệ thống thu thập số liệu đo lường trên cở sở dùng vi điều khiển PIC18F458

Hệ thông đo lường và điều khiển là một hệ thống tập hợp các thiết bị kỹ thuật có cùng một nhiệm vụ, cùng một thuật toán chức năng làm sao để thu nhận được thông tin, biến đổi nó, gia công và chuyển nó thành một dạng mà con người có thể thu nhận được và đưa đến bộ điều khiển. Hình 1.1: Sơ đồ khối của hệ thống Để có một hệ thống đo đạt hiệu quả và phù hợp với công việc thì việc thiết kế một mô hình ban đầu rất quan trọng nó ảnh hưởng đến toàn bộ công việc sau này của chúng ta. Trong thực tế có nhiều mô hình cấu trúc như là mô hình nối tiếp, mô hình song song, mô hình nối tiếp song song.v.v. Mỗi mô hình được ứng dụng trong từng trường hợp nhưng tùy thuộc vào yêu cầu của công việc chúng ta phải lựa chọn một mô hình cho phù hợp. Yêu cầu về một hệ thống đo và thu thập thông tin trong công nghiệp là cần phải đạt độ chính xác cao, khả năng đo được nhiều kênh, có thể kết nối được với nhiều thiết bị khác, lượng dữ liệu lưu trữ được trong quá trình đo phải lớn để có thể đánh giá được sự biến đổi của đối tượng trong một thời gian dài từ đo đưa ra được những phương án điều khiển phù hợp.

doc92 trang | Chia sẻ: oanhnt | Lượt xem: 1768 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Hệ thống thu thập số liệu đo lường trên cở sở dùng vi điều khiển PIC18F458, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI CẢM ƠN Lời đầu tiên của bản khóa luận này cho phép em được bày tỏ lời cảm ơn sâu sắc tới PGS. TS Ngô Diên Tập, người đã tận tình hướng dẫn chỉ bảo em trong suốt thời gian em làm khóa luận. Em xin chân thành cảm ơn sâu sắc tới các thầy cô giáo trong Trường Đại học Công Nghệ - ĐHQGHN đã chỉ bảo, dạy dỗ và cung cấp những kiến thức cơ bản và chuyên môn trong suốt 4 năm qua và tạo điều kiện thuận lợi để em hoàn thành bản khóa luận này. Cuối cùng em xin gửi lời cảm ơn tới gia đình, bạn bè đã nhiệt tình giúp đỡ và động viên em hoàn thành khóa luận này. Xin chúc thầy cô giáo và các bạn sức khỏe, hạnh phúc. Hà nội, tháng 05 năm 2008 Sinh viên: Nguyễn Văn Cường TÓM TẮT NỘI DUNG Khóa luận đã xây dựng được hệ thống thu thập số liệu đo lường trên cở sở dùng vi điều khiển PIC18F458. Với ứng dụng cụ thể là thu thập dữ liệu nhiệt độ môi trường. Hệ thống được xây dựng dựa trên việc kết hợp nhiều khối thiết bị ngoại vi khác, bao gồm bàn phím PS/2 cho phép nhập dữ liệu có thể là địa điểm của khu vực đặt hệ thống.v.v., đồng hồ thời gian thực dựa trên vi mạch DS1307 cho phép cập nhật thời gian cho hệ thống với đồng hồ này thông chỉ cần cài đặt một lần đồng hồ sẽ chạy cho tới khi không còn một nguồi nuôi nào, khối giao tiếp thẻ nhớ MMC lưu trữ tất cả dữ liệu mà người sử dụng cần với mục đích sử dụng hệ thống ví dụ địa điểm đặt hệ thống, thông tin về nhiệt độ đo được cập nhật cùng thời gian của hệ thống, và cuối cùng là khối hiển thị dùng LCD 16 cột 2 dòng hiển thị cùng lúc 32 ký tự, thể hiện những thông tin người thiết lập hệ thống muốn thông báo trong quá trình kiểm tra hoặc khi sử dụng…. Tất cả hệ thống được lắp ráp trên một bo mạch tương đối nhỏ gọn. MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU 1.1 Tổng quan về hệ thống đo lường và điều khiển. Hệ thông đo lường và điều khiển là một hệ thống tập hợp các thiết bị kỹ thuật có cùng một nhiệm vụ, cùng một thuật toán chức năng làm sao để thu nhận được thông tin, biến đổi nó, gia công và chuyển nó thành một dạng mà con người có thể thu nhận được và đưa đến bộ điều khiển. Thiết bị thu nhận và đo Thiết bị gia công và biến đổi thông tin đo Thiết bị lưu trữ thông tin đo Thiết bị thể hiện thông tin đo Bộ điều khiển Đối tượng nghiên cứu Người quan sát Hình 1.1: Sơ đồ khối của hệ thống Để có một hệ thống đo đạt hiệu quả và phù hợp với công việc thì việc thiết kế một mô hình ban đầu rất quan trọng nó ảnh hưởng đến toàn bộ công việc sau này của chúng ta. Trong thực tế có nhiều mô hình cấu trúc như là mô hình nối tiếp, mô hình song song, mô hình nối tiếp song song.v.v.. Mỗi mô hình được ứng dụng trong từng trường hợp nhưng tùy thuộc vào yêu cầu của công việc chúng ta phải lựa chọn một mô hình cho phù hợp. Yêu cầu về một hệ thống đo và thu thập thông tin trong công nghiệp là cần phải đạt độ chính xác cao, khả năng đo được nhiều kênh, có thể kết nối được với nhiều thiết bị khác, lượng dữ liệu lưu trữ được trong quá trình đo phải lớn để có thể đánh giá được sự biến đổi của đối tượng trong một thời gian dài từ đo đưa ra được những phương án điều khiển phù hợp. 1.2 Hệ thống đo lường nhiệt độ. Môi trường Sensor LM35 Vi điều khiển PIC Hiển thị LCD MMC Lấy mẫu Đồng hồ thời gian thực Bàn phím Hình 1.2: Sơ đồ khối của hệ thống đo lường nhiệt độ. Khóa luận đã khảo sát đối tượng là nhiệt độ môi trường. Một sensor nhiệt độ được sử dụng với mục đích cảm nhận. Đầu ra là giá trị điện áp tùy thuộc vào sự biến đổi của đối tượng, được đưa vào bộ biến đổi ADC chuyển thành các giá trị số. Tiếp tục vi điều khiển đảm nhận làm nhiệm vụ tính toán và xử lý, kết quả của quá trình này được hiển thị thông qua LCD để quan sát. Trong khóa luận này đã ứng dụng thêm mạch giao tiếp với thẻ nhớ MMC qua đó ta có thể lưu trữ nhiều giá trị nhiệt độ đo được mà ít phải quan tâm đến việc đầy bộ nhớ như việc ghép nối với các EPROM truyền thống. Thêm một lợi điểm nữa của việc dùng thẻ nhớ là ta có thể tháo lắp và đọc các giá trị đã ghi được một cách rất đễ dàng. Không chỉ là đo nhiệt độ hiển thị, và lưu giá trị nhiệt độ. Khóa luận đã phát triển thêm các giao tiếp với bàn phím PS/2 và đồng hồ thời gian thực. Với ghép nối PS/2 cho phép ta nhập các dữ liệu, thông tin về địa điểm đặt đầu đo, thông tin về hệ thống.v.v..Còn đồng hồ sẽ cho biết thông tin về thời gian mà nhiệt độ được đo. Tất cả dữ liệu nhập từ bàn phím và thông tin về thời gian cũng như nhiệt độ đo được sẽ được lưu vào thẻ nhớ. Với một hệ thống với nhiều đầu đo đặt tại nhiều vị trí hoặc khi triển khai hệ thống trên một phạm vi rộng, thì việc kết hợp những giao tiếp như trên sẽ rất có lợi cho việc quản lý và giám sát các thiết bị. ================================================= CHƯƠNG 2: VI ĐIỀU KHIỂN PIC18F458 2.1 Tổng quan về vi điều khiển PIC. Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051, Motorola 68HC, AVR, ARM,... Ngoài họ 8051 được hướng dẫn một cách căn bản ở môi trường đại học, bản thân em đã chọn họ vi điều khiển PIC để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau: Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam. Giá thành không quá đắt. Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập. Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051. Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,… Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp… Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không ngừng được phát triển. 2.1.1 Sơ đồ chân của vi điều khiển PIC18F458. Hình 2.1: Sơ đồ chân vi điều khiển PIC18F458. 2.1.2 Một vài thông số về vi điều khiển PIC18F458. 2.1.2.1 CPU theo kiến trúc RISC Bộ nhớ chương trình 32 Kbyte. Bộ nhớ dữ liệu (RAM) 1536 Byte. Hệ thống có thể hoạt động với tốc lên tới 10 triệu lênh trên giây. Tần số thạch anh tối đa là 40 MHz. Các lệnh có độ dài 16 bit và các đường dữ liệu rộng 8 bit. Có các mức độ ưu tiên ngắt khác nhau. 2.1.2.2 Các đặc tính ngoại vi. Dòng sinh cao khoảng 25 mA. Có 3 chân ngắt ngoài. Khối Timer0 có thể là 8 bit hoặc 16 bit timer/counter với bộ chia tần 8 bit. Khối Timer1 là 16 bit timer/counter. Khối Timer2 8 bit timer/counter vói thanh ghi chu kỳ 8 bit (ứng dụng với PWM). Khối Timer3 16 bit timer/counter. Các khối Capture/Compare/PWM. Truyền dữ liệu nối tiếp đồng bộ với khối SPI 3 đường dây, hỗ trợ cả 4 chế độ SPI I2C cho cả chế độ Master và Slave. Khối UART truyền dữ liệu nối tiếp. 8 kênh chuyển đổi AD 10 bit. 2.2 Các ứng dụng được sử dụng trong khóa luận. 2.2.1 Bộ chuyển đổi tương tự số ADC. ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự và số. PIC18F458 có 8 ngõ vào analog (RA4:RA0 và RE2:RE0). Hiệu điện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên hai chân RA2 và RA3. Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit số tương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL. Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thể được sử dụng như các thanh ghi thông thường khác. Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL, bit GO/DONE (ADCON0) được xóa về 0 và cờ ngắt ADIF được thiết lập. Qui trình chuyển đổi từ tương tự sang số bao gồm các bước sau: Thiết lập các thông số cho bộ chuyển đổi ADC: Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi ADCON1) Chọnh kênh chuyển đổi AD (thanh ghi ADCON0). Chọnh xung clock cho kênh chuyển đổi AD (thanh ghi ADCON0). Cho phép bộ chuyển đổi AD hoạt động (thanh ghi ADCON0). Thiết lập các cờ ngắt cho bộ AD Clear bit ADIF. Set bit ADIE. Set bit PEIE. Set bit GIE. Đợi cho tới khi quá trình lấy mẫu hoàn tất. Bắt đầu quá trình chuyển đổi (set bit GO/DONE). Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách: Kiểm tra bit GO/DONE. Nếu = 0, quá trình chuyển đổi đã hoàn tất. Kiểm tra cờ ngắt. Đọc kết quả chuyển đổi và xóa cờ ngắt, set bit GO/DONE (nếu cần tiếp tục chuyển đổi). Tiếp tục thực hiện các bước 1 và 2 cho quá trình chuyển đổi tiếp theo. Hình 2.2: Cách lưu kết quả chuyển đổi AD. Hình 2.3: Sơ đồ khối bộ chuyển đổi AD Cần chú ý là có hai cách lưu kết quả chuyển đổi AD, việc lựa chọn cách lưu được điều khiển bởi bit ADFM và được minh họa cụ thể ở hình 2.2. Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm: INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE, PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF). PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE). ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): các thanh ghi chứa kết quả chuyển đổi AD. ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập các thông số cho bộ chuyển đổi AD. PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đến các ngõ vào analog ở PORTA. PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến các ngõ vào analog ở PORTE. 2.2.2 Truyền nối tiếp đồng bộ SPI. Chuẩn giao tiếp SPI cho phép truyền nhận đồng bộ. Hình 2.4: Sơ đồ khối SPI Ta cần sử dụng 4 pin cho chuẩn giao tiếp này: RC5/SDO: ngõ ra dữ liệu dạng nối tiếp (Serial Data output). RC4/SDI/SDA: ngõ vào dữ liệu dạng nối tiếp (Serial Data Input). RC3/SCK/SCL: xung đồng bộ nối tiếp (Serial Clock). RA5/AN4/SS/C2OUT: chọn đối tượng giao tiếp (Serial Select) khi giao tiếp ở chế độ Slave mode. Các thanh ghi liên quan đến MSSP khi hoạt động ở chuẩn giao tiếp SPI bao gồm: Thanh ghi điều khiển SSPCON, thanh ghi này cho phép đọc và ghi. Thanh ghi trạng thái SSPSTAT, thanh ghi này chỉ cho phép đọc và ghi ở 2 bit trên, 6 bit còn lại chỉ cho phép đọc. Thanh ghi đóng vai trò là buffer truyền nhận SSPBUF, dữ liệu truyền đi hoặc nhận được sẽ được đưa vào thanh ghi này. SSPBUF không có cấu trúc đệm hai lớp (doubled buffer), do đó dữ liệu ghi vào thanh ghi SSPBUF sẽ lập tức được ghi vào thanh ghi SSPSR. Thanh ghi dịch dữ liệu SSPSR dùng để dịch dữ liệu vào hoặc ra. Khi 1 byte dữ liệu được nhận hoàn chỉnh, dữ liệu sẽ từ thanh ghi SSPSR chuyển qua thanh ghi SSPBUF và cờ hiệu được set, đồng thời ngắt sẽ xảy ra. Khi sử dụng chuẩn giao tiếp SPI trước tiên ta cần thiết lập các chế độ cho giao diện bằng cách đưa các giá trị thích hợp vào hai thanh ghi SSPCON và SSPSTAT. Các thông số cần thiết lập bao gồm: Master mode hay Slave mode. Đối với Master mode, xung clock đồng bộ sẽ đi ra từ chân RC3/SCK/SCL. Đối với Slave mode, xung clock đồng bộ sẽ được nhận từ bên ngoài qua chân RC3/SCK/SCL. Các chế độ của Slave mode. Mức logic của xung clock khi ở trang thái tạm ngưng quá trình truyền nhận (Idle). Cạnh tác động của xung clock đồng bộ (cạnh lên hay cạnh xuống). Tốc độ xung clock (khi hoạt động ở Master mode). Thời điểm xác định mức logic của dữ liệu (ở giữa hay ở cuối thời gian 1 bit dữ liệu được đưa vào). Master mode, Slave mode và các chế độ của Slave mode được điều khiển bởi các bit SSPM3:SSPM0 (SSPCON). MSSP bao gồm một thanh ghi dịch dữ liệu SSPSR và thanh ghi đệm dữ liệu SSPBUF. Hai thanh ghi này tạo thành bộ đệm dữ liệu kép (doubled-buffer). Dữ liệu sẽ được dịch vào hoặc ra qua thanh ghi SSPSR, bit MSB được dịch trước. Đây là một trong những điểm khác biệt giữ hai giao diện MSSP và USART (USART dịch bit LSB trước). Trong quá trình nhận dữ liệu, khi dữ liệu đưa vào từ chân RC4/SDI/SDA trong thanh ghi SSPSR đã sẵn sàng (đã nhận đủ 8 bit), dữ liệu sẽ được đưa vào thanh ghi SSPBUF, bit chỉ thị trạng thái bộ đệm BF (SSPSTAT) sẽ được set để báo hiệu bộ đệm đã đầy, đồng thời cờ ngắt SSPIF (PIR1) cũng được set. Bit BF sẽ tự động reset về 0 khi dữ liệu trong thanh ghi SSPBUF được đọc vào. Bộ đệm kép cho phép đọc tiếp byte tiếp theo trước khi byte dữ liệu trước đó được đọc vào. Tuy nhiên ta nên đọc trước dữ liệu từ thanh ghi SSPBUF trước khi nhận byte dữ liệu tiếp theo. Quá trình truyền dữ liệu cũng hoàn toàn tương tự nhưng ngược lại. Dữ liệu cần truyền sẽ được đưa vào thanh ghi SSPBUF đồng thời đưa vào thanh ghi SSPSR, khi đó cờ hiệu BF được set. Dữ liệu được dịch từ thanh ghi SSPSR và đưa ra ngoài qua chân RC5/SDO. Ngắt sẽ xảy ra khi quá trình dịch dữ liệu hoàn tất. Tuy nhiên dữ liệu trước khi được đưa ra ngoài phải được cho phép bởi tín hiệu từ chân RA5/SS . Chân này đóng vai trò chọn đối tượng giao tiếp khi SPI ở chế độ Slave mode. Khi quá trình truyền nhận dữ liệu đang diễn ra, ta không được phép ghi dữ liệu vào thanh ghi SSPBUF. Thao tác ghi dữ liệu này sẽ set bit WCON (SSPCON). Một điều cần chú ý nữa là thanh ghi SSPSR không cho phép truy xuất trực tiếp mà phải thông qua thanh ghi SSPBUF. Cổng giao tiếp của giao diện SPI được điều khiển bởi bit SSPEN (SSPSON). Bên cạnh đó cần điều khiển chiều xuất nhập của PORTC thông qua thanh ghi TRISC sao cho phù hợp với chiều của giao diện SPI. Cụ thể như sau: RC4/SDI/SDA sẽ tự động được điều khiển bởi khối giao itếp SPI. RS5/SDO là ngõ ra dữ liệu, do đó cần clear bit TRISC. Khi SPI ở dạng Master mode, cần clear bit TRISC để cho phép đưa xung clock đồng bộ ra chân RC3/SCK/SCL. Khi SPI ở dạng Slave mode, cần set bit TRISC để cho phép nhận xung clock đồng bộ từ bên ngoài qua chân RC3/SCK/SCL. Set bit TRISC để cho phép chân RA5/AN4/SS/C2OUT nhận tín hiệu điều khiển truy xuất dữ liệu khi SPI ở chế độ Slave mode. Hình 2.5: Sơ đồ ghép nối theo chuẩn SPI. Theo sơ đồ kết nối này, khối Master sẽ bắt đầu quá trình truyền nhận dữ liệu bằng cách gửi tín hiệu xung đồng bộ SCK. Dữ liệu sẽ dịch từ cả hai thanh ghi SSPSR đưa ra ngoài nếu có một cạnh của xung đồng bộ tác động và ngưng dịch khi có tác động của cạnh còn lại. Cả hai khối Master và Slave nên được ấn định chung các qui tắc tác động của xung clock đồng bộ để dữ liệu có thể dịch chuyển đồng thời. 2.2.3 Truyền nối tiếp đồng bộ I2C. Đây là một dạng khác của MSSP. Chuẩn giao tiếp I2C cũng có hai chế độ Master, Slave và cũng được kết nối với ngắt. I2C sẽ sử dụng 2 pin để truyền nhận dữ liệu: RC3/SCK/SCL: chân truyền dẫn xung clock. RC4/SDI/SDA: chân truyền dẫn dữ liệu. Các khối cơ bản trong sơ đồ khối của I2C không có nhiều khác biệt so với SPI. Tuy nhiên I2C còn có thêm khối phát hiện bit Start và bit Stop của dữ liệu (Start and Stop bit detect) và khối xác định địa chỉ (Match detect). Các thanh ghi liên quan đến I2C bao gồm: Thanh ghi SSPCON và SSPCON2: điều khiển MSSP. Thanh ghi SSPSTAT: thanh ghi chứa các trạng thái hoạt động của MSSP. Thanh ghi SSPBUF: buffer truyền nhận nối tiếp. Thanh ghi SSPSR: thanh ghi dịch dùng để truyền nhận dữ liệu. Thanh ghi SSPADD: thanh ghi chứa địa chỉ của giao diện MSSP. Các thanh ghi SSPCON, SSPCON2 cho phép đọc và ghi. Thanh ghi SSPSTAT chỉ cho phép đọc và ghi ở 2 bit đầu, 6 bit còn lại chỉ cho phép đọc. Thanh ghi SSPBUF chứa dữ liệu sẽ được truyền đi hoặc nhận được và đóng vai trò như một thanh ghi đệm cho thanh ghi dịch dữ liệu SSPSR. Thanh ghi SSPADD chứa địa chỉ của thiết bị ngoại vi cần truy xuất dữ liệu của I2C khi hoạt động ở Slave mode. Khi hoạt động ở Master mode, thanh ghi SSPADD chứa giá trị tạo ra tốc độ baud cho xung clock dùng để truyền nhận dữ liệu. Trong quá trình nhận dữ liệu, sau khi nhận được 1 byte dữ liệu hoàn chỉnh, thanh ghi SSPSR sẽ chuyển dữ liệu vào thanh ghi SSPBUF. Thanh ghi SSPSR không đọc và ghi được quá trình truy xuất thanh ghi này phải thông qua thanh ghi SSPBUF. Trong quá trình truyền dữ liệu, dữ liệu cần truyền khi được đưa vào thanh ghi SSPBUF cũng sẽ đồng thời đưa vào thanh ghi SSPSR. I2C có nhiều chế độ hoạt động và được điều khiển bởi các bit SSPCON, bao gồm: I2C Master mode, xung clock = fosc/4*(SSPADD+1). I2C Slave mode, 7 bit địa chỉ. I2C Slave mode, 10 bit địa chỉ. I2C Slvae mode, 7 bit địa chỉ, cho phép ngắt khi phát hiện bit Start và bit Stop. I2C Slave mode, 10 bit địa chỉ, cho phép ngắt khi phát hiện bit Start và bit Stop. I2C Firmware Control Master mode. Trên đây là những tóm lược về vi điều khiển PIC18F458 và các ngoại vi của nó được ứng dụng trong khóa luận. Các modul được dùng sẽ được nói rõ hơn ở các chương tiếp theo với các ứng dụng cụ thể. =================================================== CHƯƠNG 3: CẢM BIẾN NHIỆT ĐỘ VÀ VI MẠCH LM35 3.1 Nhiệt độ và ý nghĩa của đo nhiệt độ. Nhiệt độ là một tham số vật lý quan trọng, thường hay gặp trong kỹ thuật, công nghiệp, nông nghiệp và trong đời sống sinh hoạt hàng ngày. Nó là tham số có liên quan đến tính chất của rất nhiều vật chất, thể hiện hiệu suất của các máy nhiệt và là nhân tố trọng yếu ảnh hưởng đến sự truyền nhiệt. Vì lẽ đó mà trong các nhà máy, trong hệ thống nhiệt... đều phải dùng nhiều dụng cụ đo nhiệt độ khác nhau. Chất lượng và số lượng sản phẩm sản xuất được đều có liên quan tới nhiệt độ, nhiều trường hợp phải đo nhiệt độ để đảm bảo cho yêu cầu thiết bị và cho quá trình sản xuất. Hiện nay yêu cầu đo chính xác nhiệt độ từ xa cũng là một việc rất có ý nghĩa đối với sản xuất và nghiên cứu khoa học.... 3.2 Cảm biến nhiệt độ LM35. Trong đề tài này ứng dụng cụ thể một loại sensor để khảo sát nhiệt độ môi trường. LM35 được chọn cho mục đích này. Hình 3.1: LM35. 3.3.1 Một số đặc tính của LM35. Một số đặc tính của LM35 có thể chỉ ra như sau: Chuẩn đo được lấy trực tiếp theo thang bách phân  oC Tuyến tính với độ thay đổi 10mV/0C Độ chính xác là 0.5oC khảo sát ở nhiệt độ 25oC Có thể đo trong khoảng nhiệt độ -55 đến 150oC Điện thế cung cấp có thể từ 4-30V Dòng tiêu thụ nhỏ hơn 60mA … 3.3.2 Sơ đồ ghép nối với vi điều khiển. Với ứng dụng trong đề tài chỉ là khảo sát nhiệt độ môi trường. Kết hợp với điều kiện khí hậu của Việt Nam việc giá trị nhiệt độ nhỏ hơn 0oC là hiếm gặp do vậy em đã chọn cách mặc LM35 cụ thể như sau: Vcc (+5V) Hình 3.2: Ghép nối LM35 với vi điều khiển. 3.3.3 Xử lý và tính toán kết quả Với cách mắc như trên khoảng nhiệt độ mà sensor có thể đo được là từ 2-150 0C. Khi sử dụng LM35 việc xử lý tính toán rất đơn giản do điện thế đầu ra thay đổi 10mV/0C, giả sử với nhiệt độ môi trường là 250C thì thế đầu ra của LM35 tại chân Output (chân 2) là 25*10 = 250mV = 0,25V so với đất. Khi ghép nối với vi điều khiển PIC, giả sử thiết lập ADC là 10 bit thì ta có sẽ 1023 mức, ứng với các điện thế tham chiếu Vref+ = 5V và Vref- = 0V (GND). Giả sử nhiệt độ môi trường là 25oC như trên, khi đó điện áp chân 2 của LM35 so với đất sẽ là 0,25V. Từ đây tính ra được giá trị mức trên thang ADC 10 bit nhận được là: (1023 * 0,25)/5 =~ 51. Từ đây ta dễ dàng tính được ngược lại nhiệt độ môi trường khi đọc được giá trị ADC qua bộ biến đổi AD của PIC. Và nhiệt độ sẽ được tính theo công thứ sau: temp = 5 * value * 100 /1023 Với value là giá trị nhận được từ việc đọc giá trị của ADC từ thanh ghi ADRESH:ADRESL. Quá trình xử lý và tính toán để có được nhiệt độ môi trường ở trên vi điều khiển thực hiện theo các bước sau: Thiết lập kênh ADC trên PIC để đọc giá trị tại đầu ra của LM35 setup_port_a(ALL_ANALOGS); setup_adc(ADC_CLOCK_INTERNAL); //xung lấy mẫu nội setup_adc_channel(0); //kênh AN0 là đầu vào ADC Đọc ADC và chuyển đổi sang nhiệt độ tương ứng theo thang bách phân Celcius Value = read_adc(); temp = 5 * value * 100 /1023; //đã thiết lập ADC 10 bit từ trước. Printf (lcd_putc, “Nhiet do: %d”,temp); ======================================================= CHƯƠNG 4: BÀN PHÍM PS/2 VÀ GIAO TIẾP BÀN PHÍM VỚI VI ĐIỀU KHIỂN 4.1 Bàn phím PS/2. Bàn phím là một ma trận lớn của các phím. Tất cả được giám sát bởi 1 bộ xử lý ở trên bo mạch gọi là bộ mã hóa bàn phím (keyboard encoder). Bộ xử lý cụ thể có thể thay đổi tùy loại bàn phím nhưng chúng đều phải thực hiện công việc cơ bản là: Giám sát mỗi khi có 1 hoặc nhiều phím được nhấn/thả và gửi dữ liệu tương ứng tới host. Bộ xử lý này sẽ cho phép dữ liệu được gửi đi hoặc gữi lại thông qua 16byte bộ đêm (bu