You are on page 1of 38

Bài tập lớn: Vi xử lí GVHD: Ths.

NGUY ỄN
THU HÀ

Mục lục

Nội dung
Nội dung.................................................................................................................................1
Lời nói đầu..............................................................................................................................2
CHƯƠNG I: CƠ SỞ LÝ THUYẾT..........................................................................................5
1. Giới thiệu tổng quan về họ Vi điều khiển 8051..............................................................5
2. Giới thiệu tổng quan về encoder..................................................................................11
3. Giới thiều về một số linh kiện khác..............................................................................18
3.1 Sơ lược về led 7 thanh................................................................................................18
CHƯƠNG II. NỘI DUNG.....................................................................................................26
1 – Lưu đồ thuật toán chương trình..................................................................................26
2 – Phần lập trình và mô phỏng.......................................................................................28
CHƯƠNG III. KẾT LUẬN.....................................................................................................36
1. Ưu điểm........................................................................................................................36
2. Nhược điểm..................................................................................................................36
Tài liệu tham khảo................................................................................................................38

Bưởng Kận - Điện1- K6_Haui Page 1


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Lời nói đầu


Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế
giới của chúng ta đã và đang ngày một thay đổi, văn minh và hi ện đ ại h ơn.
Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt nh ững thiết bị với
các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nh ẹ là
những yếu tố rất cần thiết góp phần cho hoạt động của con ng ười đạt
hiệu quả cao.

Các bộ điều khiển sử dụng vi điều khiển 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. Các bộ vi đi ều
khiển theo thời gian cùng với sự phát triển của công nghệ bán dẫn đã ti ến
triển rất nhanh, từ các bộ vi điều khiển 4 bit đơn giản đến các bộ vi điều
khiển 32 bit, rồi sau này là 64 bit. Điện tử đang trở thành một ngành khoa
học đa nhiệm vụ. Điện tử đã đáp ứng được những đòi h ỏi không ng ừng t ừ
các lĩnh vực công – nông – lâm – ngư nghiệp cho đến các nhu c ầu c ần thi ết
trong hoạt động đời sống hằng ngày.

Một trong những ứng dụng thiết thực trong đó là ứng dụng về đo và
hiển thị tốc độ động cơ. Đây là một ứng dụng rất quan trọng được áp dụng
trong nhiều lĩnh vực và dây chuyền sản xuất. Tốc độ đ ộng c ơ s ẽ được
hiển thị trên màn hình nhờ led 7 thanh, Từ đó chúng ta có th ể giám sát đ ược
tốc độ động cơ rùi có các quyết định điều khiển cho phù h ợp v ới yêu c ầu.
Vì thế, với môn học Vi điều khiển này, em đã quy ết đ ịnh nh ận làm bài t ập
lớn về đo tốc độ động cơ dùng 8051. Cụ thể trong bài tập này, chúng em
sẽ ghép nối vi điều khiển 89C51RD2 với 4 led 7 thanh để hiển th ị tốc độ

Bưởng Kận - Điện1- K6_Haui Page 2


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

động cơ, sử dụng encoder có 100(xung/vòng). Chúng em xin trình bày nội
dụng cụ thể của bài tập lớn như sau. Kính mong các thầy - cô xem và cho
nhận xét, đánh giá để bài tập lớn được đầy đủ hơn.

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

Hà Nội, Ngày 21/03/1013

Bưởng Kận - Điện1- K6_Haui Page 3


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Đề bài:
Ứng dụng họ vi điều khiển 8051 ghép nối 4 led 7 thanh dể hiển thị số đo
tốc độ động cơ dùng encoder có 100(xung/vòng). Khoảng đo (0-2500)v/p.

YÊU CẦU:

Xây dựng mạch nguyên lí?

Xây dựng thuật toán?

Viết chương trình bằng hợp ngữ?

Nhóm sinh viên thực hiện:

1. Nguyễn Tuấn Anh

2. Nguyễn Văn Anh

3. Nguyễn Ngọc Anh

4. Nguyễn Kim Biên

5. Trần Huy Bình

6. Lê Thanh Bình

7. Hà Văn Bình

8. Bùi Đức Chính

9. Nguyễn Quốc Chỉnh

10. Nguyễn Văn Công

Bưởng Kận - Điện1- K6_Haui Page 4


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

CHƯƠNG I: CƠ SỞ LÝ THUYẾT

1. Giới thiệu tổng quan về họ Vi điều khiển 8051


AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS
chất lượng cao, công suất thấp với 4 KB PEROM (Flash Programeable and
erasable read only memory).

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

- 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa
tới 1000 chu kỳ

- Tần số hoat động từ 0 Hz đến 24 MHz

- 3 mức khóa bộ nhớ lập trình

- 2 bộ Timer/Counter 16 bit

- 128 Byte RAM nội

- 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

- 4μs cho hoạt động nhân hoặc chia

Bưởng Kận - Điện1- K6_Haui Page 5


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

a – Sơ đồ khối và sơ đồ chân của AT89C51


INT1\
INT0\
SERIAL PORT
TEMER0

TEMER1

TEMER2
128 byte RAM
8032\8052 TEMER2
8032\8052 ROM
8032\8052
0K: TEMER1
INTERRUPT OTHER 128 byte RAM
CONTROL REGISTER 8031\803 TEMER1
2

CPU 4K:8951

8K:8052
BUS CONTROL SERIAL
I/O PORT PORT
OSCILATOR

EA\ ALE\
RST PSEN\ P0 P1 P2 P3
TXD RXD
Address\Data

Hình 1 – Sơ đồ khối của AT89C51

Bưởng Kận - Điện1- K6_Haui Page 6


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Hình 2 – Sơ đồ chân của AT89C51

b – Chức năng các chân của AT89C51

+ Port 0 (P0.0 – P0.7 hay chân 32 – 39): Ngoài chức năng xuất nhập
ra, port 0 còn là bus đa hợp dữ liệu và địa ch ỉ (AD0 – AD7), ch ức năng này
sẽ được sử dụng khi AT89C51 giao tiếp với thiết bị ngoài có kiến trúc bus.

Hình 3 – Port 0

Bưởng Kận - Điện1- K6_Haui Page 7


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

+ Port 1 (P1.0 – P1.7 hay chân 1 – 8): có chức năng xuất nhập theo
bit và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo
chuẩn ISP, 2 chân P1.0 và P1.1 được dùng cho bộ Timer 2.

Hình 4 – Port 1

+ Port 2 (P2.0 – P2.7 hay chân 21 – 28): là một port có công dụng
kép. Là đường xuất nhập hoặc là byte cao của bus đ ịa ch ỉ đ ối với các thi ết
kế dùng bộ nhớ mở rộng.

Hình 5 – Port 2

Bưởng Kận - Điện1- K6_Haui Page 8


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

+ Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên port 3 ngoài
chức năng xuất nhập ra còn có một số chức năng đặc biệt sau:

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

P3.0 RXD Dữ liệu nhận cho port nối tiếp

P3.1 TXD Dữ liệu truyền cho port nối tiếp

P3.2 INT0 Ngắt bên ngoài 0

P3.3 INT1 Ngắt bên ngoài 1

P3.4 T0 Ngõ vào của Timer/Counter 0

P3.5 T1 Ngõ vào của Timer/Counter 1

P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài

P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài

Hình 6 – Port 3

Bưởng Kận - Điện1- K6_Haui Page 9


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

+ RST (Reset – chân 9): mức tích cực của chân này là mức 1, để
reset ta phải đưa mức 1 (5V) đến chân này với th ời gian t ối thi ểu 2 chu kỳ
máy (tương đương 2µs đối với thạch anh 12MHz.)

+ XTAL 1, XTAL 2: AT89S52 có một bộ dao động trên chip, nó


thường được nối với một bộ dao động thạch anh có tần số lớn nh ất là
33MHz, thôn thường là 12MHz.

Hình minh hoạ

+ EA (External Access): EA thường được mắc lên mức cao (+5V)


hoặc mức thấp (GND). Nếu ở mức cao, bộ vi điều khiển thi hành ch ương
trình từ ROM nội. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ
nhớ mở rộng.

+ ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ vào
một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó các
đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa chu kỳ sau của b ộ
nhớ.

+ PSEN (Program Store Enable): PSEN là điều khiển để cho phép


bộ nhớ chương trình mở rộng và thường được nối với đến chân /OE
Bưởng Kận - Điện1- K6_Haui Page 10
Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

(Output Enable) của một EPROM để cho phép đọc các bytes mã l ệnh.
PSEN sẽ ở mức thấp trong thời gian đọc lệnh. Các mã nh ị phân c ủa
chương trình được đọc từ EPROM qua Bus và được chốt vào thanh ghi
lệnh của bộ vi điều khiển để giải mã lệnh. Khi thi hành ch ương trình trong
ROM nội, PSEN sẽ ở mức thụ động (mức cao).

+ Vcc, GND: AT89C51 dùng nguồn một chiều có dải điện áp từ 4V


– 5.5V được cấp qua chân 40 (+Vcc) và chân 20 (GND).

2. Giới thiệu tổng quan về encoder

Encoder mục đích dùng để quản lý vị trí góc của một đĩa quay, đĩa
quay có thể là bánh xe, trục động cơ, hoặc bất kỳ thiết bị quay nào cần xác
định vị trí góc.

Encoder được chia làm 2 loại, absolute Encoder và


incremental Encoder. Tạm dịch là Encoder tuyệt đối và Encoder tương đối.
Chữ Encoder tuyệt đối dịch theo nguyên văn, nhưng vì tiếng Việt mình cái
gì có 2 loại, thì loại còn lại được dịch ngược lại với lo ại kia. Cho nen d ịch
là Encoder tương đối cho incremental Encoder.

Nếu dịch sát nghĩa, khi ta đọc absolute Encoder, có nghĩa


là Encoder tuyệt đối, tức là tín hiệu ta nhận được, chỉ rõ ràng vị trí
của Encoder, chúng ta không cần xử lý gì thêm, cũng biết chính xác vị trí
của Encoder. Còn incremental Encoder, là loại Encoder chỉ có 1, 2, hoặc tối
đa là 3 vòng lỗ. Các bạn hình dung thế này, nếu bây giờ các bạn đục một lỗ
trên một cái đĩa quay, thì cứ mỗi lần đĩa quay 1 vòng, các bạn s ẽ nh ận
được tín hiệu, và các bạn đã biết đĩa quay một vòng. N ếu bây gi ờ các b ạn
có nhiều lỗ hơn, các bạn sẽ có được thông tin chi tiết hơn, có nghĩa là đĩa
quay 1/4 vong, 1/8 vòng, hoặc 1/n vòng, tùy theo số lỗ nằm trên

Bưởng Kận - Điện1- K6_Haui Page 11


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

incremental Encoder.
Cứ mỗi lần đi qua một lỗ, chúng ta phải lập trình để thi ết b ị đo đ ếm lên 1.
Do vậy, Encoder loại này có tên incremental Encoder (Encoder tăng lên 1
đơn vị).

Bưởng Kận - Điện1- K6_Haui Page 12


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Nguyên lý hoạt động cơ bản của Encoder, LED và lỗ

Nguyên lý cơ bản của Encoder, đó là một đĩa tròn xoay, quay quanh trục.
Trên đĩa có các lỗ (rãnh). Người ta dùng một đèn led để chiếu lên mặt đĩa.
Khi đĩa quay, chỗ không có lỗ (rãnh), đèn led không chi ếu xuyên qua đ ược,
chỗ có lỗ (rãnh), đèn led sẽ chiếu xuyên qua. Khi đó, phía mặt bên kia c ủa
đĩa, người ta đặt một con mắt thu. Với các tín hiệu có, hoặc không có ánh
sáng chiếu qua, người ta ghi nhận được đèn led có chiếu qua lỗ hay không.
Khi trục quay, giả sử trên đĩa chỉ có một lỗ duy nhất, cứ mỗi lần con mắt
thu nhận được tín hiệu đèn led, thì có nghĩa là đĩa đã quay đ ược m ột vòng.
Đây là nguyên lý rất cơ bản của Encoder.

Tuy nhiên, những vấn đề được đặt ra là, làm sao để xác định chính
xác hơn vị trí của đĩa quay (mịn hơn) và làm thế nào để xác định được đĩa
đang quay theo chiều nào? Đó chính là vấn đề để chúng ta tìm hiểu
về Encoder.
Hình sau sẽ minh họa nguyên lý cơ bản của hoạt động Encoder.

Bưởng Kận - Điện1- K6_Haui Page 13


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Các bạn thấy trong hình, có một đĩa mask, không quay, đó là đĩa cố định,
thực ra là để che khe hẹp ánh sáng đi qua, giúp cho việc đọc Encoder được
chính xác hơn mà thôi. Chúng ta không để cập đến đĩa mặt nạ này ở đây.
Hoạt động của Encoder

Ở đây ta sẽ xét đến incremental Encoder

Các bạn thấy rằng, cứ mỗi lần quay qua một lỗ, thì Encoder sẽ tăng một
đơn vị trong biến đếm.

Bưởng Kận - Điện1- K6_Haui Page 14


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Tuy nhiên, một vấn đề là làm sao để biết được Encoder quay hết một
vòng? Nếu cứ đếm vô hạn như thế này, thì chúng ta không thể biết được
khi nào nó quay hết một vòng. Nếu bây giờ các bạn đ ếm s ố l ỗ Encoder để
biết nó đã quay một vòng, thì nếu với Encoder 1000 lỗ chắc các bạn sẽ
đếm đến sáng luôn. Chưa kể, mỗi lần có những rung động nào đó mà ta
không quản lý được, Encoder sẽ bị sai một xung. Khi đó, nếu hoạt động lâu
dài, sai số này sẽ tích lũy, ngày hôm nay sai một xung, ngày hôm sau sai một
xung. Đến cuối cùng, có thể động cơ quay 2 vòng rồi các bạn mới đ ếm
được 1 vòng.

Để tránh điều tai hại này xảy ra, người ta đưa vào thêm một lỗ định
vị để đếm số vòng đã quay của Encoder.

Như vậy, cho dù có lệch xung, mà chúng ta th ấy rằng Encoder đi ngang qua
lỗ định vị này, thì chúng ta sẽ biết là Encoder đã bị đếm sai ở đâu đó. Nếu
vì một rung động nào đó, mà chúng ta không thấy Encoder đi qua lỗ định vị,
vậy thì từ số xung, và việc đi qua lỗ định vị, chúng ta sẽ bi ết rõ hi ện t ượng
sai của Encoder.
Đây là hình Encoder có lỗ định vị:

Bưởng Kận - Điện1- K6_Haui Page 15


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Tuy nhiên, một vấn đề lớn nữa là, làm sao chúng ta biết Encoder đang xoay
theo chiều nào? Bởi vì cho dù xoay theo chiều nào, thì tín
hiệu Encoder cũng chỉ là các xung đơn lẻ và xoay theo hai chiều đều giống
nhau.

Bưởng Kận - Điện1- K6_Haui Page 16


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Chính vì vậy, người ta đặt thêm một vòng lỗ ở giữa vòng lỗ thứ 1 và lỗ
định vị như hình sau:

Chú ý rằng, vị trí góc của các lỗ vòng 1 và các lỗ vòng 2 l ệch nhau. Các
cạnh của lỗ vòng 2 nằm ngay giữa các lỗ vòng 1 và ngược lại.

Chúng ta sẽ khảo sát tiếp vấn đề Encoder trong phần tín hiệu xung để
hiểu rõ hơn về Encoder. Tuy nhiên, các bạn sẽ thấy một điều rằng, thay vì
làm 2 vòng Encoder, và dùng 2 đèn LED đặt thẳng hàng, thì người ta ch ỉ
cần làm 1 vòng lỗ, và đặt hai đèn LED lệch nhau.

Kết quả, các bạn sẽ thường thấy các Encoder có dạng như hình 2:

Đây là dạng Encoder phổ biến nhất hiện nay

Bưởng Kận - Điện1- K6_Haui Page 17


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

3. Giới thiều về một số linh kiện khác.

3.1 Sơ lược về led 7 thanh

a. Tổng quát

Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo

hình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc
dưới, bên phải của led 7 đoạn.

8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được


nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với
mạch điện. 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng,
cũng được đưa ra ngoài để kết nối với mạch điện. Nếu led 7 đoạn có
Anode(cực +) chung, đầu chung này được nối với +Vcc, các chân còn lại
dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín
hiệu đặt vào các chân này ở mức 0. Nếu led 7 đoạn có Cathode(cực -)
chung, đầu chung này được nối xuống Ground (hay Mass), các chân còn lại
dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín
hiệu đặt vào các chân này ở mức 1.

Bưởng Kận - Điện1- K6_Haui Page 18


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần
đảm bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led.
Nếu kết nối với nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các
chân nhận tín hiệu điều khiển.

Sơ đồ vị trí các led

Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới
hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V.

Bưởng Kận - Điện1- K6_Haui Page 19


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led
b. Tương tự với các chân và các led còn lại.

b. Kết nối với Vi điều khiển

Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có
thể dùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như
vậy led 7 đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt
động sáng tắt của từng led led đơn trong nó, dữ liệu được xuất ra điều
khiển led 7 đoạn thường được gọi là "mã hiển thị led 7 đoạn". Có hai kiểu
mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode(cực +) chung và
mã dành cho led 7 đoạn có Cathode(cực -) chung. Chẳng hạn, để hiện thị
số 1 cần làm cho các led ở vị trí b và c sáng, nếu sử dụng led 7 đoạn có
Anode chung thì phải đặt vào hai chân b và c điện áp là 0V(mức 0) các chân
còn lại được đặt điện áp là 5V(mức 1), nếu sử dụng led 7 đoạn có Cathode
chung thì điện áp(hay mức logic) hoàn toàn ngược lại, tức là phải đặt vào
chân b và c điện áp là 5V(mức 1).

Bảng mã hiển thị led 7 đoạn:

• Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để
thuận tiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0
nối với chân a, Px.1 nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối
với chân h.
• Dữ liệu xuất có dạng nhị phân như sau : hgfedcba
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các
led đơn sáng ở mức 0):

Bưởng Kận - Điện1- K6_Haui Page 20


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Số hiển thị trên Mã hiển thị led 7 đoạn Mã hiển thị led 7 đoạn dạng
led 7 đoạn dạng nhị phân thập lục phân

hgfedcba

0 11000000 C0

1 11111001 F9

2 10100100 A4

3 10110000 B0

4 10011001 99

5 10010010 92

6 11000010 82

7 11111000 F8

8 10000000 80

9 10010000 90

A 10001000 88

B 10000011 83

C 11000110 C6

D 10100001 A1

E 10000110 86

F 10001110 8E

- 10111111 BF

Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung
(các led đơn sáng ở mức 1):

Bưởng Kận - Điện1- K6_Haui Page 21


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Số hiển thị trên Mã hiển thị led 7 đoạn Mã hiển thị led 7 đoạn
led 7 đoạn dạng nhị phân dạng thập lục phân

0 00111111 3F

1 00000110 06

2 01011011 5B

3 01001111 4F

4 01100110 66

5 01101101 6D

6 01111101 7D

7 00000111 07

8 01111111 7F

9 01101111 6F

A 01110111 77

B 01111100 7C

C 00111001 39

D 01011110 5E

E 01111001 79

F 01110001 71

- 01000000 40

3.2 Tụ điện.

Tụ điện là một linh kiện thụ động cấu tạo của tụ


điện là hai bản cực bằng kim loại ghép cách nhau một

Bưởng Kận - Điện1- K6_Haui Page 22


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

khoảng d ở giữa hai bản tụ là dung dịch hay chất điện môi cách đi ện có
điện dung C. Đặc điểm của tụ là cho dòng điện xoay chiều đi qua, ngăn
cản dòng điện một chiều.

Khi tụ nạp điện thì tụ sẽ bắt đầu nạp điện từ điện áp là 0V tăng dần
đến điện áp UDC theo hàm số mũ đối với th ời gian t. Đi ện áp t ức th ời trên
hai đầu tụ của tụ được tính theo công thức:

τ
Uc (t) = UDC(1-e-t/ ).

Khi tụ xả điện thì điện áp trên tụ từ trị số VDC s ẽ gi ảm dần đ ến 0V


theo hàm số mũ đối với thời gian t. Điện áp trên hai đầu t ụ khi x ả đ ược
tình theo công thức:

τ
Uc (t)= UDC.e-t/

Trong đó:

t: thời gian tụ nạp, đơn vị là giây (s).

e = 2,71828

τ =RC (đơn vị là –s)

Công thức tính điện dung của tụ:

C = ε.S/d

ε: là hằng số điện môi

s: là điện tích bề mặt tụ m2

d: là bề giày chất điện môi

3.3 Điện trở.

Bưởng Kận - Điện1- K6_Haui Page 23


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Điện trở là linh kiện thụ động có tác dụng cản


trở cả dòng và áp.Điện trở đựơc sử dụng rất
nhiều trong các mạch điện tử.
Điện trở của dây dẫn có trị số điện trở lớn hay
nhỏ tùy thuộc vào vật liệu làm dây, tỉ lệ thuận
với chiều dài và tỉ lệ nghịch với tiết diện dây dẫn. Công thức tính:

R =ρℓ/S hoặc R=U/I

Trong đó :

ρ: là điện trở suất của vật liệu, Ωm hay Ωmm2/m

S: là tiết diện của dây, m2 hay mm2

ℓ : là chiều dài của dây (m).

R : điện trở, Ohm (Ω).

Điện trở có đơn vị tính là Ohm, viết tắt là Ω.

3.4 Thạch anh dao động.

Hình dạng thực tế thạch anh dao động

Bưởng Kận - Điện1- K6_Haui Page 24


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Thạch anh dao động có nhiệm vụ tạo ra các xung điều khiển thích
hợp phục vụ cho vi điều khiển. ở đây chúng ta sử dụng thạch anh dao động
loại 12 MHZ.

3.5 Điện trở treo


Các điện trở treo được thay bằng điển trở thanh 9 chân, sử d ụng
điện trở thanh giúp việc thiết kế mạch đơn giản hơn, điện trở thanh 9
chân thực chất là 8 điện trở cùng giá trị với mỗi đ ầu c ủa đi ện tr ở đ ược
nối với nhau và đầu chung này được đưa ra ngoài bằng một chân nữa.
Khi nhìn trên điện trở thanh, phía đầu nào có d ấu ch ấm tròn, thì chân
ngoài cùng của phía đó là chân chung. Thông thường chân chung này
thường được nối với nguồn Vcc

Hình dạng thực tế và sơ đồ chân của điện trở treo

Điện trở treo có nhiệm vụ tạo điện áp ở từng mức theo yêu cầu theo
giá trị đặt tại các chân của nó.

Bưởng Kận - Điện1- K6_Haui Page 25


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

CHƯƠNG II. NỘI DUNG

1 – Lưu đồ thuật toán chương trình

Bưởng Kận - Điện1- K6_Haui Page 26


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Bưởng Kận - Điện1- K6_Haui Page 27


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

2 – Phần lập trình và mô phỏng


a – Phần lập trình

Chương trình hợp ngữ:

ORG 0H ;Khai bao dia chi bat dau CT tu 0h trong Ram noi

LJMP MAIN ; Nhay den chuong trinh chinh

ORG 0BH

LJMP INT_TIMER0 ;Nhay den nhan INT_TIMER0

ORG 1BH

LJMP INT_TIMER1 ;Nhay den nhan INT_TIMER1

ORG 3H

LJMP INT_EX0 ;Nhay den nhan INT_EXO

ORG 13H

LJMP INT_EX1 ;Nhay den nhan INT_EX1

;DINH NGHIA CAC BIEN(gan gia tri cac bien)

LOA EQU 2 ;LOA co gia tri = 2

RUN EQU 1

VONG_GIAY EQU 7H ;So vong/giay = 7h

XUNG_DU EQU 32H ;So xung du = 100

DIGIT_1 EQU 33H ;DIGIT_1 = 33H

DIGIT_2 EQU 34H ;…

DIGIT_3 EQU 35H

DIGIT_4 EQU 36H

;CHUONG TRINH CHINH

ORG 30H ;Khai bao dia chi bat dau chuong trinh chinh

MAIN:

Bưởng Kận - Điện1- K6_Haui Page 28


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

SETB IT1 ;P3.5 = 1 dau vao cua xung dem T1

SETB IT0 ;Dau vao cua xung dem T0(ngat canh xuong)

SETB EX0 ;Cho phep ngat ngoai INT0

SETB EX1 ;Cho phep ngat ngoai INT1

MOV R0,#200 ;Di chuyen R0 = 200

MOV TMOD,#00010110b ;Khoi dong TIMER 1 – Che do 16 BIT,

;(COUNTER 0 Che do AUTO_RELOAD)

MOV TH0,#-100 ;Nap byte cao cua 100

MOV TL0,#-100 ;Nap byte thap cua 100

;Tao chu ky tran cho C0 = 100 xung/vong

SETB ET0 ;Cho phep ngat T0

SETB ET1 ;Cho phep ngat T1

SETB TF1 ;Cho phep bao bo dem cua T1 bi tran(Tcon.7)

SETB TR1 ;Cho phep timer 1 chay

SETB TR0 ;Cho phep timer 0 chay

SETB EA ;Cho phep ngat toan bo(T/H CT tu bo nho trong)

JMP $

;NGAT COUNTER 0

INT_TIMER0:

INC VONG_GIAY ;Tang gia tri VONG_GIAY moi lan la 1V

RETI

;NGAT TIMER 1(tao thoi gian 1s de do)

INT_TIMER1:

JNB RUN,EXIT ;Nhay den EXIT neu RUN = 0

MOV A,40H

JZ BAT_LOA ;Nhay toi BAT_LOA neu (a) = 0

SUBB A,#16 ;Neu A > 16

Bưởng Kận - Điện1- K6_Haui Page 29


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

JC CONT ;Nhay den nhan CONT

BAT_LOA:

CPL P3.6 ;Dao P3.6

CONT:

MOV TH1,#HIGH(-5000) ;Nap byte cao cua -5000

MOV TL1,#LOW(-5000) ;Nap byte thap cua -5000

DJNZ R0,QUET_LED ;Nhay den QUET_LED neu R0 khac 0

;(Vong lap neu chua du 1s thi quet led)

MOV R0,#200

CLR TR0 ;Ngat timer 0

CLR TR1 ;Ngat timer 1

MOV XUNG_DU,TL0 ;

CALL CALCULATOR ;Chuong trinh con tinh so V/P

MOV TL0,#-100 ;Nap byte thap cua -100

SETB TR0 ;Khoi dong timer 0

SETB TR1 ;Khoi dong timer 1

RETI

QUET_LED:

CJNE R1,#0,LED_2 ;Quet LED_2 Neu R1 khac 0

MOV DPTR,#LED ;Nap dia chi gian tiep tu LED(ram ngoài) vào con

;trỏ DPTR

MOV A,DIGIT_1

MOVC A,@A+DPTR ;Chuyen du lieu trong vung nho A+DPTR vao A

MOV P2,#0 ;Xoa cong P2

MOV P0,A ;Di chuyen P0=A

MOV P2,#1 ;P2=1

INC R1 ;Tang R1+ 1 (Quet LED tiep theo)

Bưởng Kận - Điện1- K6_Haui Page 30


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

RETI

LED_2:

CJNE R1,#1,LED_3 ;Nhay den quet LED_3 neu R1 khac 1

MOV A,DIGIT_2

MOVC A,@A+DPTR ;Chuyen du lieu trong vung nho A+DPTR vao A

MOV P2,#0 ;Xoa P2

MOV P0,A

MOV P2,#2

INC R1

RETI

LED_3:

CJNE R1,#2,LED_4 ;Nhay den quet LED_4 neu R1 khac 2

MOV A,DIGIT_3

MOVC A,@A+DPTR ;Chuyen du lieu trong vung nho A+DPTR vao A

MOV P2,#0 ;Xoa P2

MOV P0,A

MOV P2,#4

INC R1

RETI

LED_4:

MOV A,DIGIT_4

MOVC A,@A+DPTR ;Chuyen du lieu trong vung nho A+DPTR vao A

MOV P2,#0 ;Xoa P2

MOV P0,A

MOV P2,#8

MOV R1,#0 ;Quay ve LED 1

EXIT:

Bưởng Kận - Điện1- K6_Haui Page 31


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

RETI

CALCULATOR:

MOV A,VONG_GIAY ;Di chuyen DL o VONG_GIAY vao A

MOV 40H,A ;Di chuyen A vao o nho 40h

MOV VONG_GIAY,#0

MOV B,#6 ;Nap TG B = 6.

MUL AB ;Nhan A voi B < 255 Nen duoc chua trong A

MOV B,#100

DIV AB ;Chia A/B

MOV DIGIT_1,A

MOV A,B

MOV B,#10

DIV AB

MOV DIGIT_2,A

MOV R3,B ;Gia tri tam thoi cua DIGIT_3

;DIGIT_4: la so (XUNG_DU*60)/100

MOV A,XUNG_DU

CLR C

SUBB A,#9CH ;A-9CH

MOV B,#10

DIV AB

MOV R4,B ;Luu lai so le vao R4

MOV B,#3

MUL AB

MOV B,#5

DIV AB

MOV R5,B

Bưởng Kận - Điện1- K6_Haui Page 32


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

ADD A,R3 ;Cong A va R3. Ket qua luu o A

MOV B,#10

DIV AB

ADD A,DIGIT_2

MOV DIGIT_2,A

MOV DIGIT_3,B

;SODU

MOV A,R5

RL A ;Xoay trai gia tri thanh ghi A

MOV R5,A

MOV A,R4

MOV B,#3

MUL AB

MOV B,#5

DIV AB

ADD A,R5

MOV DIGIT_4,A

RET

INT_EX0:

SETB RUN ;RUN =1

RETI

INT_EX1:

MOV P2,#0 ;Xoa P2

CLR RUN ;RUN =0 Dung chuong trinh

RETI

LED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

Bưởng Kận - Điện1- K6_Haui Page 33


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

b – Phần mô phỏng

RP1
RESPACK-8

C2 C1
22p 22p

2
3
4
5
6
7
8
9
X1

U1
19 39
CRYSTAL XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35

Reset
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
C3 P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
10uF 30 25

Start
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28 R2 R3 LS1
P2.7/A15
10k 10k
1 10

Stop
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13 SPEAKER
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8
P1.7 P3.7/RD
17 Q1
2N1893
AT89C51
+220V RV1
100
0%

+88.8

Sơ đồ nguyên lý của mạch

RP1
RESPACK-8

C2 C1
22p 22p
1

2
3
4
5
6
7
8
9

X1

U1
19 39
CRYSTAL XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35

Reset
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
C3 P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
10uF 30 25

Start
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28 R2 R3 LS1
P2.7/A15
10k 10k
1 10

Stop
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13 SPEAKER
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8
P1.7 P3.7/RD
17 Q1
2N1893
AT89C51
+220V RV1
100
0%

Sơ đồ trạng lúc khi mạch làm việc

Bưởng Kận - Điện1- K6_Haui Page 34


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Nguyên lý hoạt động của mạch :

Khi ta ấn nút Start hệ thống sẽ bắt đầu làm việc, động cơ quay,
Encoder gắn trên trục của động cơ sẽ cảm biến tốc độ, phát tín hiệu và
chuyển tới mạch vi điều khiển. Tại đây, tín hiệu sẽ được vi mạch xử lí và
biến đổi để hiển thị trên 4 led 7 thanh .

Khi ấn nút Stop: hệ thống dừng mọi hoạt động. Kết thúc 1 quá trình
làm việc của mạch/.

Trường hợp khi có sự cố xảy ra ta có thể ấn nút Reset để khôi phục


lại trạng thái ban đầu của mạch/.

Bưởng Kận - Điện1- K6_Haui Page 35


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

CHƯƠNG III. KẾT LUẬN

1. Ưu điểm
- Mạch có dải đo tốc độ lớn.

- Khả năng đáp ứng nhanh với sự thay đổi của biến trở.

- Mạch có thể đặt độ khống chế tốc độ động cơ, báo tốc đ ộ cao và t ốc đ ộ
thấp

- Mạch hiển thị LED 7 đoạn nên dễ dàng cho người sử dụng theo dõi tốc
độ động cơ.

- Mạch được thiết kế nhỏ gọn, dễ sử dụng, tiện lợi và có th ể dùng nhi ều
loại nguồn: pin, sạc điện thoại,… nên rất cơ động.

2. Nhược điểm
- Còn có sai số tốc độ do sai số linh kiện và những sai s ố trong khi tính toán
thiêt kế mạch nhưng chấp nhận được.

3. Kết luận

Trong giai đoạn hiện nay, các ngành kinh tế đang trên đà phát triển
mạnh mẽ, hàng loạt các công ty, xí nghiệp, cũng như các khu dân cư đã
và đang được thực hình thành, vì vậy nhu cầu ứng dụng các vi m ạ ch
đi ệ n t ử và quá trình s ả n xu ấ t ngày càng cao, đói hỏi lĩnh vực Vi điều
khiển phải đáp ứng kịp thời theo sự phát triển đó.

Trong thời gian làm bài tập lớn này, chúng em đã tìm hiểu rất kĩ và
nghiên cứu các tài liệu cần thiết, và đặc biệt là dưới sự hướng dẫn
nhiệt tình của cô giáo hướng dẫn Ths.NGUY Ễ N THU HÀ đến nay em
đã hoàn thành bài tập này.

Bưởng Kận - Điện1- K6_Haui Page 36


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Với những vốn kiến thức tiếp thu được trong những kì học đã qua, sự
nỗ lực của cả nhóm, tuy nhiên hạn chế về kinh nghiệm thực tế, tài
liệu tham khảo, thời gian thực hiện đồ án nên quyển đồ án này không
thể tránh khỏi những thiếu sót. Kính mong thầy hướng dẫn cùng các
thầy cô trong hội đồng bộ môn góp ý xây dựng cho quyển bài tập
lớn này hoàn thiện hơn!

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

Hà Nội, Ngày 04/04/2013

Bưởng Kận - Điện1- K6_Haui Page 37


Bài tập lớn: Vi xử lí GVHD: Ths. NGUY ỄN
THU HÀ

Tài liệu tham khảo


1. Kỹ thuật vi điều kiển – Đỗ Duy Phú.

2. Cấu trúc và lập trình họ vi điều khiển 8051 – Nguyễn Tăng Cường,
Phan Quốc Thắng.

3. Các tài liệu trên internet.

Bưởng Kận - Điện1- K6_Haui Page 38

You might also like