ĐỀ TÀI
Tìm hiểu về vi điều khiển 89S52. Thiết kế mô
hình đo và khống chế nhiệt độ hiển thị trên
led 7 thanh Giáo viên hướng dẫn : Hoàng Văn Quang
Sinh viên thực hiện : Tường Thị Thu Hằng Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
1
MỤC LỤC
Contents
MỤC LỤC 1
DANH SÁCH HÌNH VẼ 3
DANH SÁCH BẢNG BIỂU 4
LỜI MỞ ĐẦU 5
CHƯƠNG 1. TỔNG QUAN VỀ VI ĐIỀU KHIỂN 7
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
2
2.1 Sơ đồ khối, sơ đồ chân của vi điều khiển 89S52 32
2.1.1 Giới thiệu sơ lược 32
2.1.2 Cấu hình của 89S52 32
2.1.3 Sơ đồ khối 89S52 33
2.1.4 Sơ đồ chân 89S52 34
2.1.5 Chức năng các chân của AT89S52 34
2.2 Tổ chức bộ nhớ bên trong 89S52 39
2.3 Kết nối vi điều khiển với một số thiết bị ngoại vi đơn giản 48
2.3.1 VĐK giao tiếp led đơn và phím nhấn 48
2.3.2 Kết nối VĐK với Rơle 49
2.3.4 Kết nối VĐK với ma trận led 54
CHƯƠNG 3. CÁC LINH KIỆN LIÊN QUAN 55
3.1 Led 7 thanh 55
3.1.1 Các khái niệm cơ bản 55
3.1.2 Kết nối với vi điều khiển 56
3 .2 Giới thiệu về IC ADC0804 57
3.2.1 Sơ đồ chân ADC0804 58
3.2.2 Chức năng các chân ADC0804 58
3.3 Giới thiệu về cảm biến LM35 61
3.3.1 Sơ đồ chân LM35
62
CHƯƠNG 4. THIẾT KẾ MÔ HÌNH 64
4.1 Lưu đồ thuật toán 64
4.3 Mạch nguyên lý và mạch in 66
4.3.1 Mạch nguyên lý
66
Hình 2.10 VĐK giao tiếp phím nhấn và LCD 53
Hình 2.11 VĐK giao tiếp với ma trận led 54
Hình 3.1 Sơ đồ chân 7 SEG-COM-ANODE và hình ảnh minh họa 56
Hình 3.2 Sơ đồ chân ADC0804 58
Hình 3.3 Sơ đồ chân LM35 dạng TO-92
62
Hình 4.1 Lưu đồ thuật toán 66
Hình 4.2 Sơ đồ mạch nguyên lý 66
Hình 4.3 Sơ đồ mạch in 68
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
4 DANH SÁCH BẢNG BIỂU
Bảng 1.1 Các đặc tính của 8051 đầu tiên 15
Bảng 1.2 So sánh các đặc tính của các thành viên họ 8051 17
Bảng 1.3 Các phiên bản của 8051 từ Atmel (Flash ROM) 19
Bảng 1.4 Các phiên bản 8051 với tốc độ khác nhau của Atmel 20
Bảng 1.5 Các phiên bản 8051 từ hãng Dallas Semiconductor 20
thời gian ngắn và năng lực còn hạn chế nên vẫn còn những sai sót. Em mong thầy giáo
góp ý để việc học tập của em được tốt hơn.
Em xin chân thành cảm ơn!
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
6 Nội dung quyển đồ án bao gồm các chương:
Chương 1. Tổng quan về vi điều khiển
Chương 2. Tìm hiểu về vi điều khiển 89S52
Chương 3. Các linh kiện liên quan
Chương 4. Thiết kế
Sản phẩm là một mạch đo và khống chế nhiệt độ hiển thị trên led 7 thanh sử
dụng vi điều khiển 89S52.
Trong quá trình thực hiện đề tài này do điều kiện còn hạn hẹp nên đề tài này
không tránh khỏi những thiếu sót rất mong nhận được những ý kiến đóng góp của
tất cả các thầy cô và các bạn những ai quan tâm đến lĩnh vực này.
Em xin chân thành cảm ơn toàn thể các thầy cô giáo trong khoa Điện Tử - ĐH
Công Nghiệp Hà Nội đã giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý
báu và tạo điều kiện tốt nhất cho em được học tập và nghiên cứu tại trường.
Cuối cùng em xin chân thành cảm ơn thầy Hoàng Văn Quang giảng viên Khoa
Điện Tử-ĐH Công Nghiệp Hà Nội đã hướng dẫn và giúp đỡ nhiệt tình em trong
quá trình thực hiện đồ án.
Hà Nội tháng 6/2012
Sinh viên thực hiện
Tường Thị Thu Hằng
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
tốc độ xử lý cao hơn, mặt khác đường truyền dữ liệu và đường truyền lệnh điều
khiển (chương trình) có thể có dung lượng khác nhau.
1.1.2 Tập lệnh
Tập lệnh ở đây được coi là tập mã lệnh nhị phân, Bản chất của tập lệnh là một
tập hợp các mã nhị phân, mà từ đó các đơn vị xử lý trung tâm (CPU) nhận biết và
thực hiện. Dữ liệu được CPU xử lý là các số nhị phân. Chính vì vậy, tập lệnh dù
thế nào đi nữa cũng sẽ thực hiện các việc chính sau:
- Tính toán các con số nhị phân.
- Các lệnh để chuyển các giá trị ra thành tín hiệu điện tử ở chân linh kiện
- Các lệnh di chuyển các giá trị giữa các thanh ghi
- Các lệnh điều khiển con trỏ chương trình
1.1.3 Chức năng
Hiện nay rất nhiều loại vi điều khiển ra đời, và rất nhiều tính năng được tích
hợp vào trong vi điều khiển dưới dạng phần cứng. Tuy nhiên, tựu chung lại thì mọi
việc cũng đều nằm ở việc điều khiển động cơ và đọc cảm biến. Một cánh cửa tự
động là một cái cảm biến hồng ngoại và một cái động cơ. Đại đa số những gì tự
động đều có dính đến động cơ trong đó, vì nếu không có động cơ thì làm sao mà
nó biến đổi điện năng thành cơ năng .khi đó ta sẽ phải thiết kế một cảm biển để
quan sát.
Để biết được tính năng của từng loại vi điều khiển ta chọn phần datasheet nói
tóm lại chức năng của vi điều khiển rất phong phú và đa dạng, Nên các bạn hay
nghiên cứu thật kĩ trước khi mua về để phục vụ cái nhu cầu của mình đang cần.
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
9
1. 2 Các bộ vi điều khiển
1.2.1 Các bộ vi điều khiển và các bộ xử lý nhúng
Trong mục này chúng ta bàn về nhu cầu đối với các bộ vi điều khiển (VĐK)
như 8086. Trong rất nhiều ứng dụng thì không gian nó chiếm, công suất nó tiêu tốn
và giá thành trên một đơn vị là những cân nhắc nghiêm ngặt hơn nhiều so với công
suất tính toán. Những ứng dụng thường yêu cầu một số thao tác vào – ra để đọc các
tín hiệu và tắt – mở những bit nhất định. Vì lý do này mà một số người gọi các bộ
xử lý này là IBP (“Itty - Bitty - Processor”), (tham khảo cuốn “Good things in
small packages are Generating Big product opportunities” do Rick Grehan viết trên
tạp BYTE tháng 9.1994; www.byte.com để biết về những trao đổi tuyệt vời về các
bộ VĐK).
Điều thú vị là một số nhà sản xuất các bộ VĐK đã đi xa hơn là tích hợp cả
một bộ chuyển đổi ADC và các ngoại vi khác vào trong bộ VĐK.
1.2.3 Các bộ vi điều khiển cho hệ thống nhúng
Trong tài liệu về các bộ vi xử lý ta thường thấy khái niệm hệ thống nhúng. Các
bộ vi xử lý và các bộ vi điều khiển được sử dụng rộng rãi trong các sản phẩm hệ
thống nhúng. Một sản phẩm nhúng sử dụng một bộ vi xử lý và chỉ một mà thôi.một
máy in là một ví dụ về một việc nhúng vì bộ xử lý bên trong nó chỉ làm một việc
đó là nhận dữ liệu và in nó ra.
Định nghĩa về hệ thống nhúng (embedded system)
Hệ thống nhúng là hệ thống xử lý thông tin được nhúng vào trong một sản
phẩm lớn hơn và bình thường người dùng không thấy nó một cách trực tiếp [1].
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
11
Hệ thống tính toán nhúng (embedded computing system) là hệ thống tính
toán được nhúng trong thiết bị điện tử (hầu như là các hệ thống tính toán khác máy
tính) [2].
Thông thường các hệ thống nhúng là những ứng dụng đơn chức năng [3].
Hệ thống nhúng là hệ thống mà chức năng chính của nó không chỉ có tính
toán mà được điều khiển bởi máy tính được nhúng trong nó [4].
Trong các định nghĩa trên, chúng ta thấy định nghĩa thứ nhất có thể mô tả
cũng có thể định nghĩa thuật ngữ “hệ thống nhúng” theo cách sau: Những hệ thống
xử lý thông tin thỏa phần lớn các đặc tính trên được gọi là những hệ thống nhúng.
1.2.4 Các ứng dụng nhúng của PC86
Chúng ta có thể thấy các hệ thống nhúng trong nhiều lãnh vực:
Điện tử gia dụng: máy giặt, tủ lạnh, máy chụp hình số
Điện tử ô-tô: hệ điều khiển động cơ, hệ điều khiển thắng, hệ GPS
Điện tử trong máy bay: hệ thông tin cho phi công, hệ chống va chạm
Điện tử y sinh: đo nhiệt độ, ECG, chẩn đoán từ xa
Xe lửa: hệ tự lái, hệ thắng
Viễn thông: điện thoại di động, hệ thống tổng đài, điều khiển ăng-ten, thiết
bị GPS.
Các ngôi nhà thông minh: tiết kiệm năng lượng, điều khiển nhiệt độ, chiếu
sáng
Các hệ thống nhúng tạo cơ sở cho kỷ nguyên hậu PC (post-PC era), các hệ thống
xử lý thông tin chuyển dần từ PC sang hệ thống nhúng cho các ứng dụng cụ thể.
1.2.5 Lựa chọn một bộ vi điều khiển
Có 4 bộ VĐK 8 bít chính. Đó là 6811 của Motorola, 8051 của Intel và Pic 16 của
Microchip. Mỗi một kiểu loại trên đây đều có một tệp lệnh và thanh ghi riêng duy
nhất, nếu chúng đều không tương tích lẫn nhau. Cũng có những bộ VĐK 16 bit và
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
13
32 bit được sản xuất bởi các hãng sản xuất chíp khác nhau. Với tất cả những bộ vi
điều khiển khác nhau như thế này thì lấy gì làm tiêu chuẩn lựa chọn mà các nhà
thiết kế phải cân nhắc? có 3 tiêu chuẩn để lựa chọn các bộ vi điều khiển là:
1- Đáp ứng nhu cầu tính toán của bài toán một cách hiệu quả về mặt giá
thành và đầy đủ chức năng có thể nhìn thấy được.
2- Có sẵn các công cụ phát triển phần mềm chẳng hạn như các trình biên
dịch, trình hợp ngữ và gỡ rối.
8051. Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM, hai bộ định thời, một
cổng nối tiếp và 4 cổng 8 bit. Tất cả đều được tích hợp trên một chip. Lúc bấy giờ,
bộ vi điều khiển như vậy được coi là một “hệ thống trên chip”. 8051 là một bộ xử
lý 8 bit, tức là CPU chỉ có thể làm việc với 8 bit dữ liệu. Dữ liệu lớn hơn 8 bit được
chia thành các dữ liệu 8 bit để xử lý.8051 có tất cả 4 cổng I/O mỗi cổng rộng 8 bit,
có thể có một ROM trên chip cực đại là 64 Kbyte. Tuy nhiên, lúc đó các nhà sản
xuất đã cho xuất xưởng chỉ với 4 Kbyte ROM trên chip. 8051 đã trở nên phổ biến
sau khi Intel cho phép các nhà sản xuất khác sản xuất và bán bất kỳ dạng biến thể
nào của 8051 mà họ thích với điều kiện họ phải để mã chương trình tương thích
với 8051. Từ đó dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác
nhau. Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể của 8051, như khác
nhau về tốc độ và dung lượng nhớ ROM trên chip, nhưng tất cả các lệnh đều tương
thích với 8051 ban đầu. Điều này có nghĩa là nếu ta viết chương trình của mình cho
một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không
phân biệt nó từ hãng sản xuất nào.
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
15
1.4.2 Đặc tính vi điều khiển 8051
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051.Hãng Intel ký hiệu
nó như là MCS51.
Bảng 1.1 Các đặc tính của 8051 đầu tiên
Interrupt control: Điều khiển ngắt.
Other registes: Các thanh ghi khác.
128 Byte RAM: RAM 128 Byte.
Timer 0, 1, 2: Bộ định thời 0, 1, 2.
CPU: Đơn vị điều khiển trung tâm.
Oscillator: Mạch dao động.
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
18
Một thành viên khác nữa của 8051 là chip 8031. Chip này thường được coi như là
8051 không có ROM trên chip vì nó có 0 Kbyte ROM trên chip. Để sử dụng chip
này ta phải bổ xung ROM ngoài cho nó.ROM ngoài phải chứa chương trình mà
8031 sẽ nạp và thực hiện.So với 8051 mà chương trình được chứa trong ROM trên
chip bị giới hạn bởi 4 Kbyte, còn ROM ngoài chứa chương trình được gắn vào
8031 thì có thể lớn đến 64 Kbyte. Khi bổ xung cổng, như vậy chỉ còn lại 2 cổng để
thao tác. Để giải quyết vấn đề này ta có thể bổ xung cổng vào – ra cho 8031. Phối
phép 8031 với bộ nhớ và cổng vào – ra chẳng hạn với chip 8255. Ngoài ra còn có
các phiên bản khác nhau về tốc độ của 8031 từ các hãng sản xuất khác nhau.
Các bộ vi điều khiển 8051 từ các hãng khác nhau
Mặc dù 8051 là thành viên phổ biến nhất của họ 8051 nhưng chúng ta sẽ thấy nó
trong kho linh kiện. Đó là do 8051 có dưới nhiều dạng kiểu bộ nhớ khác nhau như
UV – PROM, Flash và NV– RAM mà chúng đều có số đăng ký linh kiện khác
nhau. Phiên bản Flash ROM được bán bởi nhiều hãng khác nhau chẳng hạn của
Atmel corp với tên gọi là AT89C51 còn phiên bản NV – RAM của 8051 do Dalas
Semi Conductor cung cấp thì được gọi là DS5000. Ngoài ra còn có phiên bản OTP
(khả trình một lần) của 8051 được sản xuất bởi rất nhiều hãng.
Bộ vi điều khiển 8751
Chip 8751 chỉ có 4 Kbyte bộ nhớ UV – EPROM trên chip. Để sử dụng
chip này để phát triển yêu cầu truy cập đến một bộ đốt PROM cũng như bộ xóa
UV – EPROM để xóa nội dung của bộ nhớ UV – EPROM bên trong 8751 trước
khi ta có thể lập trình lại nó. Do một thực tế là ROM trên chip đối với 8751 là UV
– EPROM nên cần phải mất 20 phút để xóa 8751 trước khi nó có thể lập trình trở
lại. Điều này đã dẫn đến nhiều nhà sản xuất giới thiệu các phiên bản FLASH ROM
và UV – RAM của 8751 từ nhiều hãng khác nhau.
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng Dallas
Semiconductor. Bộ nhớ ROM trên chip của DS5000 ở dưới dạng NV – RAM. Khả
năng đọc/ghi của nó cho phép chương trình được nạp vào ROM trên chip trong khi
nó vẫn ở trong hệ thống (không cần phải lấy ra).
Bảng 1.5 Các phiên bản 8051 từ hãng Dallas Semiconductor
Chữ “T” đứng sau 5000 là có đồng hồ thời gian thực
Lưu ý rằng đồng hồ thời gian thực RTC là khác với bộ định thời Timer.
RTC tạo và giữ thời gian 1 phút giờ, ngày, tháng, năm kể cả khi tắt nguồn.
Còn có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói khác
nhau. Ví dụ DS5000-8-8 có 8K NV – RAM và tốc độ 8MHz. Thông thường
DS5000-8-12 hoặc DS5000T-8-12 là lý tưởng đối với các dự án của sinh viên.
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
21 Bảng 1.6 Một số thành viên của họ 8051
Mã linh kiện NV- RAM Tốc độ
DS5000-8-8 8K 8MHz
DS5000-8-12 8K 12MHz
DS5000-32-8 32K 8MHz
DS5000-32-12 32K 8MHz (with RTC)
DS5000-32-12 32K 12MHz
DS5000-8-12 8K 12MHz (with RTC)
Phiên bản OTP của 8051
Các phiên bản OTP của 8051 là các chip 8051 có thể lập trình được một lần và
được cung cấp từ nhiều hãng sản xuất khác nhau. Các phiên bản Flash và NV –
RAM thường được dùng để phát triển sản phẩm mẫu. Khi một sản phẩm được thiết
hợp vi điều khiển, các linh kiện tương tự (các bộ khuếch đại, các bộ biến đổi A/D,
D/A, các bộ lọc, các bộ so sánh…) và các linh kiện số (bộ định thời, bộ đếm, bộ
tạo xung PWM, SPI, UART, I2C…) trên một chip duy nhất. Việc tích hợp hàng
trăm khối chức năng cùng với một bộ điều khiển trên một chip cho phép giảm thời
gian thiết kế, thu gọn kích thước sản phẩm, giảm công suất tiêu thụ và giảm giá
thành sản phẩm.
Trường ĐH Công Nghiệp Hà Nội Khoa Điện Tử
23
CY8C2xxxx (PSoC)
1.5.3 Họ vi điều khiển Freescale Semiconductor
Từ năm 2004, những vi điều khiển này được phát triển và tung ra thị trường
bởi Motorola.
Dòng 8-bit
68HC05 (CPU05)
68HC08 (CPU08)
68HC11 (CPU11)
Dòng 16-bit
68HC12 (CPU12)
68HC16 (CPU16)
Freescale DSP56800 (DSPcontroller)
Dòng 32-bit
Freescale 683XX (CPU32)
MPC500
MPC 860 (PowerQUICC)
MPC 8240/8250 (PowerQUICC II)
MPC 8540/8555/8560 (PowerQUICC III)
1.5.4 Họ vi điều khiển Fujitsu
F²MC Family (8/16 bit)
Kiến trúc PIC
Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc:
kiến trúc Von Neuman và kiến trúc Havard.