Báo cáo đồ án sử dụng vi điều khiển PIC 16f877A làm chip điều khiển trung tâm | Trường Đại học Công Nghệ Đông Á
Báo cáo đồ án sử dụng vi điều khiển PIC 16f877A làm chip điều khiển trung tâm | Trường Đại học Công Nghệ Đông Á. Tài liệu gồm 10 trang, giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!
Preview text:
Báo cáo đồ án môn học I Chương I :
Giới thiệu về đề tài
I.Tóm tắt đề tài đồ án môn học I
1. Giới thiệu các module mạch của đề tài
Đề tài đồ án môn học I c a em là : “ Điều khiển ON_OFF tốc độ động cơ DC”. Với yêu
cầu đề tài như trên, hướng thực hiện đề tài c a em được tóm tắt như sau:
- Sử dụng vi điều khiển PIC16F877A làm chip điều khiển trung tâm.
- Xây dựng bàn phím gồm 13 phím. Trong đó:
+1 phím để đồng th i reset vi điều khiển và dừng động cơ DC
+ 10 phím ng với 10 số từ 0 đến 9 để ngư i dùng nhập tốc độ đặt
+ 1 phím ra lệnh động cơ quay thuận (FORWARD)
+ 1 phím ra lệnh động cơ quay ngược (REVERSE)
- Sử dụng 8 led 7 đoạn. Trong đó
+ 4 led dùng để ngư i dùng nhập tốc độ đặt mong muốn
+ 4 led để ngư i dùng quan sát tốc độ đo trực tiếp từ động cơ
- Sử dụng driver cầu H L293D trực tiếp điều khiển chiều quay, đóng ngắt động cơ DC
- Đối tượng điều khiển là động cơ DC có gắn encoder đồng trục.
- Ngồi ra, trên mạch còn có các 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ị hiển thị nói trên.
Tất cả các module mạch trên sẽ được em trình bày rõ trong các phần tiếp theo c a đề tài. 1
Báo cáo đồ án môn học I
2. Sơ đồ nguyên lý kết nối các module trong mạch
3. Cách vận hành mạch
+ Bước 1: ta sẽ nhập tốc độ đặt từ bàn phím. Tốc độ đặt này gồm có 4 chữ số, sẽ hiện
lên thông qua 4 led. Ta phải nhấn đ 4 con số thì mạch mới hoạt động được, nếu không
nhấn đ mạch sẽ “treo đó”, ch ngư i dùng nhấn số tiếp. Nếu nhập sai tốc độ, ta có thể
nhấn phím reset để nhập tốc độ lại từ đầu. Nếu nhấn nhầm sang các phím RESERVE hoặc
FORWARD trước khi nhập đ 4 số phần cài đặt tốc độ thì ngư i dùng hồn tồn có thể
nhấn lại mà không ảnh hư ng đến kết quả.
+ Bước 2: ta nhấn tiếp RESERVE hay FORWARD cho động cơ chạy theo ý muốn.
Trong quá trình động cơ quay, vi điều khiển sẽ nhận liên tục nhận xung phát ra từ
encoder, tính tốn ra tốc độ và so sánh với tốc độ đặt ban đầu để ra quyết định ON_OFF
động cơ. Tốc độ nhận về sẽ được so sánh với tốc độ đặt c 1ms một lần. Ngồi ra c 1s thì 2
Báo cáo đồ án môn học I
vi điều khiển sẽ cập nhật tốc độ thực c a động cơ, thể hiện ra 4 led 7 đoạn để ngư i dùng
có thể theo dõi và đánh giá.
II. Các yêu cầu của đề tài
1. Thông qua đề tài, làm quen với cách th c điều khiển đối tượng động cơ.
2. Tìm hiểu thực tế các linh kiện, các loại IC, hoạt động c a các loại cảm biến….
3. Thiết kế, thi công mạch điều khiển và mạch động lực điều khiển động cơ DC
4. Viết chương trình cho vi điều khiển PIC16F877A thực hiện thành công theo yêu cầu đề ra.
5. Đánh giá về sai số ,chất lượng hệ thống điều khiển
6. Tìm hiểu các hướng phát triển c a đề tài, nâng cao chất lượng c a hệ thống Chương II :
Giới thiệu về các linh kiện, phần tử sử dụng trong mạch
I. Vi điều khiển PIC16F877A 3
Báo cáo đồ án môn học I
1. Khái quát về vi điều khiển PIC16F877A
1.1.Sơ đồ chân và sơ đồ nguyên lý của PIC16F877A Sơ đồ chân Sơ đồ nguyên lý 4
Báo cáo đồ án môn học I
1.2. Nhận xét
Từ sơ đồ chân và sơ đồ nguyên lý trên, ta rút ra các nhận xét ban đầu như sau :
- PIC16F877A có tất cả 40 chân
- 40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chan
thạch anh và một chân dùng để RESET vi điều khiển.
- 5 port c a PIC16F877A bao gồm : + PORTB : 8 chân + PORTD : 8 chân + PORTC : 8 chân + PORTA : 6 chân + PORT E : 3 chân
1.3. Khái quát về chức năng của các port trong vi điều khiển PIC16F877A PORTA 5
Báo cáo đồ án môn học I
PORTA gồm có 6 chân. Các chân c a PortA, ta lập trình để có thể thực hiện được
ch c năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ ngoại vi vào vi điều khiển.
Việc xuất nhập dữ liệu PIC16F877A khác với họ 8051. tất cả các PORT c a
PIC16F877A, mỗi th i điểm chỉ thực hiện được một ch c năng :xuất hoặc nhập. Để
chuyển từ ch c năng này nhập qua ch c năng xuất hay ngược lại, ta phải xử lý bằng phần
mềm, không như 8051 tự hiểu lúc nào là ch c năng nhập, lúc nào là ch c năng xuất.
Trong kiến trúc phần c ng c a PIC16F877A, ngư i ta sử dụng thanh ghi TRISA địa
chỉ 85H để điều khiển ch c năng I/O trên. Muốn xác lập các chân nào c a PORTA là
nhập (input) thì ta set bit tương ng chân đó trong thanh ghi TRISA. Ngược lại, muốn
chân nào là output thì ta clear bit tương ng chân đó trong thanh ghi TRISA. Điều này
hồn tồn tương tự đối với các PORT còn lại
Ngồi ra, PORTA còn có các ch c năng quan trọng sau :
- Ngõ vào Analog c a bộ ADC : thực hiện ch c năng chuyển từ Analog sang Digital
- Ngõ vào điện thế so sánh
- Ngõ vào xung Clock c a Timer0 trong kiến trúc phần c ng : thực hiện các nhiệm
vụ đếm xung thông qua Timer0…
- Ngõ vào c a bộ giao tiếp MSSP (Master Synchronous Serial Port) PORTB
PORTB có 8 chân. Cũng như PORTA, các chân PORTB cũng thực hiện được 2 ch c
năng : input và output. Hai ch c năng trên được điều khiển bới thanh ghi TRISB. Khi
muốn chân nào c a PORTB là input thì ta set bit tương ng trong thanh ghi TRISB,
ngược lại muốn chân nào là output thì ta clear bit tương ng trong TRISB.
Thanh ghi TRISB còn được tích hợp bộ điện tr kéo lên có thể điều khiển được bằng chương trình. PORTC
PORTC có 8 chân và cũng thực hiện được 2 ch c năng input và output dưới sự điều
khiển c a thanh ghi TRISC tương tự như hai thanh ghi trên. 6
Báo cáo đồ án môn học I
Ngồi ra PORTC còn có các ch c năng quan trọng sau :
- Ngõ vào xung clock cho Timer1 trong kiến trúc phần c ng
- Bộ PWM thực hiện ch c năng điều xung lập trình được tần số, duty cycle: sử
dụng trong điều khiển tốc độ và vị trí c a động cơ v.v….
- Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART PORTD
PORTD có 8 chân. Thanh ghi TRISD điều khiển 2 ch c năng input và output c a
PORTD tương tự như trên. PORTD cũng là cổng xuất dữ liệu c a chuẩn giao tiếp song
song PSP (Parallel Slave Port). PORTE
PORTE có 3 chân. Thanh ghi điều khiển xuất nhập tương ng là TRISE. Các chân c a
PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển c a chuẩn giao tiếp PSP.
1.4. Tại sao sử dụng PIC16F877A mà không dùng 8051 cho đề tài
Trong chương trình đào tạo c a Trư ng Đại Học Bách Khoa, em được học và thí
nghiệm trên kit c a vi điều khiển 8051. Họ vi điều khiển 8051 là một họ vi điều khiển
điển hình, phổ biến, dễ sử dụng và lập trình, rất phù hợp với sinh viên mới bắt đầu làm
quen đến lập trình cho vi điều khiển. Tuy nhiên, cũng trong quá trình nghiên c u và thí
nghiệm với các chip điều khiển thuộc họ 8051 ( điển hình là 89C51, 89052…), em nhận
thấy nó có những nhược điểm cơ bản sau đây :
- Bộ nhớ Ram nội có dung lượng thấp , chỉ có 128 bytes. Điều nàý gây tr ngại lớn khi
thực hiện các dự án lớn với vi điều khiển 8051. Để khắc phục ta phải m rộng thêm làm
hạn chế số chân dành cho các ng dụng c a vi điều khiển.
- Số lượng các bộ giao tiếp với ngoại vi được tích hợp sẵn trong 8051 ít, không có các
bộ ADC, PWM, truyền dữ liệu song song…. Khi muốn sử dụng các ch c năng này, ta
phải sử dụng thêm các IC bên ngồi, gây tốn kém và khó thực hiện vì dễ bị nhiễu nếu
không biết cách chống nhiễu tốt. 7
Báo cáo đồ án môn học I
- Ngồi ra còn một số hạn chế khác như số lượng Timer c a 8051 ít, chỉ có 2 Timer.
Chính điều này làm cho giải thuật khi viết chương trình gặp khó khăn.
Những nhược điểm căn bản trên c a 8051, em đã quyết định không dùng vi điều khiển
này cho đề tài “điều khiển tốc độ động cơ” c a mình.
Với kỳ vọng dựa trên nền tản kiến th c tiếp thu được khi học vi điều khiển 8051, em
rất muốn tự bản thân tìm hiểu một họ vi điều khiển mới mạnh hơn, đầy đ tính năng hơn
để trước mắt là phucï vụ tốt cho đồ án , luận văn, sau nữa là cho các dự án trong tương lai
nếu em có dịp sử dụng vi điều khiển trong dự án c a mình.
Trong quá trình tím kiếm một họ vi điều khiển mới thõa yêu cầu như em đã trình bày
trên. Em nhận thấy PIC c a hãng Microchip là một lựa chọn lý tư ng. Chỉ cần xem xét
qua các port và ch c năng c a các port mà em đã trình bày mục 1.3, ta cũng dễ dàng
nhận ra những ưu điểm vượt trội c a vi điều khiển này so với 8051.
Giá c a PIC16F877A mà em mua trên thị hiện trư ng là 50000 đồng, mắc hơn 2 lần
giá một con chip họ 8051. Việc sử dụng PIC16F877A trong một đề tài không lớn như đề
tài “điều khiển tốc độ động cơ” có thể là một lãng phí. Tuy nhiên với mục đích nâng cao
kiến th c, nâng cao khả năng tự tìm tòi ,học hỏi qua các kênh thông tin giáo dục khác
nhau, nhằm phục vụ mục đích lâu dài sau này, thì đây là một sự lựa chọn hồn tồn xác
đáng. Và trên thực tế, trong một th i gian tương đối ngắn, em đã nắm vững được những
mãng kiến th c cơ bản nhất để sử dụng nó tốt trong đề tài c a mình.
Trên là tồn bộ nguyên do tại sao em chọn vi điều khiển PIC16F877A cho đề tài đồ án môn học I c a mình.
phần tiếp theo c a báo cáo đồ án môn học I em sẽ đi sâu giới thiệu những phần mà em
đã nghiên c u được để phục vụ cho việc thực hiện đồ án c a mình.
2. Tìm hiểu về vi điều khiển PIC16F877A
2.1. Cấu trúc phần cứng của PIC16F877A
PIC là tên viết tắt c a “ Programmable Intelligent computer” do hãng General
Instrument đặt tên cho con vi điều khiển đầu tiên c a họ. Hãng Micrchip tiếp tục phát
triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau. 8
Báo cáo đồ án môn học I
PIC16F887A là dòng PIC khá phổ biến, khá đầy đ tính năng phục vụ cho hầu hết tất
cả các ng dụng thực tế. Đây là dòng PIC khá dễ cho ngư i mới làm quen với PIC có thể
học tập và tạo nền tản về họ vi điều khiển PIC c a mình.
Cấu trúc tổng quát c a PIC16F877A như sau : - 8K Flash Rom - 368 bytes Ram - 256 bytes EFPROM
- 5 port vào ra với tín hiệu điều khiển độc lập
- 2 bộ định th i Timer0 và Timer2 8 bit
- 1 bộ định th i Timer1 16 bit có thể hoạt động cả chế độ tiết kiệm năng lượng
với nguồn xung clock ngồi
- 2 bộ Capture/ Compare/ PWM
- 1 bộ biến đổi Analog -> Digital 10 bit, 8 ngõ vào
- 2 bộ so sánh tương tự
- 1 bộ định th i giám sát (Watch Dog Timer)
- 1 cổng song song 8 bit với các tín hiệu điều khiển - 1 cổng nối tiếp - 15 nguồn ngắt 9
Báo cáo đồ án môn học I
Sơ đồ khối vi điều khiển 16F877A 10