Giáo trình Kỹ thuật vi điều khiển - Chương I: Tổng quan về vi điều khiển - Lâm Tăng Đức

1.1 Giới thiệu về các họ vi xử lí và các họ vi điều khiển thông dụng

1.1.1 Lịch sử phát triển của bộ vi xử lí và bộ vi điều khiển

Sự ra đời và phát triển nhanh chóng của kỹ thuật vi điện tử mà đặc trưng là kỹ

thuật vi xử lí đ! tạo ra một bước ngoặt quan trọng trong sự phát triển của khoa học

tính toán, điều khiển và xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quan

trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kỹ thuật, đặc biệt là lĩnh

vực Tin học và Tự động hóa.

Năm 1971, h!ng Intel đ! cho ra đời bộ vi xử lí (microprocessor) đầu tiên trên

thế giới tên gọi là Intel-4004/4bit , nhằm đáp ứng nhu cầu cấp thiết của một công ty

kinh doanh là h!ng truyền thông BUSICOM. Intel-4004 là kết quả của một ý tưởng

quan trọng trong kỹ thuật vi xử lí số. Đó là một kết cấu logic mà có thể thay đổi được

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 ra

một cấu trúc cứng chỉ thực hiện một số chức năng nhất định như trước đây.

Sau đó, các bộ vi xử lí mới liên tục được đưa ra thị trường và ngày càng được

phát triển, hoàn thiện hơn trong các thế hệ sau :

Vào năm 1972, h!ng Intel đưa ra bộ vi xử lí 8-bit đầu tiên với tên Intel-

8008/8bit.

Từ 1974 đến 1975 , Intel chế tạo các bộ vi xử lí 8-bit 8080 và 8085A.

Cũng vào khoảng thời gian này, một loạt các h!ng khác trên thế giới cũng đ!

cho ra đời các bộ vi xử lí tương tự như : 6800 của Motorola với 5000 tranzitor,

Signetics 6520, 1801 của RCA, kế đến là 6502 của h!ng MOS Technology và Z80

của h!ng Zilog.

 

pdf 28 trang yennguyen 5780
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kỹ thuật vi điều khiển - Chương I: Tổng quan về vi điều khiển - Lâm Tăng Đức", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Kỹ thuật vi điều khiển - Chương I: Tổng quan về vi điều khiển - Lâm Tăng Đức

Giáo trình Kỹ thuật vi điều khiển - Chương I: Tổng quan về vi điều khiển - Lâm Tăng Đức
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 1 
Ch−ơng I 
Tổng quan về Vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng –Bộ môn TĐH 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 2 
Ch−ơng I 
Tổng quan về Vi điều khiển 
1.1 Giới thiệu về các họ vi xử lí và các họ vi điều khiển thông dụng 
1.1.1 Lịch sử phát triển của bộ vi xử lí và bộ vi điều khiển 
Sự ra đời và phát triển nhanh chóng của kỹ thuật vi điện tử mà đặc tr−ng là kỹ 
thuật vi xử lí đ! tạo ra một b−ớc ngoặt quan trọng trong sự phát triển của khoa học 
tính toán, điều khiển và xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quan 
trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kỹ thuật, đặc biệt là lĩnh 
vực Tin học và Tự động hóa. 
Năm 1971, h!ng Intel đ! cho ra đời bộ vi xử lí (microprocessor) đầu tiên trên 
thế giới tên gọi là Intel-4004/4bit , nhằm đáp ứng nhu cầu cấp thiết của một công ty 
kinh doanh là h!ng truyền thông BUSICOM. Intel-4004 là kết quả của một ý t−ởng 
quan trọng trong kỹ thuật vi xử lí số. Đó là một kết cấu logic mà có thể thay đổi đ−ợc 
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 ra 
một cấu trúc cứng chỉ thực hiện một số chức năng nhất định nh− tr−ớc đây. 
Sau đó, các bộ vi xử lí mới liên tục đ−ợc đ−a ra thị tr−ờng và ngày càng đ−ợc 
phát triển, hoàn thiện hơn trong các thế hệ sau : 
Vào năm 1972, h!ng Intel đ−a ra bộ vi xử lí 8-bit đầu tiên với tên Intel-
8008/8bit. 
Từ 1974 đến 1975 , Intel chế tạo các bộ vi xử lí 8-bit 8080 và 8085A. 
Cũng vào khoảng thời gian này, một loạt các h!ng khác trên thế giới cũng đ! 
cho ra đời các bộ vi xử lí t−ơng tự nh− : 6800 của Motorola với 5000 tranzitor, 
Signetics 6520, 1801 của RCA, kế đến là 6502 của h!ng MOS Technology và Z80 
của h!ng Zilog. 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 3 
Vào năm 1976 Intel giới thiệu bộ vi điều khiển (microcontroller) 8748, một chip 
t−ơng tự nh− các bộ vi xử lí và là chip đầu tiên trong họ vi điều khiển MCS-48. 8748 
là một vi mạch chứa trên 17000 transistor, bao gồm một CPU, 1K byte EPROM, 64 
byte RAM, 27 chân xuất nhập và một bộ định thời 8-bit. IC này và các IC khác tiếp 
theo của họ MCS-48 đ! nhanh chóng trở thành chuẩn công nghiệp trong các ứng 
dụng h−ớng điều khiển (control-oriented application). 
Năm 1978 xuât hiện Intel 8086 là loại bộ xi xử lý 16 bit với 29.000 tranzitor, 
Motorola 68000 tích hợp 70.000 tranzitor, APX 432 chứa 120.000 tranzitor. Bộ vi xử 
lý của Hewlet Pakard có khoảng 450.000 tranzitor. Từ năm 1974 đến 1984 số 
tranzitor tích hợp trong một chip tăng khoảng 100 lần. 
Năm 1983, Intel đ−a ra bộ vi xử lý 80286 dung trong các máy vi tinh họ AT 
(Advanced Technology). 80286 sử dụng I/O 16 bit, 24 đ−ờng địa chỉ và không gian 
nhớ địa chỉ thực 16MB. Năm 1987, Intel đ−a ra bộ vi xử lý 80386 32-bit. Năm 1989 
xuất hiện xuất hiện bộ vi xử lý Intel 80486 là cảI tiến của Intel 80386 với bộ nhớ ẩn 
và mạch tính phép toán đại số dấu phẩy động. 
Năm 1992, xuất hiện Intel 80586 còn gọi là Pentium 64 bit chứa 4 triệu 
tranzitor. 
Soỏ t r a n z i t o r t ớc h h ụùp
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 4 
Hình 1.1 Số tranzitor tích hợp trong một chip của bộ vi xử lý Intel 8086 
Độ phức tạp, sự gọn nhẹ về kích th−ớc và khả năng của các bộ vi điều khiển 
đ−ợc tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bố chip 8051, bộ vi 
điều khiển đầu tiên của họ vi điều khiển MCS-51. So với 8048, chip 8051 chứa trên 
60.000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đ−ờng xuất nhập, 1 
port nối tiếp và 2 bộ định thời 16-bit – một số l−ợng mạch đáng chú ý trong một IC 
đơn. 
Từ các bộ vi xử lý ban đầu chỉ là các bộ xử lý trung tâm trong một hệ thống, 
không thể hoạt động nếu thiếu các bộ phận nh− RAM, ROM, bo mạch chủ... các 
h!ng đ! phát triển các bộ vi xử lý này lên thành các bộ vi điều khiển để phục vụ 
các mục đích riêng biệt, khác nhau trong công nghiệp. Một bộ vi điều khiển là 
một hệ vi xử lí thật sự đ−ợc tổ chức trong một chip (trong một vỏ IC) bao gồm 
một bộ vi xử lí (microprocessor), bộ nhớ ch−ơng trình (ROM), bộ nhớ dữ liệu 
(RAM), tuy không bằng dung l−ợng RAM ở các máy vi tính nh−ng đây không 
phải là một hạn chế vì các bộ vi điều khiển đ−ợc thiết kế cho một mục đích hoàn 
toàn khác, ngoài ra trên chip còn có bộ xử lý số học-logic (ALU) cùng với các 
thanh ghi chức năng, các cổng vào/ra, cơ chế điều khiển ngắt, truyền tin nối tiếp, 
các bộ định thời... Hiện nay, các bộ vi điều khiển đ−ợc sử dụng rất rộng r!i và 
ngày càng đ−ợc chuẩn hóa để có thể sử dụng rộng r!i trong các ngành công 
nghiệp, có mặt trong nhiều máy móc, trong các hàng tiêu dùng. 
1.1.2 Ưu và khuyết điểm của các bộ vi điều khiển 
 Các công việc đ−ợc thực hiện bởi các bộ vi điều khiển thì không mới. Điều 
mới là các thiết kế hiện thực với ít thành phần hơn so với các thiết kế tr−ớc đó. 
Các thiết kế tr−ớc đó đòi hỏi phải vài chục hoặc vài trăm IC để hiện thực nay chỉ 
cần một ít thành phần trong đó bao gồm bộ vi điều khiển. Số thành phần đ−ợc 
giảm bớt, hiệu quả trực tiếp của tính khả lập trình của các bộ vi điều khiển và độ 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 5 
tích hợp cao trong công nghệ chế tạo vi mạch, th−ờng chuyển thành thời gian phát 
triển ngắn hơn, giá thành khi sản xuất thấp hơn, công suất tiêu thụ thấp hơn và độ 
tin cậy cao hơn. 
Vấn đề ở đây là tốc độ. Các giải pháp dựa trên bộ vi điều khiển không bao giờ 
nhanh bằng giải pháp dựa trên các thành phần rời rạc. Những tình huống đòi hỏi phải 
đáp ứng thật nhanh (cỡ nsec) đối với các sự kiện (th−ờng chiếm thiểu số trong các 
ứng dụng) sẽ đ−ợc quản lý tồi khi dựa vào các bộ vi điều khiển. 
Tuy nhiên trong vài ứng dụng, đặc biệt là các ứng dụng liên quan đến con 
ng−ời, các khoảng thời gian trễ tính bằng nsec, usec hoặc thậm chí msec là không 
quan trọng. Việc giảm bớt các thành phần là một điều lợi nh− đ! đề cập, các thao tác 
trong ch−ơng trình điều khiển làm cho thiết kế có thể thay đổi bằng cách thay đổi 
phần mềm. Điều này có ảnh h−ởng tối thiểu đến chu kỳ sản xuất. Do đó các bộ vi 
điều khiển có thể đ−ợc ứng dụng rộng r!i trong các ứng dụng phục vụ con ng−ời. 
Để có thể hiểu rõ hơn về các bộ vi điều khiển, chúng ta sẽ tìm hiểu về một số 
các họ vi điều khiển của một số h!ng điện tử điển hình đang đ−ợc sử dụng rộng 
r!i trong khoa học kỹ thuật và đời sống. 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 6 
1.1.3 Giới thiệu về họ vi điều khiển MCS-51 
1.1.3.1 Tóm tắt phần cứng 
Họ vi điều khiển MCS-51 đ−ợc h!ng Intel cho ra đời vào năm 1980 với bộ vi 
điều khiển đầu tiên của nó là chip 8051. 
Cấu trúc cơ bản của chip vi điều khiển 8051 đ−ợc biểu diễn nh− hình 1.2. 
Hình 1.3 cho ta sơ đồ chân của chip 8051. Nh− ta 
thấy, 32 trong số 40 chân của 8051 có tác dụng 
xuất/nhập, hình thành 4 port 8-bit. Với các thiết kế 
yêu cầu một mức tối thiểu bộ nhớ ngoài hoặc các 
thành phần bên ngoài khác, ta có thể sử dụng các port 
này làm nhiệm vụ xuất/nhập, 8 đ−ờng cho mỗi port 
có thể đ−ợc xử lí nh− là một đơn vị giao tiếp với các 
thiết bị song song nh− máy in, bộ biến đổi 
Hình 1.2- Sơ đồ khối của chip 8051 
Hình 1.3 - Sơ đồ chân của 8051 
8051 
31 
19 
18 
9 
12 
13 
14 
15 
1 
2 
3 
4 
5 
6 
7 
8 
39 
38 
37 
36 
35 
34 
33 
32 
21 
22 
23 
24 
25 
26 
27 
28 
17 
16 
29 
30 
11 
10 
EA/VP 
X1 
X2 
RESET 
INT0 
INT1 
T0 
T1 
P1.0 
P1.1 
P1.2 
P1.3 
P1.4 
P1.5 
P1.6 
P1.7 
P0.0 
P0.1 
P0.2 
P0.3 
P0.4 
P0.5 
P0.6 
P0.7 
P2.0 
P2.1 
P2.2 
P2.3 
P2.4 
P2.5 
P2.6 
P2.7 
RD 
WR 
PSEN 
ALE/P 
TXD 
RXD 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 7 
D/A,.v.v..hoặc mỗi đ−ờng có thể hoạt động độc lập giao tiếp với một thiết bị đơn bit 
nh− chuyển mạch, LED, tranzistor, cuộn dây, động cơ... 
1. Port 0 
Port 0 có 2 tác dụng. Trong các thiết kế ứng dụng tối thiểu, không có giao tiếp với 
các thành phần bên ngoài nh− RAM ngoài, ROM ngoài..., port 0 đ−ợc sử dụng nh− 
một cổng xuất/nhập thông th−ờng. Khi thiết kế hệ thống mà cần sử dụng bộ nhớ ngoài, 
port 0 đ−ợc sử dụng là cổng địa chỉ và dữ liệu đa hợp. Port 0 nếu là cổng địa chỉ thì nó 
sẽ là phần byte thấp của bus địa chỉ. 
2. Port 1 
Port 1 chỉ có một tác dụng là cổng xuất nhập. Nó chỉ dùng để giao tiếp với thiết 
bị ngoại vi khi có yêu cầu. Không có chức năng nào đặc biệt cho các chân của port 1. 
Tuy nhiên với các bộ vi điều khiển khác nh− 8052 thì các chân P1.0 và P1.1 còn đ−ợc 
sử dụng làm các đ−ờng ngõ vào cho mạch định thời thứ ba. 
3. Port 2 
Port 2 có hai tác dụng, hoặc làm nhiệm vụ là cổng xuất nhập, hoặc là phần byte 
cao của bus địa chỉ 16-bit cho các thiết kế hệ thống cần nhiều hơn 256 byte bộ nhớ 
ngoài. 
4. Port 3 
Port 3 có hai tác dụng. Nó làm nhiệm vụ nh− một cổng xuất nhập thông th−ờng. 
Khi không hoạt động xuất nhập, mỗi chân của port 3 đều có một chức năng riêng. 
5. Chân cho phép bộ nhớ ngoài /PSEN - Program Store ENable 
Chân này th−ờng đ−ợc nối với chân cho phép xuất /OE (Output Entable) của 
EPRROM (hoặc của ROM) để cho phép đọc các byte lệnh. Tín hiệu /PSEN ở lôgic ‘0‘ 
trong suốt thời gian tìm nạp lệnh. Các m! nhị phân của ch−ơng trình (opcode) đ−ợc 
đọc từ EPROM, qua bus dữ liệu và đ−ợc chốt vào thanh ghi lệnh IR của 8051 để đ−ợc 
giải m!. Khi thực thi một ch−ơng trình trong ROM nội, /PSEN đ−ợc duy trì ở lôgic 
không tích cực (logic 1). 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 8 
6. Chân cho phép chốt địa chỉ ALE - Address Latch Enable 
Là tín hiệu xuất ra để giải đa hợp bus địa chỉ và bus dữ liệu. Trong 1/2 chu kỳ đầu 
bộ nhớ, chân ALE xuất tín hiệu để chốt địa chỉ (byte thấp của bus địa chỉ 16 bit) vào 
thanh ghi ngoài khi ta sử dụng port 0 làm byte thấp địa chỉ. Trong 1/2 chu kỳ bộ nhớ 
còn lại port 0 sẽ xuất/nhập dữ liệu. Tín hiệu ALE có tần số bằng 1/6 tần số của mạch 
dao động bên trong chip vi điều khiển và có thể làm xung clock cho các phần còn lại 
của hệ thống (tr−ờng hợp ngoại lệ khi thực hiện lệnh MOVX, một xung ALE (và cả 
/PSEN) sẽ bị bỏ qua). Chân ALE còn đ−ợc dùng để nhập xung ngõ vào lập trình cho 
EPROM hoặc Flash ROM trên chip đối với chip có loại ROM này. 
7. Chân truy xuất ngoài /EA - External Address 
Chân này đ−ợc nối lên 5V khi thực thi ch−ơng trình trong ROM nội và đ−ợc nối 
đất khi thực thi ch−ơng trình bộ nhớ ngoài. Chú ý đối với các chip không có ROM nội 
/EA phải đ−ợc nối đất. Các chip họ 8051 có EPROM còn nhận chân /ALE làm chân 
nhận điện áp cấp điện 12V cho việc lập trình (nạp) cho EPROM nội. 
8. Chân RESET (RST) 
Dùng để thiết lập lại trạng thái ban đầu của hệ thống hay gọi tắt là reset hệ thống 
khi đ−ợc treo ở mức logic 1 ít nhất 2 chu kỳ máy. Các thanh ghi bên trong của 8051 
đ−ợc nạp các giá trị thích hợp cho việc khởi động lại hệ thống. 
9. Các chân XTAL1 và XTAL2 
Mạch dao động bên trong chip 8051 đ−ợc ghép với thạch anh bên ngoài ở 2 chân 
XTAL1 và XTAL2. Th−ờng tần số là 12MHz và các tụ ổn định có giá trị trong khoảng 
30pF 33 pF. 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 9 
1.1.3.2 Tổ chức bộ nhớ của 8051 
Các chip vi điều khiển dùng làm thành phần trung tâm trong các thiết kế h−ớng 
điều khiển. Bộ nhớ th−ờng có dung l−ợng bé hơn nhiều so với một hệ vi xử lý. Nó còn 
không có ổ đĩa và hệ điều hành. Ch−ơng trình điều khiển phải th−ờng trú trong ROM. 
Do vậy, ch−ơng trình vẫn đ−ợc l−u giữ ngay cả khi mất điện. 
Do lý do trên, chip 8051 có không gian bộ nhớ riêng cho ch−ơng trình và dữ 
liệu. Cả bộ nhớ ch−ơng trình và bộ nhớ dữ liệu đều nằm trong chip. Tuy nhiên ta có 
thể mở rộng bộ nhớ ch−ơng trình và bộ nhớ dữ liệu bằng cách sử dụng các chip nhớ 
bên ngoài với dung l−ợng tối đa là 64K cho bộ nhớ ch−ơng trình và 64K cho bộ nhớ 
dữ liệu. 
Bộ nhớ ch−ơng trình (ROM) 
Bộ nhớ ch−ơng trình l−u giữ ch−ơng trình điều khiển chip 8051. 
Sau khi RESET, CPU bắt đầu thực hiện ch−ơng trình từ địa chỉ 0000H. Khi 
ch−ơng trình lớn quá kích th−ớc bộ nhớ ch−ơng trình bên trong chip, ch−ơng trình 
này phải đ−ợc nạp vào bộ nhớ ch−ơng trình ngoài. Nếu ch−ơng trình nằm trong ROM 
nội, chân /EA của 8051 phải đ−ợc treo lên 5V. Nếu ch−ơng trình ở ROM ngoài, chân 
/EA phải nối đất. Việc truy xuất ch−ơng trình ở bộ nhớ ngoài phải kết hợp với chân 
tín hiệu truy xuất bộ nhớ ngoài /PSEN. 
Bộ nhớ dữ liệu (RAM) 
8051 có 128 byte RAM ở bên trong chip. Chúng đ−ợc chia làm nhiều vùng khác 
nhau : vùng RAM đa mục đích, vùng RAM định địa chỉ bit, các d!y thanh ghi, và 
các thanh ghi chức năng đặc biệt. Ta h!y xem xét từng vùng RAM cụ thể. 
- Vùng RAM đa mục đích : Có địa chỉ từ 30H đến 7FH (80 byte). Vùng RAM 
này có thể truy xuất bằng cách định địa chỉ trực tiếp hoặc định địa chỉ gián tiếp. Nó 
có thể dùng để chứa các biến trong ch−ơng trình hay dùng để định địa chỉ cho các 
cổng ngoại vi tuỳ theo mục đích của ng−ời sử dụng. 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 10 
- Vùng RAM định địa chỉ từng bit : Có 128 bit chứa trong các byte ở địa chỉ từ 
20H đến 2FH và 32 byte chứa các thanh ghi (00H đến 1FH). 
- Các dNy thanh ghi từ Bank 0 tới Bank 3 : Nằm ở 32 byte thấp nhất của vùng 
nhớ dữ liệu. Khi RESET hệ thống d!y thanh ghi mặc định là Bank 0. Có thể chọn Bank 
bởi thanh ghi từ trạng thái ch−ơng trình (PSW- Program Status Word) . Các lệnh sử 
dụng các thanh ghi từ R0 đến R7 là các lệnh ngắn và thực hiện nhanh hơn so với các 
lệnh t−ơng đ−ơng sử dụng kiểu định địa chỉ trực tiếp. Các giá trị dữ liệu th−ờng đ−ợc 
sử dụng nên chứa ở một trong các thanh ghi này. 
Các thanh ghi chức năng đặc biệt (SFR- Special Function Register) 
Có 21 thanh ghi chức năng đặc biệt chiếm phần trên của RAM nội có địa chỉ từ 
80H đến FFH. Các địa chỉ đ−ợc định nghĩa trong vùng RAM này gồm các thanh ghi 
điều khiển của 8051, các thanh ghi đệm, và các cổng vào ra. 
- Thanh ghi từ trạng thái PSW - Program Status Word : Có địa chỉ là D0H. 
Chứa các bit trạng thái có chức năng khác nhau. 
- Thanh ghi chứa ACC: Có địa chỉ là A0H. Th−ờng đ−ợc dùng làm biến nhớ 
trung gian trong các phép tính toán số học. 
- Thanh ghi B: Có địa chỉ là F0H. Th−ờng đ−ợc dùng chung với thanh ghi ACC 
trong các phép toán nhân chia. 
- Các cổng giao tiếp song song : Đó là các cổng P0, P1, P2, P3. Đ−ợc định địa 
chỉ t−ơng ứng là 80H, 90H, A0H, B0H. 
- Các thanh ghi phục vụ cho truyền thông nối tiếp SCON (Ser ... r 2. Kiểu sbit dùng để định nghĩa từng bit cho 
các bit trong các thanh ghi đặc biệt mà có thể định địa chỉ bit. 
Ví dụ khai báo : 
sfr P0 = 0x80; /* Port 0 */ 
sfr SP = 0x81; /* Stack Pointer */ 
sbit P0_0 = 0x80; 
sbit P0_1 = 0x81; 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 20 
Về cách tổ chức bộ nhớ của vi điều khiển trong phần mềm Keil C51 : 
- Bộ nhớ ch−ơng trình : Đây là vùng nhớ chỉ đọc trong vi điều khiển. Nó có thể 
có dung l−ợng tới 64KB. Trong phần mềm Keil C51 thì vùng nhớ này đ−ợc định dạng 
bằng từ khoá code. 
Ví dụ khai báo biến thuộc vùng code : 
char code str[]={“DHBKDN”}; //Khai báo một mảng ký tự chứa trong vùng nhớ code 
- Bộ nhớ dữ liệu trong : Đây là vùng nhớ có thể vừa ghi và đọc. Có 3 kiểu vùng 
nhớ dữ liệu ở bên trong vi điều khiển. Đó là các kiểu : data, idata, bdata. Vùng nhớ 
dữ liệu kiểu data là vùng nhớ chứa 128 byte dữ liệu đầu tiên của vi điều khiển. Vùng 
nhớ này có thể truy cập thông qua địa chỉ trực tiếp đ−ợc. Vùng nhớ dữ liệu kiểu idata 
là vùng nhớ 256 byte dữ liệu truy nhập thông qua địa chỉ gián tiếp. Vùng nhớ dữ liệu 
kiểu bdata là vùng nhớ chứa 16 byte định địa chỉ bit từ địa chỉ 20H đến 2FH. 
Ví dụ khai báo biến trong vùng nhớ dữ liệu trong : 
 unsigned char data v1; //Khai báo biến v1 
 unsigned int idata v2; //Khai báo biến v2 
- Bộ nhớ dữ liệu ngoài : Có 2 kiểu dữ liệu ngoài ở trong Keil C51 là XDATA 
và PDATA. XDATA là vùng nhớ dữ liệu ngoài có thể định địa chỉ đ−ợc đến 64 KB dữ 
liệu. PDATA là vùng nhớ chứa từng trang dữ liệu. Mỗi trang dữ liệu ngoài chứa đ−ợc 
256 byte. Để có thể truy cập đ−ợc bộ nhớ dữ liệu ngoài, ta phải dùng từ khoá _at_ để 
định địa chỉ cho các biến. 
Ví dụ khai báo biến trong vùng nhớ dữ liệu ngoài : 
 float xdata a1 _at_ 0x2000; //Khai báo biến a1 có địa chỉ 2000H 
 unsigned long pdata a2 _at_ 0x2004; // Biến a2 có địa chỉ 2004 
Con trỏ trong Keil C51 đ−ợc khai báo giống nh− khai báo con trỏ trong ngôn ngữ C. 
Ví dụ về khai báo con trỏ : 
 char *s; //Con trỏ của một string 
 int *p; //Con trỏ kiểu int 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 21 
Con trỏ đ−ợc sử dụng để truy cập tới bất cứ phần bộ nhớ nào của vi điều khiển. 
Có hai cách khai báo sử dụng con trỏ. Generic Pointers là kiểu con trỏ dùng chung. 
Khai báo con trỏ sẽ chiếm 3 byte của vùng nhớ dữ liệu mà nó trỏ đến. 
Con trỏ còn có thể khai báo vùng nhớ dữ liệu cho con trỏ. 
Ví dụ : 
 char data *str; /* ptr to string in data */ 
int xdata *numtab; /* ptr to int(s) in xdata */ 
long code *powtab; /* ptr to long(s) in code */ 
Ngoài ra, Keil C51 còn là ch−ơng trình mô phỏng chip rất tốt bằng ch−ơng trình 
tích hợp dScope. Nó cho phép ng−ời sử dụng mô phỏng ch−ơng trình viết trong C chạy 
trên nền chip giống nh− thật. Ng−ời sử dụng có thể dễ dàng theo dõi giá trị của Timer, 
trạng thái các ngắt, đầu ra cổng nối tiếp, đầu ra các port P0...P3. 
1.2.1.2 Phần mềm Borland Delphi 7.0 của hãng Borland 
Borland Delphi 7.0 là một công cụ mạnh dùng để xây dựng các ứng dụng 32 bit 
chạy trên nền Windows bao gồm cả Windows 9x và NT. 
1.2.3 Công cụ phát triển cho họ vi điều khiển MC68HC11 
Các chip vi điều khiển họ Motorola 68HC11 có thể đ−ợc lập trình bằng ngôn ngữ 
Assembly hoặc C nh− các họ vi điều khiển khác. Chúng ta có thể tham khảo công cụ 
phát triển hỗ trợ cho việc lập trình, mô phỏng và phát triển các ứng dụng với chip vi 
điều khiển MC68HC11 sau đây. 
Phần mềm Micro-IDE 
Phần mềm Micro-IDE là một công cụ phát triển mạnh hỗ trợ cho việc lập trình, 
mô phỏng cho nhiều loại chip vi điều khiển khác nhau, chạy trên môi tr−ờng 
Windows. Giao diện ng−ời dùng của nó nh− hình vẽ, với phần mềm này ta có thể 
lựa chọn để làm việc với các chip trong họ 8051, M68HC11, M68HC12, 
M68HC16, 8085, 8086,... và các chip họ AVR. Các tính năng, đặc điểm của phần 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 22 
mềm này t−ơng tự nh− phần mềm Keil C51 nh−ng ứng dụng của nó thì rộng hơn 
cho nhiều loại chip kể trên. Ngôn ngữ lập trình có thể soạn thảo và biên dịch trên 
môi tr−ờng của Micro-IDE có thể bằng C hoặc Assembly. 
1.2.4 Công cụ phát triển cho họ vi điều khiển PIC16/17 
Họ vi điều khiển PIC16/17 đ−ợc hỗ trợ bởi đầy đủ các công cụ phát triển cả về 
phần cứng và phần mềm sau đây : 
 PICMASTERđ Real-Time In-Curcirt Emulator. 
 PROMATETM Universal Programmer. 
 PICSTARTđ Low-Cost Prototype Programmer. 
 PICDEM-1 Low-Cost Demonstration Board. 
 PICDEM-2 Low-Cost Demonstration Board. 
 MPASM Assembler. 
 MPSIM Softwave Simulator. 
Hình 1.4 - Giao diện của phần mềm Micro-IDE 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 23 
 C Compiler (MP-C). 
 Fuzzy logic development system (fuzzy TECHđ-MP). 
D−ới đây ta sẽ đi vào giới thiệu hai công cụ phát triển phần mềm th−ờng đ−ợc sử 
dụng là MPASM Assembler và C Compiler (MP-C). 
MPASM Assembler 
MPASM có hỗ trợ đầy đủ cho việc viết tạo ra các Macro trong ch−ơng trình m! 
ngữ, viết ch−ơng trình bằng ngôn ngữ Assembly, cung cấp các m! nguồn có sẵn và các 
định dạng file khác nhau. Nó tạo ra một môi tr−ờng cho phép soạn thảo m! nguồn, 
biên dịch cũng nh− gỡ rối các ch−ơng trình của ng−ời sử dụng lập trình cho các chip vi 
điều khiển khác nhau bao gồm cả họ PIC16Cxx, PIC 16Cxx và PIC16C5x. 
MPASM có các đặc điểm chính sau đây trong việc hỗ trợ phát triển các ứng dụng 
của ng−ời dùng: 
+ Cho phép biên dịch ch−ơng trình từ m! Assembly sang m! đối t−ợng cho tất cả 
các vi điều khiển của h!ng Microchip. 
+ Cho phép tạo ra các ch−ơng trình Macro. 
+ Tạo ra tất cả các file cần thiết (Object, Listing, Symbol, và các dạng đặc biệt 
khác) khi biên dịch và gỡ rối cho các hệ vi điều khiển của Microchip. 
+ Hỗ trợ việc sử dụng và tạo ra các file định dạng Hex, Decimal và Octal. 
C Compiler (MP-C) 
Công cụ phát triển phần mềm MP-C là một trình biên dịch hoàn chỉnh và đ−ợc 
tích hợp vào trong môi tr−ờng phát triển cho các chip vi điều khiển họ PIC16/17 của 
Microchip. Trình biên dịch này có nhiều khả năng mạnh mẽ và rất dễ sử dụng, điều 
này khó có thể tìm thấy ở một công cụ phát triển nào khác. 
Để dễ dàng cho việc sử dụng và gỡ rối, trình biên dịch MP-C sử dụng các ký hiệu 
thông tin thích hợp với các kí hiệu của công cụ phát triển khác là PICMASTERđ 
Universal Emulator. 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 24 
Ngoài ra hiện nay còn có một số phần mềm khác rất linh hoạt, hỗ trợ viết cho 
nhiều dòng PIC, từ 16/17/18 đến dsPIC bằng C nh− CCS C, HT PIC, HT PIC 18 hay 
bằng Pascal nh− MikroPascal ... 
1.2.5 Công cụ phát triển cho họ vi điều khiển thông minh PSoC 
Phần mềm PSoC Designer là một công cụ hoàn chỉnh đ−ợc tích hợp vào hệ 
thống hỗ trợ cho việc phát triển cả về mặt lập trình cấu hình phần cứng và ch−ơng trình 
phần mềm cho các chip vi điều khiển thông minh chế tạo theo công nghệ PSoC của 
h!ng Cypress Microchip, ví dụ nh− họ CY8C25-26xxx. 
Phần mềm PSoC Designer đ−ợc xây dựng trên nền hệ điều hành Windows và nó 
có thể chạy đ−ợc trên Windows98, Windows NT 4.0, Windows 2000, Windows 
Millennium (Me), or Windows XP. 
PSoC Designer giúp ng−ời sử dụng lựa chọn một thuật toán cấu hình phần cứng 
cho vi điều khiển, lập trình phần mềm cho vi điều khiển, và gỡ rối. Hệ thống này cho 
phép quản lí cơ sở dữ liệu bằng các project, tích hợp phần gỡ rối với In-Circuit 
Emulator, cho phép lập trình ngay trên hệ thống (In-system programming), và hỗ trợ 
việc tạo ra các Macro CYASM cho ch−ơng trình bằng hợp ngữ. 
PSoC Designer cũng hỗ trợ việc lập trình bằng ngôn ngữ bậc cao C và biên dịch, 
gỡ rối các ch−ơng trình đó cho các thiết bị của h!ng Cypress Microchip. 
1.3 KIT vi điều khiển 
1.3.1 Mục đích 
Kỹ thuật vi điều khiển là môn học cơ bản quan trọng đối với sinh viên các ngành 
Điều khiển, Tự động hóa , Điện tử, Tin họcv..v. nhằm trang bị cho sinh viên những 
kiến thức cần thiết về một họ vi điều khiển, ở đây là họ 8051, nh− cấu trúc, nguyên tắc 
hoạt động cùng các mạch phụ trợ, tập lệnh, cách lập trình bằng hợp ngữ, các ph−ơng 
thức điều khiển vào ra và các ph−ơng pháp kết nối thiết bị ngoại vi. Dựa trên nền tảng 
kiến thức của môn học kỹ thuật vi điều khiển, sinh viên tiếp thu những môn học kỹ 
thuật chuyên ngành và tiếp cận dễ dàng hơn với những kỹ thuật, trang thiết bị hiện 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 25 
đại.Đồng thời cho phép sinh viên có cái nhìn trực quan và kiểm chứng, khẳng định sự 
đúng đắn các kiến thức đ! học. Do vậy việc đ−a vào giáo trình phần xây dựng thiết kế 
Kit vi điều khiển là hết sức quan trọng và rất thiết thực đối sinh viên chuyên ngành tự 
động hóa, điện tử viễn thông, đo l−ờng .. Các Kit vi điều khiển đều đ−ợc thiết kế dự 
trên các họ vi điều khiển mà sinh viên đang học trong giáo trình này. Sinh viên có thể 
dùng các Kit vi điều khiển này để điều khiển các quá trình nhiệt độ, điều khiển động 
cơ,điều khiển các đối t−ợng giao thông, điều khiển các quá trình sản xuất .. 
Trên thế giới có rất nhiều nguồn cung cấp các mạch Kit nói trên nh− : 
+ Từ các h!ng của n−ớc ngoài, ví dụ nh− bộ KIT MDA-EMS51 của h!ng Midas 
của Hàn Quốc, KIT và phần mềm phát triển cho họ vi điều khiển PIC của 
MikroElektronika (Website  hay một h!ng nổi 
tiếng khác là OLIMEX (Website  với các sản phẩm KIT phát 
triển cho các dòng AVR, PIC, MAXQ, MSP430, ARM... Đặc điểm của các sản phẩm 
này là có các tính năng mạnh, mẫu m! đẹp, phục vụ tốt nhu cầu thực hành của môn 
học. Tuy nhiên giá thành của thiết bị là rất đắt (giá khoảng 700$ đối với KIT MDA-
EMS51, và việc đặt mua không đ−ợc thuận tiện. 
+ Do các trung tâm nghiên cứu và các tr−ờng đại học trong n−ớc tự chế tạo. 
Trong các tr−ờng đại học ( Đại học BKĐN – bộ môn tự động hóa đ! chế tạo và sản 
xuất hoàn chỉnh KIT vi điều khiển phục vụ đào tạo và sản xuất), các thiết bị thực 
hành môn học vi điều khiển có thể do các cán bộ giảng dạy môn học chế tạo hoặc do 
các sinh viên tự chế tạo d−ới sự h−ớng dẫn của giáo viên. −u điểm của các sản phẩm 
chế tạo trong n−ớc là giá thành rẻ mà chất l−ợng, mẫu m! không thua kém n−ớc ngoài. 
Cấu hình của sản phẩm và nội dung thực hành phù hợp với mục đích, ch−ơng trình đào 
tạo, với điều kiện học tập của sinh viên cả n−ớc nói chung và sinh viên ĐHBK Đà 
Nẵng nói riêng. 
Xuất phát từ tình hình thực tế và sự cần thiết đáp ứng nhu cầu thực hành trong 
quá trình học tập môn học vi điều khiển nói trên, việc thiết kế, xây dựngmột bộ KIT vi 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 26 
điều khiển với đầy đủ các thành phần cơ bản (nêu ở phần yêu cầu), là vấn đề hết sức 
cần thiết đối với cá sinh viên ngành tự động hóa trong tr−ờng đại học BKĐN. Đây là 
vấn đề trọng tâm trong giáo trình này. 
1.3.2 Yêu cầu thiết kế KIT vi điều khiển phục vụ thí nghiệm : 
+ Phần cứng : Bởi vì mục đích của sản phẩm là phục vụ cho việc đào tạo nên 
cấu hình phần cứng phải rõ ràng, dàn trải. Kích th−ớc của bộ KIT gọn nhẹ, dễ dàng di 
chuyển và bảo quản. Các thành phần của bộ KIT đ−ợc thể hiện rõ ràng, dễ nhận biết, 
một đặc điểm nữa là nó đ−ợc phân thành các module nhỏ và liên kết với module trung 
tâm bằng BUS, điều này cũng giúp ng−ời học có thể nhìn thấy một cách trực quan các 
thành phần của bài thí nghiệm sẽ tiến hành. Đồng thời việc tổ chức thành các module 
nhỏ cũng tiện cho việc sửa chửa, thiết kế mở rộng, và có thể dễ dàng trong việc th−ơng 
mại hóa sản phẩm sau này. 
+ Các thành phần của bộ KIT : Bộ KIT có đầy đủ các thành phần cơ bản của 
một hệ vi điều khiển và các nguồn tài nguyên ngoại vi phong phú, cho phép ng−ời sử 
dụng có thể tự do phát triển các ứng dụng của mình : 
 Bộ vi điều khiển trung tâm. 
 Các bộ nhớ ROM (nội), RAM (nội/ngoại), EEPROM(nội/ngoại). 
 Các cổng vào/ra t−ơng tự, vào/ra số, các cổng ghép nối ngoại vi 
mở rộng lập trình đ−ợc. 
 Giao tiếp bàn phím. 
 Hiển thị LCD. 
 Hiển thị trạng thái bằng đèn LED . 
 Hiển thị LED 7 thanh. 
 Hiển thị ma trận LED (8x8). 
 Các đầu vào xung. 
 Mạch điều khiển động cơ một chiều, động cơ b−ớc. 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 27 
 Giao tiếp với máy tính PC qua cổng truyền thông nối tiếp (COM) 
và song song (LPT). 
+ Các bài thí nghiệm thực hiện trên bộ KIT : 
 Các bài cơ bản : Giúp sinh viên làm quen với hệ lệnh của chip vi 
điều khiển, nhập các lệnh và chạy ch−ơng trình để xem kết quả thực hiện của các lệnh 
đó. 
 Các bài nâng cao : Gồm các bài thí nghiệm phức tạp hơn thực hiện 
sử dụng các thành phần ngoại vi trên bộ KIT. Các bài thí nghiệm thực hiện việc điều 
khiển một quá trình t−ơng tự hoặc số, ví dụ : điều khiển hiển thị đèn LED, LED 7 
thanh, ma trận LED, điều khiển vào/ra số - t−ơng tự, điều khiển động cơ b−ớc... 
+ Thực hiện các bài thí nghiệm : 
 Các bài tập mẫu xây dựng tr−ớc : Đi kèm với sản phẩm bộ KIT là 
một hệ thống các bài tập mẫu đ−ợc xây dựng cho các ứng dụng trên bộ KIT nh− điều 
khiển các thành phần ngoại vi của KIT, điều khiển vào/ra t−ơng tự - số... Sinh viên có 
thể đọc h−ớng dẫn sử dụng và thực hiện các bài tập mẫu này trên bộ KIT. 
 Các bài tập do sinh viên tự lập trình : Sau khi đ! nắm rõ cấu hình 
của bộ KIT và sơ đồ bộ nhớ của các thành phần trên bộ KIT, sinh viên có thể tự lập 
trình các bài thí nghiệm trên bộ KIT theo ý định riêng của mình. 
+ Công cụ lập trình : 
Bằng máy tính PC : Có thể sử dụng ngôn ngữ ASSEMBLY với trình biên dịch 
hợp ngữ sẵn có của nhà sản xuất (ASM51.exe) hoặc các công cụ phát triển ví dụ nh− 
phần mềm Keil, ProView32, 8051IDE hay 8051 Bascom để lập các ch−ơng trình 
cho bộ KIT từ máy tính bằng ngôn ngữ C, Assembly hay BASIC, sau đó biên dịch 
thành file dạng Hexa hoặc Binary rồi nạp xuống cho bộ KIT thực hiện các ch−ơng 
trình đó. 
+ Công cụ phát triển cho bộ KIT : 
Giáo trình môn Kỹ thuật Vi Điều Khiển Ch−ơng 1 : Tổng quan về vi điều khiển 
 Biên soạn : Lâm tăng Đức – Lê Tiến Dũng – Bộ môn TĐH Trang 28 
 Ch−ơng trình MONITOR : Ch−ơng trình Monitor điều hành hoạt 
động của cả bộ KIT và cho phép lập trình từ máy tính. Ch−ơng trình hỗ trợ chế độ gỡ 
rối bằng cách chạy từng dòng lệnh (STEP BY STEP) và quan sát câu lệnh vừa chạy (vd 
MOV A, #1) đồng thời cũng quan sát đ−ợc giá trị của các thanh ghi đặc biệt SFR, các 
PORT, các ô nhớ RAM. Ngoài ra ch−ơng trình Monitor của bộ KIT còn cho phép sửa 
đổi nội dung của các thanh ghi đặc biệt hoặc nội dung các ô nhớ trong của chip vi điều 
khiển chính. 
 Công cụ gỡ rối : Trên giao diện máy tính có thể sử dụng các phần 
mềm phát triển ví dụ phần mềm Keil, ASM51, Proview32 để gỡ rối cho việc lập trình. 
(Các phần mềm có thể tìm thấy ở th− mục Programming tools trên CD đi kèm KIT) 

File đính kèm:

  • pdfgiao_trinh_ky_thuat_vi_dieu_khien_chuong_i_tong_quan_ve_vi_d.pdf