Tải bản đầy đủ (.docx) (30 trang)

đồ án vi điều khiển của cơ khí động lực

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (774.53 KB, 30 trang )

LỜI MỞ ĐẦU
Kĩ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vào rất nhiều lĩnh
vực sản xuất công nghiệp, tự động hóa, trong đời sống, và còn nhiều lĩnh vực khác
nữa. So với kĩ thuật số thì kĩ thuật vi điều khiển nhỏ gọn hơn rất nhiều do nó được
tích hợp lại và có khả năng lập trình để điều khiển.Nên rất tiện dụng và cơ động.
Sau học xong học phần kĩ tuật vi điều khiển chúng em dùng vi điều khiển PIC để
hiển thị lưu lượng khí nạp trong động cơ lên màn hình LCD.
Mục đích của đề tài tạo ra bước đầu cho sinh viên thử nghiệm những ứng dụng của
vi điều khiển trong thực tiễn để tìm tòi, phát triển.
Trong quá rình làm đồ án do kiến thức còn hạn hẹp, và hạn chế về thời gian nên
không thể tránh khỏi thiếu xót, mong thầy và các bạn góp ý để chúng em hoàn
thiện hơn.

1


-

I. Tổng Quan:
1/ Giới thiệu chung về vi điều khiển:
a) Định nghĩa:
Vi điều khiển là một hệ thống xử lí được tổ chức trong cùng một chip, bao
gồm một xử lí, bộ nhớ chương trình ROM, bộ nhớ dữ liệu RAM, ngoài ra trên
chip còn có bộ xử lí số học-logic ALU cùng với các thanh ghi chức năng, các
cổng vào/ra, cơ chế điều khiển ngắt, truyền tin nối tiếp các bộ định thời…
b) Lịch sử:
Năm 1971, hãng Intel đã cho ra đời bộ vi xử lý đầu tiên trên thế giới với tên gọi
là Intel-4004.
Sau đó các bộ vi xử lí được tiếp tục đưa ra thị trường, ngày càng được phát triển
và hoàn thiện hơn.
Năm 1972, hãng intel đưa ra bộ vi xử lí 8 bit với tên gọi intel-8008 nhưng chưa


được ứng dụng nhiều.
Năm 1974, hãng intel công bố bộ vi xử lí 8 bit 8080.
- Năm 1975, hãng intel công bố bộ vi xử lí 8085.
Năm 1978, chip 8086.
Năm 1979, chip 8088.
Năm 1983, intel đưa ra bộ vi xử lí 16 bit 80286.
Năm 1985, intel đưa ra bộ vi xử lí 32 bit 80386.
Năm 1989, xuất hiện bộ vi xử lí intel 80486 là cải tiến của intel 80386.
2


- Năm 1993, xuất hiện intel 80486 còn gọi là Pentium 64 bit chứa 4 triệu
tranzitor.
- Từ năm 1979 đến năm 2000 lần lượt các dòng Pentium II, Pentium III, Pentium
IV.
- Năm 2006 xuất hiện intel Core 2 Due.
c) Một số đặc điểm của vi điều khiển:
- CPU, RAM, ROM, I/O & Timer nằm trên cùng 1 chip.
- Cố định lượng ROM, RAM, I/O Ports trên chip.
- Giá cả thấp.
- Chiếm ít không gian, ít tiêu thụ năng lượng.
- Kích thước bộ nhớ, số lượng cổng ít thay đổi.
- Chỉ chạy một phần mềm ứng dụng nhất định.
- Sử dụng cho mục đích ứng dụng nhất định.
- Tốc độ tần số nhỏ (MHz).
2/ Cấu trúc chung của 1 Cấu VĐK:
Hầu hết các vi điều khiển ngày nay được xây dựng dựa trên kiến trúc
Harvard, kiến trúc này định nghĩa bốn thành phần cần thiết của một hệ thống
nhúng. Những thành phần này là lõi CPU, bộ nhớ chương trình (thông
thường là ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ

định thời và các cổng vào/ra để giao tiếp với các thiết bị ngoại vi và các môi
trường bên ngoài - tất cả các khối này được thiết kế trong một vi mạch tích
hợp. Vi điều khiển khác với các bộ vi xử lý đa năng ở chỗ là nó có thể hoạt
động chỉ với vài vi mạch hỗ trợ bên ngoài.

.
a) CPU: Là trái tim của hệ thống. Là nơi quản lí tất cả các hoạt động của VĐK.
Bên trong CPU gồm:
- ALU là bộ phận thao tác trên các dữ liệu
3


- Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực
hiện
- Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi
- Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực thi
- Một tập các thanh ghi dùng để lưu thông tin tạm thời
b) Rom:
ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn dùng để chứa số
liệu, các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong
quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung
ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình.
c) Ram:
- RAM là bộ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường xử lý thông tin,
lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí
thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thaotác.
- Thu phát, chuyển đổi dữ liệu.
d) Bus:
- BUS là các đường dẫn dùng để di chuyển dữ liệu. Bao gồm: bus địa chỉ, bus.
- Các đường vào/ra.

- Khối giao tiếp nối tiếp.
e) Khối Timer:
f) Watchdog:
g) Bộ chuyển đổi tương tự - số (ADC):
3/ Ứng dụng của Vđk:
Sưởi ấm thông gió và điều hòa nhiệt độ (HVAC):

4


Sưởi ấm, thông gió và điều hòa không khí (HVAC) hệ thống dựa trên đầu vào
từ một loạt các cảm biến, kiểm soát các loại động cơ như động cơ bước cho
cánh tà và DC / BLDC động cơ quạt.
4/ Các dòng vi điều khiển hiện nay:
4.1/ 8051:
a) Intel 8051: là vi điều khiển đơn tinh thể (không nhầm với CPU) kiến trúc
Harvard, lần đầu tiên được sản xuất bởi Intel năm 1980, để dùng trong cáchệ
thống nhúng. Trong những năm 1980 và đầu những năm 1990 đã rất nổi tiếng.
Tuy nhiên hiện tại đã cũ và được thay thế bằng các thiết bị hiện đại hơn, với các
lõi phối hợp 8051. Tên gọi chính thức của họ vi điều khiển Intel 8051 -MCS 51.
b) Những đặc tính:
-

Một ALU 8-bit, một thanh tích lũy và một thanh ghi 8-bit, do đó nó là một
vi điều khiển 8-bit.

-

Bus dữ liệu 8-bit - có thể truy cập 8 bits dữ liệu trong một hoạt động.


-

Bus địa chỉ 16-bit - có thể truy cập 216 vị trí nhớ 64kB (65536 vị trí) cho mỗi
bộ nhớ RAM và ROM.

-

RAM trên chip - 128 bytes (bộ nhớ dữ liệu).
5


-

ROM trên chip - 4 kbytes (bộ nhớ chương trình).

-

32 chân I/O riêng biệt (4 nhóm mỗi nhóm 8 chân I/O) có thể được truy cập
riêng rẽ.

Hai bộ định thời/đếm 16-bit.
c) Các thành viên khác của họ 8051:
- Có hai bộ vi điều khiển thành viên khác của họ 8051 là 8052 và 8031.
4.2/ PIC:
a) PIC: PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip
Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics
Division thuộc General Instrument.
b) Họ vi điều khiển PIC:
-


Vi điều khiển 8-bit:
-

PIC10

-

PIC12

-

PIC14

-

PIC16

-

PIC17

-

PIC18

Vi điều khiển 16-bit:
PIC24
4.3) AVR:
a) Vi điều khiển AVR: do hãng Atmel sản xuất được gới thiệu lần đầu năm
1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR (như AT tiny

13, AT tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng
AVR (chẳn hạn AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào loại
trung bình và mạnh hơn là dòng Mega ( như ATmega32, ATmega128,…) với bộ
nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa dạng
-

6


được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip (dòng LCD
AVR).
b) Những đặc tính:
- 8K byte Flash trên chíp có thể lập trình với các khả năng đọc trong khi ghi.
- 512 byte EEPROM.
- 1K byte SRAM.
- 23 đường vào ra đa mục đích.
- 32 thanh ghi đa mục đích.
- 3 Timer/Counter rất linh hoạt với các compare mode, các ngắt trong và ngắt
ngoài, một bộ USART nối tiếp có thể lập trình được, ghép nối nối tiếp 2 dây
định hướng byte.
- 6 kênh ADC trong đó 4 kênh có độ chính xác 10-bit và 2 kênh có độ chính
xác 8-bit.
d) Các loại AVR:
Cơ bản họ VAR có thể chia làm 4 nhóm sau:
- TinyAVR - the ATtiny series.
- MegaAVR - the ATmega series.
- XMEGA -the ATxmega series.
- Atmel At94k FPSLIC.
II. Giới thiệu về vi điều khiển được chọn làm đồ án: (PIC)
1/ Khái niệm:

- PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer"
(Máy tính khả trình thông minh) là một sản phẩm của hãng General
Instrument đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Lúc
này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ
16bit CP1600, vì vậy, người ta cũng gọi PIC với cái tên "Peripheral
Interface Controller" (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU
tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát
triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC
sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa
được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến
trúc RISC, chạy một lệnh một chu kỳ máy.
2/ Một vài đặc tính:
Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng
chúng ta có thể điểm qua một vài nét như sau:
7


-

8/16 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi.

-

FLASH và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte.

-

Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5,5V, ứng với
logic 0 và logic 1).


-

8/16 Bit Timer.

-

Công nghệ Nanowatt.

-

Các chuẩn Giao Tiếp Ngoại Vi Nối Tiếp Đồng bộ/Không đồng
bộ USART, AUSART, EUSARTs.

-

Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit.

-

Bộ so sánh điện áp (Voltage Comparators).

-

Các module Capture/Compare/PWM.

-

LCD.

-


MSSP Peripheral dùng cho các giao tiếp I²C, SPI, và I²S.

-

Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần.

-

FLASH (dùng cho bộ nhớ chương trình) có thể ghi/xóa 10.000 lần.

-

Module Điều khiển động cơ, đọc encoder.

-

Hỗ trợ giao tiếp USB.

-

Hỗ trợ điều khiển Ethernet.

-

Hỗ trợ giao tiếp CAN.

-

Hỗ trợ giao tiếp LIN.


-

Hỗ trợ giao tiếp IrDA.

-

Một số dòng có tích hợp bộ RF (PIC16F639, và rfPIC).
8


-

KEELOQ Mã hoá và giải mã.

-

DSP những tính năng xử lý tín hiệu số (dsPIC).

3/ Bộ nhớ dữ liệu của PIC:
Các thanh ghi đa mục đích cho người dùng của PIC là các ô nhớ RAM.Mỗi
thanh ghi này cos độ dài 8 bit cho tất cả các bit.
4/ Các chân của PIC:

a) Các chân nguồn:
- Chân 11,32 là các chân VDD(+5v)
- Chân 12,31 là các chân VSS(0v)
b) Cổng nhập xuất:
- PORT A và thanh ghi TRIS A.
- PORT B và thanh ghi TRIS B.

- PORT C và thanh ghi TRIS C.
9


- PORT D và thanh ghi TRIS D.
- PORT E và thanh ghi TRIS E.
c) Bộ đếm hoặc bộ định thời:
- Timer 0
- Timer 1
- Timer 2
III. Giới thiệu về cảm biến và cảm biến nhiệt độ:
1/ Cảm biến:
a) Bộ cảm biến: là thiết bị điện tử cảm nhận những thay đổi từ môi trường bên
ngoài và biến đổi thành các tín hiệu điện để điều khiển các thiết bị khác. Cảm
biến là một trong ba thành phần cơ bản của hệ thống điều khiển.
b) Ứng dụng của cảm biến nhiệt độ:
- Cảm biến nhiệt độ được ứng dụng trong nhiều lĩnh vực và các ngành quan
trọng. Trong ngành cảng biển, các cảm biến nhiệt độ dùng trong các cần cẩu,
báo nhiệt độ nhiên liệu, nhiệt độ motor….
- Cảm biến được sử dụng ở hầu hết các lĩnh vực đời sống: cơ-điện tử, cơ khí
và công trình,toán và tin,xây dựng,điện tử viễn thông,điện lạnh,…
- Trong ngành bia, nước ngọt, cảm biến nhiệt độ dùng đo nhiệt độ tại các tank,
bồn chứa, đường ống…. để giám sát hệ thống.
- Cảm biến có vai trò quan trọng trong các bài toán điều khiển quá trình nói
riêng và trong các hệ thống điều khiển tự động nói chung.
- Là thiết bị có khả năng cảm nhận các tín hiệu điều khiển vào, ra.
- Có vai trò đo đạc các giá trị.
- Giới hạn cảm nhận với đại lượng vật lý cần đo.
2/ Cảm biến lưu lượng:
a) Giới thiệu chung về cảm biến lưu lượng, phân loại và ứng dụng:

 Giới thiệu chung:
-

Đo lưu lượng đóng một vai trò quan trọng, không chỉ vì nó phục vụ cho mục
đích kiểm kê, đo đếm mà còn bởi vì ứng dụng của nó trong hệ thống tự động
hóa các quá trình sản xuất. Chính vì vậy việc hiểu rõ về phương pháp đo,
cũng như nắm vững các đặc tính của thiết bị đo lưu lượng là điều hết sức cần
thiết.

10


-

Lưu lượng kế là cảm biến đo không thể thiếu để đo lưu lượng của chất khí,
chất lỏng, hay hỗn hợp khí-lỏng trong các ứng dụng công nghiệp như thực
phẩm-nước giải khát, dầu mỏ- khí đốt, hóa chất-dược phẩm, sản xuất giấy,
điện, xi măng … Trên thị trường, các loại lưu lượng kế rất đa dạng và luôn
sẵn có cho bất kỳ ứng dụng công nghiệp hay dân dụng nào. Việc chọn lựa
cảm biến đo lưu lương loại nào cho ứng dụng cụ thể thường dựa vào đặc
tính chất lỏng (dòng chảy một hay hai pha, độ nhớt, độ đậm đặc…), dạng
dòng chảy (chảy tầng, chuyển tiếp, chảy hỗn loạn…), dải lưu lượng và yêu
cầu về độ chính xác phép đo. Các yếu tố khác như các hạn chế về cơ khí và
kết nối đầu ra mở rộng cũng sẽ ảnh hưởng đến quyết định chọn lựa này. Nói
chung, độ chính xác của lưu lượng kế còn phụ thuộc vào cả môi trường đo
xung quanh. Các ảnh hưởng của áp suất, nhiệt độ, chất lỏng/khí hay bất kỳ
tác động bên ngoài nào đều có thể ảnh hưởng đến kết quả đo.

-


Cảm biến đo lưu lượng trong công nghiệp được lắp đặt ở môi trường nhiễu
cao và thường bị xung áp. Điều này đòi hỏi các cảm biến đo lưu lượng phải
hoạt động bình thường cả với xung điện áp và bù được nhiễu để đảm bảo
đưa ra tín hiệu đo với độ chính xác cao.

 Cảm biến được dùng trong đồ án là cảm biến lưu lượng khí nạp kiểu dây

sấy:
Cảm biến lượng khí được dung trong động cơL-EFI để cảm nhận lượng
khí nạp.Đây là một cảm biến quan trọng nhất của động cơL-EFI.Tín hiệu
lượng khí nạp được dung để tính toán khoảng thời gian phun cơ bản và góc
đánh lửa sớm cơ bản.

11


Hình: cảm biến lưu lượng khí nạp kiểu dây sấy
 Phân loại:
Có các loại cảm biến lưu lượng khí nạp như sau:
- Loại chính.
- Loại xoáy quang học Karman.
- Cảm biến khối lượng khí nạp:
- Loại dây sấy.
 Ứng dụng:
Trên hầu hết các loại xe hiên nay đề sử dụng cảm biến lưu lượng khí nạp kiểu
dây sấy vì ưu điểm của loại cảm biến này là cấu tạo đơn giản, trọng lượng nhẹ,
độ bền cao, đặc biệt là cho kết quả đo khá chính xác.
b) Cấu tạo của bộ cảm biến lưu lượng khí nạp loại dây sấy:
- Như trình bày ở hình minh họa, cấu tạo của cảm biến lưu lượng khí nạp kiểu
dây nóng rất đơn giản.


12


- Cảm biến lưu lượng khí nạp gọn và nhẹ như được thể hiện trong hình minh
họa ở bên trái là loại cắm phích được đặt vào đường không khí, và làm cho
phần không khí nạp chạy qua khu vực phát hiện. Như trình bày trong hình
minh họa, một dây nóng và nhiệt điện trở, được sử dụng như một cảm biến,
được lắp vào khu vực phát hiện. Bằng cách trực tiếp đo khối lượng không
khí nạp, độ chính xác phát hiện được tăng lên và hầu như không có sức cản
của không khí nạp. Ngoài ra, vì không có các cơ cấu đặc biệt, dụng cụ này
có độ bền tuyệt hảo.Cảm biến lưu lượng khí nạp được thể hiện trong hình
minh hoạ cũng có một cảm biến nhiệt độ không khí nạp gắn vào.

13


c) Hoạt động và chức năng:

Như thể hiện trong hình minh họa, dòng điện chạy vào dây sấy (bộ sấy)
làm cho nó nóng lên. Khi không khí chạy quanh dây này, dây sấy được làm
nguội tương ứng với khối không khí nạp. Bằng cách điều chỉnh dòng điện
chạy vào dây sấy này để giữ cho nhiệt độ của dây sấy không đổi, dòng điện
đó sẽ tỷ lệ thuận với khối không khí nạp. Sau đó có thể đo khối lượng không
khí nạp bằng cách phát hiện dòng điện đó. Trong trường hợp của cảm biến
lưu lượng khí nạp kiểu dây sấy, dòng điện này được biến đổi thành một điện
áp, sau đó được truyền đến ECU động cơ từ cực VG.
d) Mạch điện bên trong:
- Trong cảm biến lưu lượng khí nạp thực tế, như trình bày ở hình minh
họa, một dây sấy được ghép vào mạch cầu. Mạch cầu này có đặc tính là

các điện thế tại điểm A và B bằng nhau khi tích của điện trở theo đường
chéo bằng nhau ([Ra+R3]*R1=Rh*R2).
14


- Khi dây sấy này (Rh) được làm mát bằng không khí nạp, điện trở tăng lên
dẫn đến sự hình thành độ chênh giữa các điện thế của các điểm A và B.
Một bộ khuyếch đại xử lý phát hiện chênh lệch này và làm tăng điện áp
đặt vào mạch này (làm tăng dòng điện chạy qua dây sấy (R h)). Khi thực
hiện việc này, nhiệt độ của dây sấy (Rh) lại tăng lên dẫn đến việc tăng
tương ứng trong điện trở cho đến khi điện thế của các điểm A và B trở
nên bằng nhau (các điện áp của các điểm A và B trở nên cao hơn).
- Bằng cách sử dụng các đặc tính của loại mạch cầu này, cảm bíên lưu
lượng khí nạp có thể đo được khối lượng không khí nạp bằng cách phát
hiện điện áp ở điểm B.

15


- Trong hệ thống này, nhiệt độ của dây sấy (R h) được duy trì liên tục ở
nhiệt độ không đổi cao hơn nhiệt độ của không khí nạp, bằng cách sử
dụng nhiệt điện trở (Ra). Do đó, vì có thể đo được khối lượng khí nạp một
cách chính xác mặc dù nhiệt độ khí nạp thay đổi, ECU của động cơ
không cần phải hiệu chỉnh thời gian phun nhiên liệu đối với nhiệt độ
không khí nạp.
- Ngoài ra, khi mật độ không khí giảm đi ở các độ cao lớn, khả năng làm
nguội của không khí giảm xuống so với cùng thể tích khí nạp ở mức
nước biển. Do đó mức làm nguội cho dây sấy này giảm xuống. Vì khối
khí nạp được phát hiện cũng sẽ giảm xuống, nên không cần phải hiệu
chỉnh mức bù cho độ cao lớn.

IV. Tìm hiểu về ADC:
1/ ADC nói chung:
a) ADC: (Analog to Digital Converter) là bộ chuyển đổi tương tự sang số,
lấy mức điện thế vào tương tự sau đó một thời gian sẽ sinh ra mã đầu ra
16


dạng số biểu diễn đầu vào tương tự.

Hoạt động cơ bản của lớp ADC:
-Xung lệnh START khởi động sự hoạt động của hệ thống.
- Xung Clock quyết định bộ điều khiển liên tục chỉnh sửa số nhịp hân lưu
trong thanh ghi.
- Số nhịp hân trong thanh ghi được ADC chuyển đổi thành mức điện thế
tương tự VAx.
- Bộ so sánh so sánh VAX với đầu vào trương tự VA. Nếu VAX < VA đầu ra
của bộ so sánh lên mức cao. Nếu VAX > VA ít nhất bằng một khoảng VT (điện
thế ngưỡng), đầu ra của bộ so sánh sẽ xuống mức thấp và ngừng tiến trình
biến đổi số nhịp hân ở thanh ghi.Tại thời điểm này VAX xấpxỉ VA.giá trị nhịp
hân ở thanh ghi là đại lượng số tương đương VAX và cũng là đại lượng số
tương đương VA, trong giới hạn độ phân giải và độ chính xác của hệ thống.
- Logic điều khiển kích hoạt tín hiệu ECO khi chu kỳ chuyển đổi kết
thúc.Tiến trình này có thể có nhiều thay đổi đối với một số loại ADC khác,
chủ yếu là sự khác nhau ở cách thức bộ điều khiển sửa đổi số nhịp hân trong
thanh ghi.
17


b) Các chỉ tiêu kỹ thuật chủ yếu của ADC:
- Độ phân giải

Độ phân giải của một ADC biểu thị bằng số bit của tín hiệu số đầu ra.Số
lượng bit nhiều sai số lượng tử càng nhỏ, độ chính xác càng cao.
- Dải động, điện trở đầu vào:
Mức logic của tín hiệu số đầu ra và khả năng chịu tải (nối vào đầu vào).
- Độ chính xác tương đối:
Nếu lý tưởng hóa thì tất cả các điểm chuyển đổi phải nằm trên một đường
thẳng.Độc chính xác tương đối là sai số của các điểm chuyển đổi thực tế so
với đặc tuyến chuyển đổi lý tưởng.Ngoài ra còn yêu cầu ADC không bị mất
bit trong toàn bộ phạm vi công tác.
- Tốc độ chuyển đổi
Tốc độ chuyển đổi được xác định thời gian bởi thời gian cần thiết hoàn
thành một lần chuyển đổi A/D. Thời gian này tính từ khi xuất hiện tín hiệu
điều khiển chuyển đổi đến khi tín hiệusố đầu ra đã ổn định.
- Hệ số nhiệt độ
Hệ số nhiệt độ là biến thiên tương đối tín hiệu số đầu ra khi nhiệt độ biến đổi
10C trong phạm vi nhiệt độ công tác cho phép với điều kiện mức tương tự
đầu vào không đổi.
- Tỉ số phụ thuộc công suất
Giả sử điện áp tương tự đầu vào không đổi, nếu nguồn cung cấp cho ADC
biến thiên mà ảnh hưởng đến tín hiệu số đầu ra càng lớn thì tỉ số phụ thuộc
nguồn càng lớn.
- Công suất tiêu hao.
2/ ADC trên vi điều khiển PIC:
a) Giới thiệu về ADC của PIC:
- ADC là bộ chuyển đổi tín hiệu tương tự thành tín hiệu số.
- PIC 16F877A có 8 ngõ vào Analog (RA0:RA4 and RE0:RE2) và mỗi kênh
ADC là 10 bit với chip 40 chân. Hiệu điện thế chuẩn V REF 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 2 chân
RA2, RA3.
-Bộ chuyển đổi ADC có cấu trúc độc lập để có thể hoạt động trong khi vi

điều khiển đang ở chế độ Sleep, xung cung cấp cho ADC lấy từ dao động
RC bên trong của khối ADC.
18


-Kết quả chuyển đổi từ tín hiệu tương tự sang số là 10 Bit số tương ứng và
được lưu trong 2 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 2 thanh ghi ADRESH, ADRESL. Bit được xóa
về 0 và cờ ngắt ADIF được SET.
b) Khối ADC trong PIC: Các thanh ghi liên quan đến bộ chuyển đổi ADC
 Thanh ghi ADCON0 (ADDRESS 1FH): có chức năng điều khiển hoạt
động
của thanh ghi ADC.
- Bit 6-7: các bit lựa chọn xung chuyển đổi AD.
- Bit 3-5: các bit lựa chọn kênh tương tự.
- Bit 2: bit báo trạng thái chuyển đổi ADC.
- Bit 1: Chưa dùng nếu đọc là ‘0’.
- Bit 0: bit mở nguồn cho ADC hoạt động.
- Bit 7, 6: Dùng lựa chọn tần số chuyển đổi.
- Bit 5-3: CHS2:CHS0: Các bit lựa chọn kênh tương tự.
- Bit 2: GO/DONE.
Bit này bằng 1 khi chuyển đổi ADC đang diễn ra.
Bit này bằng 0 khi quá trình chuyển đổi kết thúc.
- Bit 0: ADON.
Bit này bằng 1 thì khối ADC được mở nguồn.
Bit này bằng 0 thì khối ADC bị tắt nguồn để giảm bớt công suất tiêu thụ.
 Thanh ghi ADCON1 (ADDRESS 9FH):
- Thiết lập chức năng cho các chân của Port là ngõ vào nhận tương tự hoặc

chân xuất nhập I/O.
- Bit 7: bit lựa chọn định dạng kết quả ADC.
Bit =1 canh lề phải, ngược lại canh lề trái
- Bit 6 (ADCS2): bit lựa chọn xung clock cho chuyển đổi ADC.
- Bit 5-4: chưa dùng nếu đọc sẻ có giá trị là ‘0’.
- Bit 3-0: bit điều khiển ADC.
c) Quy trình chuyển đổi từ tương tự sang số gồm những 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ọn kênh chuyển đổi AD (thanh ghi ADCON0).
- Chọn 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ộ ADC:
- Clear bit ADIF (ADC Interrupt Flag bit =0 chưa hoàn thành chuyển đổi).
19


- Set bit ADIE (ADC Interrupt Enable bit=1 cho phép ngắt ADC).
- Set bit PEIE (Peripheral Interrupt Enable bit = 1 cho phép tất cả các ngắt
ngoại vi).
- Set bit GIE (Global Interrupt Enable bit= 1 cho phép tất cả các ngắt).
3/ Lệnh điều khiển ADC trong CCS:
a) Setup_ADC (mode):
ADC_OFF: tắt hoạt động ADC (tiết kiệm điện, dành chân cho hoạt động
khác).
ADC_CLOCK_INTERNAL: thời gian lấy mẫu bằng xung clock IC (mất 2-6
s) thường là chung cho các chip.
ADC_CLOCK_DIV_2: thời gian lấy mẫu bằng xung clock / 2 (mất 0.4 s
trên thạch anh 20 MHz)

ADC_CLOCK_DIV_8: thời gian lấy mẫu bằng xung clock / 8 (1.6 s)
ADC_CLOCK_DIV_32: thời gian lấy mẫu bằng xung clock / 32 (6.4 s)
b) Setup_ADC_ports (value):
Sau đây là các giá trị value dùng trong 16F877A
Vref: áp chuẩn, Vdd: áp nguồn.
ALL_ANALOGS : dùng tất cả chân sau làm analog : A0 A1 A2 A3 A5
E0 E1 E2 (Vref=Vdd)
NO_ANALOG : không dùng analog , các chân đó sẽ là chân I /O .
AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF : A0 A1 A2 A5 E0
E1 E2 VRefh=A3
AN0_AN1_AN2_AN3_AN4 : A0 A1 A2 A3 A5
(tên thì giống nhau cho tất cả thiết bị nhưng 16F877 chỉ có portA có 5 chân
nên A0 , A1 , A2 , A5 được dùng , A6 , A7 không có)
AN0_AN1_AN3 : A0 A1 A3 , Vref = Vdd
AN0_AN1_VSS_VREF A0 A1 VRefh = A3
AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF : A0 A1 A5 E0 E1 E2
VRefh=A3,VRefl=A2.
AN0_AN1_AN2_AN3_AN4_AN5:A0 A1 A2 A3 A5 E0
AN0_AN1_AN2_AN4_AN5_VSS_VREF : A0 A1 A2 A5 E0 VRefh=A3
AN0_AN1_AN4_AN5_VREF_VREF: A0 A1 A5 E0 VRefh=A3
VRefl=A2
AN0_AN1_AN4_VREF_VREF: A0 A1 A5 VRefh=A3 VRefl=A2
AN0_AN1_VREF_VREF A0 A1 VRefh=A3 VRefl=A2
20


AN0: A0
AN0_VREF_VREF: A0 VRefh=A3 VRefl=A2
VD: setup_adc_ports (AN0_AN1_AN3); // A0, A1, A3 nhận analog, áp
nguồn +5V cấp cho IC sẽ là điện áp chuẩn.

c) Set_ADC_channel (channel):
+ Chọn chân để đọc vào giá trị analog bằng lệnh Read_ADC ( ). Giá
trị channel tuỳ số chân chức năng ADC mỗi chip .Với 16F877, channel có
giá trị từ 0 -7 : 0-chân A0, 1-chân A1, 2-chân A2, 3-chân A3, 4-chân A5, 5chân E0, 6-chân E1, 7-chân E2
+Hàm không trả về trị. Nên delay 10 s sau hàm này rồi mới dùng
hàm read_ADC ( ) để bảo đảm kết quả đúng. Hàm chỉ hoạt động với A /D
phần cứng trên chip.
d) Read_ADC (mode):
+ Dùng đọc giá trị ADC từ thanh ghi (cặp thanh ghi) chứa kết quả biến đổi
ADC. Hàm này sẽ hỏi vòng cờ cho tới khi cờ này báo đã hoàn thành biến
đổi ADC (sẽ mất vài s) thì xong hàm.
+ Nếu giá trị ADC là 8 bit như khai báo trong chỉ thị #DEVICE , giá trị trả
về của hàm là 8 bit, ngược lại là 16 bit nếu khai báo #DEVICE sử dụng
ADC 10 bit trở lên .
+ Khi dùng hàm này, nó sẽ lấy ADC từ chân chọn trong
hàm Set_ADC_channel () trước đó. Nghĩa là mỗi lần chỉ đọc 1 kênh. Muốn
đổi sang đọc chân nào, dùng hàm Set_ADC_channel () lấy chân đó. Nếu
không có đổi chân, dung read_ADC ( ) bao nhiêu lần cũng được.
+ Mode có thể có hoặc không, gồm có:
ADC_START_AND_READ: giá trị mặc định.
ADC_START_ONLY: bắt đầu chuyển đổi và trả về.
ADC_READ_ONLY: đọc kết quả chuyển đổi lần cuối.
V. Tìm hiểu về LCD:
1/ Giới thiệu chung về LCD:
a)Màn hình tinh thể lỏng (Liquid Crystal Display, LCD):là loại thiết bị hiển thị
cấu tạo bởi các tế bào (các điểm ảnh) chứa tinh thể lỏng có khả năng thay đổi
tính phân cực của ánh sáng và do đó thay đổi cường độ ánh sáng truyền qua khi
kết hợp với các kính lọc phân cực. Chúng có ưu điểm là phẳng, cho hình ảnh
sáng, chân thật và tiết kiệm điện.
-Ngày nay, thiết bị hiển thị LCD được sử dụng trong rất nhiều các ứng dụng của

VĐK. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Nó có khả năng
21


hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào
mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ
thống và giá thành rẻ . . .
-LCD là loại chỉ thị thụ động, tiêu thị năng lượng rất nhỏ và có tỉ số tương phản
tốt. Ngoài ra có những tính chất thông dụng sau đây:
+Không tự phát ra ánh sáng và phụ thuộc vào ánh sáng xung quanh và ánh sáng
nền.
+Có ánh sáng khuếch tán.
+Hoạt động ở dạng trong suốt hoặc phản chiếu.
+Thông dụng nhất là loại Neumatic (NLC), loại chất lỏng này trong suốt. Khi nó
được áp điện trường lớn sẽ xuất hiện những ion di chuyển xuyên qua phá vỡ cấu
trúc thông thường dạng tinh thể. Vì vậy chất lỏng được phân cực trở nên chắn
sáng, có màu đen sậm hơn so với xung quanh. Khi điện trường mất đi, chất lỏng
trở về dạng tinh thể cũ và trở nên trong suốt trở lại.
+Cấu tạo cụ thể của LCD gồm có một vật liệu tinh thể lỏng NLC có bề dày khoảng
10 mm được kẹp giữa hai miếng thủy tinh. Mặt thủy tinh được phủ một lớp mỏng
kim loại (oxide thiếc) cho ánh sáng xuyên qua, được dùng làm bản cực mặt trước,
bản cực mặt sau cũng thực hiện như vậy. Còn loại LCD phản chiếu thì bản cực mặt
sau cho phản chiếu sáng.
+Lớp vỏ bọc LCD được cách điện và hàn kín lại.
b) LCD có những đặc điểm sau:
-Điện trường cần thiết cho LCD hoạt động thông thường 104 V/cm. Do đó điện áp
10v cho LCD có bề dày 10 mm.
-Vật liệu NLC có điện trở rất lớn (1010 ohm) cho nên dòng để cho LCD hoạt động
rất nhỏ khoảng 10 mA/cm2 và công suất hoạt động 10 mW/cm2.
-LCD là thiết bị họat động ở tốc độ chậm, thời gian để dẫn vài mili giây và tắt vài

chục mili giây.
Hiện nay LCD (loại thông dụng có thể giao tiếp được với PIC) được chia
thành 2 loại:
-LCD graphic: đặc điểm loại này là toàn bộ màn hình được chia thành các điểm
ảnh, giá thành tùy thuộc vào độ phân giải và hãng sản xuất. Các độ phân giải thông
thường là: 240x64, 240x128, 160x64, 128x128, 128x64, ...
-LCD alphanumeric: Chỉ dùng để hiển thị chữ cái và chữ số. Với loại này 1 ký tự
hiển thị trên một ma trận 5x7 hoặc 5x10, như vậy với loại LCD 16x2 (có hai hàng
và mỗi hàng có 16 ký tự) sẽ có 32 ma trận xếp trên hai hàng. Hiện nay có các loại
LCD thông alphanumeric thông dụng là: 14x2, 16x1, 20x2, 20x4.
c) Các chân của LCD:
-Các chân từ D0 - D7 các chân data truyền dữ liệu để hiển thị, và điều khiển.
-RW: Read/Write (1/0).
-Vdd: chân cấp nguồn.
22


-E: Enabled (cho phép không cho phép).
-RS: Reset.
d) Các chế độ làm việc của LCD:
-Chế độ 8bit, dùng cả 8 chân data (d0-d7) để truyền dữ liệu.
-Chế độ 4 bit, chỉ dùng 4 chân để truyền dữ liệu. Ở chế độ này, để truyền 8 bit dữ
liệu phải truyền 2 lần.
2/ LCD 16x2:
-Đây là loại gồm 16 ký tự x2 dòng ,mỗi ký tự được tạo ra từ một ma trận điểm
sáng kích cỡ 5×7 hoặc 5×10.
3/ Bảng mã lệnh trong LCD 16×2:
a) Một số chú ý: Trước khi tìm hiểu tập lệnh của LCD, sau đây là một vài chú ý
khi giao tiếp với LCD:
-Tuy trong sơ đồ khối của LCD có nhiều khối khác nhau, nhưng khi lập trình điều

khiển LCD ta chỉ có thể tác động trực tiếp được vào 2 thanh ghi DR và IR thông
qua các chân DBx, và ta phải thiết lập chân RS, R/W phù hợp để chuyển qua lại
giữ 2 thanh ghi này.
-Với mỗi lệnh, LCD cần một khoảng thời gian để hoàn tất, thời gian này có thể khá
lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD
thực thi xong lệnh hiện hành mới có thể ra lệnh tiếp theo.
-Địa chỉ của RAM (AC) sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có lệnh ghi vào
RAM. (Điều này giúp chương trình gọn hơn).
- Các lệnh của LCD có thể chia thành 4 nhóm như sau:
-Các lệnh về kiểu hiển thị. VD: Kiểu hiển thị (1 hàng / 2 hàng), chiều dài dữ liệu (8
bit / 4 bit) …
-Chỉ định địa chỉ RAM nội.
-Nhóm lệnh truyền dữ liệu trong RAM nội.
b) Tập lệnh:
-Tập lệnh của LCD tương đối đơn giản. Nhưng khi lập trình cho mạch có
LCD ta chỉ cần gọi các hàm có sẵn trong trình biên dịch mà không cần phải đánh
các lệnh phức tạp.

23


4/ Sơ đồ chân:
a) Các chân này được đánh số thứ tự và đặt tên như hình :

24


-Ý nghĩa của các chân:

b) Nguyên lý hoạt động:

-Các chân 1,2,3 là các chân VSS , VDD, VEE trong đó VSS chân nối đất , VEE
chân chọn độ tương phản chân này dc chọn qua 1 biến trở 5K một đầu nối VCC ,
một đầu nối mát. Chân VDD nối dương nguồn.
- Chân chọn thanh ghi RS (Register Select): Có hai thanh ghi trong LCD, chân RS
(Register Select) được dùng để chọn thanh ghi, như sau:
Nếu RS = 0 ở chế độ ghi lệnh như xóa màn hình , bật tắt con trỏ…
Nếu RS =1 ở chế độ ghi dữ liệu như hiển thị ký tự, chữ số lên màn hình.
25


×