Thiết kế mô hình hệ thống điều khiển thiết bị điện thông minh dùng cho các phòng họp
Trang 1CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
LỜI CAM ĐOAN
1.Những nội dung trong khóa luận này là do chúng em thực hiện dưới sự hướng dẫn trực tiếp của giảng viên hướng dẫn:
2 Mọi tham khảo dùng trong khóa luận đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn toàn trách nhiệm.
Sinh viên thực hiện
Trang 2LỜI CẢM ƠN
Trước hết, em xin chân thành cảm ơn thầy sự chỉ bảo tận tình cùng những
tài liệu quý báu của Thầy đã giúp em hoàn thành luận văn này Em cũng xinđược gửi lời cảm ơn đến các Thầy, Cô giáo khoa Khoa học và công nghệ,Trường Đại học Phan Châu Trinh đã tạo mọi điều kiện học tập và nghiên cứucho em trong suốt bốn năm học vừa qua Xin cảm ơn các bạn học và nhữngngười thân đã luôn giúp đỡ, động viên và chia sẻ những lúc mình khó khăntrong thời gian thực hiện luận văn này
Do thời gian còn hạn chế và cũng chịu nhiều yếu tố tác động nên khoáluận sẽ không tránh khỏi sai sót Em rất mong sẽ nhận được những ý kiến đónggóp xây dựng của Thầy, Cô và các bạn để có thể tiếp tục phát triển hướngnghiên cứu của em
Em xin chân thành cảm ơn!
Trang 3MỞ ĐẦU
I Lý do chọn đề tài
Ngày nay, việc ứng dụng cho các hệ thống nhúng ngày càng trở nên phổbiến: từ những ứng dụng đơn giản như điều khiển một chốt đèn giao thông địnhthời, đếm sản phẩm trong một dây chuyền sản xuất, điều khiển tốc độ động cơ điệnmột chiều, thiết kế một biển quảng cáo dùng Led ma trận, một đồng hồ thời gianthực….đến các ứng dụng phức tạp như hệ thống điều khiển robot, bộ kiểm soáttrong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân
Các hệ thống tự động trước đây sử dụng nhiều công nghệ khác nhau như các
hệ thống tự động hoạt động bằng nguyên lý khí nén, thủy lực, rơle cơ điện, mạchđiện tử số, các thiết bị máy móc tự động bằng các cam chốt cơ khí các thiết bị, hệthống này có chức năng xử lý và mức độ tự động thấp so với các hệ thống tự độnghiện đại được xây dựng trên nền tảng của các hệ thống nhúng
Chính vì các lý do nêu trên, em đã chọn đề tài nghiên cứu cho khóa luận tốt
nghiệp của mình là : “Thiết kế mô hình hệ thống điều khiển thiết bị điện thông
minh dùng cho các phòng họp ”.
II Mục đích nghiên cứu
- Phân tích thiết kế một hệ thống điều khiển thiết bị điện cho phòng họp, cóthể dễ dàng chuyển đổi các chế độ bằng điều khiển từ xa dùng IR, RF, bước đầu xâydựng một hệ thống phòng họp thông minh
- Xây dựng mô hình thiết bị điều khiển thiết bị điện cho phòng họp dùng PIC16F877A có giao tiếp với module IR và RF
III Phạm vi nghiên cứu
- Nghiên cứu cấu trúc của các hệ thống điều khiển thiết bị điện cho phònghọp trong thực tế
- Nghiên cứu về vi điều khiển PIC16F877A và ứng dụng thiết kế mạch điều
Trang 4- Nghiên cứu xây dựng mô hình điều khiển thiết bị điện của phòng họp
IV Phương pháp nghiên cứu
- Nghiên cứu lý thuyết về cấu tạo hệ thống điều khiển thiết bị điện cho phònghọp
- Nghiên cứu lý thuyết về cấu trúc PIC16F877A và cách lập trìnhPIC16F877A bằng phần mềm CCS
- Nghiên cứu thiết kế các mạch điều khiển : mạch trung tâm, modul thu phát
IR, modul thu phát RF, mạch rơle để đóng ngắt các thiết bị điện trong phòng họp …
V Ý nghĩa khoa học và thực tiễn
Đề tài mang ý nghĩa thực tiễn cao, góp một công cụ và phương pháp có thể sửdụng vào thiết kế các hệ thống phòng họp thông minh
VI Cấu trúc khóa luận
Ngoài phần mở đầu, kết luận và hướng phát triển đề tài, danh mục tài liệu thamkhảo nội dung chính của khóa luận được chia thành 4 chương như sau:
Chương 1 Tổng quan về hệ thống điều khiển thiết bị điện cho phòng họp
Chương 2 Tổng quan về vi điều khiển PIC16F877A
Chương 3 Thiết kế chế tạo hệ thống điều khiển thiết bị điện cho phòng họp Chương 4 Thiết kế phần mềm
Trang 5MỤC LỤC
Nhiệm vụ đồ án tốt nghiệp
Lời cam đoan
Lời cảm ơn
Mở đầu
Mục lục
Danh mục các ký tụ viết tắt
Danh mục hình vẽ
Danh mục các bảng
Chương 1 TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN CHO
PHÒNG HỌP 1
1.1 Tổng quan về hệ thống chiếu sáng cho phòng họp 1
1.2 Lựa chọn giải pháp công nghệ 3
1.2.1 Giải pháp công nghệ 3
1.2.2 Giải pháp thiết kế 4
1.2.3 Các yêu cầu 4
1.2.4 Giới hạn hạn định 5
1.3 Kết luận chương 5
Chương 2 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC16F877A 6
2.1 Giới thiệu về vi điều khiển PIC 6
2.2 Tổng quan vi điều khiển PIC16F877A 7
2.2.1 Sơ đồ chân của PIC16F877A 7
2.2.2 Các thông số về vi điều khiển PIC16F877A 7
2.3 Sơ đồ khối của vi điều khiển PIC16F877A 9
2.3.1 Tổ chức bộ nhớ 9
2.3.1.1 Bộ nhớ chương trình 10
Trang 62.3.1.3 Thanh ghi chức năng đặc biệt 12
2.3.1.4 Stack 13
2.3.2 Các cổng xuất nhập 14
2.3.3 Bộ đếm Timer0 19
2.3.4 Bộ đếm Timer1 19
2.3.5 Bộ đếm Timer2 20
2.3.6 Bộ chuyển tín hiệu ADC 22
2.3.7 Bộ so sánh Comparator 23
2.3.8 CCP 25
2.3.9 Giao tiếp nối tiếp 26
2.3.9.1 Chuẩn giao tiếp USART 26
2.3.9.2 MSSP ( Master Synchronous Serial Port) 30
2.9 Kết luận chương 34
Chương 3 THIẾT KẾ CHẾ TẠO HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN CHO PHÒNG HỌP 35
3.1 Giới thiệu 35
3.2 Giới thiệu một số linh kiện sử dụng trong đồ án 35
3.2.1 Module thu phát hồng ngoại(IR) 35
3.2.1.1 Khái niệm tia hồng ngoại 35
3.2.1.2 Cặp thu phát hồng ngoại PT2248 và PT2249 36
3.2.1.3 Led thu hồng ngoại 36
3.2.2 Rơle 37
3.2.3 LM 35 38
3.3 Sơ đồ khối toàn hệ thống 38
3.4 Tính toán và thiết kế cho từng khối 39
3.4.1 Khối xử lý 39
3.4.2 Khối cảm biến 41
Trang 73.4.2.1 Cảm biến đo nhiêt độ: 41
3.4.2.2 Khối cảm biến hồng ngoại: 43
3.4.3 Khối hiển thị: 44
3.4.3.1 Khối hiển thị dùng led 7 đoạn: 44
3.4.4 Bộ điều khiển bằng tay 47
3.4.4.1 Giới thiệu 47
3.4.4.2 Sơ đồ nguyên lý của bộ thu phát RF 47
3.4.5 Bộ điều khiển bằng tay dùng IR 49
3.4.6 Mạch chấp hành lệnh Rơle 51
3.4.7 Sơ đồ nguyên lý mô phỏng toàn hệ thống 52
3.5 Mô hình hệ thống điều khiển thiết bị điện thông minh dùng cho các phòng họp 53
3.6 Kết luận chương 53
Chương 4 THIẾT KẾ PHẦN MỀM 54
4.1 Phần mềm CCS 54
4.1.1 Giới thiệu phần mềm CCS 54
4.1.2 Sử dụng CCS 55
4.2 Lưu đồ thuật toán 61
KẾT LUẬN 62
1 Kết luận 62
2 Khả năng ứng dụng của đề tài 62
3 Hướng phát triển của đề tài 62
DANH MỤC TÀI LIỆU THAM KHẢO 63 Phụ lục
Trang 8DANH M ỤC CÁC KÝ TỰ VIẾT TẮT
PIC: Programmable intelligen computer
EEPROM : Electrically Erasable Programmable Read-Only Memory
LCD: liquid crystal display
ADC: Analog-to-digital converter
IC: integrated circuit
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Đèn thông minh Smartlight
Hình 1.2 Hệ thống camera giám sát
Hình 1.3 Hệ thống bật tắt đèn thông minh dùng IC số
Hình 2.1 Sơ đồ chân của PIC16F877A
Hình 2.2 Sơ đồ khối vi điều khiển PIC16F877A
Hình 2.3 Bộ nhớ chương trình PIC16F877A
Hình 2.4 Sơ đồ bộ nhớ dữ liệu của PIC16F877A
Hình 2.5 Sơ đồ khối của Timer0
Hình 2.6 Sơ đồ khối của 1 timer
Hình 2.7 Sơ đồ khối của Timer2
Hình 2.8 Sơ đồ khối bộ chuyển đổi ADC
Hình 2.9 Sơ đồ khối bộ tạo điện áp so sánh
Hình 2.10 Sơ đồ khối của khối truyền dữ liệu USART
Hình 2.11 Sơ đồ khối của khối nhận dữ liệu USRAT
Hình 2.12 Sơ đồ kết nối của chuẩn giao tiếp SPI
Hình 2.13 Sơ đồ khối MSSP( I2C mode)
Hình 3.1 Hình dáng cặp thu phát hồng ngoại
Hình 3.2 Hình dáng led thu hồng ngoại
Hình 3.3 Hình dáng và sơ đồ của Rơle
Hình 3.4 Hình minh họa sơ đồ khối của role điện từ
Hình 3.5 Cảm biến LM 35
Hình 3.6 Sơ đồ tổng quát hệ thống bật tắt đèn thông minh
Hình 3.7 Sơ đồ mạch vi điều khiển PIC 16F877A
Trang 10Hình 3.8 Sơ đồ mạch in của khối điều khiển
Hình3.9 Sơ đồ nguyên lý của cảm biến LM35
Hình 3.10 Sơ đồ nguyên lý mạch cảm biến đo nhiệt độLM35
Hình 3.11 Sơ đồ layout mạch cảm biến đo nhiệt độ LM35
Hình 3.12 Mô phỏng hoạt động của LM35 bằng Proteus
Hình 3.13 Sơ đồ nguyên lý mạch cảm biến hồng ngoại Hình 3.14 Sơ đồ chân LED 7 đoạn đôi
Hình 3.15 Sơ đồ nguyên lý khối hiển thị LED 7 đoạn đôi
Hình 3.16 Sơ đồ layout khối hiển thị LED 7 đoạn đôi
Hình 3.17 Sơ đồ nguyên lý khối hiển thị LCD
Hình 3.18 Sơ đồ layout khối hiển thị LCD
Hình 3.19 Sơ đồ mạch phát dùng IC PT 2262
Hình 3.20 Sơ đồ mạch thu dùng IC PT 2272
Hình 3.21 Mô phỏng trên Proteus 7 Professional
Hình 4.1 Mở cửa sổ PIC Wizard
Hình 4.2 Lưu file đã tạo
Hình 4.3 Mở cửa sổ General
Hình 4.4 Cấu hình LCD dành cho chip PIC 16F877A
Hình 4.5 Lựa chọn cấu hình cho bộ đếm định thời
Hình 4.6 Hình Tab Analog
Hình 4.7 Tab Other
Hình 4.8 Tab Interrupts
Hình 4.9 Tab Driver
Trang 11DANH MỤC CÁC BẢNG
Bảng 1.1 Sơ đồ chân của vi điều khiển PIC
Bảng 1.2 Các thông số của CCP
Bảng 1.3 Công thức tính tốc độ Baud
Trang 12Chương 1 TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN
THIẾT BỊ ĐIỆN CHO PHÒNG HỌP1.1 Tổng quan về hệ thống chiếu sáng cho phòng họp
Hiện nay hầu hết việc giám sát và điều khiển chiếu sáng trong các phòngcông cộng được điều khiển bằng tay thông qua đóng mở các công tắc, các aptomat,cầu dao Điều này khá thuận lợi và đơn giản vì ta có thể bật tắt đèn theo nhu cầu
sử dụng Tuy nhiên, do là phòng công cộng nên việc bật tắt đèn hầu như do ngườitrực khu nhà đó làm Vì thế họ không biết được chính xác khi nào thì có người tới
và khi nào thì mọi người đã ra hết khỏi phòng hoặc họ biết nhưng vì phải quản lýnhiều phòng nên họ vẫn cứ để điện đến hết ca trực, điều này gây lãng phí điện rấtlớn, đặc biệt trong hoàn cảnh nước ta đang thiếu điện một cách trầm trọng như hiệnnay
Trên thị trường hiện nay đã có một số thiết bị bật tắt đèn thông minh, nhưSmartlight do Hàn Quốc sản xuất: Được tích hợp sensor cảm ứng hồng ngoại thânnhiệt, đèn sẽ tự động được bật khi có người đi vào vùng cảm ứng và tắt khi không
có người
Hình 1.1: Đèn thông minh Smartlight
SmartLight phù hợp với mọi nhu cầu chiếu sáng thông minh của bạn tại sâncổng, phòng khách, phòng ngủ, phòng vệ sinh, cầu thang, văn phòng giúp bạn bậttắt đèn hoàn toàn tự động, mang lại sự an toàn, tiện nghi và tiết kiệm điện Tuy
Trang 13nhiên thiết bị này tích hợp luôn bộ điều khiển với đèn trong 1 sản phẩm Do đó giáthành cao và không thích hợp cho các phòng cần lượng chiếu sáng lớn, không thayđổi được loại bóng đèn theo yêu cầu.
Hệ thống giám sát điều khiển chiếu sáng sử dụng camera kết nối với máytính để kiểm soát số người trong phòng, qua đó phát lệnh đóng mở các công tắc tơbật tắt bóng đèn
Hình 1.2: Hệ thống camera giám sát
Hệ thống này giúp việc bật tắt đèn ở nơi lắp đặt một cách chính xác, tự độnghoặc bán tự động Tuy nhiên do sử dụng máy tính nên giá thành của hệ thống rấtcao, mặt khác không giải quyết được vấn đề tiết kiệm điện Vì thế nó thường chỉđược sử dụng ở những tòa nhà công nghệ cao, những khu vực cần điều chỉnh chiếusáng không phải vì mục đích tiết kiệm điện năng
Hệ thống bật tắt đèn tự động sử dụng các IC số và mạch Logic cho phép tadựa vào lượng người vào ra để đóng ngắt các công tắc một cách tự động
Trang 14Hình 1.3: Hệ thống bật tắt đèn thông minh dùng IC số
Hệ thống này có cấu tạo đơn giản, rẻ, không phải lập trình mà chỉ dựa vào cácmạch Logic… nhưng tính linh động không cao, khó chỉnh định khi điều kiện làmviệc thay đổi, ít có khả năng nâng cấp mở rộng hệ thống
Với những phòng họp công cộng, khi mà lưu lượng người không lớn và cóthể kiểm soát được việc đếm người qua cửa thì ta hoàn toàn có thể áp dụng hệ thốngđèn thông minh sử dụng Vi điều khiển được lập trình để bật đèn khi có người và tắtkhi không có người Điều này vừa tiện lợi cho mọi người: ứng dụng công nghệ tựđộng hóa vào cuộc sống con người, đảm bảo đủ ánh sáng trong quá trình làm việc,người quản lý thì đỡ tốn thời gian… đồng thời góp phần giải quyết vấn đề tiết kiệmđiện năng trong thời kỳ mà nhu cầu điện tiêu thụ đã vượt quá khả năng cung cấpcủa các nhà máy điện hiện nay
1.2 Lựa chọn giải pháp công nghệ
1.2.1.Giải pháp công nghệ
Qua phân tích ở trên, em xin đưa ra giải pháp xây dựng hệ thống điều khiểnđèn thông minh cho các phòng họp: điều khiển bật tắt đèn qua việc kiểm soát lượngngười ra vào phòng Thu nhận tín hiệu rồi xử lý tín hiệu, khi có người vào phòng,
Trang 15nếu đèn đang bật thì vẫn bật, đèn chưa bật thì bật đèn lên; khi mọi người ra hết khỏiphòng thì tắt đèn đi Trong quá trình làm việc hệ thống luôn hiển thị số người cònđang ở trong phòng để tiện cho việc kiểm tra, theo dõi Ngoài ra hệ thống còn tíchhợp khả năng đóng ngắt nguồn từ xa bằng module thu phát RF Hệ thống điều khiểnnhiệt độ trong phòng có thể điều chỉnh nhiệt độ từ xa bằng module thu phát IR.
1.2.2.Giải pháp thiết kế
Để phát hiện người ra ta dùng 2 bộ thu phát hồng ngoại mắc gần nhau đặt ởcửa ra vào
Xử lý, điều khiển dùng vi điều khiển Pic: lập trình để Pic nhận tín hiệu vào
từ 2 bộ Led hồng ngoại, tính toán xử lý để đưa ra lệnh bật tắt đèn
Để hiển thị ta dùng Led 7 thanh: lấy tín hiệu ra từ Pic để thông báo xemtrong phòng có bao nhiêu người
Điều khiển tắt/mở bóng đèn nhờ transistor cấp dòng cho rơ le
Điều khiển cấp nguồn từ xa bằng module thu phát RF
Điều chỉnh nhiệt độ trong phòng bằng điều khiển từ xa
1.2.3 Các yêu cầu
Hệ thống điều khiển đèn thông minh này áp dụng cho các phòng họp:
Số lượng người trong phòng tối đa không quá 99 người
Làm việc với điện áp 220V/50Hz
Sensor và công nghệ tùy chọn
Trang 161.2.4.Giới hạn hạn định
Làm việc cả ban ngày lẫn ban đêm
Thu nhận tín hiệu liên tục khi có người ra vào
Nhiệt độ môi trường: trong nhà 100C đến 400C
1.3 Kết luận chương
Qua chương trên, em đã trình bày tổng quan về các hệ thống điều khiển chiếusáng trong phòng họp, đồng thời lựa chọn phương án thiết kế hệ thống điều khiểnthiết bị điện cho phòng họp thông minh Sử dụng vi điều khiển PIC16F877A vàthiết kế các module giao tiếp với nó để điều khiển các thiết bị điện trong phòng họp
Trang 17Chương 2 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC16F877A2.1 Giới thiệu về vi điều khiển PIC
PIC bắt nguồn từ chữ viết tắt của “Programmable intelligen computer” (Máytính khả trình thông minh) là sản phẩm của hãng General Instrument đặt cho dòngsản phẩm đầu tiên của họ là PIC 1650 Lúc này Pic dùng để giao tiếp với các thiết bịngoại vi cho máy chủ 16 bit CP1600, vì vậy người ta gọi PIC với tên là “PeripheralInterface Controller” (bộ điều khiển giao tiếp ngoại vi)
Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các modulngoại vi được tích hợp sẵn (như :USART, PWM, ADC…) với bộ nhớ chương trình
từ 512word đến 32k Word
PIC sử dụng tập lệnh RISC, với dòng PIC low-end (độ dài mã lệnh 12 Bit ví
dụ PIC12Cxxx) và mid-range (độ dài mã lệnh 14 bit , ví dụ PIC16Fxxx), tập lệnhbao gồm khoảng 35 lệnh, và 70 lệnh đối với dòng PIC high-end (có độ dài mã lệnh16bit PIC18Fxxxx) Tập lệnh bao gồm các lệnh tính toán trên các thanh ghi, và cáchằng số, hoặc các vị trí ô nhớ, cũng như có các lệnh điều kiện, nhảy/ gọi hàm, vàcác lệnh quay trở về, nó cũng có các chức năng phần cứng khác như ngắt hoặc sleep(chế độ hoạt động tiết kiệm điện) Microchip cung cấp môi trường lập trìnhMPLAB0, nó bao gồm phần mềm mô phỏng và trình dịch ASM
Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng,nhưng chúng ta có thể điểm qua một vài nét như sau :
- 8/16 bit CPU, xây dựng theo kiến trúc Harvard
- Flash và Rom có thể tuỳ chọn 256 byte đến 256 kbybe
- Các cổng xuất/ nhập (mức lôgic thường từ 0v đến 5 v, ứng với mức logic 0 và1)
- 8/16 bit timer
Trang 18- Bộ chuyển đổi ADC
- Bộ so sánh điện áp
- MSSP Pripheral dùng cho các giao tiếp I2C, SPI
- Bộ nhớ nội EEPROM - có thể ghi/ xoá lên tới hàng triệu lần
- Modul điều khiển động cơ, đọc encoder
- Hỗ trợ giao tiếp USB
- Hỗ trợ điều khiển Ethernet
- Hỗ trợ giao tiếp CAN
- Hỗ trợ giao tiếp LIN
- Hỗ trợ giao tiếp IrDA
- DSP những tính năng xử lý tín hiệu số
2.2 Tổng quan vi điều khiển PIC16F877A
2.2.1 Sơ đồ chân của PIC16F877A
Hình 2.1 Sơ đồ chân của PIC16F877A
2.2.2 Các thông số về vi điều khiển PIC16F877A
CPU tốc độ cao :
- Chỉ có 35 cấu trúc lệnh
- Hầu hết các cấu trúc lệnh chỉ mất một chu kỳ máy, ngoại trừ lệnh rẻ nhánhchương trình mất hai chu kỳ máy
Trang 19- Tốc độ làm việc: xung đồng hồ đến 20MHz, tốc độ thực thi lệnh 200ns
- 8K*14 words của bộ nhớ chương trình (flash program memory)
- 368*8 byte bộ nhớ dữ liệu RAM
- 256*8 byte bộ nhớ dữ liệu EEPROM
Đặc điểm ngoại vi:
- Timer 0: 8 bit timer/counter với 8 bít bộ chia tỉ lệ
- Timer 1: 16 bit timer/counter với bộ chia tỉ lệ có thể tăng lên trong chế độ Sleeptheo xung đồng hồ bên ngoài
- Timer2 : 8 bit timer/counter
- Hai Modul capture, compare, PWM
+ Capturre 16 bit có độ phân giải 12,5ns
+ Compare 16 bit có độ phân giải 200ns
+ PWM 16 bít có độ phân giải 10 bit
- Cổng giao tiếp nối tiếp đồng bộ với chế độ Master và Master/ Slave
- Bộ truyền nhận nối tiếp vạn năng
- Cổng Slave song song 8 bit được điều khiển đọc ghi từ bên ngoài
Đặc điểm tương tự
- Độ phân giải 10 bit với 8 kênh chuyển đổi tương tự- số
- Modul so sánh tương tự gồm hai modul so sánh tương tự, module tham chiếuđiện áp trên chip (VEF) có thể lập trình được, hai đầu ra so sánh có thể sử dụng bênngoài
Trang 202.3 Sơ đồ khối của vi điều khiển PIC16F877A
Hình 2.2: Sơ đồ khối vi điều khiển PIC16F877A
2.3.1 Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chươngtrình (Program memory) và bộ nhớ dữ liệu (Data memory)
Trang 212.3.1.1 Bộ nhớ chương trình
Hình 2.3: Bộ nhớ chương trình PIC16F877A
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, dunglượng bộ nhớ 8K word (một word =14bit) và được phân thành nhiều trang (từ Page0đến Page 3) Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 lệnh vìmột word sau khi mã hoá sẽ có dung lượng một word 14bit) Để mã hoá được địachỉ của 8 K word bộ nhớ chương trình, bộ đếm chương trình có dung luợng 13 bit
Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h(Reset vector) Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h(Interup Vector) Bộ nhớ chương trình không bao gồm stack và không được địa chỉhoá bởi bộ đếm chương trình Bộ nhớ Stack sẽ được đề cập trong phần sau
Trang 222.3.1.2 Bộ nhớ dữ liệu
Hình 2.4: Sơ đồ bộ nhớ dữ liệu của PIC16F877A
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank
Đối với PIC16F877A bộ nhớ dữ liệu được chia làm 4 bank Mỗi bank có dung lượng 128byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (Speccial
Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank Các thanh ghi SFR thường xuyên được sử dụng sẽ được đặt ở tất cả các bank của bộ nhớ dữ
Trang 23liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình.
Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như hình 1.4
2.3.1.3 Thanh ghi chức năng đặc biệt
Đây là thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điềukhiển các khối chức năng tích hợp trên vi điều khiển
- Thanh ghi STATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thực hiện
phép toán của khối ALU, trạng thái RESET và các bit chọn bank cần truy xuất trong
bộ nhớ dữ liệu
- Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi,
cho phép điều khiển chức năng Pull up của các chân trong PORTB, xác lập cáctham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0
- Thanh ghi INTCON (0B, 8Bh, 10Bh, 18Bh): thanh ghi cho phép đọc và ghi,
chứa các bit điều khiển và các bit cờ hiệu khi Timer0 bi tràn, ngắt ngoại viRB0/INT và ngắt Interup un change tại các chân của PORTB
- Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối
chức năng ngoại vi
- Thanh ghi PIR1 ( 0Ch) : chứa cờ ngắt của các khối chức năng ngoại vi các
ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1
Trang 24
- Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức
năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM
- Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng ngoại vi, các
ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2
- Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ Reset
của vi điều khiển
2.3.1.4 Stack
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là mộtvùng nhớ đặc biệt không cho phép đọc hay ghi Khi lệnh Call được thực hiện haykhi một ngắt xảy ra làm chương trình bị rẻ nhánh, giá trị của bộ đếm chương trình
PC tự động được vi điều khiển cất vào trong Stack Khi một trong các lệnhRETURN, RETLW, RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra từtrong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng quy trình địnhtrước
Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được 8địa chỉ và hoạt động theo cơ chế xoay vòng Nghĩa là giá trị cất vào bộ nhớ Stack
Trang 25lần thứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớStack lần thứ 10 sẽ ghi đè lên giá trị cất vào Stack lần thứ 2.
2.3.2 Các cổng xuất nhập
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng đểtương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua sựtương tác đó, chức năng của vi điều khiển được thể hiện một cách rỏ ràng
Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,PORTC, PORTD và PORTE Tương ứng với các thanh ghi điều khiển các cổngxuất nhập là TRISA, TRISB, TRISC, TRISD, TRISE Chức năng của từng port xuấtnhập được cho ở bảng 1.1
Bảng 1.1 Sơ đồ chân của vi điều khiển PIC
Số chân Tên chân Loại(I/O/P) Chức năng
1 MCLL
Vpp
IP
Chân Reset ,tích cực ở mức thấpĐầu vào điện áp nguồn
Đầu vào tương tự 2Đầu vào điện áp tham chiếuĐầu ra Vref bộ so sánh
Trang 26Đầu vào tương tự 3Đầu vào điện áp tham chiếu
Đầu vào xung đồng bộ bên ngoài Đầu ra bộ so sánh 1
Đầu vào tương tự 4Đầu vào chọn chip ( SPI)Đầu ra bộ so sánh 2
Điều khiển đọc từ port slave song songĐầu vào tương tự 5
Điều khiển ghi từ port slave song song
Đầu vào tương tự 6
10 RE2
CS*
AN7
I/OII
Điều khiển chọn chip từ port slave
Đầu vào tương tự 711,33 VDD P Đầu vào điện áp dương
12,31 VSS P Chân nối đất
OSC1 I Dao động thạch anh hoặc đầu vào xung
đồng bộ bên ngoài
Trang 27Dao động thạch anh hoặc đầu ra đồng hồ
Kết nối dao động thạch anh hoặc bộ cộnghưởng trong chế độ dao động
Trong chế độ RC chân OSC2 cung cấpCLK0 ,có tần số bằng ¼ tần số OSC1
Đầu ra bộ dao động timer 1
Đầu vào xung đồng hồ timer 1
16 RC1
T1OSI
CCP2
I/OII/O
Đầu vào bộ dao động timer 1
Đầu vào/ra capture 2 đầu ra PWM2
Đầu vào ra xung đồng hồ đồng bộ nối tiếpchế độ SPI
23 RC4
SDI
SDA
I/OII/O
Dữ liệu vào (SPI)
Dữ liệu vào ra chế độ I2C
Trang 28Truyền không đồng bộ USART
Nhận không đồng bộ USART
Dữ liệu đồng bộ USARTPORT D Là cổng hai hướng
30 RD7 I/O
Trang 30Hình 2.5: Sơ đồ khối của Timer0
Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:
TMR0(01h, 101h): chứa giá trị đếm của Timer0
INTCON (0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE)
OPTION_REG (81h, 181h) điều khiển prescaler
2.3.4 Bộ đếm Timer1
Timer1 là bộ định thời 16 bit, giá trị của Timer1 được lưu trong hai thanh ghiTMR1H và TMR1L Cờ ngắt của Timer1 là bit TMR1IF (PIR1<0>) Bit điều khiểncủa Timer1 là TMR1IE (PIE<0>)
Tương tự như Timer0, Timer1 cũng có hai chế độ hoạt động : chế độ địnhthời (Timer) với xung kích là xung clock của oscillator (tần số của timer bằng ¼ tần
số của oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sựkiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tác động
là cạnh lên)
Trang 31Hình 2.6: Sơ đồ khối của 1 timer
Các thanh ghi liên quan đến Timer1 bao gồm:
INTCON (địa chỉ 0Bh, 08Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE vàPEIE )
PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF)
PIE1 (địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE)
TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1
TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1
T1CON (địa chỉ 10h): xác lập các thông số cho Timer1
2.3.5 Bộ đếm Timer2
Timer2 là bộ định thời 8 bit và được hổ trợ bởi hai bộ chia tần số prescaler
và postscaler Thanh ghi chứa giá trị đếm của Timer2 là TMR2 Bit cho phép ngắtcủa Timer2 tác động là TMR2ON (T2CON<2>) Cờ ngắt của Timer2 là bitTMR2IF (PIR1<1>) Xung ngõ vào (tần số bằng ¼ tần số oscillator) được đưa qua
bộ chia tần
Trang 32số prescaler 4 bit ( với các tỉ số chia tần số là: 1:1, 1:4, 1:16 và được điều khiển bởicác bit T2CKPS1:T2CKPS0 ( T2CON<1:0>) ).
Hình 2.7 : Sơ đồ khối của Timer2
Các thanh ghi liên quan đên Timer2 bao gồm:
INTCON( địa chỉ 0Bh, 8Bh,10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE vàPEIE)
PIR1 ( địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF)
PIE1 ( địa chỉ 8Ch): chứa bit điều khiển Timer2 (TMR2IE)
TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2
T2CON ( địa chỉ 12h): xác lập các thông số cho Timer2
PR2 (địa chỉ 92h): thanh ghi hổ trợ cho Timer2
Ta có nhận xét về các timer như sau:
- Timer0 và Timer2 là bộ đếm 8 bít ( giá trị đếm tối đa là FFh), trong khi Timer1
là bộ đếm 16bit ( giá trị đếm tối đa là FFFFh)
- Timer0, Timer1 và Timer2 đều có hai chế độ hoạt động là timer và counter.Xung clock có tần số bằng ¼ tần số của oscillator
Trang 332.3.6 Bộ chuyển tín hiệu ADC
ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạngtương tự và số PIC16f877A có 8 ngõ vào analog (RA4: RA0 và RE2: RE0) Hiệuđiện thế chuẩn VREF có thể được lựa chọn là VDD, Vss hay hiệu điện thế chuẩnđược xác lập trên hai chân RA2 và RA3 Kết quả chuyển đổi từ tín hiệu tương tựsang tín hiệu số là 10 bit số tương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL
Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thể được sử dụng nhưnhững thanh ghi thông thường khác Khi quá trình chuyển đổi hoàn tất, kết quả sẽđược lưu vào hai thanh ghi ADRESH:ADRESL, bit GO/DONE (ADCON0<2>)được xoá về 0 và cờ ngắt ADIF được set
Quy trình chuyển đổi từ tương tự sang số bao gồm các bước sau :
1 Thiết lập các thông số cho bộ chuyển đổi ADC:
2 Thiết lập các cờ ngắt cho bộ AD
3 Đợi cho tới khi quá trình lấy mẫu hoàn tất
4 Bắt đầu quá trình chuyển đổi (set bit GO/DONE)
5 Đợi cho tới khi quá trình chuyển đổi bằng cách :
- Kiểm tra bit GO/DONE nếu GO/DONE =0 quá trình chuyển đổi hoàn tất
- Kiểm tra cờ ngắt
6 Đọc kết quả chuyển đổi và xoá cờ ngắt, set bit GO/DONE (nếu cần chuyển đổi)
7 tiếp tục thực hiện các bước 1 và 2 cho quá trình chuyển đổi tiếp theo
Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:
INTCON: cho phép các ngắt (các bit GIE, PEIE)
PIR1: chứa cờ ngắt AD (bit ADIF)
ADRESH (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập các thông số của bộchuyển đổi AD
Trang 34Hình 2.8: sơ đồ khối bộ chuyển đổi ADC
2.3.7 Bộ so sánh Comparator
Bộ so sánh bao gồm hai bộ so sánh tín hiệu analog và được đặt ở PortA Ngõvào bộ so sánh là các chân RA3: RA0, ngõ ra là hai chân RA4 và RA5 Thanh ghiđiều khiển bộ so sánh là CMCON Các bit CM2: CM0 trong thanh ghi CMCONđóng vai trò chọn lựa các chế độ hoạt động cho bộ Comparator
Cơ chế hoạt động của bộ Compartor như sau:
Tín hiệu analog ở chân Vin + sẽ được so sánh với điện áp chuẩn ở chân Vin
-và tín hiệu ở ngõ ra bộ so sánh sẽ thay đổi tương ứng như hình vẽ Khi điện áp ởchân Vin- lớn hơn điện áp ở chân Vin+ ngõ ra sẽ ở mức 1 và ngược lại
Cực tính của bộ so sánh có thể thay đổi dựa vào các giá trị đặt vào các bit C2INV vàC1INV (CMCON<4:5>)
Các thanh ghi liên quan đến bộ so sánh bao gồm:
CMCON (địa chỉ 9Ch) và CVRCON (địa chỉ 9Dh): xác lập các thống số cho bộ sosánh
Thanh ghi INTCON: chứa các bit cho phép ngắt( GIE và PEIE)
Trang 35Thanh ghi PIR2 (địa chỉ 0Dh): chứa cờ ngắt của bộ so sánh (CMIF)
Thanh ghi PIE2 (địa chỉ 8Dh): chứa bit cho phép bộ so sánh ( CNIE)
Thanh ghi PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): các thanh ghi điều khiểnPORTA
* Bộ tạo điện áp so sánh
Bộ so sánh này chỉ hoạt động khi bộ compartor được định dạng hoạt động ởchế độ ‘110’ Khi đó các Pin RA0/AN0 và RA1/AN1 (khi CIS=0) hoặc PinRA3/AN3 và RA2/AN2 ( khi CIS=1) sẽ là ngõ vào analog của điện áp cấn so sánhđưa vào ngõ Vin- của hai bộ so sánh C1 và C2 Trong khi đó điện áp đưa vào ngõVin+ sẽ được lấy từ
một bộ tạo điện áp so sánh Sơ đồ khối của bộ tạo điện áp so sánh được trình bàynhư hình 1.9
Hình 2.9: Sơ đồ khối bộ tạo điện áp so sánh
Bộ tạo điện áp so sánh này có thể xem như một bộ chuyển đổi D/A đơn giản.Giá trị điện áp cần so sánh ở ngõ ra vào analog sẽ được so sánh với các mức điện áp
do bộ tạo điện áp tạo ra cho tới khi hai điện áp này đạt được giá trị xấp xỉ bằngnhau Khi có kết quả chuyển đổi xem như được chứa trong các bit CVR3: CVR0
Trang 36CCP (Capture/Comparator/PWM) bao gồm các thao tác trên các xung đếmcung cấp bởi các bộ đếm Timer1 và Timer2 PIC16F877A được tích hợp sẵn haikhối CCP: CCP1 và CCP2 Mỗi CCP có một thanh ghi 16 bit (CCPR1H: CCPR1L
và CCPR2H:CCPR2L), pin điều khiển dùng cho khối CCPx là RC2/CCP1 và RC1/T1PSI/CCP2 Các chức năng của CCP bao gồm:
Capture
So sánh (compare)
Điều chế độ rộng xung PWM (Pulse Width Modulation)
Cả CCP1 và CCP2 về nguyên tắc hoạt động đều giống nhau và chức năng của từngkhối là khá độc lập
Tuy nhiên trong một số trường hợp ngoại lệ CCP1 và CCP2 có khả năng phối hợpvới nhau, để tạo ra các hiện tượng đặc biệt (Special event trigger) hoặc các tác độnglên Timer1 va Timer2 các trường hợp đặc biệt được liệt kê trong bảng 1.2
Bảng 1.2 Các thông số của CCP
CCPx CCPy Tác động
Capture Capture Dùng chung nguồn xung clock từ TMR1
Capture Compare tạo ra hiện tượng làm xoá TMR1
Compare Compare tạo ra hiện tượng đặc biệt làm xoá TMR1
PWM PWM Dùng chung tần số xung clock và cùng chịu tác
động của ngắt TMR2PWM Capture hoạt động độc lập
PWM Compare hoạt động độc lập
Một số điểm cần lưu ý khi sử dụng CCP như sau:
Các Pin dùng cho khối CCP phải được ấn định là input (set các bit tương ứngtrong thanh ghi TRISC) Khi ấn định các pin dùng cho khối CCP là output, việc đưagiá trị vào PORTC cũng có thể gây ra các hiện tượng tác động lên khối CCP do
Trang 37Timer1 phải hoạt động ở chế độ timer hoặc chế độ đếm đồng bộ.
Tránh sử dụng ngắt CCP bằng cách clear bit CCPxIE (thanh ghi PIE1), cờngắt CCPIF nên được xoá bằng phần mềm mỗi khi được set để tiếp tục nhận địnhđược trạng thái hoạt động của CCP
Khi hoạt động ở chế độ PWM (khối điều chế độ rộng xung), tín hiệu sau khiđiều chế sẽ được đưa ra các pin của khối CCP (cần ấn định các pin này là output)
Độ rộng của xung điều chế được tính theo công thức sau:
PWM duty cycle = (CCJPRxL:CCPxCON<5:4>)*Tosc*(giá trị bộ chia tấn sốTMR2
Như vậy 2 bit CCPxCON<5:4> sẽ chứa hai bit LSB Thanh ghi CCPxL chứa bytecao của giá trị quyết định độ rộng xung Thanh ghi CCPRxH đóng vai trò là Buffercho khối PWM Khi giá trị trong thanh ghi CCPxH bằng với giá trị trong thanh ghiTMR2 và hai bit CCPxCON<5:4> bằng với giá trị 2 bit của bộ chia tần số prescler,pin của khối CCP lại được đưa về mức thấp, như vậy ta có được hình ảnh của xungđiều chế tại ngõ ra của khối PWM
2.3.9 Giao tiếp nối tiếp
2.3.9.1 Chuẩn giao tiếp USART
USART (Universal Synchronous Asynchronous Receiver Transmitter) làmột trong hai chuẩn giao tiếp nối tiếp USART còn được gọi là giao diện giao tiếpnối tiếp SCI (Serial Communication Interface) Có thể sử dụng giao diện này chocác giao tiếp với các thiết bị ngoại vi, với các vi điều khiển khác hay với máy tính.Các dạng của giao diện USART ngoại vi bao gồm:
Không đồng bộ (Asynchronous); Đồng bộ _ Master mode; Đồng bộ _ Slave mode
PIC16F877A được tích hợp sẵn bộ tạo tốc độ baud BRG (Baud RateGenetator) 8 bit dùng cho giao diện USART BRG thực chất là một bộ đếm có thể
có thể được sử dụng cho cả hai dạng đồng bộ và được điều khiển bởi thanh ghiPSPRG Ở dạng bất đồng bộ, BRG còn được điều khiển bởi bit BRGH
Trang 38(TXSTA<2>) Ở dạng đồng bộ tác động của bit BRGH được bỏ qua Tốc độ Baud
do BRG tạo ra được tính theo công thức trong bảng 1.3
Bảng 1.3 Công thức tính tốc độ Baud
SYNC BRGH=0 (Low Speed) BRGH=1 (High Speed)0
1
(Asychronous )baud rate = Fosc/(64(x+1))
(Asychronous )baud rate = Fosc/(4(x+1))
Baud rate =Fosc/(64(x+1))
N/A
Trong đó X là giá trị của thanh ghi RSBRG ( X là số nguyên va 0<X<255)
Các thanh ghi liên quan đến BRG bao gồm:
- TXSTA(địa chỉ 98h): chọn chế độ đồng bộ hay bất đồng bộ (bit SYNC )
và chọn mức tốc độ baud (bit BRGH)
- RCSTA(địa chỉ 18h): cho phép hoạt động cổng nối tiếp (bit PSEN)
- RSBRG(địa chỉ 99h): quyết định tốc độ baud
USART bất đồng bộ
Ở chế độ này USART hoạt động theo chuẩn NRZ(None – Return – to –Zero) Nghĩa là các bit truyền đi bao gồm: 1 bit Start, 8 hay 9 bit dữ liệu (thôngthường là 8 bit) và một bit Stop Bit LSB sẽ được truyền đi trước Các khối truyền
và nhận data độc lập với nhau sẽ dùng chung tần số tương ứng với tốc độ baud choquá trình dịch dữ liệu (tốc độ baud gấp 16 hay 64 lần tốc độ dịch dữ liệu tuỳ theogiá trị của bit BRGH), và để đảm tính hiệu quả của dữ liệu thì hai khối truyền vànhận phải dùng chung một định dạng dữ liệu
Truyền dữ liệu qua chuẩn giao tiếp USART bất đồng bộ
Thành phần quan trọng nhất của khối truyền dữ liệu là thanh ghi dịch dữ liệuTSR(Transmit Shift Register) Thanh ghi TSR sẽ lấy dữ liệu từ thanh ghi đệm dùngcho quá trình truyền dữ liệu TXREG Dữ liệu cần truyền phải được đưa vào thanhghi TXREG Ngay sau khi bit Stop của dữ liệu cần truyền trước đó được truyền
Trang 39xong, dữ liệu từ thanh ghi TXREG sẽ được đưa vào thanh ghi TSR, thanh ghiTXREG bị rổng, ngắt xảy ra và cờ hiệu TXIF (PIR1<4>) được set Ngắt này đượcđiều khiển bởi bit TXIE(PIE1<4>) Cờ hiệu TXIF vẫn được set bất chấp trạng tháicủa bit TXIE hay tác động của chương trình (không thể xoá TXIF bằng chươngtrình) mà chỉ có reset về 0 khi có dữ liệu mới đưa vào thanh ghi TXREG.
Hình 2.10: Sơ đồ khối của khối truyền dữ liệu USART
Trong trường hợp dữ liệu cần truyền là 9 bit, bit TX9(TXSTA<6>) được set
và bit dữ liệu thứ 9 sẽ được lưu trong bit TX9D(TXSTA<0>) Nên ghi bit dữ liệuthứ 9 vào trước, vì khi ghi 8 bit dữ liệu vào thanh ghi TXREG trước có thể xảy ratrường hợp nội dung thanh ghi TXREG sẽ được load vào thanh ghi TSG trước, nhưvậy dữ liệu truyền đi sẽ bi sai khác so với yêu cầu
Nhận dữ liệu qua chuẩn giao tiếp USART bất đồng bộ
Dữ liệu được đưa vào từ chân RC7/RX/DT sẽ kích hoạt khối phục hồi dữliệu Khối phục hồi dữ liệu thực chất là một bộ dịch dữ liệu tốc độ cao và có tần sốhoạt động gấp 16 lần hoặc 64 lần tần số baud Trong khi đó tốc độ dịch của thanh ghi nhận dữ liệu sẽ bằng với tần số baud hoặc tần số của Oscillator