BÁO CÁO ĐỒ ÁN THIẾT KẾ KỸ THUẬT
CĂN BẢN VỀ PIC16F877A
ĐO NHIỆT ĐỘ DÙNG LM35, HIỂN THỊ LÊN LCD
Sau đây là qui trình tìm hiểu về PIC của nhóm
1. Trước hết nhóm đã lên mạng tìm hiểu tổng quan về PIC để xem mình
nên bắt đầu từ đâu, và chủ yếu học từ diễn đàn www.picvietnam.com, tiện thể nhóm xin
gửi lời cám ơn tới diễn đàn này.
Nhóm đã tìm được 1 bài dẫn dắt về PIC của tác giả FALLEAF, và theo đó thì để học PIC
ta nên bắt đầu bằng việc tìm hiểu về các khái niệm và làm các công việc
-Thanh ghi-register
-Cờ-flag
-Định thời-Timer
-Làm mạch nhấp nháy Led
Nhưng nếu search trên mạng với từ khoá PIC và các khái niệm này thì có rất ít, thậm chí
nhóm tìm không ra. Lý do đơn giản vì các phần kiến thức này đáng lẽ phải được học trong các
môn tiền đề cho PIC như kiến trúc máy tính hay vi xử lý.
Nhóm tìm tới hỏi các anh đi trước, và theo hướng dẫn của anh Ca ( SV Bách Khoa K05)
thì nên tìm hiểu về vi điều khiển 8051 trước, và nên học lập trình bằng ASM
Để tìm hiểu 8051, nhóm đã tìm đọc sách về 8051 của tác giả Tống Văn On. Chính trong
sách này, nhóm đã hiểu được các khái niệm về thanh ghi, định thời, và ngôn ngữ ASM (chỉ ở mức
căn bản)
Nhóm xin được nói về cách hiểu của mình về các khái niệm trên
Thanh ghi
Trong một vi xử lý 8051 có rất nhiều thanh ghi (khoảng hơn trăm thanh) mỗi thanh
là một chuỗi các bit, mỗi bit có 2 giá trị là 1 hoặc 0 và có thể đuợc gán bởi người lập trình, Đa số
thanh ghi có 8 bit, ngoài ra còn có các thanh 13 bit. Mỗi thanh như thế có các chức năng riêng.
Có thanh chỉ đơn thuần chỉ để nhớ một giá trị nào đó, thanh ghi 8 bit thì chỉ nhớ
được
8
2 256
=
Công cụ mô phỏng hữu hiệu là Proteus
Ngôn ngữ lập trình là CCS, học từ Tutorial của anh Trần Xuân Trường K2001 ĐHBK
Nhóm tìm hiểu về PIC thông qua tutorial của tác giả Nguyễn Trung Chính trên diễn đàn
picvietnam, xin cám ơn anh Chính đã viết một tutorial rất hay và căn bản và xin phép lấy các hình
ảnh minh hoạ từ tutorial này
Sơ đồ chân của PIC16F877A :
Để PIC hoạt động ta cần cấp nguồn cho PIC. Ngoài ra có thể thêm vào bộ dao động thạch
anh, và nút nhấn reset:
Và đây là mạch nháy Led PortB:
Mô phỏng bằng Proteus:
- Mạch nhấp nháy Led
PIC16F877A
Led
Trở 330 Ohm
Dùng 1 DCVolmeter ở chân B0, ta thấy điện áp xuất ra ở chân này thay đổi 0V, 5V sau
mỗi thời gian delay
Code :
#include<16f877a.h>
#device* =16 ADC=8
#FUSES
NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#use delay (clock=20000000)
void main()
{
//Thiet lap che do cho PORT B
Set_tris_b(0x00); //Tat ca PORT B deu la cong xuat du lieu
output_b(0xFF); //Mo het cac Led
While(TRUE) //Vong lap vo han
{
output_b(0xFF); //Cho các Led sáng
hàm thao tác cho LCD:
Cách nối dây:
// As defined in the following structure the pin connection is as follows:
// D0 enable