2.3.2.1 Tổng quan về PIC
a. PIC là gì?
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là“máy tính thông minh khả trình”do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay. b. Tại sao lại dùng PIC mà không phải là các loại vi điều khiển khác.
bản ở môi trường đại học, bản thân người viết đã chọn họ vi điều khiển PIC để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau: Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam. Giá thành không quá đắt. Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập. Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051. Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,…Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp,…Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không ngừng được phát triển.
2.3.2.2 Giới thiệu về PIC 16F877A.
a. Sơ đồ chân
Hình 2.5. Sơ đồ chân của PIC16F877A
b. Các thông số của PIC 16F877A.
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit.
- Mỗi lệnh đều được thực thi trong một chu kì xung clock.
- Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns.
- Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte.
- Số PORT I/O là 5 với 33 pin I/O.
- Các đặc tính ngoại vi bao gồmcác khối chức năng sau: + Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
+ Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
+ Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler. - Hai bộ Capture/so sánh/điều chế độ rộng xung.
- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
+ Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
+ Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài.
- Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit.
- Bên cạnh đó là một vài đặc tính khác của vi điều khiển như: + Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
+ Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần. + Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
- Khả năng tự nạp chương trình với sự điều khiển của phần mềm. Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân.
- Watchdog Timer với bộ dao động trong. - Chức năng bảo mật mã chương trình. - Chế độ Sleep.
- Có thể hoạt động với nhiều dạng Oscillator khác nhau.
c. Cổng xuất nhập (I/O port).
- 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 quá trình 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.
- Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau.
- Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó.
- Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE.
- Cấu trúc và chức năng của từng cổng xuất nhập sẽ được đề cập cụ thể trong phần sau.
- PORTA(RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được.
- Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA.
- Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với
- PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD vàđối với PORTE là TRISE).
- Các thanh ghi SFR liên quan đến PORTA bao gồm: PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA. TRISA (địa chỉ 85h): điều khiển xuất nhập. CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh. CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp. ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC.
* PORTB
- PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau.
- PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình. Các thanh ghi SFR liên quan đến PORTB bao gồm: PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0.
*PORTC
- PORTC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISC. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART.
* PORTD
- PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRISD. PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port).
- Các thanh ghi liên quan đến PORTD bao gồm: Thanh ghi PORTD: chứa giá trị các pin trong PORTD.
+ Thanh ghi TRISD : điều khiển xuất nhập.
+ Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP.
* PORTE
- PORTE (RPE) gồm 3 chân I/O. 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.
+ Các thanh ghi liên quan đến PORTE bao gồm: PORTE : chứa giá trị các chân trong PORTE. TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP.
+ ADCON1 : thanh ghi điều khiển khối ADC.
2.3.3 Cảm biến chuyển động – PIR
a. Khái niệm
PIR là chữ viết tắt của passive InfraRed sensor (PIR sensor ). Đó là bộ cảm biến thụ động dùng nguồn kích thích là tia hồng ngoại. Tia hồng ngoại (IR) chính là các tia nhiệt phát ra từ các vật thể nóng. Trong các cơ thể sống, trong chúng ta luôn có thân nhiệt (thông thường ở 37 ), và từ cơ thể chúng ta sẽ luôn phát các tia nhiệt, hay còn gọi là các tia hồng ngoại, người ta sẽ dùng một tế bào điện để chuyển đổi tia nhiệt ra dạng tín hiệu điện và nhờ đó mà có thể làm ra cảm biến mà phát hiện ra được các vật thể nóng đang chuyển động. Cảm biến này gọi là thụ động vì nó không dùng nguồn nhiệt tự phát ( làm nguồn tích cực hay chủ động) mà chỉ phụ thuộc vào các nguồn thân nhiệt, đó là thân nhiệt của các thực thể khác như con người, con vật …
Hình 2.9. Bộ cảm biến chuyển động – PIR
Infrared Radial Sensor
Bên trong có gắn 2 cảm biến tia nhiệt.
Có 3 chân ra: một chân GND, một chân VCC (mức điện áp 3v – 15v), một chân tín hiệu.
Góc dò lớn.
Fresnel Lens: để tăng độ nhạy cho đầu dò thì dùng thêm kính Fresnel
Nó được thiết kế cho loại đầu có 2 cảm biến.
Góc dò lớn.
Có tác dụng ngăn tia tử ngoại.
c. Nguyên lý làm việc của cảm biến chuyển động – PIR
Nguồn thân nhiệt của con người phát ra tia hồng ngoại, qua kính Fresnel, qua kính lọc lấy tia hồng ngoại, nó được hội tụ trên đầu dò của cảm biến và tạo ra điện áp được khuếch đại với transistor FET. Khi có nguồn thân nhiệt đi ngang qua, từ 2 cảm biến sẽ cho xuất hiện 2 tín hiệu và tín hiệu này sẽ được khuếch đại để có biên độ đủ cao để đưa vào mạch so áp sau đó tác động vào một thiết bị điều khiển hay báo động.
Cơ chế của nó được thể hiện như sau:
Khi thân nhiệt chưa đi vào vùng phát hiện (vùng cảm biến) thì tín hiệu chưa xuất hiện, đèn báo vẫn tắt.
Hình 2.11. Thân nhiệt chưa vào vùng cảm biến
Khi thân nhiệt đi vào vùng phát hiện (vùng cảm biến) thì tín hiệu xuất hiện, đèn báo sáng.
Hình 2.12. Thân nhiệt đi vào vùng cảm biến
Khi một thân nhiệt đi ngang qua, từ thân nhiệt sẽ luôn phát ra tia nhiệt, nó được hội tụ mạnh với kính Fresnel và rồi hội tụ trên đầu dò cảm biến. Khi đó sẽ xuất hiện tín hiệu, tín hiệu này sẽ được cho vào mạch xử lý để tạo tác dụng điều khiển hay báo động.
Tia nhiệt
Mọi vật thể đều được cấu tạo từ các phân tử nhỏ li ti, , nhiệt là một dạng năng lượng tạo ra từ các dao động của các phần tử, đó là chuyển động hỗn loạn không ngừng. Từ các dao động này, nó phát ra các tia nhiệt, bằng cảm giác thông thường của giác quan chúng ta gọi là sức nóng. Ở mỗi người, nguồn thân nhiệt thường được điều ổn ở mức 37 , đó là nguồn thân nhiệt mà ai cũng có. Do vậy, nếu dùng linh kiện cảm ứng thân nhiệt kết hợp cùng với cảm ứng chuyển động, chúng ta sẽ có thiết bị phát hiện ra người lạ đột nhập vào nhà chính xác cao khi chủ nhà không có ở nhà.
2.3.4 Khối hiển thị LCD2.3.4.1 Hình ảnh thực tế2.3.4.1 Hình ảnh thực tế 2.3.4.1 Hình ảnh thực tế
Hình 2.13. LCD
Hình 2.14. Sơ đồ chân LCD
2.3.4.3 Chức năng các chân của LCD
Số chân
Tên Chức năng
1 GND Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển
2 VCC Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển
3 Vee Chân này dùng để điều chỉnh độ tương phản của LCD.
4 RS
Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi. + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” -write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
5 RW
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
6 E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
7-14
DB0- DB7
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7.
2.3.4.4 Sơ đồ khối của LCD LM 016L
2.3.5 Keypad 4X4
Hình 2.16. Sơ đồ cấu trúc keypad 4X4
KEYPAD là một "thiết bị nhập" chứa các nút nhấn cho phép người dùng nhập các chữ số, chữ cái hoặc ký hiệu vào bộ điều khiển. KEYPAD không chứa tất cả bảng mã ASCII như keyboard và vì thế KEYPAD thường được tìm thấy trong các thiết bị chuyên dụng. Các nút nhấn trên các máy tính điện tử cầm tay là một ví dụ về KEYPAD. Số lượng nút nhấn của một KEYPAD thay đổi phụ thuộc vào yêu cầu ứng dụng. Trong bài này tôi giới thiệu cách điều khiển của một loại KEYPAD đơn giản, KEYPAD 4x4.
Gọi là KEYPAD 4x4 vì KEYPAD này có 16 nút nhấn được bố trí dạng ma trận 4 hàng và 4 cột. Cách bố trí ma trận hàng và cột là cách chung mà các KEYPAD sử dụng. Cũng giống như các ma trận LED, các nút nhấn cùng hàng và cùng cột được nối với nhau, vì thế với KEYPAD 4x4 sẽ có tổng cộng 8 ngõ ra (4 hàng và 4 cột). Mô hình KEYPAD 4x4 được thể hiện trong
Hình 2.17. Mô hình thật của Keypad 4X4
Hình 2.17: mô hình thật của 1 KEYPAD 4x4 và hình a là cấu hình bên trong của nó. Bốn hàng của KEYPAD được đánh dấu là A, B, C và D trong khi 4 cột được gọi là 1, 2, 3 và 4.
Hoạt động của KEYPAD: Giả sử nút '2' được nhấn, khi đó đường C và 2 được nối với nhau. Giả sử đường 2 được nối với GND (mass, 0V) thì C cũng sẽ là GND. Tuy nhiên, câu hỏi đặt ra là bằng cách kiểm tra trạng thái đường C chúng ta sẽ có kết luận nút '2' được nhấn? Giả sử tất cả các đường 1, 2, 3, 4 đều nới với GND, nếu C= GND thì rõ ràng chúng ta không thể kết luận nút '1',= hay nút '2' hay nút '3' hay nút '-' được nhấn. Kỹ thuật để khắc phục vấn đề này chính là kỹ thuật "quét" KEYPAD.
b a
2.4 Mô phỏng mạch chống trộm dùng modul sim2.4.1 Khởi động hệ thống2.4.1 Khởi động hệ thống 2.4.1 Khởi động hệ thống
2.4.2 Khi có người đi vào vùng cảm biến ( khi 2 cảm biến tác động)
2.5 Nguyên lý của mạch diện.
Bình thường khi ta cắm nguồn cung cấp hệ thống khởi động và báo đến điện thoại là mạch đã khởi động.
Khi có người lạ đột nhập hai cảm biến tác động khối điều khiển trung tâm sẽ xử lý sau đó kết nối với modul sim 900 báo đến điện thoại người sử dụng biết có người lạ đột nhập, đồng thời tác động đến loa, loa sẽ phát ra âm