Giới thiệu về 8051:
1.1.Tiêu chuẩn trong lựa chọn một bộ vi điều khiển
Là khả năng sẵn sàng
đáp ứng về số lượng trong hiện tại và tương lai. Đối với một số
nhà thiết kế điều này là quan trong hơn cả . Hiện nay, các bộ
vi điều khiển 8 bit đứng
đầu là họ 8051 có số lương lớn nhất các nhà cung cấp đa dạng
(nhiều nguồn). Nhà
cung cấp có nghĩa là nhà sản xuất bên cạnh nhà sáng chế của
bộ vi điều khiển. Trong
trường hợp 8051 thì nhà sáng chế của nó là Intel, nhưng hiện
nay có rất nhiều hãng
sản xuất nó (cũng như trước kia đã sản xuất).
Các hãng này bao gồm: Intel, Atmel, Philips/signe-tics, AMD,
Siemens, Matra
và Dallas, Semicndictior.
8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc
với 8 bit dữ
liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia ra
thành các dữ liệu 8 bit để
cho xử lý. 8051 có tất cả 4 cổng vào - ra I/O mỗi cổng rộng
8 bit. Các nhà sản xuất đã
cho xuất xưởng chỉ với 4K byte ROM trên chíp.
Đặc tính:
4K ROM
128 byte RAM
2 bộ định thời
32 chân I/O
1.2.Vi điều khiển và vi xử lí:
Xin nhắc đến cái máy tính của bạn, con chíp Intel hay ADM của
bạn là 1 bộ vi xử lí,
nó không có RAM, ROM,cổng IO và các thiết bị ngoại vi on
Chip. Còn vi điều khiển
chứa 1 bộ vi xử lí và RAM,ROM, cổng IO, và có thể có các thiết
bị ngoại vi.
1.3. Sơ đồ chân vi điều khiển 8051:
Là IC đóng vỏ dạng DIP có 40 chân, mỗi chân có một kí hiệu
tên và có các chức năng
như sau:
Chân 40: nối với nguồn
nuôI +5V.
Chân 20: nối với đất(Mass,
GND).
Chân 29
(PSEN)(program store enable) là tín hiệu điều khiển xuất ra của 8051, nó
cho phép chọn bộ nhớ ngoài và được nối chung với chân của OE
(Outout Enable) của
EPROM ngoài để cho phép đọc các byte của chương trình. Các
xung tín hiệu PSEN
hạ thấp trong suốt thời gian thi hành lệnh. Những mã nhị phân
của chương trình được đọc từ EPROM đi qua bus dữ liệu và được chốt vào thanh ghi lệnh
của 8051 bởi mã
lệnh.(chú ý việc đọc ở đây là đọc các lệnh (khác với đọc dữ
liệu), khi đó VXL chỉ đọc
các bit opcode của lệnh và đưa chúng vào hàng đợi lệnh thông
qua các Bus địa chỉ và
dữ liệu)
Chân 30 (ALE : Adress
Latch Enable) là tín hiệu điều khiển xuất ra của 8051, nó cho
phép phân kênh bus địa chỉ và bus dữ liệu của Port 0.
Chân 31 (EA : Eternal
Acess) được đưa xuống thấp cho phép chọn bộ nhớ mã ngoàI
đối với 8051.
Đối với 8051 thì : EA = 5V : Chọn ROM nội. EA = 0V : Chọn
ROM ngoại.
32 chân còn lại chia làm 4 cổng vào ra:
Vào ra tức là có thể
dùng chân đó để đọc mức logic (0;1 tương ứng với 0V ; 5V)vào
hay xuất mức logic ra(0;1)
P0 từ chân 39 - 32 tương ứng là các chân P0_0 - P0_7
P1 từ chân 1 - 8 tương ứng là các chân P1_0 - P1_7
P2 từ chân 21 - 28
tương ứng là các chân P2_0 - P2_7
P3 từ chân 10 - 17 tương ứng là các chân P3_0 - P3_7
Riêng cổng 3 có 2 chức năng ở mỗi chân như trên hình vẽ:
P3.0 – RxD : chân nhận
dữ liệu nối tiếp khi giao tiếp RS232(Cổng COM ).
P3.1 _ TxD : phân
truyền dữ liệu nối tiếp khi giao tiếp RS232.
P3.2 _ INTO :
interrupt 0 , ngắt ngoài 0.
P3.3 _ INT1:
interrupt 1, ngắt ngoài 1.
P3.4 _T0 : Timer0 , đầu
vào timer0.
P3.5_T1 : Timer1, đầu
vào timer 1.
P3.6_ WR: Write, điều
khiển ghi dứ liệu.
P3.7 _RD: Read , điều
khiển đọc dữ liệu.
Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động
cho VĐK
Tần số thạch anh thường dùng trong các ứng dụng là : 11.0592Mhz(giao tiếp với cổng
com máy tính) và 12Mhz Tần số tối đa 24Mhz. Tần số càng lớn VĐK xử lí càng
nhanh.
1.4. Cấu trúc vi điều khiển 89c51
1.5.Ram nội và các thanh ghi
Bảng : chức năng của thanh ghi chức năng đặc biệt SFR
SFR định địa chỉ từng bit( những thanh ghi cần nhớ đối khi lập trình cơ bản C)
1.6.Giới thiệu sơ qua các nguồn ngắt:
Một chương trình chính không có ngắt thì chạy liên tục, còn
chương trình có
ngắt thì cứ khi nào điều kiện ngắt được đảm bào thì con trỏ
sẽ nhảy sang hàm ngắt
thực hiện xong hàm ngắt lại quay về đúng chỗ cũ và thực hiện
tiếp chương trình. Ta
có 1 ví dụ như sau: Bạn đang ăn cơm , có tiếng điện thoại , bạn
đạt bát cơm ra nghe
điện thoại , nghe xong lại quay về bưng bát cơm lên ăn tiếp.
Thì quá trình ăn cơm của
bạn là chương trình chính,có điện thoại gọi đến là điều kiện
ngắt, bạn ra nghe điện
thoại là thực hiện chương trình ngắt(Interrupt Service
Rountine),quay về ăn cơm tiếp
là tiếp tục thực hiện chương trình chính.
Ngắt đối với người mới học vi điều khiển là rất khó hiểu, vì
đa số các tài liệu đều
không giải thích ngắt để làm gì. Có nhiều loại ngắt khác
nhau nhưng tất cả đều có
chung 1 đặc điểm, ngắt dùng cho mục đích đa nhiệm. Đa tức là
nhiều, nhiệm tức là
nhiệm vụ. Thực hiện nhiều nhiệm vụ .Các bạn nhìn vào tiền
trình của hàm main với
chương trình có ngắt :
Chương trình chính đang chạy, ngắt xảy ra, thực hiện hàm ngắt
rồi quay lại chương
trình chính. Chương trình trong vi điều khiển khác với ví dụ
ăn cơm nghe điện thoại
của tôi ở chỗ , thời gian thực hiện hàm chính là rất lớn,thời
gian thực hiện hàm ngắt
là rất nhỏ, cho nên thời gian thực thi hàm ngắt không ảnh hưởng
nhiều lắm đên chức
năng hàm chính. Như vậy trong hàm ngắt các bạn làm 1 việc,
trong hàm chính các
bạn làm 1 việc
như vậy coi như các bạn làm được 2 việc(đa nhiệm) trong 1
quang thời gian tương đối
ngắn cõ mS, chứ thực ra tại 1 thời điểm vi điều khiển chỉ thực
thi 1 lệnh.
Ví dụ : Bạn thử nghĩ xem làm thế nào để vừa điều chế xung
PWM để điều chỉnh tốc
độ động cơ , vừa đọc các cảm biến đầu vào mà tốc độ động cơ
phụ thuộc đầu vào cảm
biến.
Không có nhận xét nào:
Đăng nhận xét