I - Thực hiện: - Mô phỏng mạch trên phần mềm Proteous - Lập trình vi xử lý trên MPLAP X IDE - Lưu đồ thuật toán - Mô phỏng mạch trên phần mềm Fritzing - Nội dung báo cáo II – Phần mềm sử
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VÂN TẢI
KHOA Điện-Điện Tử
-o0o -BÁO CÁO: BÀI TẬP LỚN MÔN HỌC
KỸ THUẬT VI XỬ LÝ
GIẢNG VIÊN HƯỚNG DẪN :
SINH VIÊN THỰC HIỆN : NGUYỄN THÀNH LÂM
DOÃN TUẤN ANH
BÙI KIM QUY
LÊ HỮU THẮNG
NGUYỄN ĐỨC MINH
NHÓM : 7
ĐỀ TÀI : CẢM BIẾN CHẠM
Hà Nội, ngày 22, tháng 04, năm 2024
Trang 2Đề bài: Cảm biến chạm (Touch sensor_TTP223) Chạm 1 chạm thì bật đèn và hiển
thị lên LCD dòng chữ “LED ON” Chạm 2 lần liên tiếp trong 100ms thì tắt đèn và hiển thị lên LCD dòng chữ “LED OFF”
I - Thực hiện:
- Mô phỏng mạch trên phần mềm Proteous
- Lập trình vi xử lý trên MPLAP X IDE
- Lưu đồ thuật toán
- Mô phỏng mạch trên phần mềm Fritzing
- Nội dung báo cáo
II – Phần mềm sử dụng:
+ Sử dụng phần mềm MPLAP XIDE: là phần mềm chạy trên máy tinh nhằm phát triển các ứng dụng cho các Bộ vi điều khiển và các Bộ điều khiển tín hiệu số của Microchip
+ Sử dụng phần mềm Proteous: là phần mềm mô phỏng vật lý các mạch điện tử ( giả lập linh kiện trên máy tính Phần mềm gồm 2 chương trình chính:
- ISIS cho phép vẽ sơ đồ nguyên lý và mô phỏng mạch
- ARES dùng để vẽ mạch in
+ Sử dụng phần mềm Fritzing vẽ mô phỏng mạch lắp trên board mạch
III - Linh kiện sử sụng:
1 PIC16F877A
2 LED đơn
3 Board test mạch
4 1 nút ấn
5 Thạch anh 8MHz
6 Điện trở vòng màu
7 Tụ điện
8 Bộ nạp PIC Kit2
9 Dây nối
10.Cảm biến TTP223
11.LCD
Trang 3IV - Cơ sở lý thuyết:
1 Tìm hiểu về PIC16F877A.
- PIC16F877A là loại vi điều 8 bit tầm trung của hãng Microchip.
- PIC16F877A là một Vi điều khiển PIC 40 chân và được sử dụng hầu hết trong các dự án và ứng dụng nhúng
- Nó có năm cổng bắt đầu từ cổng A đến cổng E
- PIC16F877A hỗ trợ cả ngắt chân phần cứng và ngắt bộ định thời
- PIC16F877A có kiến trúc Havard, sử dụng tập lệnh kiểu RISC với chỉ 35
lệnh cơ bản
- Tốc độ hoạt động tối đa cho phép là20MHz, tương ứng với mỗi chu kỳ lệnh
là 200ns
- Bộ nhớ dữ liệu: Là bộ nhớ EEPROM chia thành 4 bank Mỗi bank có dung
lượng 128 byte gồm các thanh ghi có chức năng đặc biệt SFR( nằm ở vùng địa chỉ thấp) và các thanh ghi mục đích chung GPR (nằm ở vùng địa chỉ còn lại trong bank)
- Các thanh ghi PORTA, PORTB , PORTC, PORTD, PORTE đều chứa ở
bank 0
- Các ngắt cơ bản của PIC16F877A:
External: Ngắt ngoài
Timer0;
Timer1;
Timer2;
RB Port Change: Thay đổi cổng RB
Parallel Slave Port Read/Write: Cổng Slave song song Đọc/Ghi
Công cụ chuyển đổi A/D;
USART nhận;
UART truyền;
Synchronous Serial Port: Cổng tiếp nối đồng bộ
CCP1 (Capture,So sánh, PWM);
CCP2 (Capture,So sánh, PWM);
TMR2 to PR2 Match: Kết hợp TMR2 đến PR2;
Comparator: Bộ so sánh;
Thao tác ghi EEPROM;
Bus Collision: Va chạm bus
- Các thanh ghi chính được sử dụng cho ngắt bao gồm:
Trang 4 Thanh ghi INTCON
Thanh ghi OPTION_REG, T1CON, T2CON
Thanh ghi PIE1
Thanh ghi PIR1
Thanh ghi PIE2
Thanh ghi PIR2
2 Board test mạch:
- Bread board (hay còn gọi là test board) là công cụ được sử dụng rất nhiều để thiết kế và thử nghiệm mạch mà không cần hàn các linh kiện để tạo mạch
- Nó giúp gắn các linh kiện cũng như tái sử dụng rất dễ, có thể thay đổi thiết
kế mạch một cách dễ dàng
- Cấu tạo của Breadboard:
+ Khu vực trung tâm chính của Breadboard là một khối gồm 2 cột
+ Mỗi cột được tạo thành từ nhiều hàng
+ Mỗi hàng được nối điện theo từng hàng
+Dọc hai bên là hai bus dọc để cấp điện vào cột bên trong
- Tóm tắt lại đường dẫn điện:
Trang 5Lưu ý cách nối:
+Nếu nối dây trên cùng 1 hàng thì sẽ không có ý nghĩa gì vì các hàng đã được nối với nhau
+Để nối các linh kiện điện tử với nhau ta nối dây giữa các hàng
+Trên bus dọc nối điện với nguồn và nối dây từ bus dọc tới hàng để cấp nguồn
3 LED:
LED (viết tắt của Light Emitting Diode, có nghĩa là điốt phát quang) là các điốt có khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại Cũng giống như điốt, LED được cấu tạo từ một khối bán dẫn loại p ghép với một khối bán dẫn loại n Độ sáng của LED phụ thuộc vào cường độ năng lượng phát ra
từ điốt hoặc từ 2 điện cực bên trong.
+Cấu tạo của LED:
Trang 65 Nút nhấn nhả:
Cấu tạo của nút nhấn gồm: hệ thống lò xo, hệ thống các tiếp điểm thường
hở (NO) – thường đóng (NC) và vỏ bảo vệ
Các tiếp điểm sẽ chuyển trạng thái khi có lực tác động vào nút ấn Ngược lại, tiếp điểm sẽ trở lại trạng thái ban đầu khi không còn lực tác động vào nút ấn
Trang 76 Bộ nạp PIC KIT2( Khối mạch nạp và reset)
Khi muốn nạp chương trình từ trên máy tính xuống ta phải kết nối cổng USB với mạch nạp và đồng thời kết nối đầu ra của mạch nạp tới cổng nạp P1
V – Mô Phỏng:
1 Mô phỏng mạch trên phần mềm Proteous:
Trang 8Hình ảnh:
2 Lập trình vi xử lý trên phần mềm MPLAP XIDE. -Tần số mạch dao động: Fosc
-Tần số lệnh: Fosc/4
-Onetick = Prescaler/(Fosc/4) =(Prescaler*4)/Fosc
-Độ trễ: Delay = Timer Count*tick
-Số đếm thời gian( Timer Count): Count=Delay/tick
-Giá trị đặt cho thanh ghi: RegValue=TimerMax- Count
Tương đương: RegValue=TimerMax-((Delay*Fosc)/(Prescaler*4))
Ví dụ:
Với FOSC=8MHz, độ trễ 1ms
3 Sơ đồ thuật toán:
- sơ đồ thuật toán tạo thời gian đếm sử dụng timer 1:
Trang 9- sơ đồ thuật toán cho bài toán Chạm 1 chạm thì bật đèn Chạm 2 lần liên tiếp trong 100ms thì tắt đèn
Trang 104 Phân tích code:
a Đầu tiên chúng ta sẽ tìm hiểu về các biến, hàm, thư viện được khai báo để nắm rõ chức năng của từng biến và từng hàm
Đầu tiên là khai báo sử dụng thạch anh 8MHZ
Tiếp theo là khai báo sử dụng thư viện xc.h
Khai báo biến count
Trang 11 Cấu hình cho các chân:
o Chân RC4 là đầu vào
o Chân RB0 là đầu ra
o Các chân ở PORTD là đầu ra
Cấu hình cho các bit trong thanh ghi điều khiển Timer1:
Các hàm của LCD:
o Gọi hàm khởi tạo LCD : LCD_Init
o Gọi hàm xoá màn hình : LCD_Clear
o Gọi hàm xác định vị trí : LCD_Gotoxy
o Gọi hàm hiển thị kí tự lên màn hình : LCD_PutString
Khởi tạo bộ đếm thời gian cho Timer1:
o Nếu xuất hiện cờ tràn thì thiết lập lại TMR1IF = 0, sau khi đã tính toán được Regvalue là 40536 thì cấp xung cho Timer1
Khi chạm vào cảm biến:
Trang 12o Nếu nhận được tín hiệu chạm từ cảm biến thì biến count sẽ tăng lên 1
o Sau đó tiến hành kiểm tra xem nếu biến count = 1 thì đèn sẽ sáng đồng thời lưu lại thời điểm nút nhấn được nhấn lần một
o Sau đó thực hiện các câu lệnh của LCD để gửi các thông tin lên màn hình
Kiểm tra biến đếm:
o Nếu biến đếm count = 2 thì lưu lại thời điểm nhấn lần 2
o Kiểm tra xem khoảng thời gian đó có nhỏ hơn 2s hay không, nếu có thì sẽ điều khiển led tắt
o Thực hiện các câu lệnh của LCD hiển thị thông tin ra màn hình
Kiểm tra biến đếm:
Trang 13o Nếu như biến đếm count > 3 và thời gian giữa 2 lần nhấn nhỏ hơn 2s thì lúc này ta xem xét nó giống trường hợp biến đếm count = 2
o Điều khiển tắt led
o Hiển thị các thông tin lên màn LCD
Kiểm tra biến đếm:
o Nếu như biến đếm count > 3 và khoảng thời gian giữa 2 lần ấn lớn hơn 2s thì sẽ thiết lập cho biến đếm count = 1 để thực hiện câu lệnh điều kiện bên trên
5 Sơ đồ đấu nối mạch
BREABROAD
SƠ ĐỒ NGUYÊN LÝ
Trang 14VI – Tiến hành lắp mạch thực tế trên board mạch và chạy thử.
- khi chạm 1 lần vào cảm biến ttp223 vi xử lý sẽ nhận tín hiệu làm cho đèn led
sáng và trên màn hình LCD lúc này sẽ hiển thị “STATUS OF LED : ON”
Trang 15- khi chạm 2 lần vào cảm biến ttp223 trong 2s (vì ở đây không thể chạm nhanh
được trong khoảng 100ms như đề bài) vi xử lý sẽ nhận tín hiệu làm cho đèn led sáng và trên màn hình LCD lúc này sẽ hiển thị “STATUS OF LED : OFF”