Họ MCS-51 có khả năng ứng dụng rất rộng rãi, chúng có mặt trong rất nhiều sản phẩm dân dụng như máy giặt, máy điều hòa nhiệt độ, lò vi sóng, nồi cơm điện..., các thiết bị điện tử y tế và
Trang 1LỜI NÓI ĐẦU Ngày nay, nhân loại đã và đang trải qua những sự phát triển vượt bật về
mọi mặt Trong đó lĩnh vực điện- điện tử -tự động hoá đóng một vai trò khôngnhỏ Điện tử góp phần rất lớn vào quá trình tự động hoá thực sự đã giúp con người
có những tiến bộ vượt bậc Đặc biệt là trong nghành Otto-nghành tổng hợp củanhiều lĩnh vực tri thức Trên thế giới, việc ứng dụng điện-điện tử vào xe với xuhướng tối ưu hóa, hiện đại hóa nhằm đem lại tiện ích và an toàn cho người lái đangđược phát triển mạnh Tuy vậy ở Việt Nam việc nghiên cứu và ứng dụng các thànhtựu của “vi điều khiển”còn khá mới mẻ trong thời điểm hiện tại
Trong xu hướng chung đó,vận dụng những kiến thức mà chúng em đã
được học trong quá trình học tập ở trường cũng như tìm hiểu thêm nhóm 5 sinhviên chúng em thực hiện đồ án môn học “Kỹ thuật vi điều khiển” với đề tài
khiển tốc độ cầm chừng
yếu dựa vào vi điều khiển, mà thực tế là IC8051, với mục đích giúp chúng em hiểumột cách tường tận hơn các kiến thức về vi điều khiển, cách đọc, viết và nhận biết
về các chân IC, xây dựng mạch nguyên lý,làm mạch in… đã tìm hiểu và nghiêncứu qua sách cũng như cách thức vận dụng nó trong thực tế
Các ứng dụng của vi điều khiển rất đa dạng và phong phú.Từ những ứng
dụng đơn giản chỉ có vài thiết bị ngoại vi cho đến những hệ thống điều khiển phứctạp Đặc biệt là các ứng dụng trên Otto như hệ thóng phanh, lái, an toàn Tuynhiên do phạm vi trình độ của chúng em còn hạn chế, nên việc nghiên cứu và tìmhiểu về vi điều khiển còn nhiều vướng mắc, do đây là lần đầu tiên áp dụng vàothực tế cũng như là môn đầu mới áp dụng vào cho nghành nên viêc học hỏi gặpnhiều khó khăn hơn Trong quá trình làm đề tài chúng em xin chân thành cám ơn
thầy Phạm Quốc Thái đã tận tình chỉ bảo, định hướng cho chúng em hoàn thành tốt đồ án
Chúng em xin chân thành cảm ơn!
Đà Nẵng, ngày 13 tháng 06 năm 2011
Trang 2-Nguyễn Hữu Nghĩa 08c4a -Trần Đắc Hưng 08c4a -Võ Thành Huy 08c4a -Phạm Đức Thái 08c4a -Nguyễn Thanh Hoàng 06c4b
CHƯƠNG I : GIỚI THIỆU CHUNG VỀ “VI ĐIỀU KHIỂN”
1.1 Giới thiệu họ vi điều khiển
Bộ điều khiển đơn chíp 8051 được công ty INTEL chế tạo vào năm 1981 là
là sản phẩm đầu tiên của họ bộ vi điều khiển MCS-51 Ngày nay, họ MCS-51 đã
có trên 250 biến thể khác nhau và được hầu hết các công ty bán dẫn hàng đầu trên thế giới chế tạo, với số lượng tiêu thụ trên 4 tỷ bộ mỗi năm Họ MCS-51 có khả năng ứng dụng rất rộng rãi, chúng có mặt trong rất nhiều sản phẩm dân dụng như máy giặt, máy điều hòa nhiệt độ, lò vi sóng, nồi cơm điện , các thiết bị điện tử y
tế và viễn thông, các thiết bị đo lường và điều khiển sử dụng trong công nghiệp, v.v Dưới đây là cấu trúc cơ bản của các bộ vi điều khiển MCS-51:
Mỗi vi mạch MCS-51 bao gồm trong nó bộ xử lý trung tâm (CPU), bộ nhớ chỉ đọc(ROM), bộ nhớ đọc ghi (RAM), các cổng vào ra song song 8 bít (l/o Port), cổng vào ra nối tiếp (Serial Port), các bộ đếm và định thời (Timer), khối điều khiển ngắt
Trang 3(lnterrupt control), khối điều khiển bus (Bus control) và mạch tạo xung nhịp (Oscillator) Giao tiếp giữa CPU và các khối bên trong của MCS-51 được thực hiện qua các bus nội bộ gồm bus dữ liệu 8 bít, bus địa chỉ và các tín hiệu điều khiển khác Cấu trúc trên cho phép coi MCS-51 như là một máy tính đơn chíp 8 bít.
1.2 Sơ đồ và chức năng các chân
Sơ đồ các chân ra trên vỏ của các vi mạch MCS-51 như hình dưới đây chức năng của các chân như sau:
-Chân GND (20) là để nối đất, còn chân Vcc (40) là để cấp nguồn cho vi mạch MCS-51
- Các chân X1 (19) và X2 (18) để mắc thạch anh cho mạch tạo xung nhịp của MCS-51
Trang 4ban đầu cho MCS-51.
- Chân /EA (31) là tin hiệu vào, khì nối /EA với +5v thì MCS-51 chỉ làm việc với các bộ nhớ ROM, RAM bên trong nó, còn khi nối /EA với đất thì MCS-
51 làm việc với các bộ nhớ ROM, RAM bên ngoài
- Chân ALE (30) là tín hiệu ra dùng để chốt 8 bít địa chỉ thấp (AO A7) khi
sử dụng bộ nhớ ngoài
- Chân /PSEN (29) là tín hiệu ra tích cực mức thấp dùng để đọc mã lệnh từ
bộ nhớ chương trình bên ngoài khi /EA được nối với đất, khi /EA được nối với +5v thì /PSEN luôn không tích cực ở mức cao
- Các chân cổng 0: P0.7 P0.0 (32-39) được dùng làm cổng vào ra khi /EA được nối với +5v Khi /EA nối đất thì cổng 0 được sử dụng làm bus địa chỉ và sổ liệu cho bộ nhớ ngoài Khi đó, ở nửa đầu của chu kỳ lệnh truy nhập bộ nhớ ngoài, MCS-51 đa ra cổng 0 8 bit địa chỉ thấp (A0-A7), sau đó cổng 0 trở thành bus số liệu 8 bít, do đó phải dùng ALE để chốt 8 bit địa chỉ thấp vào thanh chốt địa chỉ phần thấp
- Các chân cổng 2: P2.0 P2.7 (21- 28) được dùng làm cổng vào ra khi /EA được nối với +5v Khi /EA được nối đất thì cổng 2 được sử dụng để đưa ra 8 bít địa chỉ cao (A8-A15) cho bộ nhớ ngoài
- Các chân cổng 3: P3.0 P3.7 (10-17) có thể được dùng làm cổng vào ra hoặc dùng cho chức năng khác như sau: P3.0 (RxD) có thể được dùng để nhận số liệu nối tiếp P3.1 (TxD) có thể được dùng để phát số liệu nối tiếp P3.2 (INTO) có thể được dùng để nhận ngắt ngoài 0; P3.3 (INT1) có thể được dùng để nhận ngắt ngoài 1; P3.4 (T0) có thể được dùng để nhận xung clock Timer 0; P3.5 (T1) có thểđược dùng để nhận xung clock cho Timer 1; P3.6 (/WR) khi /EA nối đất thì nó được dùng để đưa ra tín hiệu điều khiển ghi RAM ngoài; P3.7 (/RD) khi /EA nối đất thì nó được dùng để đa ra tín hiệu điều khiển đọc RAM ngoài
- Các chân cổng 1: P1.0 P1.7 (1 8) đối với nhóm 8051 chỉ được sử dụng làm cổng vào ra Đối với nhóm 8052 thì chân P1.0 (1) có thể được dùng để nhận xung clock T2 cho Timer 2, còn chân P1.1 (2) có thể được dùng làm đầu vào nạp lại T2EX cho Timer 2
-Tất cả 32 chân của 4 cổng P0 P3 đều có thể dùng làm các cổng vào ra số liệu song song 8 bít hoặc dùng làm các tín hiệu vào ra độc lập nhau
1.3 Tổ chức bộ nhớ
Họ MCS-51 có không gian nhớ riêng cho chương trình và số liệu ở cả bên trong và bên ngoài Tổ chức bộ nhớ của 89C51 như trên hình sau:
Trang 5Hình 1.1: Tổ chức bộ nhớ
-Khi /EA được nối với +5v thì bộ nhớ ngoài không được dùng, MCS-51 chỉtruy nhập EEPROM trong để đọc mã chương trình và cất số liệu vào RAM trong Khi /EA được nối đất thì bộ nhớ chương trình ROM trong không được dùng, MCS-51 đọc mã chương trình từ bộ nhớ chương trình ngoài bằng tín hiệu /PSEN, còn bộ nhớ số liệu ngoài được truy nhập bằng các tín hiệu /WR và /RD, do có bộ nhớ chương trình và bộ nhớ số liệu ngoài có thể dùng chung bus địa chỉ A0
A15.Bộ nhớ số liệu trong của họ MCS-51 có địa chỉ từ 00h đến FFh, trong đó nhóm 8052 có đủ 256 byte RAM, nhóm 8051 chỉ có 128 byte RAM ở các địa chỉ thấp từ 00h đến 7fh, vùng địa chỉ cao từ 80h đến FFh được dành cho các thanh ghi chức năng đặc biệt SFR Tổ chức vùng 128 byte thấp bộ nhớ số liệu RAM trong của họ MCS-51như trên hình 3, nó được chia thành ba miền
-Miền các băng thanh ghi chiếm địa chỉ từ 00h đến 1fh có 32 byte chia thành băng, mỗi băng có 8 thanh ghi được đánh số từ R0 đến R7
-Tại mỗi thời điểm chỉ có một băng thanh ghi có thể truy nhập và được gọi
là băng tích cực Để chọn băng tích cực cần nạp giá trị thích hợp cho các bít RS0
và RS1 của thanh ghi từ trạng thái PSW, mặc định bằng 0 là tích cực Miền RAM được định địa chỉ bít có 16 byte 8 bít = 128 bít, chiếm địa chỉ từ 20h đến 1fh Mỗi bít ở miền này được định địa chỉ riêng từ 00h đến 7fh nên có thể truy nhập đến từng bít riêng rẽ bằng các lệnh xử lý bít Vùng RAM được định địa chỉ bít và các lệnh xử lý bít là một trong những đặc tính nổi bật đem lại sứcmạnh cho họ bộ vi điều khiển MCS-51
-Miền RAM thông thường có 80 byte chiếm địa chỉ từ 30h đến 7fh Các thanh ghi chức năng đặc biệt (viết tắt theo tiếng Anh là SFR) là tập các thanh ghi bên trong của bộ vi điều khiển Họ MCS-51 định địa chỉ cho tất cả các SFR ở vùng 128 byte cao của bộ nhớ số liệu trong (xem hình 2), mỗi SFR có tên gọi và địa chỉ riêng, một số SFR có định địa chỉ cho từng bít Khi bật nguồn hoặc
RESET, tất cả các SFR đều được nạp giá trị đầu, sau đó chương trình cần nạp lại giá trị cho các SFR cần dùng theo yêu cầu sử dụng
Trang 6
Hình 1.2: Tổ chức 128 byte thấp của RAM trong
-Việc truy nhập đến các SFR chỉ có thể thực hiện bằng phương pháp địa chỉtrực tiếp với tên gọi hoặc địa chỉ của SFR là toán hạng của lệnh Với các SFR cóđịnh địa chỉ bít, có thể truy nhập và thay đổi trực tiếp từng bít.của nó bằng cáclệnh xử lý bít Bảng 2 cho biết thông tin chủ yếu về các SFR
-Ở nhóm 8051vùng 128 byte cao của bộ nhớ số liệu trong chỉ có các SFR,không tồn tại các ô nhớ khác ở vùng nhớ này Ở nhóm 8052 bộ nhớ số liệu trong
có 256 byte RAM, các ô nhớ của vùng RAM 128 byte cao chỉ có thể truy nhập được
bằng phương pháp địa chỉ gián tiếp, còn các SFR cũng có địa chỉ nằm trongvùng đó nhưng chỉ truy nhập được bằng phương pháp địa chỉ trực tiếp, vì thế việc
Trang 7truy nhập chúng không bị xung đột và nhầm lẫn.
1.4 Phần mềm lập trình vi điều khiển MCS-51
-Có thể viết trên ngôn ngữ Assembler hoặc các ngôn ngữ bậc cao khác như
C, Basic, Forth Tập lệnh Assembler của họ MCS-51 có 83 lệnh, được chia thành
5 nhóm là các lệnh số học, các lệnh logic, các lệnh chuyển số liệu, các lệnh xử lý bít và các lệnh rẽ nhánh Các lệnh xứ lý bít là điểm mạnh cơ bản của họ MCS-51,
vì chúng làm cho chương trình ngắn gọn hơn và chạy nhanh hơn Chương trình Assembler được viết trên máy tính, sau đó phải dịch ra mã máy của họ MCS-51 bằng trình biên dịch ASM51, rồi mới nạp Chương trình mã máy vào bộ nhớ cho trình EEPROM (hoặc EPROM) ở bên trong hoặc bên ngoài MCS-51 Khi lập trìnhbằng ngôn ngữ bậc cao như C, Basic, Forth cũng phải dịch chúng ra mã máy của họ MCS-51 bằng các trình biên dịch tương ứng, sau đó nạp chương trình mã máy vào bộ nhớ chương trình Nói chung, chương trình viết trên ngôn ngữ
Assembler khó hơn viết trên ngôn ngữ bậc cao, nhưng khi dịch ra mã máy sẽ ngắn gọn hơn và chạy nhanh hơn các chương trình viết trên ngôn ngữ bậc cao Để viết
và nạp phần mềm cho MCS-51, bạn phải có các công cụ là máy vi tính, trình biên dịch ngôn ngữ sử dụng ra mã máy của họ MCS-51 và bộ nạp chương trình mã máy
từ máy tính vào bộ nhớ chương trình EEPROM trong Mcs-51 hoặc bộ nhớ
EPROM ngoài
Trang 8CHƯƠNG II:
GIỚI THIỆU CHUNG
VỀ “QUY TRÌNH CÔNG NGHỆ HỆ THỐNG THIẾT KẾ”
2.1 Nguyên lý hoạt động của hệ thống : Để biết được nhiệt độ nước làm mát là
bao nhiêu thì ta đặt một cảm biến nhiệt độ tuy nhiên nhiệt độ nước làm mát là mộtđại lượng vật lý mà các máy tính số lại sử dụng các giá trị nhị phân.Do vậy ta cầnmột bộ chuyển đổi ADC tương tự số cao cho vi điều khiển có thể đọc được chúngmột chíp ADC được sử dụng rộng rải là ADC 0804, sau khi chuyển đổi xong toàn
bộ dữ liệu được đưa về bộ xử lý trung tâm ở đây dữ liệu sẽ được xử lý và sau đóthông qua bộ cấp năng lượng cho stato ULN 2803 sẽ làm quay roto của động cơbước điều khiển chuyển động tịnh tiến của van ISC
2.2 Hoạt động của loại môtơ bước
- Đặt chế độ khởi động
Chế độ khởi động đặt ISCV vào vị trí mở hoàn toàn khi động cơ ngừng (khi ECU động cơ không nhận được tín hiệu NE) để tăng khả năng khởi động của lần khởi động động cơ tiếp theo
Nhiệt độ nước làm mát
khiển van ISC
Trang 9+ Điều khiển rơle chính
ECU động cơ hướng dẫn rằng nguồn điện tiếp tục được cung cấp vào rơle chính trong một thời gian ngắn kể cả sau khi tắt khoá điện về vị trí OFF để đặt van ISC vào vị trí mở hoàn toàn Sau khi đặt ISCV, ECU động cơ ngừng cung cấp điện vàorơle chính này
- Điều khiển sau khởi động, hâm nóng (chạy không tải nhanh) và phản hồi
Về cơ bản, các điều khiển này cũng giống như kiểu cuộn dây quay
Sau khi động cơ được khởi động, van này đóng lại từ vị trí mở hoàn toàn đến vị trí
mở được xác định đối với tốc độ của động cơ và nhiệt độ nước làm mát, và sau đó van này từ từ đóng lại khi nhiệt độ nước làm mát tăng lên Khi nhiệt độ nước làm mát đạt đến 80°C (176°F), việc điều khiển phản hồi được sử dụng để duy trì tốc độchạy không mục tiêu
2.3 Cấu tạo van ISC :
3
Trang 10Để đo nhiệt độ được chớnh xỏc, tất nhiờn cần cú một đầu dũ thớch hợp Đầu dũ
là một cảm biến nhiệt độ cú nhiệm vụ vận chuyển từ nhiệt độ qua tớn hiệu điện Cúrất nhiều loại cảm biến.Dựa vào lý thuyết và thực tế của mạch cần thiết kế ta dựngphương phỏp đo bằng IC cảm biến nhiệt độ Cỏc IC cảm biến nhiệt độ cú độ chớnhxỏc cao, dễ tỡm và giỏ thành rẽ Một trong số đú là IC LM35, là loại thụng dụngtrờn thị trường hiện nay, đồng thời nú cú những đặc tớnh làm việc phự hợp với thiết
kế chi tiết của mạch
-Một số tớnh chất cơ bản của LM35D:
LM35D cú độ biến thiờn theo nhiệt độ: 10mV / 2oC Độ chớnh xỏc cao, tớnh năngcảm biến nhiệt độ rất nhạy.Với tầm đo từ 0oC – 100oC, tớn hiệu ngừ ra tuyến tớnhliờn tục với những thay đổi của tớn hiệu ngừ vào
Loạt các bộ cảm biến LM35 cũng là các bộ cảm biến nhiệt mách tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ
Celsius Chúng cũng không yêu cầu cân chỉnh ngoài vì vốn chúng đã đợc cân chỉnh Chúng đa ra điện áp 10Mv cho mỗi sự thay đổi 10C Bảng 3.1 hớng dẫn ta chọn các cảm biến họ LM35
1
2
4
Trang 11-Thông số kỹ thuật:
B¶ng 3.1 : Híng dÉn chän lo¹t c¸c c¶m biÕn nhiÖt hä LM35.
Chíp ADC 0804 là bộ chuyển đổi tương tự sang số trong họ các loạt ADC
0800 từ hãng National Semiconductor Nó cũng được nhiều hãng khác sản xuất,làm việc với +5V và có độ phân giải là 8 bít Ngoài độ phân giải thì thời gianchuyển đổi cũng là một yếu tố quan trọng khác khi đánh giá một bộ ADC Thờigian chuyển đổi được định nghĩa như 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 Trong ADC 0804 thời gian chuyển đổithay đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK IN nhưngkhông thể nhanh hơn 110s Các chân của ADC 804 được mô tả như sau:
Chân CS- chọn chíp: Là một đầu vào tích cực mức thấp được sử dụng để kích
hoạt chíp ADC 804 Để truy cập ADC 804 thì chân này phải ở mức thấp
Chân RD(đọc): Đây là một tín hiệu đầu vào được tích cực mức thấp Các bộADC chuyển đổi đầu vào tương tự thành số nhị phân tương đương với nó và giữ
nó trong một thanh ghi trong RDđược sử dụng để nhận dữ liệu được chuyển đổi ởđầu ra của ADC 804 Khi CS = 0 nếu một xung cao - xuống - thấp được áp đếnchân RDthì đầu ra số 8 bít được hiển diện ở các chân dữ liệu D0 - D7 Chân RDcũng được coi như cho phép đầu ra
Chân ghi WR:(thực ra tên chính xác là “Bắt đầu chuyển đổi”) Đây là chân đầu
vào tích cực mức thấp được dùng để báo cho ADC 804 bắt đầu quá trình chuyểnđổi Nếu CS = 0 khi WRtạo ra xung cao - xuống - thấp thì bộ ADC 804 bắt đầuchuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bít Lượng thời gian cầnthiết để chuyển đổi thay đổi phụ thuộc vào tần số đưa đến chân CLK IN và CLK
R Khi việc chuyển đổi dữ liệu được hoàn tất thì chân INTR được ép xuống thấpbởi ADC 804
Chân CLK IN và CLK R:Chân CLK IN là một chân đầu vào được nối tới một
nguồn đồng hồ ngoài khi đồng hồ ngoài được sử dụng để tạo ra thời gian Tuynhiên 804 cũng có một bộ tạo xung đồng hồ Để sử dụng bộ tạo xung đồng hồ
Trang 12CLK R được nối tới một tụ điện và một điện trở Trong trường hợp này tần sốđồng hồ được xác định bằng biểu thức: f 1,11RC
Giá trị tiêu biểu của các đại lượng trên là R = 10k và C=150pF và tần số nhận được là f = 606kHz và thời gian chuyển đổi sẽ mất là110s
Chân ngắt INTR(ngắt hay gọi chính xác hơn là “kết thúc chuyển đổi’).Đây làchân đầu ra tích cực mức thấp Bình thường nó ở trạng thái cao và khi việcchuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu được chuyểnđổi sẵn sàng để lấy đi Sau khi INTR xuống thấp, ta đặt CS = 0 và gửi một xungcao 0 xuống - thấp tới chân RDlấy dữ liệu ra của 804
Chân V in (+) và V in (-):Đây là các đầu vào tương tự vi sai mà Vin = Vin (+) - Vin
(-) Thông thường Vin (-) được nối xuống đất và Vin (+) được dùng như đầu vàotương tự được chuyển đổi về dạng số
Chân V CC :Đây là chân nguồn nuôi +5v, nó cũng được dùng như điện áp tham
chiếu khi đầu vào Vref/2 (chân 9) để hở
Chân V ref/2 :Chân 9 là một điện áp đầu vào được dùng cho điện áp tham chiếu Nếu
chân này hở (không được nối) thì điện áp đầu vào tương tự cho ADC 804 nằmtrong dải 0 đến +5v (giống như chân VCC) Tuy nhiên, có nhiều ứng dụng mà đầuvào tương tự áp đến Vin cần phải khác ngoài dải 0 đến 5v Chân Vref/2 đượcdùng đểthực thi các điện áp đầu vào khác ngoài dải 0 - 5v Ví dụ, nếu dải đầu vào tương tựcần phải là 0 đến 4v thì Vref/2 được nối với +2v
ADC804 4 4+5
V 1
1 1
4 1 2 10
9 19
10k
150pF
11 12 13 14 15 16 17 18
3 5
to
LEDs
D0 D1 D2 D3 D4 D5 D6 D7 W R INT R
D GND RD CS
CLK in
CLK R
A GNDVref/
2
)
Vin(-Vin(+
)
20 Vc c
10k
POT