BÀI 1: CẤU TRÚC VI ĐIỀU KHIỂN
1.1.1. Sơ lược về vi xử lý:
Trong những thập niên cuối thế kỉ XX, từ sự ra đời của công nghệ bán dẫn, kĩ thuật điện tử
đã có sự phát triển vượt bậc. Các thiết bị điện tử sau đó đã được tích hợp với mật độ cao và rất cao
trong các diện tích nhỏ, nhờ vậy các thiết bị điện tử nhỏ hơn và nhiều chức năng hơn. Các thiết bị
điện tử ngày càng nhiều chức năng trong khi giá thành ngày càng rẻ hơn, chính vì vậy điện tử có
mặt khắp mọi nơi.
Bước đột phá mới trong công nghệ điện tử, công ty trẻ tuổi Intel cho ra đời bộ vi xử lý đầu
tiên. Đột phá ở chỗ: "Đó là một kết cấu logic mà có thể thay đổi chức năng của nó bằng chương
trình ngoài chứ không phát triển theo hướng tạo một cấu trúc phần cứng chỉ thực hiện theo một số
chức năng nhất định như trước đây"(trích từ dòng 17 đến 19, trang 3, 'Kĩ thuật VI XỬ LÝ và lập
trình ASSEMBLY cho hệ vi xử lý', tác giả Đỗ Xuân Tiến, nhà xuất bản Khoa học và kĩ thuật). Tức
là phần cứng chỉ đóng vai trò thứ yếu, phần mềm (chương trình) đóng vai trò chủ đạo đối với các
chức năng cần thực hiện. Nhờ vậy vi xử lý có sự mềm dẻo hóa trong các chức năng của mình.
Ngày nay vi xử lý có tốc độ tính toán rất cao và khả năng xử lý rất lớn.
Vi xử lý có các khối chức năng cần thiết để lấy dữ liệu, xử lý dữ liệu và xuất dữ liệu ra ngoài
sau khi đã xử lý. Và chức năng chính của Vi xử lý chính là xử lý dữ liệu, chẳng hạn như cộng, trừ,
nhân, chia, so sánh.v.v..... Vi xử lý không có khả năng giao tiếp trực tiếp với các thiết bị ngoại vi,
nó chỉ có khả năng nhận và xử lý dữ liệu mà thôi.
Để vi xử lý hoạt động cần có chương trình kèm theo, các chương trình này điều khiển các
mạch logic và từ đó vi xử lý xử lý các dữ liệu cần thiết theo yêu cầu. Chương trình là tập hợp các
lệnh để xử lý dữ liệu thực hiện từng lệnh được lưu trữ trong bộ nhớ, công việc thực hành lệnh bao
gồm: nhận lệnh từ bộ nhớ, giải mã lệnh và thực hiện lệnh sau khi đã giải mã.
Để thực hiện các công việc với các thiết bị cuối cùng, chẳng hạn điều khiển động cơ, hiển thị
kí tự trên màn hình .... đòi hỏi phải kết hợp vi xử lý với các mạch điện giao tiếp với bên ngoài
được gọi là các thiết bị I/O (nhập/xuất) hay còn gọi là các thiết bị ngoại vi. Bản thân các vi xử lý
khi đứng một mình không có nhiều hiệu quả sử dụng, nhưng khi là một phần của một máy tính, thì
hiệu quả ứng dụng của Vi xử lý là rất lớn. Vi xử lý kết hợp với các thiết bị khác được sử trong các
hệ thống lớn, phức tạp đòi hỏi phải xử lý một lượng lớn các phép tính phức tạp, có tốc độ nhanh.
Chẳng hạn như các hệ thống sản xuất tự động trong công nghiệp, các tổng đài điện thoại, hoặc ở
các robot có khả năng hoạt động phức tạp v.v...
với tính năng được cải tiến ngày càng mạnh.
1.1.3.HỌ MSC-51
Hiện nay có rất nhiều họ Vi điều khiển trên thị trường với nhiều ứng dụng khác nhau, trong
đó họ Vi điều khiển họ MCS-51 được sử dụng rất rộng rãi trên thế giới và ở Việt nam.
Vào năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiên của họ vi điều
khiển MCS-51. Nó bao gồm 4KB ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2
bộ định thời 16 bit. Tiếp theo sau đó là sự ra đời của chip 8052,8053,8055 với nhiều tính năng
được cải tiến
Hiện nay Intel không còn cung cấp các loại Vi điều khiển họ MCS-51 nữa, thay vào đó các
nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siemens, Matra&Dallas, Semiconductors
được cấp phép làm nhà cung cấp thứ hai cho các chip của họ MSC-51. Chip Vi điều khiển được sử
dụng rộng rãi trên thế giới cũng như ở Việt Nam hiện nay là Vi điều khiển của hãng Atmel với
nhiều chủng loại vi điều khiển khác nhau.
Hãng Atmel có các chip Vi điều khiển có tính năng tương tự như chip Vi điều khiển MCS-
51 của Intel, các mã số chip được thay đổi chút ít khi được Atmel sản xuất. Mã số 80 chuyển thành
89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52)
với tính năng chương trình tương tự như nhau. Tương tự 8051,8053,8055 có mã số tương đương ở
Atmel là 89C51,89C53,89C55. Vi điều khiển Atmel sau này ngày càng được cải tiến và được bổ
sung thêm nhiều chức năng tiện lợi hơn cho người dùng.
Bảng 1
Dung lượng RAM Dung lượng ROM Chế độ nạp
89C51 128 byte 4 Kbyte song song
89C52 128 byte 8 Kbyte song song
89C53 128 byte 12 Kbyte song song
89C55 128 byte 20 Kbyte song song
Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng Vi điều
khiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêm khả năng nạp chương trình
theo chế độ nối tiếp rất đơn giản và tiện lợi cho người sử dụng.
Bảng 2
Có 4/8/12/20 Kbyte bộ nhớ FLASH ROM bên trong để lưu chương trình. Nhờ vậy Vi điều
khiển có khả năng nạp xoá chương trình bằng điện đến 10000 lần.
128 Byte RAM nội
4 Port xuất/nhập 8 bit
Từ 2 đến 3 bộ định thời 16-bit
Có khả năng giao tiếp truyền dữ liệu nối tiếp
Có thể mở rộng không gian nhớ chương trình ngoài 64KByte (bộ nhớ ROM ngoại): khi
chương trình do người lập trình viết ra có dung lượng lớn hơn dung lượng bộ nhớ ROM nội, để
lưu được chương trình này cần bộ nhớ ROM lớn hơn, cách giải quyết là kết nối Vi điều khiển với
bộ nhớ ROM từ bên ngoài (hay còn gọi là ROM ngoại). Dung lượng bộ nhớ ROM ngoại lớn nhất
mà Vi điều khiển có thể kết nối là 64KByte
Có thể mở rộng không gian nhớ dữ liệu ngoài 64KByte (bộ nhớ RAM ngoại)
Bộ xử lí bit (thao tác trên các bit riêng rẽ)
210 bit có thể truy xuất đến từng bit
1.2.KHẢO SÁT SƠ ĐỒ 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.
Hình 1.2.1
1.2.1. Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển
Nguồn điện cấp là +5V±0.5.
1.2.2. Chân GND:Chân số 20 nối GND(hay nối Mass).
Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng
IC ổn áp 7805.
1.2.3. Port 0 (P0)
Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí,