thuyết minh đồ án

122
Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Tên đề tài: THIẾT KẾ, CHẾ TẠO BỘ KIT THỰC HÀNH VI ĐIỀU KHIỂN Nhận Xét Của Giáo Viên Hướng Dẫn: .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... .................................................... GVHD : Phạm Thị Ngọc Anh SVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 1

Upload: nam-lun-smile

Post on 01-Jan-2016

56 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Tên đề tài: THIẾT KẾ, CHẾ TẠO BỘ KIT THỰC HÀNH VI ĐIỀU KHIỂN

Nhận Xét Của Giáo Viên Hướng Dẫn:

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

Hưng Yên, ngày…..tháng….năm 2012

Giáo Viên Hướng Dẫn

MỤC LỤC

Phần I: CƠ SỞ LÝ THUYẾT …………………………………….5

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 1

Page 2: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Chương I: Tổng quan về vi điều khiển AT89C51………………………5

1.1. Giới thiệu cấu trúc phần cứng họ MSC-51(AT89C51)……………..5

1.2. Khảo sát sơ đồ chân AT89C51, chức năng từng chân……………...6

1.3. Cấu trúc bên trong vi điều khiển……………………………………9

1.4. Hoạt động TIME của AT89C51…………………………………...15

1.5. Hoạt động PORT nối tiếp………………………………………….22

1.6. Tóm tắt tập lệnh của 89C51……………………………………….31

1.7. Lập trình FLASH AT89C51………………………………………37

Phần II: Thiết kế và thi công phần cứng của bộ KIT……………..39

Chương I: Thiết kế bộ KIT vi điều khiển ……………………………..39

1.1. Mục đích và yêu cầu thiết kế vi điều khiển phục vụ thí nghiệm….39

1.2. Chọn phương án thiết kế…………………………………………42

1.3. Xây dựng sơ đồ khối của bộ KIT…………………………………43

1.4. Thiết kế và lựa chọn linh kiện từng module………………………44

1.5. Thi công mạch…………………………………………………….55

Chương II: Lắp ráp linh kiện …………………………………………58

2.1. Module mạch nạp…………………………………………………58

2.2. Module CPU………………………………………………………60

2.3. Module led đơn…………………………………………………...61

2.4. Module led 7 thanh……………………………………………….61

2.5. Module ledma trận………………………………………………..62

2.6. Module hiển thị LCD……………………………………………..62

2.7. Module điều khiển động cơ một chiều……………………………64

2.8. Module điều khiển động cơ bước…………………………………65

2.9. Hệ thống công tắc 3 cực…………………………………………..65

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 2

Page 3: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

LỜI NÓI ĐẦU

Ngày nay kĩ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật và trong

dân dụng. Từ các dây truyền sản xuất lớn đến các thiết bị gia dụng chúng ta đều thấy sự

hiện diện của vi điều khiển ( VĐK ). Các bộ VĐK có khả năng xử lý nhiều hoạt động phức

tạp mà chỉ cần một chip vi mạch nhỏ, nó đã thay thế các tủ điều khiển lớn và phức tạp

bằng những mạch điện gọn nhẹ, dễ dàng thao tác sử dụng. VĐK không những góp phần

vào kỹ thuật điều khiển mà còn góp phần to lớn vào phát triển thông tin. Đó là sự ra đời

của hàng loạt thiết bị viễn thông và truyền hình hiện đại, đặc biệt sự ra đời của mạng

internet – góp phần đưa con người lên đỉnh cao của nền văn minh nhân loại.

Chính vì các lí do trên, việc tìm hiểu khảo sát VĐK là điều mà các sinh viên ngành điện tử

chúng em hết sức quan tâm . Các bộ điều khiển sử dụng VĐK tuy đơn giản nhưng để vận

hành và sử dụng được lại là một điều rất phức tạp. Phần công việc sử lý chính vẫn là con

người đó chính là chương trình hay phần mềm. Tuy chúng ta thấy các máy tính ngày nay

cực kỳ thông minh, giải quyết các bài toán phức tạp trong vài phần triệu giây nhưng đó

cũng đều là dựa trên sự hiểu biết của con người. Nếu không có sự tham gia của con người

thì hệ thống VĐK cũng chỉ là một vật vô tri. Do vậy khi nói đến VĐK cũng như máy tính

bao gồm phần cứng và phần mềm. 

Các bộ VĐK theo thời gian cũng phát triển rất nhanh cùng với công nghệ bán dẫn, từ các

bộ VĐK 4 bit đơn giản tới các bộ VĐK 32 bit. Bộ VĐK 8 bit là cơ sở để chúng ta tìm hiểu và

sử dụng các bộ VĐK tối tân hơn, đây chính là bước đầu tiên để chúng ta tìm hiểu sâu vào

lĩnh vực này.

Để tìm hiểu bộ VĐK một cách khoa học và mang lại hiệu quả cao làm nền tảng cho việc

xâm nhập công nghệ tối tân hơn. Việc trang bị những kiến thức về VĐK cho sinh viên là

hết sức cần thiết. Xuất phát từ thực tế này em đã quyết định thực hiện đề tài “ Thiết kế

bộ KIT thực hành vi điều khiển 8051”.

Trong những thập niên gần đây công nghiệp hoá hiện đại hoá ngày càng phát triển mạnh mẽ. Kỹ thuật điện tử đã có những bước phát triển mạnh đặc biệt là trong kỹ thuật điều khiển tự động, kỹ thuật vi điều khiển.

Ở nước ta hiện nay, việc lập trình ghép nối máy tính sử dụng vi điều khiển đã và đang là công cụ được ứng dụng rộng rãi trong lĩnh vực tự động hoá. Nó phát triển nhanh chóng, đã mang lại những thay đổi to lớn trong công nghệ cũng như trong đời sống hàng ngày. Việc các máy móc thiết bị trở lên linh hoạt hơn, thông minh hơn và làm việc với năng suất cao là nhờ có sự hoạt động thông minh của bộ vi điều khiển.

Đặc biệt, trong các trường Đại Học và Cao Đẳng trong cả nước, thì việc sử dụng những công nghệ của khoa học kỹ thuật để chế tạo ra các mô hình có khả năng ứng

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 3

Page 4: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

dụng cao trong học tập, luôn là điều mong mỏi không chỉ của các thầy cô mà còn là niềm mong đợi của rất rất nhiều sinh viên khoa Điện - Điện Tử trường ĐHSPKT HƯNG YÊN.

Xuất phát từ nhu cầu thực tế, do trang thiết bị giảng dạy vẫn chưa đáp ứng đủ nhu cầu học tập của sinh viên.Vì vậy chúng em được nhận đề tài : “ THIẾT KẾ, CHẾ TẠO BỘ KIT THỰC HÀNH VI ĐIỀU KHIỂN” dưới sự hướng dẫn nhiệt tình của Cô Phạm Thị Ngọc Anh, cùng với sự nỗ lực của các thành viên trong nhóm chúng em đã hoàn thành đề tài được giao.

Do kiến thức còn nhiều hạn chế chính vì vậy mà sản phẩm của chúng em không thể tránh khỏi những thiếu xót nhất định nên chúng em rất mong nhận được sự đóng góp của các thầy cô cùng toàn thể các bạn sinh viên để sản phẩm của chúng em được hoàn thiện hơn.

Chúng em xin trân thành cảm ơn!

Hưng Yên, ngày…..tháng … năm 2012

1.Đặt vấn đề

Họ vi điều khiển 8051 hiện đang được sử dụng rất phổ biến , chúng xuất hiện trong

rất nhiều ứng dụng như điều khiển , đo lường , điện thoại …Hơn thế nữa, chúng

còn xuất hiện nhiều trong các hệ thống nhúng SoC , rất phát triển hiện nay . Việc

nghiên cứu học tập kỹ thuật vi xử lý nói chung , các họ vi điều khiển nói riêng ,

trong đó điển hình là họ 8051 là rất cần thiết cho sinh viên điện điện tử - viễn

thông . Để có thể học tập, nghiên cứu , thiết kế tốt về các họ vi điều khiển rất cần

thiết cho các thiết bị thí nghiệm thực hành cũng như các công cụ hỗ trợ thiết kế hệ

vi điều khiển .Trong thực tế có rất nhiều các thiết bị thí nghiệm , các công cụ hỗ trợ

thiết kế vi xử lý khá chuyên nghiệp như hệ phát triển , hệ kiểm tra logic , máy nạp

ROM , các bộ phần mềm dịch chéo …trong đó hệ phát triển đóng vai trò quan

trọng nhất . Song việc trang bị các thiết bị chuyên dụng trên đòi hỏi phải có lượng

kinh phí lớn , khó có thể trang bị đại trà , trong khi đó khả năng hiện nay chungsta

có thể thiết kế các thiết bị như vậy với giá thành phẩm rẻ. Vì vậy chúng em đã lựa

chọn thiết kế bộ kit thực hành vi điều khiển để phục vụ cho việc học tập nghiên

cứu của sinh viên .

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 4

Page 5: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

2. Tính cấp thiết của đề tài

Với mục đích chính là hỗ trợ sinh viên thí nghiệm thực hành môn kỹ thuật vi xử

lý và thiết kế hỗ trợ ứng dụng vi xử lý , bộ KIT phải được thiết kế đa dạng gồm

nhiều modul ứng dụng sử dụng được phần lớ khả năng và tài nguyên của họ vi

điều khiển 8051 và phải có cấu trúc mở cho phép hỗ trợ sinh viên phát triển thêm

các thiết bị ứng dụng riêng .Cấu trúc của bộ KIT bao gồm các modul ứng dụng đa

dạng phục vụ việc học tập  :

- Modul điều khiển chính

- Modul điều khiển 32 led đơn

- Modul điều khiển led 7 thanh

- Modul điều khiển động cơ bước

- Modul điều khiển động cơ DC

- Modul điều khiển matrix 8x8

- Modul điều khiển LCD 16x2

- Modul điều khiển ADC

- Modul SWITCH

Giải quyết vấn đề :

- Sử dụng vi điều khiển AT89C51 làm chíp điều khiển trung tâm.

- Sử dụng cảm biến nhiệt độ LM35 để xác định nhiệt độ.

- Dùng IC ADC0804 để biến đổi tín hiệu dạng tương tự sang dạnh số.

- Dùng LCD 16x2 để hiện thị nhiệt độ đo được một cách trực quan nhất.

- Dùng IC ổn áp 7805, để duy trì ổn định mức điện áp cho mạch điện.

Ngoài ra trong mạch còn dùng một số linh kiện khác để thực hiện truyền tín hiệu giữa

vi điều khiển trung tâm với các thiết bị nói trên.

-

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 5

Page 6: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Phần I: CƠ SỞ LÝ THUYẾT

Chương I: TỔNG QUAN VỀ VI ĐIỀU KHIỂN

1.Sơ lược về Vi Điều Khiển.

- Một bộ Vi Điều Khiển là một mạch chứa hang ngàn thậm chí hàng triệu Transisor (LSI,VLSI) được kết nối với nhau. Các transistor ấy cùng nhau làm việc để lưu trữ và xử lý dữ liệu cho phép bộ vi xử lý thực hiện nhiều chức năng hữu ích. Chức năng của vi xử lý được xác định bằng nhiều phần mềm có thẻ lập trình được. - Hệ thống vi xử lý gồm 3 khối chúc năng: Vi xử lý,bộ nhớ, các cổng I/O.Bộ nhớ được thực hiện bằng các chip nhớ bán dẫn ROM hoặc RWM là nơi lưu trữ chương trình và dữ liệu.Đối với vi xử lý bộ nhớ là nơi tập hợp các ô nhớ phân biệt theo địa chỉ của chúng.Các cổng I/O được thực hiện bắng các chip MSI hoặc Bằng LSI là phần mềm giao tiếp giữa vi xử lý với các thiết bị I/O. Bộ Vi xử lý cũng phân biệt các cổng I/O theo địa chỉ của chúng.

1.1. GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MSC-51 (AT89C51)

Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự

như nhau. Ở đây giới thiệu ICAT89C51 là một họ IC vi điều khiển do hãng Intel của

Mỹ sản xuất. Chúng có các đặc điểm chung như sau:

Các đặc điểm của AT89C51 được tóm tắt như sau :

- 8 KB EPROM bên trong.

- 128 Byte RAM nội.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 6

Page 7: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

- 4 Port xuất /nhập I/O 8 bit.

- Giao tiếp nối tiếp.

- 64 KB vùng nhớ mã ngoài

- 64 KB vùng nhớ dữ liệu ngoại.

- Xử lí Boolean (hoạt động trên bit đơn).

- 210 vị trí nhớ có thể định vị bit.

Hình 1.1 : Sơ đồ khối của AT89C51:

1.2. KHẢO SÁT SƠ ĐỒ CHÂN AT89C51, CHỨC NĂNG TỪNG CHÂN

1.2.1. Sơ đồ chân AT89C51:

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 7

Page 8: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

a) DIP b)PLCC

Hình 1.2: Sơ đồ chân IC AT89C51

1.2.2. Chức năng các chân của AT89C51:

- AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong đó

có 24 chân có hai tác dụng (có nghĩa 1 chân có 2 chức năng), mỗi

đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là

thành phần của các bus dữ liệu và bus địa chỉ.

1.2.1. Các Port:

- Port 0 :

Port 0 là port ở các chân 32 – 39 của AT89C51. Trong các thiết kế cỡ nhỏ không dùng

bộ nhớ mở rộng nó có chức năng như các đường IO. Đối với các

thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu.

- Port 1:

Port 1 là port I/O trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1, P1.2, … , P1.7,

có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần. Port 1 không có chức năng

khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngoài.

- Port 2 :

Port 2 là 1 port có hai tác dụng trên các chân 21 - 28 được dùng như các đường

xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.

- Port 3:

Port 3 là port có hai tác dụng trên các chân 10 - 17. Các chân của port này có

nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của

AT89C51 như ở bảng sau:

Bit Tên Chức năng chuyển đổi

P3.0 RXD Nhận tín hiệu kiểu nối tiếp.

P3.1 TXD Truyền tín hiệu kiểu nối tiếp.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 8

Page 9: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

INT0\

INT1\

T0

T1

WR\

RD\

Ngắt ngoài 0.

Ngắt ngoài 1.

Chân vào 0 của Timer/Counter 0.

Chân vào1 của Timer/Counter 1.

Ghi dữ liệu vào bộ nhớ ngoài.

Đọc dữ liệu từ bộ nhớ ngoài.

Bảng 1.1: Chức năng chân PORT 3

1.2.2. Các đầu tín hiệu điều khiển :

-/PSEN :

Chân cho phép đọc bộ nhớ chương trình ngoài(ROM ngoài). PSEN là tín hiệu đầu ra ở

chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường được nối đến

chân 0E\ (output enable) của Eprom cho phép đọc các byte mã lệnh.

PSEN ở mức thấp trong thời gian Microcontroller AT89C51 lấy lệnh. Các mã lệnh

của chương trình được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi

lệnh bên trong AT89C51 để giải mã lệnh. Khi AT89C51 thi hành chương trình trong

ROM nội PSEN sẽ ở mức logic 1.

-ALE (/PROG ) :

Chân tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài, khi On-chip xuất ra byte

thấp của địa chỉ. Tín hiệu chốt được kích hoạt ở mức cao,tần số xung chốt =1/6 tần số

dao động của bộ VDK. Nó có thể được dùng cho các bộ Time ngoài hoặc cho mục

đích tạo xung Clock. Đây cũng là chân xung vào để nạp chương trình cho Plash (hoặc

EEPROM) bên trong On-chíp khi nó ở mức thấp.

- /EA/Vpp:

Cho phép On-chip truy cập bộ nhớ chương trình ngoài khi /EA=0, nếu /EA=1 thì On-

chip sẽ làm việc với bộ nhớ chương trình nội trú (trường hợp cần truy cập vùng nhớ

lớn hơn dung lượng bộ nhớ chương trình nội trú, thì bộ nhớ chương trình ngoài cũng

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 9

Page 10: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

được sử dụng). Khi chân này được cấp nguồn điện áp 12V(Vpp) thì On-chi Đảm nhận

chức năng nạp chương trình cho Flash bên trong nó.

-RST (Reset) :

Đầu vào RST ở chân 9 là đầu vào Reset của AT89C51. Khi đầu vào tín hiệu

này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá

trị thích hợp để khởi động hệ thống. Khi cấp điện mạch tự động Reset.

- XTAL1,XTAL2:

Chân vào, ra mạch khuếch đại dao động.bộ dao động được tích hợp bên trong

AT89C51, khi sử dụng AT89C51 người thiết kế chỉ cần kết nối thêm thạch anh và các

tụ như hình vẽ trong sơ đồ. Tần số thạch anh thường sử dụng cho AT89C51 là 12MHz,

để truyền thông thì sử dụng thạch anh 11.0592Mhz là chuẩn để tạo ra tốc độ baud.

- Chân 40 (Vcc) :Được nối lên nguồn 5V.

- GND : nối mass.

1.3. CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN

1.3.1. Tổ chức bộ nhớ:

Hình 1.3: Tổ chức bộ nhớ vi điều khiển

Bảng tóm tắt các vùng nhớ AT89C51

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 10

Page 11: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Địa

chỉ

byte

Địa chỉ bit

Địa

chỉ

byte

Địa chỉ bit

7F FF

F0 F7 F6 F5 F4 F3 F2 F1 F0 B

RAM đa dụng

E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW

30 B8 - - - BC BB BA B9 B8 IP

2F 7F 7E 7D 7C 7B 7A 79 78

2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3

2D 6F 6E 6D 6C 6B 6A 69 68

2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE

2B 5F 5E 5D 5C 5B 5A 59 58

2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2

29 4F 4E 4D 4C 4B 4A 49 48

28 47 46 45 44 43 42 41 40 99 Không định địa chỉ bit SBUF

27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON

26 37 36 35 34 33 32 31 30

25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1

24 27 26 25 24 23 22 21 20

23 1F 1E 1D 1C 1B 1A 19 18 8D Không định địa chỉ bit TH1

22 17 16 15 14 13 12 11 10 8C Không định địa chỉ bit TH0

21 0F 0E 0D 0C 0B 0A 09 08 8B Không định địa chỉ bit TL1

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 11

Page 12: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

20 07 06 05 04 03 02 01 00 8A Không định địa chỉ bit TL0

1F Bank 3 89 Không định địa chỉ bit TMOD

18 88 8F 8E 8D 8C 8B 8A 89 88 TCON

17 Bank 2 87 Không định địa chỉ bit PCON

10

0F Bank 1 83 Không định địa chỉ bit DPH

08 82 Không định địa chỉ bit DPL

07 Bank thanh ghi 0 81 Không định địa chỉ bit SP

00 (mặc định cho R0 -R7) 88 87 86 85 84 83 82 81 80 P0

Bảng 1.2: Vùng nhớ RAM của AT89C51

Thanh ghi trạng thái chương trình (PSW: Program Status Word):

BIT SYMBOL ADDRESS DESCRIPTION

PSW.7 CY D7H Cary Flag

PSW.6 AC D6H Auxiliary Cary Flag

PSW.5 F0 D5H Flag 0

PSW4 RS1 D4H Register Bank Select 1

PSW.3 RS0 D3H Register Bank Select 0

00=Bank 0; address 00H(07H)

01=Bank 1; address 08H(0FH)

10=Bank 2; address 10H(17H)

11=Bank 3; address 18H(1FH)

PSW.2 OV D2H Overlow Flag

PSW.1 - D1H Reserved

PSW.0 P DOH Even Parity Flag

Bảng 1.3: Thanh ghi từ trạng thái.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 12

Page 13: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Chức năng từng bit trạng thái chương trình

- Cờ Carry CY (Carry Flag):

Cờ nhớ trong phép toán số học nếu có nhớ từ phép cộng bít số 7 hoặc có số mượn

mang đến bít 7 thì CY được đặt bằng 1

- Cờ Carry phụ AC (Auxiliary Carry Flag):

Cờ nhớ phụ (Đối với mã BCD). Khi cộng các giá trị BCD, nếu có một số nhớ được tạo

ra từ bit 3 chuyển sang bit 4 thì AC được đặt bằng 1. Khi giá trị được cộng bằng là

BCD lệnh cộng phải được thực hiện tiếp theo bởi lệnh DA A( hiệu chỉnh thập phân

nhanh chứa A) để đưa các kết quả lớn hơn về giá trị đúng.

Cờ 0 (Flag 0):

Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng.

- Những bit chọn bank thanh ghi truy xuất:

RS1 và RS0 quyết định dãy thanh ghi tích cực. Chúng được xóa sau khi reset hệ

thống và được thay đổi bởi phần mềm khi cần thiết.

Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là

Bank 0, Bank1, Bank2, Bank3.

BANK RS1 RS0

Bank 0 0 0

Bank 1 0 1

Bank 2 1 0

Bank 3 1 1

Bảng 1.4: Bits chọn băng thanh ghi.

- Cờ tràn OV (Over Flag) :

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 13

Page 14: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học thì

OV được đặt bằng 1.Khi các số có dấu được cộng hoặc trừ , phần mềm có thể kiểm tra

OV để xác định xem kết quả có nằm trong tầm xác định không. Khi các số không có

dấu được cộng bit OV được bỏ qua. Các kết quả lớn hơn +128 hoặc nhỏ hơn –127 thì

bit OV=1.

- Bit Parity (P):

Bit tự động được Set hay Clear bằn phần cứng trong mỗi chu trình lệnh để chỉ thị số

chẵn hay lẻ của bít 1 trong thanh ghi tích lũy .Số các bít trong A cộng với bit P luôn

luôn là số chẵn.

1.3.2. Bộ nhớ ngoài (external memory) :

AT89C51 có khả năng mở rộng bộ nhớ lên đến 64K byte bộ nhớ chương trình và 64k

byte bộ nhớ dữ liệu ngoài. Do đó có thể dùng thêm RAM và ROM nếu cần.Khi dùng

bộ nhớ ngoài, Port0 không còn chức năng I/O nữa. Nó được kết hợp giữa bus địa chỉ

(A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để chốt

byte của bus địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port được cho là byte thấp của bus

địa chỉ.

Truy xuất bộ nhớ dữ liệu ngoài (Accessing External Data Memory):

Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được đọc hoặc ghi khi được cho

phép của tín hiệu RD\ và WR. Hai tín hiệu này nằm ở chân P3.7 (RD) và P3.6 (WR).

Lệnh MOVX được dùng để truy xuất bộ nhớ dữ liệu ngoài và dùng một bộ đệm dữ

liệu 16 bit (DPTR), R0 hoặc R1 như là một thanh ghi địa chỉ.

Các RAM có thể giao tiếp với AT89C51 tương tự cách thức như EPROM ngoại

trừ chân RD\ của AT89C51 nối với chân OE\ (Output Enable) của RAM

và chân WR\ của AT89C51 nối với chân WE\ của RAM. Sự nối các bus địa chỉ

và dữ liệu tương tự như cách nối của EPROM.

Hoạt động Reset:

AT89C51 có đầu vào Reset RST tác động ở mức cao trong khoảng thời gian 2

chu kỳ xung máy, sau đó xuống mức thấp để AT89C51 bắt đầu làm việc.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 14

Page 15: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Hoạt động Reset cần thiết khi lập trình hay khi đang thực thi chương trình bị lỗi

chúng ta có thể RST có thể kích bằng tay bằng một phím nhấn thường hở, sơ đồ mạch

Reset như sau:

Hình 1.4: Reset bằng tay.

Trạng thái của tất cả các thanh ghi trong AT89C51 sau khi reset hệ thống được

tóm tắt như sau:

Thanh ghi Nội dung

Đếm chương trình PC

Thanh ghi tích lũy A

Thanh ghi B

Thanh ghi thái PSW

SP

DPRT

Port 0 đến port 3

IP

IE

Các thanh ghi định

thời

SCON SBUF

0000H

00H

00H

00H

07H

0000H

FFH

XXX0 0000 B

0X0X 0000 B

00H

00H

00H

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 15

Page 16: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

PCON (MHOS)

PCON (CMOS)

0XXX XXXXH

0XXX 0000 B

Bảng 1.5: Trạng thái AT89C51 khi RESET

Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được Reset tại địa

chỉ 0000H. Khi đầu vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa chỉ

0000H của bộ nhớ chương trình. Nội dung của RAM trên chip không bị thay đổi bởi

tác động của đầu vào Reset.Khi khởi động lại bộ VĐK(Reset) thì giá trị của các cổng

đều ở mức logic 1.

1.4.HOẠT ĐỘNG TIMER CỦA AT89C51.

1.4.1. Giới thiệu.

Bộ định thời của Timer là một chuỗi các Flip Flop được chia làm 2, nó nhận tín

hiệu vào là một nguồn xung clock, xung clock được đưa vào Flip Flop thứ nhất là

xung clock của Flip Flop thứ hai mà nó cũng chia tần số clock này cho 2 và cứ tiếp

tục.

Vì mỗi tầng kế tiếp chia cho 2, nên Timer n tầng phải chia tần số clock đầu vào

cho 2n. Đầu ra của tầng cuối cùng là clock của Flip Flop tràn Timer hoặc cờ mà nó

kiểm tra bởi phần mềm hoặc sinh ra ngắt. Giá trị nhị phân trong các FF của bộ Timer

có thể được nghĩ như đếm xung clock hoặc các sự kiện quan trọng bởi vì Timer được

khởi động. Ví dụ Timer 16 bit có thể đếm đến từ FFFFH sang 0000H.

Hoạt động của Timer đơn giản 3 bit được minh họa như sau:

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 16

Page 17: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Hình 1.5: Hoạt động của Timer đơn giản

Trong hình trên mỗi tầng là một FF loại D phủ định tác động cạnh xuống được

hoạt động ở mode chia cho 2 (đầu ra Q\ được nối vào D). FF cờ là một bộ chốt đơn

giản loại D được set bởi tầng cuối cùng trong Timer. Trong biểu đồ thời gian, tầng đầu

đổi trạng thái ở tần số clock, tầng thứ hai đổi trạng thái ở tần số tần số clock . . . Số

đếm được biết ở dạng thập phân và được kiểm tra lại dễ dàng bởi việc kiểm tra các

tầng của 3 FF. Ví dụ số đếm “4” xuất hiện khi Q2=1, Q1=0, Q0=0.

Các Timer được ứng dụng thực tế cho các hoạt động định hướng. AT89C51 có

2 bộ Timer 16 bit, mỗi Timer có 4 mode hoạt động. Các Timer dùng để đếm giờ, đếm

các sự kiện cần thiết và sự sinh ra tốc độ của tốc độ Baud bởi sự gắn liền Port nối tiếp.

Mỗi sự định thời là một Timer 16 bit, do đó tầng cuối cùng là tầng thứ 16 sẽ chia tần

số clock vào cho 216 = 65.536.

Trong các ứng dụng định thời, 1 Timer được lập trình để tràn ở một khoảng thời

gian đều đặn và được set cờ tràn Timer. Cờ được dùng để đồng bộ chương trình để

thực hiện một hoạt động như việc đưa tới 1 tầng các đầu vào hoặc gởi dữ liệu đếm đầu

ra. Các ứng dụng khác có sử dụng việc ghi giờ đều đều của Timer để đo thời gian đã

trôi qua hai trạng thái (ví dụ đo độ rộng xung). Việc đếm một sự kiện được dùng để

xác định số lần xuất hiện của sự kiện đó, tức thời gian trôi qua giữa các sự kiện.

Các Timer của AT89C51 được truy xuất bởi việc dùng 6 thanh ghi chức năng

đặc biệt như sau :

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 17

Page 18: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Timer SFR Purpose Address Bit-Addressable

TCON Control 88H YES

TMOD Mode 89H NO

TL0 Timer 0 low-byte 8AH NO

TL1 Timer 1 low-byte 8BH NO

TH0 Timer 0 high-byte 8CH NO

TH1 Timer 1 high-byte 8DH NO

Bảng 1.6: Các thanh ghi truy suất Timer

1.4.2. Các thanh ghi điều khiển timer.

1.4.2.1.Thanh ghi điều khiển chế độ Timer /Counter.

Thanh ghi mode gồm hai nhóm 4 bit là: 4 bit thấp đặt mode hoạt động cho

Timer 0 và 4 bit cao đặt mode hoạt động cho Timer 1. 8 bit của thanh ghi TMOD được

tóm tắt như sau:

GATE C/(/T) M1 M0 GATE C/(/T) M1 M0

Dành cho Timer 1 Dành cho Timer 0

Bảng 1.7: Thanh ghi TMOD

Bit Name Timer Description

7 GATE 1 Khi GATE = 1, Timer chỉ làm việc khi INT1=1

6 C/T 1 Bit cho đếm sự kiện hay ghi giờ

C/T = 1 : Đếm sự kiện

C/T = 0 : Ghi giờ đều đặn

5 M1 1 Bit chọn mode của Timer 1

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 18

Page 19: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

4 M0 1 Bit chọn mode của Timer 1

3 GATE 0 Bit cổng của Timer 0

2 C/T 0 Bit chọn Counter/Timer của Timer 0

1 M1 0 Bit chọn mode của Timer 0

0 M0 0 Bit chọn mode của Timer 0

Hai bit M0 và M1 của TMOD để chọn mode cho Timer 0 hoặc Timer1.

M1 M0 MODE DESCRIPTION

0 0 0 Mode Timer 13 bit (mode 8048)

0 1 1 Mode Timer 16 bit

1 0 2 Mode tự động nạp 8 bit

1 1 3 Mode Timer tách ra :

Timer 0 : TL0 là Timer 8 bit được điều khiển bởi

các bit của Timer 0. TH0 tương tự nhưng được

điều khiển bởi các bit của mode Timer 1.

Timer 1 : Được ngừng lại.

Bảng 1.8: Bits chọn MODE cho timer 0 hoặc 1.

TMOD không có bit định vị, nó thường được LOAD một lần bởi phần mềm ở

đầu chương trình để khởi động mode Timer. Sau đó sự định giờ có thể dừng lại, được

khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của Timer

khác.

1.4.2.2.Thanh ghi điều khiển timer TCON (timer control register):

Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi Timer

0 và Timer 1. Thanh ghi TCON có bit định vị. Hoạt động của từng bit được tóm tắt

như sau :

Bit SymbolBit

AddressDescription

TCON.7 TF1 8FH Cờ tràn Timer 1 được set bởi phần cứng ở sự

tràn, được xóa bởi phần mềm hoặc bởi phần

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 19

Page 20: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

cứng khi các vectơ xử lí đến thủ tục phục vụ

ngắt ISR

TCON.6 TR1 8EH Bit điều khiển chạy Timer 1 được set hoặc

xóa bởi phần mềm để chạy hoặc dừng chạy

Timer.

TCON.5 TF0 8DH Cờ tràn Timer 0(hoạt động tương tự TF1)

TCON.4 TR0 8CH Bit điều khiển chạy Timer 0 (giống TR1)

TCON.3 IE1 8BH Cờ kiểu ngắt 1 ngoài. Khi cạnh xuống xuất

hiện trên INT1 thì IE1 được xóa bởi phần

mềm hoặc phần cứng khi CPU định hướng đến

thủ tục phục vụ ngắt ngoài.

TCON.2 IT1 8AH Cờ kiểu ngắt 1 ngoài được set hoặc xóa bằng

phấn mềm bởi cạnh kích hoạt bởi sự ngắt

ngoài.

TCON.1 IE0 89H Cờ cạnh ngắt 0 ngoài

TCON.0 IT0 88H Cờ kiểu ngắt 0 ngoài.

Bảng 1.9: Thanh ghi TCON

1.4.2.3. Các nguồn xung nhịp cho timer (clock sources):

Có hai nguồn xung clock có thể đếm giờ là sự định giờ bên trong và sự đếm sự

kiện bên ngoài. Bit C/T trong TMOD cho phép chọn 1 trong 2 khi Timer được khởi

động.

Hình 1.6: Các nguồn xung nhịp cho Timer

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 20

Crystal

Page 21: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Sự bấm giờ bên trong (Interval Timing)

Sự đếm các sự kiện (Event Counting)

1.4.3.Các chế độ timer và cờ tràn (timer modes and overflow).

AT89C51 có 2 Timer là Timer 0 và timer 1. Ta dùng ký hiệu TLx và THx để

chỉ 2 thanh ghi byte thấp và byte cao của Timer 0 hoặc Timer 1.

1.4.3.1.Mode Timer 13 bit (MODE 0):

Hình 1.7: Timer MODE 0

Mode 0 là mode Timer 13 bit, trong đó byte cao của Timer (THx) được đặt thấp

và 5 bit trọng số thấp nhất của byte thấp Timer (TLx) đặt cao để hợp thành Timer 13

bit. 3 bit cao của TLx không dùng.Khi thanh ghi được xóa về 0 thì cờ ngắt thời

gian TFx được thiêt lập. Bộ timer hoạt động khi bít điều khiểnTRx được thiết

lập(TRx=1)hoặc Gate trong TMOD bằng 0 hoặc /INTx =1.Nếu đặt GATE=1 thì cho

phép điều khiển Timer/Counter bằng đường vào ngoài/INTx để dễ dàng xác định độ

rộng xung.

Khi hoạt động ở chức năng thời gian thì bít C/(/T)=0, do vậy xung nhịp từ bộ

dao động xung nội qua bộ chia tần số f=fosc/12 được đưa vào để đếm trong

Khi các thanh ghi Timer/Counter hoạt động ở chức năng bộ đếm thì bit C/(/T)=1 lúc

đó xung nhịp ngoài đưa vào sẽ được đếm.

1.4.3.2. Mode Timer 16 bit (MODE 1):

Hình 1.8: Timer MODE 1

Mode 1 là mode Timer 16 bit, tương tự như mode 0 ngoại trừ Timer này hoạt động

như một Timer đầy đủ 16 bit, xung clock được dùng với sự kết hợp các thanh ghi cao

và thấp (TLx, THx). Khi xung clock được nhận vào, bộ đếm Timer tăng lên 0000H,

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 21

Page 22: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

0001H, 0002H, …, và một sự tràn sẽ xuất hiện khi có sự chuyển trên bộ đếm Timer từ

FFFFH sang 0000H và sẽ set cờ tràn Time, sau đó Timer đếm tiếp.

Cờ tràn là bit TFx trong thanh ghi TCON mà nó sẽ được đọc hoặc ghi bởi phần

mềm.

Bit có trọng số lớn nhất (MSB) của giá trị trong thanh ghi Timer là bit 7 của

THx và bit có trọng số thấp nhất (LSB) là bit 0 của TLx. Bit LSB đổi trạng thái ở tần

số clock vào được chia 216 = 65.536. Các thanh ghi Timer TLx và THx có thể được

đọc hoặc ghi tại bất kỳ thời điểm nào bởi phần mềm.

1.4.3.3.Mode tự động nạp 8 bit (MODE 2):

Hình 1.9: Timer MODE 2

Mode 2 là mode tự động nạp 8 bit, byte thấp TLx của Timer hoạt động như

một Timer 8 bit trong khi byte cao THx của Timer giữ giá trị Reload. Khi

bộ đếm tràn từ FFH sang 00H, không chỉ cờ tràn được set mà giá trị trong THx cũng

được nạp vào TLx: Bộ đếm được tiếp tục từ giá trị này lên đến sự chuyển trạng thái từ

FFH sang 00H kế tiếp và cứ thế tiếp tục. Mode này thì phù hợp bởi vì các sự tràn xuất

hiện cụ thể mà mỗi lúc nghỉ thanh ghi TMOD và THx được khởi động.

1.4.3.4.Mode Timer tách ra (MODE 3):

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 22

Page 23: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Hình 1.10: Timer MODE 3

Mode 3 là mode Timer tách ra và là sự khác biệt cho mỗi Timer.

Timer 1ở mode 3 chỉ chứa chúc năng đếm của nó, kết quả giống khi đặt TR1=0.Timer

0 ở chế đọ 3 được thiết lập TH0,TL0 như là 2 bộ đếm riêng biệt. Mạch Logic đối với

chế độ 3 của Timer 0 thể hiện. Bộ đếm TL0 được điều khiển bởi các

bít :C/(/T),GATE,TR0,/INT0 và khi đếm tràn thì nó thiết lập cờ

ngắt TF0.Bộ đếm TH0 chỉ được điều khiển boiwr bít TR1, và khi đếm tràn thì nó thiêt

lập cờ ngắt TF1. Vaawyj TH0 điều khiển ngăt Timer/Counter 1.

Mode 3 cung cấp 1 Timer ngoại 8 bit là Timer thứ ba của AT89C51. Khi vào Timer

0 ở mode 3, Timer có thể hoạt động hoặc tắt bởi sự ngắt nó ra ngoài và vào trong mode

của chính nó hoặc có thể được dùng bởi Port nối tiếp như là một máy phát tốc độ

Baud, hoặc nó có thể dùng trong hướng nào đó mà không sử dụng Interrupt.

1.5.HOẠT ĐỘNG PORT NỐI TIẾP

1.5.1.Giới thiệu

Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến port nối

tiếp là: SBUF và SCON. Bộ đệm port nối tiếp (SBUF) ở điạ chỉ 99H nhận dữ liệu để

nhận hoặc truyền. Thanh ghi điều khiển port nối tiếp (SCON) ở điạ chỉ 98H là thanh

ghi có điạ chỉ bit chứa các bit trạng thái và các bit điều khiển.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 23

Page 24: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Các bit điều khiển đặt chế độ hoạt động cho port nối tiếp, và các bit trạng thái

Báo cáo kết thúc việc truyền hoặc nhận ký tự. Các bit trạng thái có thể được kiểm tra

bằng phần mềm hoặc có thể lập trình để tạo ngắt.

Hình 1.11: PORT nối tiếp

1.5.2.Các thanh ghi và các chế độ hoạt động của port nối tiếp:

1.5.2.1.Thanh ghi điều khiển port nối tiếp:

Chế độ hoạt động của port nối tiếp được đặt bằng cách ghi vào thanh ghi chế độ port

nối tiếp (SCON) ở địa chỉ 98H .Sau đây các bản tóm tắt thanh ghi SCON và các chế

độ của port nối tiếp:

SM0 SM1 SM2 REN TB8 RB8 TI RI

Bảng 1.10: Thanh ghi SCON

* SM0 ,SM1 là các bit cho phép chọn chế độ cho cổng truyền nối tiếp.

SM0 SM1 Mode Đặc Điểm Tốc độ baud

0

0

1

0

1

0

0

1

2

Thanh ghi dịch

UART 8 bit

UART 9 bit

Cố định (Fosc /12 )

Thay đổi ( đặt bằng timer )

Cố định (Fosc /12 hoặc

Fosc/64 )

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 24

Page 25: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

1 1 3 UART 9 bit Thay đổi ( đặt bằng timer )

Bảng 1.11: Bits chọn MODE cho PORT nối tiếp

*SM2: Cho phép truyền tin đa xử lý thể hiện ỏe Mode 2 và 3 , ở chế độ 2 hoặc 3 nếu

đặt SM2=1 thì RI sẽ không được kích hoạt nếu bít dữ liệu thứ 9 nhận bằng 0 ở Mode

1, nếu SM2=1 thì RI sẽ không được kích hoạt nếu bít dừng có hiệu lực đã không được

nhận ở chế độ 0, Sm2 nên bằng 0.

*REN: Cho phép nhận nối tiếp được đặt hoặc xóa bởi phần mềm để cho hép hoặc

không cho phép nhận.

*TB8 : Là bit dữ liệu thư 9 mà sẽ được truyền ỏ Mode 2 và 3, được đặt hoawcj xóa bởi

phần mềm.

*RB8 : Là bit dữ liệu thứ 9 đã được nhận ở mode 2 và 3 . Ở Mode 1, nếu SM2=0 thi

RB8 là bit dừng đã được nhận.Ở Mode 0 , RB8 không được sử dụng.

*TI : Cờ ngắt truyền được đặ bởi phần cứng tại cuối thời điểm của bit thứ 8 trong

Mode 0, hoặc đầu thời điểm của bit dừng trong các Mode khác .Ở bất kỳ quá trình

truyền nói tiếp nào nó cũng phải được xóa bằng phần mềm.

*RI: Cờ ngắt nhận được đặt bởi phần cứng tại cuối thời điểm của bit thứ 8 trong

Mode 0 hoặc giữa thời điểm của bit dừng trong các Mode khác. Ở khác .Ở bất kỳ quá

trình nhận nối tiếp nào( trừ trường hợp ngoại lệ ,xem SM2), nó cũng phải được xóa

bằng phần mềm.

1.5.2.2.Chế độ 0 (Thanh ghi dịch đơn 8 bit) :

Chế độ 0 được chọn bằng các thanh ghi các bit 0 vào SM1 và SM2 của SCON,

đưa port nối tiếp vào chế độ thanh ghi dịch 8bit. Dữ liệu nối tiếp vào và ra qua RXD

và TXD xuất xung nhịp dịch, 8 bit được truyền hoặc nhận với bit đầu tiên là LSB. Tốc

độ baud cố định ở 1/12 tần số dao động trên chip.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 25

Page 26: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Việc truyền đi được khởi động bằng bất cứ lệnh nào ghi dữ liệu vào SBUF. Dữ

liệu dịch ra ngoài trên đường RXD (P3.0) với các xung nhịp được gửi ra đường TXD

(P3.1). Mỗi bit truyền đi hợp lệ (trên RXD) trong một chu kỳ máy, tín hiệu xung nhập

xuống thấp ở S3P1 và trở về cao ở S6P1.

Hình 1.12: Giản đồ thời gian Port nối tiếp truyền ở chế độ 0

Việc nhận được khởi động khi cho phép bộ nhận (REN) 1 là và bit ngắt nhận

(RI) là 0. Quy tắc tổng quát là đặt REN khi bắt đầu chương trình để khởi động port nối

tiếp, rồi xoá RI để bắt đầu nhận dữ liệu. Khi RI bị xoá, các xung nhịp được đưa ra

đường TXD, bắt đầu chu kỳ máy kế tiếp và dữ liệu theo xung nhịp ở đường RXD. Lấy

xung nhịp cho dữ liệu vào port nối tiếp xảy ra ở cạnh đường của TXD.

Một chu kỳ máy

Data out

Shift clock

Hình 1.13: Giản đồ thời gian truyền nối tiếp ở chế độ 0

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 26

Page 27: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

1.5.2.3. Chế độ 1 (UART 8 bit với tốc độ baud thay đổi được):

Ở chế độ 1, port nối tiếp của AT89C51 làm việc như một UART 8 bit với tốc

độ baud thay đổi được. Một UART (Bộ nhận truyền đồng bộ vạn năng) là một dụng cụ

nhận truyền dữ liệu nối tiếp với mỗi ký tự dữ liệu đi trước là bit start ở mức thấp và

theo sau bit stop ở mức cao. Đôi khi xen thêm bit kiểm tra chẵn lẻ giữa bit dữ liệu cuối

cùng và bit stop. Hoạt động chủ yếu của UART là chuyển đổi song song sang nối tiếp

với dữ liệu nhập.

Ở chế độ 1, 10 bit được truyền trên TXD hoặc nhận trên RXD. Những bit đó là:

1 bit start (luôn luôn là 0), 8 bit dữ liệu (LSB đầu tiên) và 1 bit stop (luôn luôn là 1).

Với hoạt động nhận, bit stop được đưa vào RB8 trong SCON. Trong AT89C51 chế độ

baud được đặt bằng tốc độ báo tràn của timer1.

Tạo xung nhịp và đồng bộ hóa các thanh ghi dịch của port nối tiếp trong các

chế độ 1,2 và 3 được thiết lập bằng bộ đếm 4 bit chia cho 16, đầu ra là xung nhịp tốc

độ baud. Đầu vào của bộ đếm này được chọn qua phần mềm.

Hình 1.14: UART 8 bits chế độ 1

1.5.2.4. UART 9 bit với tốc độ baud cố định (chế độ 2):

Khi SM1 = 1 và SM0 = 0, cổng nối tiếp làm việc ở chế độ 2, như một UART

9bit có tốc độ baud cố định, 11 bit sẽ được truyền hoặc nhận:1bit start, 8 bit data, 1 bit

data thứ 9 có thể được lập trình và 1 bit stop. Khi truyền bit thứ 9 là bất cứ gì đã được

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 27

Page 28: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

đưa vào TB8 trong SCON (có thể là bit Parity) .Khi nhận bit thứ 9 nhận được sẽ ở

trong RB8. Tốc độ baud ở chế độ 2 là 1/32 hoặc 1/16 tần số dao động trên chip.

1.5.2.5. UART 9 bit với tốc độ baud thay đổi được (chế độ 3):

Chế độ này giống như ở chế độ 2 ngoại trừ tốc độ baud có thể lập trình được và

được cung cấp bởi Timer.Thật ra các chế độ 1, 2, 3 rất giống nhau. Cái khác biệt là ở

tốc độ baud (cố định trong chế độ 2, thay đổi trong chế độ 1 và 3) và ở số bit data (8

bit trong chế độ 1,9 trong chế độ 2 và 3).

1.5.2.6. Khởi động và truy xuất các thanh ghi cổng nối tiếp:

Cho Phép Nhận

Bit cho phép bộ nhận (REN=Receiver Enable) Trong SCON phải được đặt lên 1bằng

phần mềm để cho phép nhận các ký tự thông thường thực hiện việc này ở đầu chương

trình khi khởi động cổng nối tiếp, timer …

Bit dữ liệu thứ 9:

Bit dữ liệu thứ 9 cần truyền trong các chế độ 2 và 3 phải được nạp vào trong

TB8 bằng phần mềm. Bit dữ liệu thứ 9 nhận được đặt ở RB8. Phần mềm

có thể cần hoặc không cần bit dữ liệu thứ 9, phụ thuộc vào đặc tính kỹ thuật của thiết

bị nối tiếp sử dụng (bit dữ liệu thứ 9 cũng đóng vai trò quan trọng trong truyền thông

đa xử lý )

Thêm 1 bit parity:

Thường sử dụng bit dữ liệu thứ 9 để thêm parity vào ký tự. Như đã nhận xét ở

chương trước, bit P trong từ trạng thái chương trình (PSW) được đặt lên 1 hoặc bị xoá

bởi chu kỳ máy để thiết lập kiểm tra chẳn với 8 bit trong thanh tích lũy.

Các cờ ngắt:

Hai cờ ngắt nhận và truyền (RI và TI) trong SCON đóng một vai trò quan trọng

trong truyền thông nối tiếp dùng AT89C51/8051. Cả hai bit được đặt lên 1 bằng phần

cứng, nhưng phải được xoá bằng phần mềm.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 28

Page 29: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

1.5.2.7. Tốc độ baud port nối tiếp

Như đã nói, tốc độ baud cố định ở các chế độ 0 và 2. Trong chế độ 0 nó luôn

luôn là tần số dao động trên chip được chia cho 12. Thông thường thạch anh ấn định

tần số dao động trên chip nhưng cũng có thể sử dụng nguồn xung nhịp khác.

Hình 1.15: Các nguồn tạo xung nhịp cho port nối tiếp

Vì PCON không được định địa chỉ theo bit, nên để đặt bit SMOD lên 1 cần

phải theo các lệnh sau:

MOV A,PCON ; lấy giá trị hiện thời của PCON vào A

SETB ACC.7 ; đặt bit SMOD lên 1

MOV PCON,A ; Chuyển dữ liệu trongA vào PCON

Các tốc độ baud trong các chế độ 1 và 3 được xác định bằng tốc độ tràn của

timer 1. Vì timer hoạt động ở tần số tương đối cao, tràn timer được chia thêm cho 32

(hoặc 16 nếu SMOD =1) trước khi cung cấp tốc độ xung nhịp cho port nối tiếp.

1.5.3. Tổ chức ngắt trong 8051

1.5.3.1.Phép và Không Cho Phép Ngắt

Mỗi nguồn ngắt được cho phép hoặc không cho phép thông qua thanh ghi chức

năng đặc biệt có các bit được địa chỉ hóa IE (Interrupt Enable) tại địa chỉ 0A8H.

BIT SYMBOL BIT ADDRESSDESCRIPTION

(1:ENABLE,0:DISABLE)

IE.7 EA AFH Global Enable/Disable

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 29

Page 30: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

IE.6

IE.5

IE.4

IE.3

IE.2

IE.1

IE.0

EA

ET2

ES

ET1

EX1

ET0

EX0

AEH

ADH

ACH

ABH

AAH

A9H

A8H

Undefined

Enable Timer 2 Interrupt (8052)

Enable Serial Port Interrupt

Enable Timer 1 Interrupt

Enable External 1 Interrupt

Enable Timer 0 Interrupt

Enable External 0 Interrupt

Bảng 1.12: Thanh ghi IE

Ưu tiên ngắt.

Mỗi nguồn ngắt đuợc lập trình riêng vào một trong hai mức ưu tiên qua thanh ghi chức

năng đặc biệt được địa chỉ bit IP (Interrupt priority: ưu tiên ngắt) ở địa chỉ B8H.

*EA: Nếu EA=0 , không cho phép bất cứ ngắt nào hoạt động.

*Nếu EA=1 mỗi nguồn ngắt riêng biệt sẽ phụ thuộc vf bit cho phép ngắt tương ứng.

* _: Không dùng.

* ET2: Bít cho phép hoặc không cho phép ngắt bộ Timer 2.

*ES: Bít cho phép hoặc không cho phép ngắt cổng nối tiếp(SPI và UART)

*ET1: Bit cho phép hoặc không cho phép ngắt tràn bộ Timer 1.

*EX1: Bit cho phép hoặc không cho phép ngắt ngoài 1.

*ET0: Bit cho phép hoặc không cho phép ngắt tràn bộ Timer 0.

*EX0: bit cho phép hoặc không cho phép ngắt ngoài 0.

Bit Ký hiệu Địa chỉ bit Mô tả (1=mức cao hơn,0=mức thấp)

IP.7

IP.6

IP.5

IP.4

IP.3

PT2

PS

PT1

BDH

BCH

BBH

Không được định nghĩa

Không được định nghĩa

Ưu tiên cho ngắt từ timer 2 (8052)

Ưu tiên cho ngắt Port nối tiếp

Ưu tiên cho ngắt từ timer 1

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 30

Page 31: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

IP.2

IP.1

IP.0

PX1

PT0

PX0

BAH

B9H

B8H

Ưu tiên cho ngắt ngoài 1

Ưu tiên cho ngắt từ timer 0

Ưu tiên cho ngắt ngoài 0

Bảng 1.13: Tóm tắt thanh ghi IP.

Các ngắt ưu tiên được xóa sau khi reset hệ thống để đặt tất cả các ngắt ở mức ưu tiên

thấp hơn.

1.5.3.2.Xử lý ngắt.

Khi có một ngắt xảy ra và được CPU chấp nhận, chương trình chính bị ngắt

quãng. Những hoạt động sau xảy ra:

Thi hành hoàn chỉnh lệnh đang hiện hành.

Các DC vào ngắt xếp.

Trạng thái ngắt hiện hành được cất bên trong.

Các ngắt được chặn tại mức của ngắt.

Nạp vào DC địa chỉ Vector của ISR.

ISR thực thi.

ISR thực thi và đáp ứng ngắt. ISR hoàn tất bằng lệnh RETI. Điều này làm

lấy lại giá trị cũ của PC từ ngăn xếp và lấy lại trạng thái ngắt cũ. Chương

trình lại tiếp tục thi hành tại nơi mà nó dừng.

1.5.3.3.Véctơ Ngắt

Khi ngắt được chấp nhận giá trị được đưa vào PC (Program Counter) gọi là

vector ngắt (Interrupt Vector)

INTERRUPT FLAG VECTOR ADDRESS

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 31

Page 32: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

System Reset

External 0

Timer 0

External 1

Timer 1

Serial Port

Timer 2

RST

IE0

TF0

IE1

TF1

RI OR TI

TF2 OR EXF2

0000 H

0003 H

000B H

0013 H

001B H

0023 H

002B H

Bảng 1.14: Vector ngắt

1.5.3.4.Các ngắt của 8051.

a.Các ngắt timer.

Các ngắt timer có địa chỉ Vector ngắt là 000BH (timer 0) và 001BH (timer 1).

Ngắt timer xẩy ra khi các thanh ghi timer (TLx ITHx) tràn và set cờ báo tràn

(TFx) lên 1. Các cờ timer (TFx) không bị xóa bằng phần mềm. Khi cho phép các ngắt,

TFx tự động bị xóa bằng phần cứng khi CPU chuyển đến ngắt.

b.Các ngắt cổng nối tiếp.

Ngắt cổng nối tiếp xẩy ra khi hoặc cờ truyền (TI) hoặc cờ ngắt nhận (RI) được đặt

lên 1. Ngắt truyền xẩy ra khi một ký tự đã được nhận xong và đang đợi trong SBUP để

được đọc.

Các ngắt cổng nối tiếp khác với các ngắt timer. Cờ gây ra ngắt cổng nối tiếp

không bị xóa bằng phần cứng khi CPU chuyển tới ngắt. Do có hai nguồn ngắt cổng nối

tiếp TI và RI. Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽ được

xóa bằng phần mềm. Các ngắt timer cờ ngắt được xóa bằng phần cứng khi CPU hướng

tới ISR.

c.Các ngắt ngoài.

Các ngắt ngoài xẩy ra khi có một mức thấp hoặc cạnh xuống trên chân INT0

hoặc INT1 của vi điều khiển. Đây là chức năng chuyển đổi của các bit Port 3.(Port 3.2

và Port 3.3).

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 32

Page 33: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Các cờ tạo ngắt này là các bit IE0 vá IE1 trong TCON. Khi quyền điều khiển đã

chuyển đến ISR, cờ tạo ra ngắt chỉ được xóa nếu ngắt được tích cực bằng cạnh xuống.

Nếu ngắt được tích cực theo mức, thì nguồn yêu cầu ngắt bên ngoài sẽ điều khiển mức

của cờ thay cho phần cứng.

Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống được lập trình qua

các bit IT0 và IT1 trong TCON. Nếu IT1 = 0, ngắt ngoài 1 được tác động bằng múc

thấp ở chân IT1. Nếu IT1 = 1 ngắt ngoài 1 sẽ được tác động bằng cạnh xuống. trong

chế độ này, nếu các mẫu liên tiếp trên chân INT1 chỉ mức cao trong một chu kỳ và chỉ

mức thấp trong chu kỳ kế, cờ yêu cầu ngắt IE1 trong TCON được đặt lên 1, rồi bit IE

yêu cầu ngắt.

Nếu ngắt ngoài được tác động bằng cạnh xuống thì nguồn bên ngoài phải giữ

chân tác động ở mức cao tối thiểu một chu kỳ và giữ nó ở mức thấp thêm

một chu kỳ nữa để đảm bảo phát hiện được cạnh xuống. Nếu ngắt ngoài được

tác động theo mức thì nguồn bên ngoài phải giữ tín hiệu yêu cầu tác động cho đến khi

ngắt được yêu cầu được thật sự tạo ra và không tác động yêu cầu ngắt trước khi ISR

được hoàn tất . Nếu không một ngắt khác sẽ được lặp lại.

1.6. TÓM TẮT TẬP LỆNH CỦA 89C51

Các chương trình được cấu tạo từ nhiều lệnh, chúng được xây dựng logic, sự nối tiếp

của các lệnh được nghĩ ra một cách hiệu quả và nhanh.

Tập lệnh họ MSC – 51 được sự kiểm tra của các mode định vị và các lệnh của chúng

có các Opcode 8 bit. Điều này cung cấp khả năng 2 = 256 lệnh được thi hành. Vài lệnh

có 1 hoặc 2 byte bởi dữ liệu hoặc địa chỉ thêm vào Opcode. Trong toàn bộ các lệnh có

139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte.

1.6.1. Các chế độ định vị địa chỉ (addressing mode):

Các mode định vị là một bộ phận thống nhất của tập lệnh. Chúng cho phép định rõ

nguồn hoặc nơi gởi tới của dữ liệu ở các đường khác nhau tùy thuộc vào trạng thái của

người lập trình. 89c51 có 8 mode định vị được dùng như sau:

√ Thanh ghi.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 33

Page 34: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

√Trực tiếp

√ Gián tiếp.

√ Tức thời.

√ Tương đối.

√ Tuyệt đối.

√ Dài.

√ Định vị.

1.6.2. Tóm tắt tập lệnh của họ MCS – 51:

a. Nhóm lệnh chuyển dữ liệu

Lệnh Mô tả

MOV A, Rn (A) ← (Rn)

MOV A, @Ri (A) ← ((Ri))

MOV A, # data (A) ← #data

MOV Rn, A (Rn) ← (A)

MOV Rn, #data (Rn) ← #data

MOV direct, Rn (direct) ← (Rn)

MOV direct, @Ri (direct) ← ((Ri))

MOV direct, #data (direct) ← #data

MOV @Ri, A ((Ri)) ← (A)

MOV @ Ri, direct ((Ri)) ← (direct)

MOV @Ri, #data ((Ri)) ← (data)

MOVX @ Ri, A ((Ri)) ← (A)

MOVX @ dptr, A ((dptr) ← (A)

PUSH direct (SP)←(SP)+1

((SP)) ← (direct)

POP direct (direct)←((SP))

(SP) ← (SP) – 1

XCH A, Rn (direct) ↔ (Rn)

XCH A, direct (A) ↔ (direct)

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 34

Page 35: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

XCHA, @Ri (A) ↔ ((Ri))

XCHD A, @Ri A3 – 0) ↔ ((Ri3 – 0))

b. Nhóm lệnh toán học:

Lệnh Mô tả

ADD A, Rn (A) ← (A) + (Rn)

ADD A, direct (A) ← (A) + (direct)

ADD A, @Ri (A) ← (A) + ((Ri))

ADD A, #data (A) ← (A) + #data

SUBB A, Rn (A) ← (A) – (Rn) – (C)

SUBB A, direct (A) ← (A) – (direct) – (C)

SUBB A, @i (A) ← (A) – ((Ri)) – (C)

SUBB A, #data (A) ← (A) - #data – (C)

INC A (A) ← (A) + 1

INC Rn (Rn) ← (Rn) + 1

INC direct (direct) ← (direct) +1

((Ri)) ← ((Ri)) + 1

INC dptr (dptr) ← (dptr) +1

DEC A (A) ← (A) – 1

DEC Rn (Rn) ← (Rn) – 1

DEC direct (direct) ← (direct) - 1

DEC @Ri ((Ri)) ← ((Ri)) – 1

MUL AB (B15 – 8), (A7 – 0) ← (A) x (B)

DIV AB (A15 – 8), (B7 – 0) ← (A) / (B)

DA A Content of A là BCD

c. Nhóm lệnh logic:

Lệnh Mô tả

ANL A, Rn (A) ← (A) AND (Rn)

ANL A, direct (A) ← (A) AND (direct)

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 35

Page 36: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

ANL A, @ Ri (A) ← (A) AND ((Ri))

ANL A, #data (A) ← (A) AND #data

ANL direct, A (direct) ← (direct) and (A)

ANL direct, #data (direct) ← (direct) and #data

ORL A, Rn (A) ← (A) OR (Rn)

ORL A, direct (A) ← (A) OR (direct)

ORL A, @Ri (A) ← (A) OR ((Ri))

ORL A, #data (A) ← (A) OR #data

ORL direct, A (direct) ← (direct) OR (A)

ORL direct, #data (direct) ← (direct) OR #data

XRL A, Rn (A) ← (A) XOR (Rn)

XRL A, direct (A) ← (A) XOR (direct)

XRL A, @Ri (A) ← (A) XOR ((Ri))

XRL direct, A (direct) ← (direct) XOR (A)

CLR A (A) ← 0

CPL A (A) ← (-A)

SWAP A (A3 – 0) ↔ (A7 – 4)

d. Nhóm lệnh chuyển điều khiển:

Lệnh Mô tả

LJMP addr 16 (PC) ← addr15 – 0

SJMP rel (PC) ← (PC) + 2

(PC) ← (PC) + rel

JMP @ A + dptr (PC) ← (A) + (dptr)

JZ rel (PC) ← (PC) + 2

IF (A) = 0 then

(PC) ← (PC) + rel

JNZ rel (PC) ← (PC) + 2

IF (A) ≠ 0 then

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 36

Page 37: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

(PC) ← (PC) + rel

JC rel (PC) ← (PC) + 2

IF (C) = 0 then

(PC) ← (PC) + rel

JNC rel

(PC) ← (PC) + 2

IF (C) ≠ 0 then

(PC) ← (PC) + rel

JB bit, rel (PC) ← (PC) + 3

IF (bit) = 0 then

(PC) ← (PC) + rel

JNB bit, rel (PC) ← (PC) + 3

IF (bit) ≠ 0 then

(PC) ← (PC) + rel

JBC bit, rel (PC) ← (PC) + 3

IF (bit) = 0 then (bit) ← 0

(PC) ← (PC) + rel

CJNE A, direct, rel (PC) ← (PC) + 3

IF (direct) < (A) then

(C) ← 0 and

(PC) ← (PC) + rel

IF (direct) > (A) then

(C) ← 1 and

(PC) ← (PC) + rel

CJNE A, #data, rel (PC) ← (PC) + 3

IF #data > (A) then

(C) ← 0 and

(PC) ← (PC) + rel

IF #data > (A) then

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 37

Page 38: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

(C) ← 1 and

(PC) ← (PC) + rel

DJNZ Rn, rel (PC) ← (PC) + 2

(Rn) ← (Rn) – 1

IF ((Ri)) ≠ 0 then

(PC) ← (PC) + rel

DJNZ direct, rel (PC) ← (PC) + 3

(direct) ← (direct) – 1

IF (direct) ≠ 0 then

(PC) ← (PC) + rel

NOP (PC) ← (PC) + 1

e. Nhóm lệnh xử lý bit:

Lệnh Mô tả

CLR C (C) ← 0

CLR bit (bit) ← 0

SETB C (C) ← 1

SETB bit (bit) ← 1

CPL C (C) ← (-C)

CPL bit (bit) ← (bit)

ANL C, bit (C) ← (C) AND (bit)

ANL C, / bit (bit) ← (C) AND (bit)

ORL C, bit (C) ← (C) OR (bit)

ORL C, / bit (bit) ← (C) OR (bit)

MOV C, bit (C) ← (bit)

MOV bit, C (bit) ← (C)

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 38

Page 39: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

1.7.LẬP TRÌNH FLASH AT89C51

AT89C51 bình thường được cung cấp dải nhớ Flash ở trạng thái đã được xóa

(Nghĩa là toàn bộ nội dung của các byte là FFH) và sẵn sàng được lập trình. Mạch giao

tiếp lập trình cho 2 tín hiệu cho phép lập trình hight-voltage (Vpp = 12V) hoặc low-

voltage (Vcc = 5V). Chế độ lập trình điện áp thấp cung cấp một phương tiện lập trình

thích hợp cho AT89C51 bên trong hệ thống của người sử dụng trong khi đó chế độ lập

trình điện áp cao tương thích với các thiết bị lập trình cho Flash và EPROM.

AT89C51 được cung cấp với hai chế độ lập trình . Tương ứng là nhãn hiệu (Top-side

mark) và chữ ký (Signature) được liệt kê trong bảng sau:

Vpp = 12V Vpp = 5V

Top-side Mark AT89C51

xxxx

yyww

AT89C51

xxxx-5

Yyww

Signature (030H)=1EH

(031H)=51H

(032H)=FFH

(030H)=1EH

(031H)=51H

(032H)=05H

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 39

Page 40: thuyết minh đồ án

Trường Đại Học SPKT Hưng Yên Đồ Án Môn Học Khoa :Điện – Điện Tử Lớp ĐTK39

Dải nhớ chương trình được lập trình một byte – by - byte. Mỗi khi dải này đã được lập

trình, để lập trình lại bất kỳ byte nào không trống, toàn bộ dải nhớ cần được xóa sử

dụng chế độ Earse Mode.

- Program verify (kiểm tra chương trình)

- Chip earse (Xóa chip)

- Reading the Signature Bytes

- Programming Algorithm (Giải thuật lập trình)

- Ready/Busy

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 40

Page 41: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Phần II:

THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG CỦA BỘ KIT

Chương I: THIẾT KẾ BỘ KIT VI ĐIỀU KHIỂN

1.1. MỤC ĐÍCH VÀ YÊU CẦU CỦA BỘ KIT

1.1.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, Điện tử, Tin học,Tự động hóa vv…. 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 nghành và tiếp cận dễ dàng hợn với những kỹ thuật, trang

thiết bị hiện đạ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 với sinh viên

chuyên nghành tự động hóa, điện tử, đo lường…Các Kit vi điều khiển đều được thiết

kế dựa trên các họ vi điều khiển mà sinh viên đang học trong trường. 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

http://www.mikroelektronika.co.yu/), hay một hãng nổi tiếng khác là OLIMEX

(Website http://www.olimex.com) với các sản phẩm

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 41

Page 42: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

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 (khoảng 700$ MDA-EMS51,

và việc đặt mua không 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, các thiết bị thực hành môn học vi điều khiển có thể do các

giáo viên giảng dạy môn học chế tạo 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 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 trường Đại học SPKT Hưng Yên 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ựng một bộ KIT vi

điều khiển với đầy đủ các thành phần cơ bản, là vấn đề hết sức cần thiết đối với các

nghành điện tử, tự động hóa trong trường Đại học SPKT Hưng Yên. Đây là vấn đề

trọng tâm trong quyển đồ án này.

1.1.2. Yêu cầu thiết kế KIT vi điều khiển phục vụ thí nghiệm

1.1.2.1.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 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ó phân thành các modul nhỏ và liên kết với modul trung tâm bằng cáp mềm , đ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 modul nhỏ cũng tiện cho

việc sửa chữa, thiết kế mở rộng, và có thể dễ dàng trọng việc thương mại hóa sản

phẩm này.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 42

Page 43: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

1.1.2.2.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 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.

1. Module mạch nạp

2. Module led ma trận

3. Module led đơn

4. Module led 7 thanh

5. Module hiển thị LCD

6. Module điều khiển động cơ một chiều

7. Module động cơ bước

1.1.2.3.Các bài thí nghiệm thực hành 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, nạp chương trình và chạy 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 LED 7 SEG, Matrix LED8x8, điều khiển

động cơ v.v…

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…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.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 43

Page 44: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

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 của riêng mình.

Công cụ lập trình:

Bằng máy tính PC: Có thể sử dụng ngôn ngữ ASM với trình biên dịch hợp ngữ

sẵn có như: Keil, Reads51, Ride, Prog-Studio,v.v… để lập trình các

chương trình cho bộ KIT từ máy tính bằng ngôn ngữ C, ASM , sau đó biên dịch thành

file dạng Hex rồi nạp xuống cho bộ KIT để thực hiện các chương trình đó.

1.2. CHỌN PHƯƠNG ÁN THIẾT KẾ.

Họ vi điều khiển mà bộ KIT chọn làm thành phần trung tâm là họ 8051, vì

những lí do sau :

- Họ 8051 là họ vi điều khiển phổ biến nhất hiện nay, được sử dụng rất rộng

rãi trong các ứng dụng công nghiệp cũng như trong việc chế tạo các sản phẩm dân

dụng.

- Họ 8051 đã và đang là môn học được nằm trong chương trình đào tạo của

các trường trung học, cao đẳng và đại học trong cả nước, đây còn là một đối tượng cụ

thể cho sinh viên khi bắt đầu nhập môn vi điều khiển. Vì vậy, việc chọn họ 8051 làm

thành phần trung tâm của bộ KIT là phù hợp với chương trình đào tạo và điều kiện học

tập của sinh viên.

Vì những lí do trên, và xuất phát từ mục đích, yêu cầu của đồ án là thiết kế một bộ

KIT vi điều khiển phục vụ mục đích đào tạo môn học này, ta quyết định chọn phương

án sử dụng chip vi điều khiển AT89Cxx của hãng ATMEL để làm thành phần trung

tâm của KIT, cùng với các thành phần bộ nhớ ROM/RAM bên ngoài và các thiết bị

ngoại vi phong phú.Chip vi điều khiển AT89Cxx là một bộ vi điều khiển cũng thuộc

họ 8051, do đó nó có tất cả những đặc trưng cơ bản của họ này.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 44

Page 45: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

1.3. XÂY DỰNG SƠ ĐỒ KHỐI CỦA KIT.

Hình 1.1: Sơ đồ khối của bộ KIT vi điều khiển

Trong sơ đồ khối của bộ KIT như trên chức năng của các khối như sau:

Modul nguồn: Cung cấp nguồn cho tất cả các khối trong mạch.

Module BOARD chủ: Đây là module trung tâm của hệ thống. Nó bao gồm

chip vi điều khiển AT89C51, gồm các cổng giao tiếp mở rộng. Khối này

làm nhiệm vụ trung tâm điều hành hoạt động của cả bộ KIT.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 45

Mô đulMa trận led 8x8

Mô đul nguồn

Mô đul DC

Motor

Mô đul chủAT89C51

Mô đulLCD

Mô đul Led 7 Thanh

Mô đul Led Đơn

Mô đul Động cơ

bước

Mô đul Mạch Nạp

Page 46: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Module hiển thị LCD: Màn hình tinh thể lỏng 16x2 (16 ký tự và 2 dòng). Cho

phép hiển thị các thông số cần thiết của các ứng dụng. Hiển thị mã ASCII. LCD tạo ra

sự tiện lợi, thân thiện cho người sử dụng trong làm quen cũng như thí nghiệm trên

KIT.

Module ĐK Động cơ 1 chiều: Là module dùng Tip41 và các transitor điều

khiển động cơ một chiều. Sử dụng cách ly PC817 để cách ly tín hiệu điều khiển.

Module động cơ bước : Là module dùng Tip41 và các transitor điều khiển

động cơ bước. Sử dụng cách ly PC817 để cách ly tín hiệu điều khiển.

Module ma trận LED: Là một ma trận LED gồm 8hàng x 8 cột.

Module LED đơn :gồm 32 LED đơn được bố trí điều khiển trực tiếp từ 4 cổng

của vi điều khiển..

Module LED 7 thanh: là module sử dụng 8 LED 7 thanh hiển thị mã BCD.

1.4. THIẾT KẾ VÀ LỰA CHỌN LINH KIỆN TỪNG MODULE.

1.4.1. Module xử lý trung tâm KIT (Board chủ).

1.4.1.1 Chức năng:

Đây là module tiếp nhận và xử lí mọi thông tin liên quan đến hoạt động của

KIT. Khối xử lí trung tâm làm việc không ngừng trong suốt thời gian làm việc do đó

độ bền bỉ và khả năng xử lí nhanh chóng linh hoạt với mọi tình huống phụ thuộc vào

phẩm chất linh kiện mà chúng ta sử dụng cũng như nguồn cung cấp cho hệ thống.

Chính và vậy chọn bộ xử lí trung tâm làm đối tượng đầu tiên để ta thiết kế không

ngoài lý do trên, nó sẽ quyết định cho khả năng hoạt động cho hệ thống của chúng ta.

1.4.1.2. Yêu cầu chọn linh kiện, tính toán:

a) Yêu cầu chọn linh kiện.

- Có nền tảng cơ bản của một hệ thống vi điều khiển.

- Khả năng ưu việt so với hệ thống số.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 46

Page 47: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

- Dễ sử dụng cũng như thiết kế các ứng dụng.

- Có tài liệu liên quan.

- Không yêu cầu cao trong thiết kế phần cứng.

- Mua được trên thị trường Việt Nam.

b) Tính toán thiết kế.

Việc chọn IC trung tâm là họ 8051 và sử dụng loại IC AT89Cxx làm khối xử lí

trung tâm là theo yêu cầu và mục đích của đề tài.

Ở đây ta sử dụng Socket thay cho việc hàn cứng IC lên KIT. Để tiện cho việc

thay đổi IC hay thay đổi chương trình ứng dụng, tránh làm hư hại IC.

Vi điều khiển AT89Cxx với thị trường Hà Nội, và cả khu vực miền Bắc nói

chung ta chọn AT89Cxx là chip dễ dàng mua được, bộ nhớ 4Kbyte đủ cho các ứng

dụng trong lĩnh vực thí nghiệm và nghiên cứu trên KIT. AT89Cxx có 4K Flash ROM

làm bộ nhớ chương trình, 128 byte RAM, 32 đường vào ra số, 2 bộ định thời, cấu trúc

ngắt 2 mức ưu tiên và 5 nguồn ngắt. Vùng nhớ Flash

ROM có thể nạp và xóa 1000 lần. Vi điều khiển AT89Cxx hỗ trợ tần số làm

việc lên tới 24Mhz. Có chế độ Power Down để tiết kiệm điện năng của hệ thống tuy

nhiên vẫn duy trì nội dung của RAM nhưng không cho mạch dao động cấp xung vào

nhằm vô hiệu hóa các hoạt động khác cho chip cho .đến khi có Reset cứng tiếp theo.

Chế độ Idle hay còn gọi là chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các

bộ định thời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt động.

Từ Datasheet của nhà sản xuất Port0 của IC là hở collector. Vì vậy ta phải có

điện trở treo bên ngoài mới có thể sử dụng cho mục đích tải ngoài. Ở đây ta chọn điện

trở treo có giá trị trong khoảng từ 1K- 10K, ở giá trị này mạch sử dụng tiết kiệm năng

lượng nhất. Dòng qua các chân của IC cũng phù hợp khoảng 0,5mA.

Do thực nghiệm cho thấy khi IC chạy thực tế điện áp mức 1(mức cao) của IC

chỉ khoảng 2,5-3V như vậy với một số ứng dụng yêu cầu cao về mức tín hiệu thì điện

áp này không đủ. Vì vậy ta phải sử dụng IC đệm có chức năng nâng

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 47

Page 48: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

điện áp đầu ra mà không làm ảnh hưởng tới tín hiệu của IC. IC có chức năng đệm

được dùng phổ biến hiện nay đó là IC 74HC245N. Trong đề tài này chúng em dùng

đệm ở các cổng P1,P2 và P3,P4 của AT89Cxx

Hình 1.2: IC đệm 74HC245N

Như vậy chúng ta đều có chức năng đệm cũng như không dùng đệm. Giúp sinh

viên có thể thấy sự khác nhau này.

Cổng BUS giao tiếp với các Modul khác được sử dụng trong đề tài là các Jum

cắm 8 chân, dùng cáp mềm để nối rất thuận tiện cho việc thay đổi cổng và ứng dụng

của người dùng. Khi thiết kế chức năng của các cổng là tương tự nhau. Do cổng P3 có

thêm chức năng đặc biệt, hay tùy vào ứng dụng chúng ta dùng cổng cho phù hợp

Hình 1.3:Chân jum cắm đơn.

1.4.2. Module hiển thị LCD

1.4.2.1.Chức năng.

Trong những năm gần đây LCD đang ngày càng được sử dụng rộng rãi thay thế

dần cho các đèn LED, LED 7 đoạn,... Do khả năng hiển thị số, ký tự và đồ họa tốt hơn

những cách hiển thị khác, dễ dàng lập trình cho các ký tự đồ họa.

Vì vậy mà khối hiển thị LCD là một khối rất quan trọng trong bộ KIT này, nó

sẽ giúp thực hiện các bài luyện tập ghép nối LCD với 89C51 và lập trình hiển thị các

số, ký tự và đồ họa trên LCD một các dễ dàng và trực quan.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 48

Page 49: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

1.4.2.2.Phân tích yêu cầu lựa chọn linh kiện.

Với mục đích thực hành, thí nghiệm nên khối hiển thị LCD cần có những yêu

cầu sau:

- Kích thước nhỏ gọn.

- Dễ dàng ghép nối và quan sát,

- Đảm bảo việc thực hiện các bài luyện tập cho người sử dụng,

- Thiết kế, chế tạo dễ dàng, giá thành hạ.

1.4.2.3. Tính toán, thiết kế.

Các thông số của SD – DM1602A:

- Điện áp cung cấp: VDD = 4.5 ÷ 5.5V

- Điện áp điều khiển: V0 = VDD – 15.0V ÷ VDD + 0.3V

- Dòng điện: 2mA

- Điện áp đèn BL: 4.2V

- Dòng điện đèn BL: 185mA

- Công suất đèn BL: PBL = 777mW

Từ các thông số trên ta chọn nguồn cung cấp: VDD = 5V

Biến trở để thay đổi điện áp V0 điều chỉnh độ tương phản của màn hình hiển thị.

Hình 1.5: Sơ đồ nguyên lý mạch hiển thị LCD

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 49

Page 50: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Các chân DB0 đến DB7 được nối với 8 bit tương ứng Px.0 đến Px.7 của vi điều

khiển, chân RS , RW ,E nối với chân P2.2, P2.1, P2.0 của vi điều khiển qua cáp 8

1.4.3. Module LED đơn

1.4.3.1.Chức năng.

Hiển thị trạng thái logic tại các cổng. Hiển thị các ứng dụng đơn giản kết hợp

với các modul khác như trạng thái Run/Stop hoặc Left/Right. v.v…

1.4.3.2.Thiết kế và tính toán.

Không giống như Diode, LED sáng (Phân cực thuận) sẽ gây sụt áp trên nó vào

khoảng 1,7 ÷ 2,5V tùy màu LED. Và dòng định mức trong khoảng 10 ÷ 40 mA. Khi

đó ta có mạch điều khiển LED như sau.

Hình 1.6: Sơ đồ kết nối LED đơn

LED đơn được điều khiển trực tiếp từ vi điều khiển lên ta có IN giải điện áp là

0 đến 5v .Chọn dòng qua LED là 20 mA cho LED thật sáng và điện áp rơi trên LED là

2.8V.

Xét hình a: LED sáng khi mức logic tại đầu IN là mức logic 0. Nên giá trị điện

trở R1 là:

R1=5−2 .8

20 .10−3=390Ω

Suy ra chọn R1 = 390Ω.

Xét hình b: LED sáng khi mức logic tại đầu IN1 có mức logic1, ứng với điện áp

là 5V, nên giá trị điện trở R1 là:

R1=5−2,8

20 .10−3=390Ω

Suy ra chọn R1 = 390Ω.

Tuy nhiên khi thiết kế mạch như hình b thì phải đảm bảo dòng tại chân vào IN

phải đáp ứng được 20mA.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 50

Page 51: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Ta có các cách mắc nối LED như sau.

Hình 1.7: Các cách nối LED đơn

Ở cách 3 một đầu ra của Vi điều khiển không thể cho ra dòng lớn hơn 1mA do

vậy LED sáng rất mờ có thể không sáng.

Ở cách 2, sụt áp trên LED sẽ rất lớn 2V, 3V còn lại sẽ sụt áp trên Vi điều khiển,

gây tổn thất năng lượng lớn, hoặc LED sẽ bị cháy.

Ở cách 1, đây là cách tốt nhất, có điện trở hạn dòng. Trở được tính như sau sao

cho sụt áp trên nó khoảng từ 2V ÷ 2,5V và sụt áp trên Vi điều khiển 0,9V. Từ những

tính toán ở trên điện trở hạn dòng cho LED không nên dưới 100Ω (không LED sẽ

cháy).

Từ những phân tích và tính toán trên chúng em lựa chọn phương án 1 (Cách 1).

Với modul led đơn thì ta sẽ tính được công suất max mà mạch tiêu thụ là khi 32

led cùng sáng.

Với dòng trên mỗi Led là 20mA và điện áp nguồn là 5V

P = U.I = 5.32.15 = 2,4W

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 51

Page 52: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Hình 1.8: Sơ đồ nguyên lý LED đơn

1.4.4. Module ma trận LED.

1.4.4.1.Chức năng.

Hiển thị quang báo, thông tin hệ thống hay đồng hồ, đếm.v .v . Giúp người

dùng hiểu cách thiết lập mở rộng phần cứng và hiển thị những ứng dụng riêng.

1.4.4.2.Tính toán và thiết kế.

Mạch phải hiển thị rõ ràng, các ký tự theo hàn và theo cột. Có khả năng hiển thị

nhiều phông.

Các LED trong Ma trận có thể sáng riêng lẻ nhau nếu ta đưa tín hiệu điều khiển

riêng biệt đến hàng và cột riêng biệt. Mỗi LED có thể sáng nếu ta cấp một điện áp 2 ÷

2,8V với dòng tối đa là 30mA. Vì LED ma trận có hàng hiện thị ở mức cao, cột ở mức

thấp nên ta cấp điện áp cho hàng và cột để hiển thị.

Hàng điều khiển bởi các cổng ra của Vi điều khiển, có dòng ra rất thấp. Do đó

để đủ dòng cấp cho LED ta phải thiết kế mạch khuếch đại công suất cho LED.

Hình 1.9: Sơ đồ nguyên lý mạch Led Ma trận 8x8

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 52

Page 53: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Tính toán cho led ma trận. Ta có phương trình sau:

Vcc=RB I B+V BE+V LED .

Để cho LED sáng tối đa V LED=1,8 V .

Chọn transistor là loại Silic nên: {V BE=0,6 V ¿ ¿¿¿

⇒RB I B=5−0. 6−1. 8−0 .3=2 .3V

⇒ I B=2 . 3V1k Ω

=2.6 mA.

I C=β . I B=I LED=β .2 . 6 mA .

Để 1 LED tối đa là 30mA. Trong đó với ma trận 8x8 thì một cột gồm 8 LED

nên để LED sáng bình thường thì .Ic = 8x ILED

Vậy: β . 2 .6 mA=210 mA

⇒β=2102. 6

=81

Chọn β=100

Tra bảng ta chọn Transistor loại C1815 thỏa mãn yêu cầu trên để khuếch đại cho hàng.

Và tính toán trên cũng cho ta chọn IC đệm dòng cho đầu ra đảo phù hợp với tín hiệu

cột nối 0V để LED sáng.

1.4.5.Khối Led 7 thanh (LED 7-SEG).

1.4.5.1.Chức năng.

Tương tự như LCD dùng để hiển thị các thông số hay đếm xung, đồng hồ.v.v…

Chúng ta còn có LED 7 thanh được cấu tạo từ 7 led đơn xếp thành hình số 8. Như vậy

ta có thể hiện các con số từ 0 đến 9, hay hiển thị một số chữ cái đơn giản.

1.4.5.2.Tính toán và thiết kế.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 53

Page 54: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Như vậy ta có điện áp cung cấp cho LED 4V điện áp rơi trên LED 1,7 đến 2V

như vậy điện trở hạn dòng cho từng led khoảng 150Ω đến 330Ω. Nếu ta nối 1 điện trở

hạn dòng cho toàn bộ 8 LED tại đầu Anot hoặc Catot chung thì điện trở được tính như

sau:

Do mỗi LED cần 15mA để LED sáng bình thường

Suy ra 8 LED có dòng tổng như sau: 8x15mA = 120mA.

Vậy giá trị điện trở đó được tính như sau:

R=V outH−V LED

I tong

= 4−1.70.12

=20Ω

Ta chọn loại điện trở 22Ω 1W do dòng đi qua lớn(120÷200mA)

Tổng công suất của khối là:

P = U.I = 25.4. 5 = 500mW

Hình 1.2: Sơ đồ nguyên lý mạch Led 7 thanh

1.4.6.Module điều khiển động cơ 1 chiều.

1.4.6.1.Chức năng.

Module động cơ một chiều có chức năng thực hiện các yêu cầu điều khiển và

điều chỉnh tốc độ động cơ điện một chiều.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 54

Page 55: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

1.4.6.2.Phân tích yêu cầu lựa chọn linh kiện.

Các yêu cầu của module động cơ một chiều:

- Điều khiển động cơ DC với dòng điện tải tối đa 2A khi quá tải.

- Có thể điều chỉnh tốc độ động cơ DC bằng cách tác động trên cổng P3 sử

dụng công tắc 3 cực .

- Điều khiển chính xác, tin cậy và ổn định.

- Thiết kế đơn giản.

1.4.6.3.Tính toán và thiết kế.

Có rất nhiều loại động cơ một chiều khác nhau. Nhưng ở trên MODULE này

chúng ta chỉ sử dụng loại động cơ DC công suất rất nhỏ. Tín hiệu được lấy từ cổng P2

sau đó được đưa qua 2 con cách ly PC817 sau đó được đưa đến Tip41 đóng ngắt điều

khiển động cơ.3bits trực tiếp điều khiển cho động cơ quay thuận , ngược , stop trên

cổng P3

Hình 1.10: Sơ đồ nguyên lý mạch điều khiển động cơ DC

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 55

Page 56: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Với động cơ một chiều và động cơ bước chúng em lựa chọn trong modul này thì có

các thông số như sau:

Điện áp điều khiển là 12VDC

Dòng điện định mức là 500mA

1.4.7.Khối mạch nạp (Programmer).

Dùng để nạp chương trình cho IC trung tâm ở mạch này cung cấp cho chúng ta

2 Socket 40 chân và 20 chân có thể nạp chương trình (files) Hex cho họ AT89C51.

Chi tiết có thể xem phần hướng dẫn sử dụng mạch nạp.

Đây là một modul khá đặc biệt và yêu cầu thiết kế rất phức tạp từ phần cứng

cho tới chương trình điều khiển (Có thể nói đây là một đề tài riêng biệt). Ở đề tài này

chúng em đã tham khảo mạch nạp của hãng Sunrom trên mạch internet

(http://www.sunrom.com) . Mạch và phần mềm do hãng cung cấp hoàn

toàn miễn phí. Mạch nạp rất tốt cho nhiều loại IC khác nhau thuộc họ 8051 và rất bền

chip do có sự tính toán kĩ lưỡng về dòng và áp để lập trình Flash.

1.4.8. Module động cơ bước.

1.4.8.1. Chức năng.

Module động cơ bước có chức năng thực hiện các yêu cầu điều khiển và điều

chỉnh tốc độ động cơ bước.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 56

Page 57: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

1.4.8.2.Phân tích yêu cầu lựa chọn linh kiện.

Các yêu cầu của module động cơ bước:

- Điều khiển động cơ bước với dòng điện tải tối đa 2A khi quá tải

- Có thể điều chỉnh tốc độ động cơ Bước bằng cách tác động trên cổng P3 sử

dụng công tắc 3 cực .

- Điều khiển chính xác, tin cậy và ổn định.

- Thiết kế đơn giản

Hình 1.13: Sơ đồ nguyên lý mạch điều khiển động cơ bước

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 57

Page 58: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Tín hiệu điều khiển đông cơ bước được đưa tới từ vi điều khiển qua cách ly

PC817 và Tip41 , với 4 bit đầu vào nối với các bit Px.0 đến Px.3 của vi điều khiển;

còn các đầu ra được nối với 4 đầu dây động cơ bước qua chân cắm STEP-

MOTOR.Với động cơ bước chúng em lựa chọn trong modul này thì có các thông số

như sau:

Điện áp điều khiển là 12VDC

Dòng điện định mức là 500mA

1.5. THI CÔNG MẠCH

1.5.1. Vẽ mạch nguyên lý và mạch in

Công việc này được trợ giúp bởi phần mềm Eagle. Đây là phần mềm chuyên

dùng cho người thiết kế mạch điện tử. Để mạch chạy tốt thì sơ đồ nguyên lý của mạch

phải đúng, đầy đủ. Khi cho chạy board mạch cần phải chú ý đến kích thước các đường

tín hiệu và đường nguồn, đường nguồn bao giờ cũng có kích thước lớn hơn đường tín

hiệu.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 58

Page 59: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Hình 1.14 : Sơ đồ mạch nguyên lý kit thực tập VĐK

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 59

Page 60: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

1.5.2. Thi công mạch in ( board )

Sau khi chúng ta đã vẽ xong mạch in thì việc làm board có thể thực hiện theo

các phương án sau:

- Phương án 1: Tự in mạch thủ công bằng bàn là nghĩa là chúng ta vẽ mạch xong. Đem

in ra giấy đề can sau đó dùng bàn là là lên fip đồng sau đó dùng dung dịch FeCl 3 ăn

mòn.

- Phương án 2: Làm mạch bằng phương pháp in lưới. Nghĩa là sau khi đã vẽ mạch

xong, chúng ta đem in lưới lên mạch in, sau đó cũng dùng dung dịch ăn mòn.

- Phương án 3: Phương án này là phải dùng đến các máy chuyên dùng thi công mạch

in, đây là cách thi công mạch có độ chính xác cao nhất, ít hư hỏng, thi công được mạch

nhiều lớp với đường mạch với kích thước rất nhỏ. Về thẩm mĩ rất đẹp và chuyên

nghiệp.

Do hạn chế về trình độ cũng như phương tiện kỹ thuật trang thiết bị và điều kiện kinh

tế nên chúng em chọn phương pháp đầu tiên để làm.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 60

Page 61: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Hình 1.15 : Sơ đồ mạch board lý kit thực tập VĐK

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 61

Page 62: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Chương II LẮP RÁP LINH KIỆN VÀO MẠCH IN

2.1. MODUL MẠCH NẠP.

2.1.1. Hình ảnh thực tế:

Hình 2.1:Module mạch Nạp

2.1.2. Mô tả nguyên lý:

Flash MC Programer có thể dùng để ghi, đọc và xóa chương trình cho các loại

chip IC vi điều khiển: AT89C51, AT89LV51, AT89C52, AT89LV52, AT89C55,

AT89LV55, AT89S51, AT89LS51, AT89S52, AT89LS52, AT89S53, AT89LS53,

AT89S8252, AT89LS8252, AT89C1051, AT89C2051, AT89C4051.

Thiết bị kết nối với máy tính qua cổng USB được điều khiển bởi phần mềm

PI51L, trao đổi dữ liệu và lấy nguồn trực tiếp qua cổng dạng đầu USB.

Đặc tính của mạch:

- Hỗ trợ các chip của Atmel 89.

- Tự động xác định phần cứng khi kết nối.

- Kiểm tra lỗi trong quá trình nạp.

- Khóa chip chống sao chép chương trình.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 62

Page 63: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

- Tự động xóa trước khi ghi và kiểm tra sau khi ghi xong.

- Trạng thái ghi hiển thị Status toolbar.

- Đơn giản với người sử dụng

- Tốc độ baud 57600.

2.1.3. Giao diện phần mềm và trình tự thực hiện:

Nạp chương trình.

Khi kết nối mạch với máy tính sẽ hiện ra như sau:

2.1.4. Hướng dẫn sử dụng:

a. Cấp nguồn.

Sử dụng nguồn trục tiếp từ cây may tnhs thong qua cổng dạng USB

b. Lắp và nạp chíp

Nên ngắt điện cung cấp cho thiết bị trước khi thao lắp IC nạp. IC cần được lắp

theo đúng chiều, chân số 1 của IC phải được lắp vào đúng khe cắm gần cần

khóa IC nhất.

Quy trình lắp:

- Đưa cần khóa IC về vị trí thẳng đứng (không khóa).

- Lắp IC đúng chiều vào khay (socket) một cách ngay ngắn.

- Gạt cần khóa IC (vuông góc với vị trí không khóa) để khóa IC lại.

Quy trình nạp IC:

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 63

Page 64: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Sau khi đã nắp IC vào chip nạp đầu tiên ta phải chọn xem chip cần nạp la 89C51

hay 89C52. Để làm việc này ta ấn vao Autodelect.

Sau đó nhấn vào Connect chọn Auto sau khi chip tự động chọn cổng COM muốn nạp

ta tiếp tục nhấn váo CHIP để chộn tìm file muốn nạp

c. Tháo IC đã nạp xong.

- Đưa cần khóa IC về vị trí thẳng đứng (mở khóa).

- Lấy IC ra khỏi khay cắm..

Lưu ý:

- Ngắt điện khi tháo lắp IC

- Tránh chạm vào chân IC hoặc làm cong, gãy chân IC.

2.2.MODULE MẠCH CHỦ

Hình 2.2: Module mạch chủ

Module mạch chủ là module có chức năng quan trọng trong toàn bộ Kit.nó để điều

khiển tất cả các module khác trên toàn mạch thông qua các cổng P0,P1,P2,P3.các tín

hiệu được đưa ra đén các module bằng các jum và cáp nối.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 64

Page 65: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

2.3. MODULE LED ĐƠN

2.3.1. Mô hình bố trí linh kiện thực tế.

Hình 2.3: Module led đơn

2.3.2. Phương pháp lập trình

- Modul led đơn gồm có 32 led đơn được bố trí trên một hàng, mỗi led được nối với

một điện trở hạn dòng cho các led này tránh hiện tượng khi có dòng điện lớn qua các

led cháy led.

- Điều khiển 32 LED đơn chúng ta điều khiển trực tiếp từ vi điều khiển qua bốn cổng

P0,P1,P2và P3 của vi điều khiển.

- Có nhiều phương pháp điều khiển lập trình cho led đơn, có thể chỉ điều khiển cho 8

led, 16 led, 24 led, hay 32 led bằng cách nối các cổng của CPU, điều khiển các led

nhâp nháy, nháy xen kẽ, sáng dần từ trái sang phải, từ phải sang trái.

2.3.3.Chương Trình

Chương Trình$INCLUDE(REG51.INC)

SPEED DATA 50HORG 00H

START:MOV P0,#0FFH

MOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFH

NHAP_NHAY:MOV A,#0FFH

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 65

Page 66: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

MOV R1,#5LOOP1:

CPL AMOV P0,AMOV P1,AMOV P2,AMOV P3,AACALL DELAYDJNZ R1,LOOP1

NHAY_XEN_KE:MOV R1,#5MOV A,#55H

LOOP2:CPL AMOV P0,A

MOV P1,AMOV P2,AMOV P3,AACALL DELAYDJNZ R1,LOOP2

SANG_DAN_TRAI_PHAI:MOV A,#0FFHMOV P0,AMOV P1,AMOV P2,AMOV P3,A

LOOP3:CLR CRRC AMOV P0,AACALL DELAYCJNE A,#0,LOOP3MOV A,#0FFH

LOOP4:CLR CRRC AMOV P1,AACALL DELAYCJNE A,#0,LOOP4MOV A,#0FFH

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 66

Page 67: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

LOOP5:CLR CRRC AMOV P2,AACALL DELAYCJNE A,#0,LOOP5MOV A,#0FFH

LOOP6:CLR CRRC AMOV P3,AACALL DELAYCJNE A,#0,LOOP6

TAT_DAN_PHAI_TRAI: MOV A,#0MOV P0,AMOV P1,AMOV P2,AMOV P3,A

LOOP7:SETB CRLC AMOV P3,AACALL DELAYCJNE A,#0FFH,LOOP7MOV A,#0

LOOP8:SETB CRLC AMOV P2,AACALL DELAYCJNE A,#0FFH,LOOP8MOV A,#0

LOOP9:SETB CRLC AMOV P1,AACALL DELAYCJNE A,#0FFH,LOOP9MOV A,#0

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 67

Page 68: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

LOOP10:SETB C

RLC AMOV P0,AACALL DELAYCJNE A,#0FFH,LOOP10

SANG_TU_GIUA_RA:JMP START

DELAY:MOV R2,#2

K1:MOV R3,#200K2:MOV R4,#200

DJNZ R4,$DJNZ R3,K2DJNZ R2,K1RET

2.4. MODULE LED 7 THANH2.4.1. Mô hình bố trí linh kiện thực tế.

Hình 2.4: Module led 7 thanh

2.4.2. Phương pháp lập trình

Có rât nhiều phương pháp lập trình cho led 7 thanh như phương pháp quet led,

quet đa hợp, quet không đa hợp,hay phương pháp dich bit.nhưng ở đây ta sử dụng

phương pháp quet led hiển thị từ số 0-7 theo thứ tự led1 hiển thị số 0, led 2 hiển thị số

1…và led thứ 8 hiển thị số 7 và quay ngược lại .

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 68

Page 69: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

2.4.3.Chương Trình

$INCLUDE(REG51.INC) ORG 000H; mach dem tu 0-7 hien thi tren led 7 thanh ket noi voi port p2

mov p2,#00hmov p1,#00hmov dph,#01hmov r0,#00hmov r1,#40h

Tien: mov a,#00hmov dpl,r1movc a,@a+dptrmov p1,amov a,#00hmov dpl,r0movc a,@a+dptrmov p2,acall treinc r1inc r0cjne r0,#08,tienmov r0,#07hmov r1,#47h

Lui: mov a,#00hmov dpl,r1movc a,@a+dptrmov p1,amov a,#00hmov dpl,r0movc a,@a+dptr

mov p2,acall tredec r1dec r0cjne r0,#1fh,luijmp $ ;neu muon chi thuc hien 1 lan;jmp start ; neu muon chay di chay lai

Tre: mov r4,#5k0:mov r2,#200k1:mov r3,#229

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 69

Page 70: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

djnz r3,$djnz r2,k1djnz r4,k0ret

org 0100hdb 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h; bang ma led 7 thanh loai a chungorg 0140hdb 01h,02h,04h,08h,10h,20h,40h,80h; ma quet

2.5. MODULE MA TRẬN LED

2.5.1. Mô hình bố trí linh kiện thực tế.

Hình 2.5: Module ma trận led

2.5.2. Phương pháp lập trình:

Điều khiển trực tiếp từ vi điều khiển thông qua 2 cổng P0 và P2.

Tùy vào yêu cầu hiển thị của LedMatrix mà ta có các chương trình hiển thị khác

nhau.Dữ liệu hiển thị sẽ được hiển thị qua việc quét các hàng và các cột bằng việc quét

8bít điều khiển bằng mã dữ liệu(HEX). Vì vậy khi muốn hiển thị dữ liệu ta phải lập

bảng mã HEX tương ứng với các chữ cái mà chúng ta cần hiển thị.Ở đây chúng em

hiển thị chữ “ĐỒ ÁN MÔN HỌC”.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 70

Page 71: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

2.5.3.Chương Trình

$INCLUDE(REG51.INC)ORG 0000H

MAIN:MOV DPTR,#DATABASE ;DIA CHI NAP DU LIEU

timeht:

MOV R0,#8 ;TOC DO HIEN KY TUktnap:

LCALL SCANDATA ;NAP DU LIEUDJNZ R0,ktnapINC DPTRMOV A,DPLMOV R1,DPHCJNE R1,#00H,timeht ;KIEM TRA KET THUC CHUOI CJNE A,#60h,timehtSJMP MAIN

SCANDATA: PUSH ACCPUSH 00HPUSH 01HMOV R0,#00H ;DIA CHI DU LIEU DAU TIEN TRON

DATABASEMOV R1,#01H ;HIEN THI RA COT DAU TIENSCAN:

MOV A,R0MOVC A,@A+DPTR ;NAP DU LIEU TU DATABASE

VAO AMOV P2, A ;HIEN THI RA DONG TUONG UNGMOV P0,R1 ;HIEN THI RA COT DAU TIENLCALL DELAY5MS ;CHUONG TRINH TAO TRE 5 MSMOV R4,#40H ;CHONG LEMMOV P0,#00H

;loop: DJNZ R4,loopINC R0 ;HIEN THI DU LIEU KE TIEPMOV A,R1 ;CHUYEN SANG COT KE TIEPRL AMOV R1,A

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 71

Page 72: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

CJNE R0,#8H,SCAN ;KIEM TRA QUET COT THU 8 CHUA

POP 01HPOP 00HPOP ACCRET

DELAY5MS:;PUSH 00H;PUSH 01H;MOV R1,#13

loop1:;MOV R0,#180;DJNZ R0,$;DJNZ R1,loop1

; POP 01H;POP 00HRET

DATABASE:DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffHDB 0E7H,0H,0H,66H,7EH,0BDH,0C3H,0ffH ,0FFH ;DDB 81H,7EH,7EH,7EH,81H,0FFH,0FFH ; ODB 1H,0EEH,0EEH,0EEH,1H,0FFH,0FFH ;ADB 00H,0F9H,0E7H,9FH,00H ,0FFH,0FFH ;NDB 00H,0F9H,0E7H,0E7H,0F9H,00H ,0FFH,0FFH ;MDB 81H,7EH,7EH,7EH,81H,0FFH,0FFH ; ODB 00H,0F9H,0E7H,9FH,00H ,0FFH,0FFH ;NDB 00H,0E7H,0E7H,0E7H,00H,0FFH,0FFH ;HDB 81H,7EH,7EH,7EH,81H,0FFH,0FFH ; ODB 81H,7EH,7EH,7EH,0BDH,0FFH,0FFH ;C

DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffHEND

2.6. MODULE HIỂN THỊ LCD.

2.6.1. Mô hình bố trí linh kiện thực tế.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 72

Page 73: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Hình 2.6: Module LCD

2.6.2.Phương pháp lập trình:

Nguyên lý hoạt động cơ bản của LCD:

Địa chỉ (Số chân Port) Chân VĐK Chức năng

2, 4, 6, 8, 10, 12, 14, 16Px.0 ÷ Px.7

(DB0 đến DB7)Chân dữ liệu

13 P3.3 (CS\) Chọn chip

15 P3.6 (RW\) Điều khiển ghi/đọc

17 P3.7 (RS) Mã lệnh/ dữ liệu

19 20 (GND) Chân nối Mass 0V

20 40 (Vcc) Chân nối +5V

Bảng 2.1. Sơ đồ chân và chức năng của LCD

Để gửi một lệnh bất kỳ nêu ở bảng trên đến LCD, cần đưa chân RS = 0, còn để

gửi dữ liệu thì bật RS = 1. Sau đó, gửi sườn xung cao xuống thấp đến chân

CS để cho phép chốt dữ liệu trong LCD, (Sử dụng hàm trễ sau mỗi lần gửi mã lệnh

hay dữ liệu đến LCD).

Cách trên không kiểm tra cờ bận DB7, mỗi lần thực hiện một lệnh, LCD phải mất

một khoảng thời gian để hoàn tất việc này. Chính vì vậy khi ra lệnh thực hiện cho

LCD, ta phải trễ một khoảng thời gian. Sau đó mới được thực hiện lệnh tiếp theo. Tuy

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 73

Page 74: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

nhiên phương pháp trễ không được ổn định và chính xác khi tần số thạch anh thay đổi,

còn một phương pháp nữa đó là kiểm tra LCD đã sẵn sàng nhận dữ liệu hay chưa bằng

cách kiểm tra bít có trọng số cao nhất DB7 của thanh ghi lệnh, tức khi RS = 0. khi bit

này xuống 0 báo hiệu LCD đã sẵn sàng nhận lênh tiếp theo. Phương pháp này có ưu

điểm là làm việc ổn định, đồng bộ và không mất thời gian trễ dư không cần thiết.

LCD sẵn sàng làm việc.

Để cho LCD có thể hoạt động, đầu tiên ta phải khởi tạo LCD, báo cho nó biết số hàng,

số ký tự hiển thị trên một hàng. Các dữ liệu điều khiển lần lượt được

chuyển vào Data bus của LCD là 38h, 0Eh, 01h, 06h, 48h. (Ý nghĩa của chúng cho

trong bảng trên).

Đối với Modul LCD chúng em hiển thị dòng đầu tiên là chữ:”KIT THỰC TẬP” còn

dòng thứ 2 là chữ “VI ĐIỀU KHIỂN”

2.6.3.Chương Trình

$INCLUDE (REG51.INC)ORG 0000HSTART:MOV A,#38h ; CHON LDC 2 DONGACALL malenhACALL delayMOV A,#0Eh ; HIEN THI NHAP NHAY CON TROACALL malenhACALL delayMOV A,#01h ; XOA MAN HINH HIEN THIACALL malenh

ACALL delayMOV A,06h ; DICH CON TRO SANG PHAIACALL malenhACALL delayMOV A,#82h ; DUA CON TRO VE DONG 1ACALL malenhACALL delayRET;---------khoi tao dong 1-----------MOV A,#"K"ACALL hienthiACALL delay

MOV A,#"I"

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 74

Page 75: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

ACALL hienthiACALL delayMOV A,#"T"ACALL hienthiACALL delayMOV A,#" "ACALL hienthiACALL delayMOV A,#"T"ACALL hienthiACALL delayMOV A,#"H"ACALL hienthiACALL delayMOV A,#"Ư"ACALL hienthiACALL delayMOV A,#"C"ACALL hienthiACALL delayMOV A,#" "ACALL hienthiACALL delayMOV A,#"T"ACALL hienthiACALL delayMOV A,#"Â"ACALL hienthiACALL delayMOV A,#"P"ACALL hienthiACALL delayRET;-------khoi tao dong 2-------MOV A,#0C0hACALL malenhACALL delayMOV A,#"V"ACALL hienthiACALL delayMOV A,#"I"

ACALL hienthi

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 75

Page 76: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

ACALL delayMOV A,#"Đ"ACALL hienthiACALL delayMOV A,#"I"ACALL hienthiACALL delayMOV A,#"Ê"ACALL hienthiACALL delayMOV A,#"U"ACALL hienthiACALL delayMOV A,#" "ACALL hienthiACALL delayMOV A,#"K"ACALL hienthiACALL delayMOV A,#"H"ACALL hienthiACALL delayMOV A,#"I "ACALL hienthiACALL delayMOV A,#"Ê"ACALL hienthiACALL delayMOV A,#"N"ACALL hienthiACALL delayJMP STARTRETmalenh:MOV P1,ACLR P2.2 ; RS=0 CHON THANH GHI MA LENHCLR P2.1 ; RW=0 CHO PHEP GHI DLSETB P2.0 ; EN = 1CLR p2.0 ; EN = 0rethienthi:

MOV P1,A

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 76

Page 77: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

SETB P2.2 ; RS = 1 CHON THANH GHI DLCLR P2.1 ; RW = 0 CHO PHEP GHI DLSETB P2.0 ; EN = 1CLR P2.0 ; EN = 0retdelay:mov r2,#10 x1:mov r3,#200 x2: mov r4,#299 djnz r4,$ djnz r3,x2 djnz r2,x1RETEND

2.7. MODULE ĐIỀU KHIỂN ĐỘNG CƠ MỘT CHIỀU.

2.7.1. Hình ảnh thực tế.

Hình 2.7: Module động cơ một chiều

2.7.2. Mô tả nguyên lý

Có rất nhiều loại động cơ một chiều khác nhau. Nhưng ở trên MODULE này

chúng ta chỉ sử dụng loại động cơ DC công suất rất nhỏ. Tín hiệu được lấy từ cổng P2

sau đó được đưa qua 2 con cách ly PC817 rồi đưa đến Tip41 đóng ngắt điều khiển

động cơ.3bits trực tiếp điều khiển cho động cơ quay thuận,ngược,stop trên cổng P3

Chân cắm DC_MOTOR dùng kết nối với động cơ DC.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 77

Page 78: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

2.7.3.Chương Trình

$INCLUDE(REG.INC) ORG 0000Hmov p3,#0ffhmov p2,#00hmain:jnb p3.2,thuanjnb p3.3,nguocjnb p3.4,stopsjmp mainthuan:mov p2,#1sjmp mainnguoc:mov p2,#2sjmp mainstop:mov p2,#00hsjmp mainretend 2.8. MODULE ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC

2.8.1. Hình ảnh thực tế.

Hình 2.8: Module động cơ bước

2.8.2. Mô tả nguyên lý:

Tín hiệu được lấy từ cổng P0 sau đó được đưa qua 2 con cách ly PC817 sau đó được

đưa đến Tip41 đóng ngắt điều khiển động cơ.3bits trực tiếp điều khiển cho động cơ

quay trên cổng P3

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 78

Page 79: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

2.8.3.Chương Trình

$INCLUDE(reg51.inc)org 0000hstart:THUAN BIT P3.0NGUOC BIT P3.1TOCDO BIT P3.2DONGCO EQU P1MOV P1,#0ffH MOV P2,#0FFH ;.........stop................MAIN:

JNB THUAN,QUAYTHUAN1JNB NGUOC,QUAYNGUOC1

JMP MAIN;--------THUAN-----------------QUAYTHUAN1:MOV A,#0ddhQUAYTHUAN: MOV B,#7

MOV DONGCO,A LCALL DELAY

MOV DONGCO,#0ffhLCALL DELAYJNB TOCDO,TANGTOCJMP nhay

TANGTOC: MOV B,#2 nhay:

LCALL delayRL AMOV p2,#0ffhJNB NGUOC,QUAYNGUOCJMP QUAYTHUAN

;--------NGUOC------------------QUAYNGUOC1: MOV A,#0eeh QUAYNGUOC:

MOV B,#7

MOV DONGCO,A

LCALL DELAY

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 79

Page 80: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

MOV DONGCO,#0ffhLCALL DELAY

JNB TOCDO,TANGTOC1 JMP nhay1 TANGTOC1: MOV B,#2 nhay1: LCALL delay RR A MOV p2,#0ffh

JNB THUAN,QUAYTHUANJMP QUAYNGUOC

delay:MOV R7,Bmov tmod,#01hlap1:MOV th0,#0d8h MOV tl0,#0efhsetb tr0jnb tf0,$clr tr0clr tf0djnz r7,lap1ret

END

2.9. Hệ thống công tắc 3 cực.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 80

Page 81: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Sử dụng 8 công tắc 3 cực để điều khiển trực tiếp động cơ 1 chiều và động cơ bước. Tín

hiệu điều khiển được lấy trực tiếp từ cổng P3.

Hình ảnh trực tiếp

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 81

Page 82: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

KẾT LUẬN

1. KẾT QUẢ ĐẠT ĐƯỢC

Sau quá trình nghiên cứu và thi công, nhóm đã hoàn thành các nội dung đề tài

nêu ra với các module đã thiết kế và chế tạo với mục đích sử dụng trong việc giảng

dạy thực hành, thí nghiệm cho môn học vi điều khiển. Các modul đã được kiểm tra,

khắc phục lỗi và chạy các ứng dụng tương ứng.

Với mỗi cá nhân trong nhóm, sau khi thực hiện xong đề tài này đã có thêm

nhiều kiến thức về cấu trúc phần cứng vi điều khiển, lập trình vi điều khiển và ghép

nối cho các ứng dụng thực tế. Đồng thời có thêm những kinh nghiệm trong việc thiết

kế và lập trình các ứng dụng cho vi điều khiển.

2. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI

Đề tài hiện tại chỉ cho phép làm việc với các loại chip họ 89Cxx và 89Sxx,

không có chế độ kiểm tra để người dùng có thể quan sát các quá trình hoạt động của

bộ KIT.

Với những hạn chế đó ta có thể phát triển đề tài có thể sử dụng các loại chip

khác như PIC, AVR, … Xây dựng phần mềm tương tác giữa bộ KIT và máy tính để có

thể mô phỏng các hoạt động của bộ KIT trên máy tính, giúp người dùng có thể trực

quan câu lệnh, các hoạt động của chip.

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 82

Page 83: thuyết minh đồ án

Trường Đại học SPKT Hưng Yên Đồ Án Môn Học Khoa : Điện – Điện Tử Lớp ĐTK39

Tài liệu tham khảo:

1. Nguyễn Tăng Cường, Phan Quốc Thắng. Cấu trúc và lập trình họ vi điều

khiển 8051. NXB Khoa học và kỹ thuật, 2004.

2. Lâm Tăng Đức, Lê Tiến Dũng. Giáo trình kỹ thuật vi điều khiển. ĐH Đà

Nẵng, 2006.

Webside tham khảo:

http://www.datasheetcatalog.com

http://www.dientuvietnam.com

GVHD : Phạm Thị Ngọc AnhSVTH : Trần Văn Thọ Đàm Thị Phương Thảo Trang 83

Page 84: thuyết minh đồ án

84