Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Đồ Án Tốt Nghiệp
Thiết kế mạch giao
tiếp giữa ECU và vi
điều khiển để hiển thị
lỗi động cơ
GVHD: Phạm Quốc Thái Trang: 1 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
MỤC LỤC
LỜI NÓI ĐẦU 4
1. MỤC ĐÍCH ĐỀ TÀI 5
1.1. Đặt vấn đề 5
1.2. Mục tiêu và nhiệm vụ 6
2. CƠ SỞ LÝ THUYẾT VỀ LINH KIỆN THIẾT KẾ BỘ GIAO TIẾP 6
2.1. Giới thiệu khái quát về họ vi điều khiển 8051 6
2.1.1. Cấu trúc vi điều khiển P89V51RD2 7
Sơ đồ khối 7
2.1.2. Chức năng các chân 9
2.1.3. Tổ chức bộ nhớ của bộ vi điều khiển 8951 12
2.1.4. Các thanh ghi chức năng đặc biệt ( SFR ) 14
2.1.5. Hoạt động của bộ định thời và các ngắt 19
2.1.5.1. Hoạt động của định thời 19
2.1.5.2. Hoạt động ngắt 20
2.2. Bộ chuyển đổi ADC 21
Giới thiệu vi mạch ADC0809 21
2.3. Giao tiếp LCD 16 x 2 và vi điều khiển P89V51RD2 25
2.3.1. Giới thiệu LCD 16 x 2 25
2.3.2. Phương thức giao tiếp giữa LCD 16 x 2 và vi điều khiển P89V51RD2 25
3. HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ 26
3.1. Sơ đồ cấu trúc và các khối chức năng của hệ thống điều khiển động cơ 26
Sơ đồ cấu trúc và các khối chức năng 26
3.2. Các tín hiệu đầu vào 29
3.2.1.Cảm biến vị trí bướm ga 29
3.2.2. Cảm biến nhệt độ nước làm mát 30
3.2.3. Cảm biến nhiệt độ khí nạp 32
3.2.4. Cảm biến ôxy 34
3.2.5. Cảm biến kích nổ 35
3.2.6. Cảm biến áp suất đường ống nạp 37
3.2.7. Bộ tạo tín hiệu G và NE 38
GVHD: Phạm Quốc Thái Trang: 2 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
3.2.8. Tín hiệu STAR (máy khởi động) 39
3.3. Bộ điều khiển điện tử 39
3.3.1. Tổng quan 39
3.3.2. Cấu trúc ECU 40
3.4. Các tín hiệu điều khiển 44
3.4.1. Điều khiển đánh lửa 44
3.4.1.1. Cơ bản về đánh lửa theo chương trình 44
3.4.1.2. Điều khiển chống kích nổ 46
3.4.1.3. Hiệu chỉnh góc đánh lửa theo các chế độ làm việc của động cơ 48
3.4.2. Điều khiển kim phun 50
3.4.2.1. Hoạt động của kim phun 51
3.4.2.2. Sơ đồ mạch điện điều khiển kim phun 52
3.4.2.3. Chức năng của ECU trong việc điều khiển kim phun 53
3.4.2.4. Sự hiệu chỉnh thời gian phun 55
3.4.3. Điều khiển chế độ không tỉa (cầm chừng) và kiểm soát khí thải 59
3.5. Hệ thống tự chuẩn đoán 61
3.5.1. Tổng quan về hệ thống tự chuẩn đoán 61
3.5.2. Nguyên lý phát hiện lỗi 61
3.5.3. Phương pháp truy xuất mã lỗi 62
4. THIẾT KẾ MẠCH GIAO TIẾP VI ĐIỀU KHIỂN P89V51RD2 VÀ ECU ĐỘNG
CƠ 64
4.1. Cơ sở giao tiếp 64
4.2. Phương án thiết kế 65
4.4. Sơ đồ mạch tổng thể của thiết bị hiển thị mã lỗi 66
4.5. Giới thiệu động cơ thử nghiệm 67
5. CHƯƠNG TRÌNH GIAO TIẾP ECU VÀ HIỂN THỊ MÃ LỖI LÊN LCD 70
5.1. Lưu đồ thuật toán 70
5.2. Chương trình 72
6. QUY TRÌNH CHẨN ĐOÁN 83
7. KẾT LUẬN 85
GVHD: Phạm Quốc Thái Trang: 3 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
TÀI LIỆU THAM KHẢO 86
LỜI NÓI ĐẦU
Hệ thống phun xăng điện tử ngày càng được sử dụng rộng rãi nhằm mục đích
tiết kiệm nhiên liệu và giảm ô nhiễm môi trường. Trong quá trình học và thực tập em
được tìm hiểu về động cơ phun xăng điện tử, biết được nguyên lý phát hiện lỗi động
cơ. Trên một số xe, việc ECU phát hiện lỗi được thông báo cho người sử dụng thông
qua đèn báo. Việc này gây bất tiện cho người sử dụng và người kỹ thuật viên khi
muốn biết lỗi động cơ phải tra bảng mã lỗi của từng loại động cơ.
Thiết kế một thiết bị hiển thị lỗi của động cơ thay cho việc đọc lỗi bằng đèn báo,
hoặc thay thế cho thiết bị sẵn có trên thị trường nhưng giá quá cao, mà vẫn chính xác.
Em chọn đề tài: ‘‘Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi
động cơ”
Qua đây em xin chân thành cám ơn đến thầy Phạm Quốc Thái và các thầy phụ
trách phòng thí nghiệm AVL đã tạo điều kiện cho em được tiếp xúc các mô hình thực
tế, tham khảo nhiều tài liệu quí trong thời gian thực tập và làm đồ án tốt nghiệp.
Mong muốn thiết kế một thiết bị đơn giản với nhiều chức năng nhưng do thời gian
làm đề tài khá ngắn, nội dung đề tài có nhiều vấn đề phức tạp, sự thiếu thốn các thiết
bị đo, thiết bị kiểm tra, ngoài ra hạn chế trong việc thiết kế mạch điện tử cũng tạo ra
GVHD: Phạm Quốc Thái Trang: 4 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
không ít khó khăn nên đề tài mới chỉ được kiểm tra trên động cơ TYOTA 4A-FE.
Trong quá trình thực hiện không thể tránh khỏi những sai sót mong các thầy
thông cảm và chỉ dẫn tạo điều kiện để em được hoàn thiện đề tài.
Em xin chân thành cảm ơn!
Đà nẵng, ngày 01 tháng 06 năm 2007
Sinh viên thực hiện
Lê Anh Nhật
1. MỤC ĐÍCH ĐỀ TÀI
1.1. Đặt vấn đề
Từ khi chiếc ô tô đầu tiên trên thế giới ra đời cho đến nay, ô tô đã trở thành một
phương tiện vận chuyển cần thiết khó có gì thay thế được trong cuộc sống. Hiện nay,
so với các phương tiện giao thông khác ô tô có vị trí vô cùng quan trọng và tỷ lệ hành
khách tham gia giao thông đường bộ cao hơn so với các loại phương tiện giao thông
khác.
Cùng với xu hướng phát triển về khoa học kỹ thuật công nghệ thì nền công
nghiệp ô tô cũng phát triển không ngừng. Từ những năm 80 của thế kỷ XX, công
nghệ điện tử đã được ứng dụng trên ô tô dần dần thay thế các cơ cấu điều khiển bằng
cơ khí. Qua nhiều thập niên điện tử trở thành một trong những nhân tố quan trọng
không thể thiếu được trên ô tô. Nó không những giúp động cơ ô tô điều khiển chính
xác hơn và còn làm giảm ô nhiểm môi trường, tiết kiệm nhiên liệu, tăng công suất
động cơ.
Song song với việc hiện đại hoá chiếc ô tô ngày càng hoàn hảo hơn thì vấn đề
bảo trì, chẩn đoán, sửa chữa ngày càng phức tạp hơn. Với những chiếc ô tô hiện đại
hiện nay lượng dữ liệu điều khiển xe ngày càng nhiều. Vì vậy chẩn đoán sửa chữa
GVHD: Phạm Quốc Thái Trang: 5 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
theo phương pháp thủ công đã trở nên hết sức khó khăn. Do đó, để giúp cho người kỹ
thuật viên thực hiện tốt công việc chẩn đoán và sửa chữa các ô tô đời mới đã trang bị
hệ thống tự chuẩn đoán.
Cùng với xu thế của thế giới, ô tô ở Việt Nam đã ngày càng được sử dụng nhiều
hơn. Do đó điều kiện về kinh tế người sử dụng ở Việt Nam thường sử dụng những xe
cũ nhập từ nước ngoài về, mặc dù trên các xe có trang bị hệ thống tự chẩn đoán
nhưng ở bộ phận hiển thị lỗi lại sử dụng đèn tín hiệu để báo lỗi. Với cách báo lỗi như
vậy gây khó khăn cho người kỹ thuật viên trong việc kiểm tra lỗi, và có khi là không
chính xác. Để đơn giản hơn cho người kỹ thuật viên trong việc đọc lỗi động cơ ta sử
dụng thiết bị hiển thị lỗi động cơ. Hiện nay đã có thiết bị này nhưng giá cả khá đắt.
Trong khi đó chỉ với những thiết bị sẵn có trên thị trường có thể tạo ra thiết bị có tính
năng tương tự nhưng với giá cả lại rẻ hơn rất nhiều.
1.2. Mục tiêu và nhiệm vụ
Đề tài: “Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động
cơ “ nhằm chế tạo một thiết bị hiển thị lỗi của động cơ bằng vi điều khiển đơn giản
với giá thành thấp nhưng đảm bảo độ tin cậy.
Các bước thực hiện:
- Tìm hiểu cấu trúc vi điều khiển
- Tìm hiểu ngôn ngữ lập trình
- Khảo sát hệ thống điều khiển động cơ
- Tìm hiểu về hệ thống tự chẩn đoán
- Thiết kế phần cứng bộ giao tiếp
- Lập trình vi điều khiển
2. CƠ SỞ LÝ THUYẾT VỀ LINH KIỆN THIẾT KẾ BỘ GIAO TIẾP
2.1. Giới thiệu khái quát về họ vi điều khiển 8051
MCS-51 là một họ IC vi điều khiển do Intel phát triển và sản xuất. Các nhà sản
xuất IC khác như Siemens, Advanced Micro Devices,Fujitsu và Phillip được cấp phép
làm các nhà cuung cấp thứ hai cho các chip của họ MCS-51. Chip 8051 là bộ vi điều
GVHD: Phạm Quốc Thái Trang: 6 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
khiển đầu tiên của họ vi điều khiển MCS-51, là một trong những bộ vi điều khiển
mạnh và linh hoạt nhất, đã trở thành bộ vi diều khiển hàng đầu trong những năm gần
đây
Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự
như nhau. Ở đây giới thiệu IC P89V51RD2 là một họ IC vi điều khiển do hãng
Philips Semiconductor sản xuất.
Các đặc điểm của P89V51RD2 được tóm tắt như sau :
- Khối xử lý trung tâm 80C51 chuẩn
- Hoạt động ở điện áp nguồn 5V từ tần số 0 MHz đến 40 MHz
- 64 KB EPROM bên trong với khả năng lập trình ngay trên hệ thống (ISP).
- 1024 Byte RAM nội.
- 4 Port xuất /nhập I/O 8 bit.
- Giao tiếp nối tiếp SPI và UART
- Dải đếm khả trình PCA với chức năng PWM, thu giữ và so sánh
- 3 bộ TIMER/COUNTER 16 bit
- 8 nguồn ngắt với 4 mức ưu tiên
- 2 thanh ghi con trỏ dữ liệu DPTR
- Tương thích mức logic TTL và CMOS
- 1 bộ WATCHDOG TIMER khả trình.
2.1.1. Cấu trúc vi điều khiển P89V51RD2
Sơ đồ khối
GVHD: Phạm Quốc Thái Trang: 7 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Hình 2.1: Sơ đồ khối kiến trúc bên trong P89V51RD2
Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn có khả
năng đưa một tín hiệu giữ nhịp từ bên ngoài.
Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên
trong. Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời
hoặc cũng có thể là giao diện nối tiếp.
Ba bộ định thời 16 bit hoạt động như một bộ đếm.
Các cổng (port0, port1, port2, port3), sử dụng vào mục đích điều khiển. Ở cổng
3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài, hoặc
để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên ngoài.
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm
việc độc lập với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt trong dãy rộng và
được ấn định bằng một bộ định thời.
GVHD: Phạm Quốc Thái Trang: 8 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Trong vi điều khiển 8951 có hai thành phần quan trọng khác đó là bộ nhớ và
các thanh ghi :
+ Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và mã
lệnh.
+ Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lí. Khi CPU làm
việc nó làm thay đổi nội dung của các thanh ghi.
2.1.2. Chức năng các chân
Mặc dù các thành viên của họ MSC-51 có nhiều kiểu đóng vỏ khác nhau,
chẳng hạn như hai hàng chân DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông QFP
(Quad Flat Pakage) và dạng chíp không có chân đỡ LLC (Leadless Chip Carrier) và
đều có 40 chân cho các chức năng khác nhau như vào ra I/0, đọc , ghi , địa chỉ, dữ
liệu và ngắt. Tuy nhiên, vì hầu hết các nhà phát triển chính dụng chíp đóng vỏ 40
chân với hai hàng chân DIP, nên chúng ta cùng khảo sát Vi điều khiển với 40 chân
dạng DIP.
GVHD: Phạm Quốc Thái Trang: 9 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Hình 2.2: Sơ đồ chân P89V51RD2
Vi điều khiển 8951 có 32 trong 40 chân có chức năng như là các cổng I/O, trong
đó 24 chân được sử dụng với hai mục đích. Nghĩa là ngoài chức năng cổng I/O, mỗi
chân có công dụng kép này có thể là một đường điều khiển của Bus địa chỉ hay Bus
dữ liệu hoặc là mỗi chân hoạt động mọt cách độc lập để giao tiếp với các thiết đơn bit
như là công tắc, LED, transistor…
a.Port0: là port có 2 chức năng, ở trên chân từ 32 đến 39 của MC 8951. Trong
các thiết kế cỡ nhỏ không dùng bộ nhớ ngoài, P0 được sử dụng như là những cổng
I/O. Còn trong các thiết kế lớn có yêu cầu một số lượng đáng kể bộ nhớ ngoài thì P0
trở thành các đường truyền dữ liệu và 8 bit thấp của bus địa chỉ.
GVHD: Phạm Quốc Thái Trang: 10 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
b. Port1: là một port I/O chuyên dụng, trên các chân 1-8 của MC8951. Chúng
được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị ngoài khi cần
thiết.
c. Port2: là một cổng có công dụng kép trên các chân 21 – 28 của MC 8951.
Ngoài chức năng I/O, các chân này dùng làm 8 bit cao của bus địa chỉ cho những mô
hình thiết kế có bộ nhớ chương trình ROM ngoài hoặc bộ nhớ dữ liệu RAM có dung
lượng lớn hơn 256 byte.
d. Port3: là một cổng có công dụng kép trên các chân 10 – 17 của MC 8951.
Ngoài chức năng là cổng I/O, những chân này kiêm luôn nhiều chức năng khác nữa
liên quan đến nhiều tính năng đặc biệt của MC 8951, được mô tả trong bảng sau:
Bit Tên Chức năng chuyển đổi
P3.0 RXT Ngõ vào dữ liệu nối tiếp.
P3.1 TXD Ngõ xuất dữ liệu nối tiếp.
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
INT0\
INT1\
T0
T1
WR\
RD\
Ngõ vào ngắt cứng thứ 0.
Ngõ vào ngắt cứng thứ 1.
Ngõ vào của TIMER/COUNTER thứ 0.
Ngõ vào của TIMER/COUNTER thứ 1.
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.
Tín hiệu đọc bộ nhớ dữ liệu ngoài.
e. PSEN (Program Store Enable): 8951 có 4 tín hiệu điều khiển, PSEN là tín
hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép truy xuất bộ nhớ
chương trình mở rộng và thường được nối đến chân OE (Output Enable) của
một EPROM để cho phép đọc các byte mã lệnh của chương trình. Tín hiệu PSEN ở
mức thấp trong suốt phạm vi quá trình của một lệnh. Các mã nhị phân của chương
trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8951 để giải
mã lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức cao.
f. ALE (Address Latch Enable ): Tín hiệu ra ALE trên chân 30 tương hợp với
các thiết bị làm việc với các xử lý 8585, 8088. 8951 dùng ALE để giải đa hợp bus địa
chỉ và dữ liệu, khi port 0 được dùng làm bus địa chỉ/dữ liệu đa hợp: vừa là bus dữ liệu
GVHD: Phạm Quốc Thái Trang: 11 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
vừa là byte thấp của địa chỉ 16 bit . ALE là tín hiệu để chốt địa chỉ vào một thanh ghi
bên ngoài trong nữa đầu của chu kỳ bộ nhớ. Sau đó, các đường Port 0 dùng để xuất
hoặc nhập dữ liệu trong nữa sau chu kỳ của chu kỳ bộ nhớ.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có
thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8951 là 12MHz
thì ALE có tần số 2MHz. Chân này cũng được làm ngõ vào cho xung lập trình cho
EPROM trong 8951.
g. EA (External Access): Tín hiệu vào EA trên chân 31 thường được nối lên
mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, 8951 thi hành chương trình từ
ROM nội trong khoảng địa chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi
hành từ bộ nhớ mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp 21V khi
lập trình cho EPROM trong 8951.
h. RST (Reset): Ngõ vào RST trên chân 9 là ngõ reset của 8951. 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 8951 được
đưa vào những giá trị thích hợp để khởi động hệ thống.
i.OSC: 8951 có một bộ dao động trên chip, nó thường được nối với thạch anh
giữa hai chân 18 và 19. Tần số thạch anh thông thường là 12MHz.
j. POWER: 8951 vận hành với nguồn đơn +5V. Vcc được nối vào chân 40 và
Vss (GND) được nối vào chân 20.
2.1.3. Tổ chức bộ nhớ của bộ vi điều khiển 8951
8951 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho
chương trình và dữ liệu. Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên
trong 8951, dù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên đến tối
đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu.
Bộ nhớ bên trong bao gồm ROM và RAM trên chip. RAM trên chip bao gồm
nhiều phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh
ghi và các thanh ghi chức năng đặc biệt.
RAM bên trong chip 8951 được phân chia như sau:
• Bank thanh ghi (00H – 1FH).
• RAM địa chỉ hóa từng bit (20H – 2FH).
• RAM đa dụng (30H – 7FH).
GVHD: Phạm Quốc Thái Trang: 12 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
• Các thanh ghi chức năng đặc biệt (80H – FFH).
a. RAM đa dụng
Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng
cách đánh địa chỉ trực tiếp hoặc gián tiếp. Ví dụ, để đọc nội dung ở địa chỉ 5FH của
RAM nội vào thanh ghi tích lũy lệnh sau sẽ được dùng :
MOV A, 5FH
Lệnh này di chuyển một byte dữ liệu dùng cách đánh địa chỉ trực tiếp để xác
định “địa chỉ nguồn” (5FH). Đích nhận dữ liệu được ngầm xác định trong mã lệnh là
thanh ghi tích lũy A.
RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua
R0 hay R1. Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên :
MOV R0, #5FH
MOV A, @R0
Lệnh đầu dùng địa chỉ tức thời để di chuyển giá trị 5FH vào thanh ghi R0 và
lệnh thứ hai dùng địa gián tiếp để di chuyển dữ liệu “được trỏ bởi R0” vào thanh ghi
tích lũy.
b. RAM địa chỉ hóa từng bit
8951 chứa 210 bit được địa chỉ hóa, trong đó 128 bit là ở các địa chỉ byte 20H
đến 2FH, và phần còn lại trong các thanh ghi chức năng đặc biệt .
Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện lợi của
vi điều khiển nói chung. Các bit có thể được đặt, xóa, AND, OR …với một lệnh đơn.
Đa số các vi xử lý khác đòi hỏi một chuổi lệnh để đạt được hiệu quả tương tự. Hơn
nữa, các port I/0 cũng được địa chỉ từng bit làm đợn giản phần mềm xuất nhập từng
bit.
Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các địa chỉ này
được truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng.
Ví dụ, để đặt bit 67H, ta dùng lệnh sau : SETB 67H
Ở đây địa chỉ bit 67H là bit có trọng số lớn nhất (MSB) ở địa chỉ byte 2CH, lệnh
trên sẽ không tác động đến các bit khác của byte này.
c. Các bank thanh ghi
GVHD: Phạm Quốc Thái Trang: 13 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
MCU 8951 cung cấp 32 byte thấp nhất của bộ nhớ dữ liệu nội là dành cho các
bank thanh ghi, 8 thanh ghi (RO đến R7) ở vị trí cuối cùng của RAM và theo mặc
định (sau khi Reset hệ thống) các thanh ghi này ở các địa chỉ 00H-07H, tiếp đó là
bank 1, bank 2 và bank 3. Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi
tích lũy:
MOV A, R5
Đây là lệnh một byte dùng địa chỉ thanh ghi. Tất nhiên, thao tác tương tự có thể
được thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ hai:
MOV A, 05H
Các lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn các lệnh
tương ứng dùng địa chỉ trực tiếp. Các giá trị dữ liệu được dùng thường xuyên nên
dùng một trong các thanh ghi này.
Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bank
thanh ghi trong từ trạng thái chương trình (PSW). Giả sử rằng bank thanh ghi 3 được
tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H:
MOV R0, A
Ý tưởng dùng các bank thanh ghi cho phép chuyển hướng chương trình nhanh
và hiệu quả, từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng không
phụ thuộc vào các phần khác.
2.1.4. Các thanh ghi chức năng đặc biệt ( SFR )
Các thanh ghi nội của 8951 được truy xuất ngầm định bởi tập lệnh. Ví dụ lệnh
“INC A” sẽ tăng nội dung của thanh ghi tích lũy A lên 1. Tác động này được ngầm
định trong mã lệnh.
Các thanh ghi trong 8951 được định dạng như một phần của RAM trên chip. Vì
vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực tiếp, sẽ không có lợi khi
đặt chúng vào trong RAM trên chip). Đó là lý do để 8951 có nhiều thanh ghi. Cũng
như R0 đến R7, có 21 thanh ghi chức năng đặc biệt (SFR: Special Function Register)
ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH. Chú ý rằng hầu hết 128 địa chỉ từ
80H đến FFH không được định nghĩa, chỉ có 21 địa chỉ SFR là được định nghĩa.
GVHD: Phạm Quốc Thái Trang: 14 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Ngoại trừ thanh ghi tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số
các SFR được truy xuất dùng địa chỉ trực tiếp. Chú ý rằng một vài SFR có thể được
địa chỉ hóa bit hoặc byte. Trongi thiết kế phải thận trọng khi truy xuất bit và byte.
Ví dụ lệnh sau:
SETB 0E0H
Sẽ set bit 0 trong thanh ghi tích lũy, các bit khác không thay đổi. Ta thấy rằng
E0H đồng thời là địa chỉ byte của thanh ghi tích lũy và là địa chỉ bit có trọng số nhỏ
nhất trong thanh ghi tích lũy. Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ
bit là có hiệu quả.
♦Từ trạng thái chương trình (PWS)
+ Cờ nhớ (CY) có công dụng kép. Thông thường nó được dùng cho các lệnh
toán học: nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số
mượn phép trừ . Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh sau:
ADD A, #1
Sẽ trả về thanh ghi tích lũy kết qủa 00H và set cờ nhớ trong PSW.
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành
trên bit. Ví dụ, lệnh sẽ AND bit 25H với cờ nhớ và đặt kết qủa trở vào cờ nhớ:
ANL C, 25H
+ Cờ nhớ phụ AC :
Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qủa của 4 bit thấp
trong khoảng 0AH đến 0FH. Nếu các giá trị cộng được là số BCD, thì sau lệnh cộng
cần có DA A ( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớn hơn 9 trở
về giá trị đúng .
+ Cờ zero F0: Cờ F0 là một bit cờ đa dụng dành các ứng dụng của người
dùng.
+ Các bit chọn bank thanh ghi
Các bit chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi được tích
cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu
cần. Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh
ghi R7 (địa chỉ byte 1FH) đến thanh ghi tích lũy:
SETB RS1
GVHD: Phạm Quốc Thái Trang: 15 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
SETB RS0
MOV A, R7
Khi chương trình được hợp dịch các địa chỉ bit đúng được thay thế cho các ký
hiệu “RS1” và “RS0”. Vậy lệnh SETB RS1 sẽ giống như lệnh SETB 0D4H.
+ Cờ Tràn
Cờ tràn (0V) được set một lệnh cộng hoặc trừ nếu có một phép toán bị tràn. Khi
các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác
định xem kết qủa của nó có nằm trong tầm xác định không. Khi các số không dấu
được cộng, bit 0V có thể được bỏ qua. Các kết qủa lớn hơn +127 hoặc nhỏ hơn –128
sẽ set bit 0V.
b.Thanh ghi B
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho các
phép toán nhân và chia. Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit trong A và
B rồi trả về kết qủa 16 bit trong A (byte thấp) và B (byte cao). Lệnh DIV AB sẽ chia
A cho B rồi trả về kết qủa nguyên trong A và phần dư trong B. Thanh ghi B cũng có
thể được xem như thanh ghi đệm đa dụng. Nó được địa chỉ hóa từng bit bằng các địa
chỉ bit F0H đến F7H.
c. Con trỏ ngăn xếp
Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H. Nó chứa địa chỉ của
byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên ngăn xếp bao gồm các
thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp. Lệnh cất dữ liệu
vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn
xếp sẽ đọc dữ liệu và làm giảm SP. Ngăn xếp của 8951 được
giữ trong RAM nội và được giới hạn các địa chỉ có thể truy xuất bằng địa chỉ
gián tiếp. chúng là 128 byte đầu của 8951.
Để khởi động lại SP với ngăn xếp bắt đầu tại 60H, các lệnh sau đây được dùng:
MOV SP, #5FH
Trên 8951ngăn xếp bị giới hạn 32 byte vì địa chỉ cao nhất của RAM trên chip là
7FH. Sở dĩ dùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte dữ lệu đầu tiên.
Người thiết kế có thể chọn không phải khởi động lại con trỏ ngăn xếp mà để nó
lấy giá trị mặc định khi reset hệ thống. Giá trị măc định đó là 07H và kết qủa là ngăn
GVHD: Phạm Quốc Thái Trang: 16 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
đầu tiên để cất dữ liệu có địa chỉ 08H. Nếu phần mềm ứng dụng không khởi động lại
SP, bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này đã
được dùng làm ngăn xếp.
Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu giữ tạm
thời và lấy lại dữ liệu hoặc được truy xuất ngầm bằng các lệnh gọi chương trình con
(ACALL, LCALL) và các lệnh trở về (RET, RETI) để cất và lấy lại bộ đếm chương
trình.
d. Con trỏ dữ liệu
Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài, đây là một thanh
ghi 16 bit ở địa chỉ 82H (byte thấp) và 83H (byte cao). Ba lệnh sau sẽ ghi 55H vào
RAM ngoài ở địa chỉ 1000H:
MOV A, #55H
MOV DPTR, #1000H
MOVX @DPTR, A
Lệnh đầu tiên dùng địa chỉ tức thời để tải dữ liệu 55H vào thanh ghi tích lũy,
lệnh thứ hai cũng dùng địa chỉ tức thời, lần này để tải dữ liệu 16 bit 1000H vào con
trỏ dữ liệu. Lệnh thứ ba dùng địa chỉ gián tiếp để di chuyển dữ liệu trong A (55H) đến
RAM ngoài ở địa chỉ được chứa trong DPTR (1000H).
e. Các thanh ghi port xuất nhập
Các port của 8951 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2 ở
địa chỉ A0H và Port 3 ở địa chỉ B0H. Tất cả các Port đều được địa chỉ hóa từng bit.
Điều đó cung cấp một khả năng giao tiếp thuận lợi.
f. Các thanh ghi timer
8951 chứa 2 bộ định thời đếm 16 bit được dùng trong việc định thời hoặc đếm
sự kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở
địa chỉ 8BH (TL1:byte thấp) và 8DH (TH1: byte cao).
Việc vận hành timer được set bởi thanh ghi Timer Mode (TMOD) ở địa chỉ 89H
và thanh ghi điều khiển timer (TCON) ở địa chỉ 88H. Chỉ có TCON được địa chỉ hóa
từng bit.
g. Các thanh ghi port nối tiếp
GVHD: Phạm Quốc Thái Trang: 17 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
8951 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các
thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có giao
tiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch ). Một thanh ghi gọi là bộ
đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và nhận. Khi
truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc từ SBUF. Các mode vận
hành khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) được
địa chỉ hóa từng bit ở địa chỉ 98H.
h. Các thanh ghi ngắt
8951 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi reset hệ
thống và sẽ được cho phép bằng việc ghi vào thanh ghi cho phép ngắt (IE) ở địa chỉ
8AH một giá trị phù hợp. Cả hai thanh ghi được địa chỉ hóa từng bit.
♦ Lệnh reset
8951 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ máy
và sau đó trả về mức thấp. RST có thể được kích khi cấp điện dùng một mạch R-C.
Hình 2.3: Mạch reset hệ thống
GVHD: Phạm Quốc Thái Trang: 18 SVTH: Lê Anh Nhật - Lớp 02C4
1 0 K
5 V 5 V
S W
1 0 0 1 0 u F
R S T
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
2.1.5. Hoạt động của bộ định thời và các ngắt
2.1.5.1. Hoạt động của định thời
Bộ định thời được sử dụng trong hầu hết các ứng dụng hướng điều khiển và
8051 với các bộ định thời trên chip không phải là trường hợp ngoại lệ. 8051 có hai bộ
dịnh thời 16-bit, mỗi bộ có bốn chế độ hoạt động. Các bộ định thời dung để:
- Định thời gian trong một khoảng thời gian
- Đếm sự kiện
- Tạo tốc độ baud cho port nối tiếp của chip 8051
Hoạt động của một bộ định thời đơn giản được minh họa trong hình 2.1
0765
4
3
21
0Count
Flag
Q (MSB)
Q
Q (LSB)
Clock
Flag is set on 7-to-0
timer overflow
2
1
0
msb
lsb
"Flag"
flip-flop
Timer flip flops (3)
Clock
q
d
q
q
d
q
q
d
q
q
q
d
Hình 2.4: Bộ định thời 3-bit
Bộ định thời 3-bit, mỗi tầng là một D.FF kích khởi cạnh âm hoạt động giống
như một mạch chia cho hai, do ta nối ngõ ra Q với ngõ vào D. Flipflop cờ đơn giản là
một mạch chốt D được SET bằng 1 bởi tầng cuối của bộ định thời. Giản đồ thời gian
ở hình 2.4 cho thấy tang thứ nhất (Q
0
) chia hai tần số xung clock, tầng thứ hai chia 4
GVHD: Phạm Quốc Thái Trang: 19 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
tần số xung clock và v.v… Số đếm (count) được ghi ở dạng thập phân và được kiểm
tra dễ dàng bằng cách khảo sát trạng thái của 3 flipflop. Thí dụ số đếm là 4 xuất hiện
khi Q2=
1
, Q
1
=0, Q
0
=0 (4
10
=100
2
). Các flipflop ở hình 2.4 là các llipflop tác động
cạnh âm (nghĩa là ngõ ra Q của các flipflop đổi trạng thái theo cạnh âm của xung
clock). Khi số đếm tràn từ 1112 xuống 0002 có cạnh âm(1 0) làm cho trạng thái
của flipflop cờ đổi từ 0 lên 1 (ngõ vào D của flipflop này luôn ở logic 1)
2.1.5.2. Hoạt động ngắt
Một ngắt là sự xảy ra một điều kiện, một sự kiện nó gây ra treo tạm thời thời
chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi
điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và
giải quyết sự kiện đó trong khi một chương trình khác đang thực thi.
Tổ chức ngắt 89S52:
Có các nguyên nhân sau: ngắt do bên ngoài, ngắt do bộ định thời, ngắt do port
nối tiếp và ngắt do bộ định thời thứ 3.
Cho phép và cấm ngắt:
Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặc
biệt có định địa chỉ IE (Interrupt Enable:cho phép ngắt) ở địa chỉ A8H.
Bảng: Thanh ghi IE
Bit Ký hiệu Địa chỉ bit Mô tả
IE.7 EA AFH Cho phép / Cấm toàn bộ
IE.6 - AEH Không được mô tả
IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052)
IE.4 ES ACH Cho phép ngắt port nối tiếp
IE.3 ET1 ABH Cho phép ngắt từ Timer1
IE.3 EX1 AAH Cho phép ngắt ngoài 1
IE.1 ET0 A9H Cho phép ngắt từ Timer 0
IE.0 EX0 A8H Cho phép ngắt ngoài 0
Các loại cờ ngắt
Các cờ ngắt:
Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên
một để xác nhận ngắt.
GVHD: Phạm Quốc Thái Trang: 20 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Bảng : Các loại cờ ngắt.
Ngắt Cờ Thanh ghi SFR và vị trí bit
Bên ngoài 0 IE0 TCON.1
Bên ngoài 1 IE1 TCON.3
Timer 1 TF1 TCON.7
Timer 2 TF0 TCON.5
Port nối tiếp TI SCON.1
Port nối tiếp RI SCON.0
Do bộ định thời 2 TF2 T2CON.7
Do bộ định thời 2 EXF2 T2CON.6
Các loại cờ ngắt
Ưu tiên ngắt:
Mỗi một nguyên nhân ngắt được lập trình riêng rẽ để có một trong hai mức
ưu tiên thông qua thanh ghi chức năng đặc biệt được định địa chỉ từng bit, thanh ghi
này có địa chỉ byte là 08BH.
Nếu có hai ngắt với mức ưu tiên ngắt khác nhau xuất hiện đồng thời, ngắt có
mức ưu tiên cao hơn sẽ được ngắt trước.
Chỗi vòng: Nếu có hai ngắt có cùng ngắt ưu tiên xuất hiện đồng thời, chuỗi
vòng sẽ xác định ngắt nào sẽ được phục vụ trước. Chuỗi vòng này có thứ tự như sau:
ngắt ngoài 0, ngắt do bộ định thời 0. ngắt ngoài 1, ngắt do port nối tiếp, ngắt do bộ
định thời 2.
2.2. Bộ chuyển đổi ADC
Giới thiệu vi mạch ADC0809
Bộ ADC 0809 là một linh kiện CMOS tích hợp với một bộ chuyển đổi từ tương
tự sang số 8 bit, bộ chọn 8 kênh và một bộ logic điều khiển tương thích. Bộ chuyển
đổi AD 8 bit này dùng phương pháp chuyển đổi xấp xỉ liên tiếp. Bộ chọn kênh có thể
truy xuất bất kỳ kênh nào trong các ngõ vào tương tự một cách độc lập.
GVHD: Phạm Quốc Thái Trang: 21 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Hình 2.5: Sơ đồ chân vi mạch ADC 0809
Ý nghĩa các chân:
+ IN
0
đến IN
7
: 8 ngõ vào tương tự.
+ A
0
, A
1
, A
2
: giải mã chọn một trong 8 ngõ vào
+ D
0
đến D
7
: ngõ ra song song 8 bit
+ ALE : cho phép chốt địa chỉ
+ START : xung bắt đầu chuyển đổi
+ CLK : xung đồng hồ
+ V
REF+
: điện thế tham chiếu (+)
+ V
REF
- : điện thế tham chiếu (-)
+ V
CC
: nguồn cung cấp
Các đặc điểm của ADC 0809:
+ Độ phân giải 8 bit
+ Tổng sai số chưa chỉnh định ½ LSB; 1 LSB
+ Thời gian chuyển đổi: 100 s ở tần số 640 KHz
+ Nguồn cung cấp + 5V
+ Điện áp ngõ vào 0 - 5V
+ Tần số xung clock 10kHz - 1280 kHz
+ Nhiệt độ hoạt động - 40
o
C đến 85
o
C
GVHD: Phạm Quốc Thái Trang: 22 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
+ Dễ dàng giao tiếp với vi xử lý hoặc dùng riêng
+ Không cần điều chỉnh zero hoặc đầy thang
Nguyên lý hoạt động:
ADC 0809 có 8 ngõ vào tương tự, ngõ ra 8 bit, có thể chọn 1 trong 8 ngõ vào
tương tự để chuyển đổi sang số 8 bit.
Các ngõ vào được chọn bằng cách giải mã.
Chọn 1 trong 8 ngõ vào tương tự được thực hiện nhờ 3 chân A
0
, A
1
, A
2
như
bảng trạng thái sau:
A
0
A
1
A
2
Ngõ vào được chọn
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
Sau khi kích xung start thì bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của
xung start, ngõ ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tính từ cạnh
xuống của xung start). Lúc này bit có trọng số lớn nhất (MSB) được đặt lên mức 1, tất
cả các bit còn lại ở mức 0, đồng thời tạo ra điện thế có giá trị Vref/2, điện thế này
được so sánh với điện thế vào in.
+ Nếu Vin > Vref/2 thì bit MSB ở mức 1.
+ Nếu Vin < Vref/2 thì bit MSB vẫn ở mức 0.
Tương tự như vậy bit kế tiếp MSB được đặt lên 1 và tạo ra điện thế có giá trị
Vref/4 và cũng so sánh với điện áp ngõ vào Vin. Quá trình cứ tiếp tục như vậy cho
đến khi xác định được bit cuối cùng. Khi đó chân EOC lên mức 1 báo cho biết đã kết
thúc chuyển đổi.
GVHD: Phạm Quốc Thái Trang: 23 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Trong suốt quá trình chuyển đổi chân OE được đặt ở mức 1, muốn đọc dữ liệu ra
chân OE xuống mức 0.
Trong suốt quá trình chuyển đổi nếu có 1 xung start tác động thì ADC sẽ ngưng
chuyển đổi
Mã ra N cho một ngõ vào tùy ý là một số nguyên:
)()(
)(
).(256
−+
−
−
−
=
refref
refIN
VV
VV
N
Trong đó:
Vin: điện áp ngõ vào bộ so sánh.
Vref(+): điện áp tại chân V
REF +
Vref(-): điện áp tại chân V
REF -
Nếu chọn Vref(-) = 0 thì, N = 256.
)(+ref
in
V
V
Vref(+) = Vcc = 5V
thì đầy thang là 256.
Giá trị bước nhỏ nhất: 1 LSB =
12
5
8
−
= 0,0196 V/byte
Áp vào lớn nhất của ADC 0809 là 5V.
● Thiết kê mạch dao động tạo xung Clock cho ADC 0809
Sử dụng mạch dao động dùng các cổng Not để tạo xung Clock cho ADC .
GVHD: Phạm Quốc Thái Trang: 24 SVTH: Lê Anh Nhật - Lớp 02C4
Đồ án tốt nghiệp Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ
Hình 2.6 Mạch dao động cho ADC 0809
Tần số dao động của mạch là f = 1/(3.R.C)
Tần số dao động chuẩn là 600 KHz
=> 640 =1/(3.R.C)
Với R từ 100Ω đến vài KΩ, ta chọn R = 330 Ω
=> C = 1500 pF
2.3. Giao tiếp LCD 16 x 2 và vi điều khiển P89V51RD2
2.3.1. Giới thiệu LCD 16 x 2
LCD có 14 chân và 2 chân AK
- Trong 14 chân của LCD thi có: 8 chân dữ liệu D0
→
D7
- 3 chân điều khiển E, RS, R/W
- 3 chân nguồn Vss, Vdd< Vo
Chân E (enable): chân này cho IC 44780 biết là vi điều khiển dang liên lạc với
nó, mức tích cực la mức 1. Chân này dùng để điều khiển trạng thái đường truyền dữ
liệu
Chân RS : báo cho LCD biết bước sắp tới là hiển thị dữ liệu hay thực thi các
lệnh điều khiển( mức 0: lệnh , mức 1 : hiển thị dữ liệu)
Chân R/W : có tác dụng báo cho LCD biết là VDK muốn đọc hay ghi( 1: read, 0:
write)
Chắc các bạn sẽ thắc mắc là LCD dùng để ghi dữ liệu, tại sao lại cần đến đọc nữa.
Đọc dữ liệu cần thiết vì khi đọc dữ liệu từ LCD thì VDK mới biết lúc nào LCD thực
thi xong lênh mà nó gửi truớc đó để còn thực thi lệnh tiếp theo
Chân Vss, Vdd là chân nguồn ( Vss nối đất).Còn chân Vo là điều chỉnh độ tương
phản , tức là độ sáng của LCD, để điều chỉnh độ tương phản thì nối chân này với biến
trở 10k, một đầu nối dất một đầu nối với dương nguôn
2.3.2. Phương thức giao tiếp giữa LCD 16 x 2 và vi điều khiển P89V51RD2
GVHD: Phạm Quốc Thái Trang: 25 SVTH: Lê Anh Nhật - Lớp 02C4