Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download các bài tập lớn với đề tài: Đo tốc độ động cơ dùng 8051, cho các bạn có thể tham khảo
Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
1. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 1
Mục lục
Nội dung
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
CHƯƠNG II. NỘI DUNG ....................................................................... 27
1 – Lưu đồ thuật toán chương trình ........................................................ 27
2 – Phần lập trình và mô phỏng.............................................................. 29
CHƯƠNG III. KẾT LUẬN....................................................................... 37
1. Ưu điểm ............................................................................................ 37
2. Nhược điểm....................................................................................... 37
Tài liệu tham khảo ........................................Error! Bookmark notdefined.
2. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 2
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 đòihỏ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 độ độ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
3. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 3
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 03/12/2017
4. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 4
Đề tà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 .
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 ?
5. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 5
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
6. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 6
a – Sơ đồ khối và sơ đồ chân của AT89C51
Hình 1 – Sơ đồ khối của AT89C51
OTHER
REGISTER
128 byte
RAM
128 byte
RAM
80328052
ROM
0K:
80318032
4K:8951
8K:8052
INTERRUPT
CONTROL
INT1
INT0
SERIAL PORT
TEMER0
TEMER1
TEMER2
80328052
CPU
OSCILATOR
BUS CONTROL
I/O PORT
SERIAL
PORT
EA
RST
ALE
PSEN P0 P1 P2 P3
AddressData
TXD RXD
TEMER2
80328052
TEMER1
TEMER1
7. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 7
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
8. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 8
+ 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
9. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 9
+ 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
10. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 10
+ 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 (ProgramStore 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 (Output
Enable) của một EPROM để cho phép đọc các bytes mã lệnh. PSEN sẽ ở mức
11. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 11
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 đíchdù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 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
12. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 12
vậy, Encoder loại này có tên incremental Encoder (Encoder tăng lên 1 đơn
vị).
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
13. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 13
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.
14. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 14
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.
Các bạn thấy trong hình, có một đĩamask, không quay, đó là đĩacố đị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.
15. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 15
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.
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
16. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 16
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ị:
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
17. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 17
chỉ là các xung đơn lẻ và xoay theo hai chiều đều giống nhau.
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
18. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 18
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ònlạ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.
19. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 19
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.
20. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 20
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ònlạ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ạncó 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):
21. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 21
Số hiển thị trên
led 7 đoạn
Mã hiển thị led 7 đoạn
dạng nhị phân
Mã hiển thị led 7 đoạn dạng
thập lục phân
h g f e d c b a
0 1 1 0 0 0 0 0 0 C0
1 1 1 1 1 1 0 0 1 F9
2 1 0 1 0 0 1 0 0 A4
3 1 0 1 1 0 0 0 0 B0
4 1 0 0 1 1 0 0 1 99
5 1 0 0 1 0 0 1 0 92
6 1 1 0 0 0 0 1 0 82
7 1 1 1 1 1 0 0 0 F8
8 1 0 0 0 0 0 0 0 80
9 1 0 0 1 0 0 0 0 90
A 1 0 0 0 1 0 0 0 88
B 1 0 0 0 0 0 1 1 83
C 1 1 0 0 0 1 1 0 C6
D 1 0 1 0 0 0 0 1 A1
22. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 22
E 1 0 0 0 0 1 1 0 86
F 1 0 0 0 1 1 1 0 8E
- 1 0 1 1 1 1 1 1 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):
Số hiển thị trên
led 7 đoạn
Mã hiển thị led 7 đoạn
dạng nhị phân
Mã hiển thị led 7 đoạn dạng
thập lục phân
0 0 0 1 1 1 1 1 1 3F
1 0 0 0 0 0 1 1 0 06
2 0 1 0 1 1 0 1 1 5B
3 0 1 0 0 1 1 1 1 4F
4 0 1 1 0 0 1 1 0 66
5 0 1 1 0 1 1 0 1 6D
6 0 1 1 1 1 1 0 1 7D
7 0 0 0 0 0 1 1 1 07
8 0 1 1 1 1 1 1 1 7F
9 0 1 1 0 1 1 1 1 6F
23. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 23
A 0 1 1 1 0 1 1 1 77
B 0 1 1 1 1 1 0 0 7C
C 0 0 1 1 1 0 0 1 39
D 0 1 0 1 1 1 1 0 5E
E 0 1 1 1 1 0 0 1 79
F 0 1 1 1 0 0 0 1 71
- 0 1 0 0 0 0 0 0 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 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:
24. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 24
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ở.
Đ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
25. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 25
ℓ : 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
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
26. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 26
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ó.
27. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 27
CHƯƠNG II. NỘI DUNG
1 – Lưu đồ thuật toán chương trình
29. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 29
2 – Phần lập trình và mô phỏng
a – Phần lập trình
#include<regx52.h>
#define Outled P0
#define true 1
#define false 0
#define THx 15536/256
#define TLx 15536%256
sbit E0 = P1^0;
sbit E1 = P1^1;
sbit E2 = P1^2;
sbit E3 = P1^3;
sbit L0 = P2^0;
sbit L1 = P2^1;
sbit L2 = P2^2;
sbit L3 = P2^3;
sbit L4 = P2^1;
sbit L5 = P2^2;
sbit L6 = P2^3;
sbit L7 = P2^7;
sbit Sp = P1^5;
bit chuki=false;
unsigned char k;
unsigned int Soxung,Demxung,Vong,n;
unsigned char time=0;
unsigned char
CharCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//for
number 0->9
void Sys_init();
void Display(unsigned int dem);
/**************************************************************
30. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 30
****************
Chuong trinh ngat INT0
**************************************************************
****************/
void NGAT0(void) interrupt 0
{
Demxung++;
//L7=!L7;
}
/**************************************************************
****************
Chuong trinh ngat timer1 thoi gian tran 0.05s
**************************************************************
****************/
void ngat_time1(void) interrupt 3
{
time++ ;//tang bien dem thoi gian
if(Demxung>0) L7=!L7;
else if(Demxung==0) {L7=1;chuki=true;}
if(time==80)//TIME = 4s chuan
{
TR1=0; //dung bo dinh thoi
chuki=true; //bao het thoi gian dem xung
time=0;
}
TH1=THx;TL1=TLx;//dat cho lan sau
}
/**************************************************************
****************
Chuong trinh tre
**************************************************************
****************/
void delay_us(unsigned long int d)
{
for(n=0;n<d;n++);
31. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 31
}
/**************************************************************
****************
Chuong trinh hien thi Led 7 doan
**************************************************************
****************/
void Display(unsigned int dem)
{
if(dem>=9999)//hien thi 4 so khi gia tri hien thi > 9999
{ dem=9999;
L0=L1=L2=L3=0;
E0=0;
Outled=CharCode[dem/1000];
delay_us(1);
E0=1;
P0=0XFF;
E1=0;
Outled=CharCode[(dem%1000)/100];
delay_us(1);
E1=1;
P0=0XFF;
E2=0;
Outled=CharCode[(dem%100)/10];
delay_us(1);
E2=1;
P0=0XFF;
E3=0;
Outled=CharCode[dem%10];
delay_us(1);
E3=1;
P0=0XFF;
32. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 32
}
else if((dem<=999)&&(dem>99)) //hien thi 3 so khi gia tri hien thi <999
{
L0=L1=L2=0;L3=1;
E0=1;
E1=0;
Outled=CharCode[(dem%1000)/100];
delay_us(1);
E1=1;
P0=0XFF;
E2=0;
Outled=CharCode[(dem%100)/10];
delay_us(1);
E2=1;
P0=0XFF;
E3=0;
Outled=CharCode[dem%10];
delay_us(1);
E3=1;
P0=0XFF;
}
else if((dem<=99)&&(dem>9)) //hien thi 2 so khi gia tri hien thi <99
{
L0=L1=0;L2=L3=1;
E1=E0=1;
E2=0;
Outled=CharCode[(dem%100)/10];
delay_us(1);
E2=1;
P0=0XFF;
E3=0;
Outled=CharCode[dem%10];
33. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 33
delay_us(1);
E3=1;
P0=0XFF;
}
else if((dem<=9))//hien thi 1 so khi gia tri hien thi <9
{
L0=0;L1=L2=L3=L4=L5=L6=1;
E2=E1=E0=1;
E3=0;
Outled=CharCode[dem%10];
delay_us(1);
E3=1;
P0=0XFF;
}
}
/**************************************************************
****************
Chuong trinh chinh
**************************************************************
****************/
void main(void)
{
Sys_init(); // goi chuong trinh khoi tao
P2=0X00;
Sp=0;
delay_us(8000);
Sp=1;
P2=0XFF;
while(true)
{
while(!chuki)
{
Vong=(Soxung/200)*15; // soxung(trong 4s)*15 = so vong trong 1phut
Display(Vong);
};
34. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 34
Soxung= Demxung;//luu gia tri so xung vua dem
Demxung=0; //dat lai so xung
TR1=1; //dat lai thoi gian
chuki=false;
};
}
/**************************************************************
****************
Chuong trinh khoi tao
**************************************************************
****************/
void Sys_init()
{
TMOD=0x10; //cho time1 chay
EX0=1; //cho phep ngat ngoai 1
IT0=1; //cho phep ngat suonam
TH1=THx;TL1=TLx;//dat gia tri cho time 1
TR1=1; //dat thoi gian bat dau chay
ET1=1; //cho phep ngat time 1
EA=1; //cho phep ngat toan cuc
}
35. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 35
b – Phần mô phỏng
Sơ đồ nguyên lý của mạch
Sơ đồ trạng lúc khi mạch làm việc
36. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 36
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/.
37. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 37
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 đến nay em đã hoàn thành bài tập này.
38. Bài tập lớn: Vi xử lí trong ĐL và ĐK
Page 38
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 06/12/2017