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, chủ yếu học từ diễn đàn... Nhưng nếu tìm kiếm trên mạng với từ khóa 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 môn tiền đề.
Nội dung trích xuất từ tài liệu:
Báo cáo đồ án thiết kế kỹ thuật căn bản về pic16F887A, đo nhiệt độ dùng LM35, hiển thị lên LCD
Báo cáo đồ án thiết
kế kỹ thuật căn bản
về pic16F887A, đo
nhiệt độ dùng LM35,
hiển thị lên LCD
MỤC LỤC
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................................................................................................................... 3
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. ....................... 3
2. Sau khi tìm hiểu qua sách vở những khái ni ệm này từ xong, nhóm bắt đầu chính thức tìm hi ểu về PIC. 5
3. Sử dụng LCD TC1602A ........................................................................................................................ 11
4. LM35 ................................................................................................................................................. 13
5. Chức năng ADC của PIC16F877A ........................................................................................................ 14
6. Tới đây ta đã đủ công cụ để làm mạch hoàn chỉnh.............................................................................. 16
7. Làm mạch thực tế: ............................................................................................................................. 18
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ớ
8
được 2 256 giá trị từ 0 tới 255
Có thanh dùng để điều khiển, ví dụ thanh ghi cho phép xuất hoặc nhập PORTB.
PORTB có 8 chân, mỗ i chân được điều khiển là chân xuất hay nhập bởi thanh ghi PORTB. Nếu
thanh ghi PORTB có giá trị 00000001b thì có nghĩa là chân B0 là chân nhập dữ liệu, còn các
chân B1-B7 là chân xuất dữ liệu
Cờ (flag)
Cờ cũng là 1bit, nhưng nó có chức năng đặc biệt hơn các bit khác nên người ta đặt
tên cho nó. Ta sẽ hiểu kỹ hơn về nó qua một ví dụ trong phần timer
Định thời (Timer)
Định thời là một chức năng không thể thiếu của các vi điều khiển, nó cho phép vi
điều khiển đếm thời gian. Tuy nhiên không thể đếm một cách trực tiếp như con người được,
timer đếm thời gian thông qua việc đếm xung dao động. Một vi điều khiển có khoảng vài timer.
Bộ định thời cũng là các thanh ghi, chúng được điều khiển bởi bit định thời. Khi
ta set bit định thời bằng 1 thì thanh ghi định thời bắt đầu nhảy số 0, 1, 10 … cho đến khi thanh
ghi định thời có giá trị 11111111. Bit 7 của thanh ghi định thời là một cờ, bình thường thì bit này
bằng 0, cho đến khi thanh ghi đã đếm lên tới giá trị max thì bit này mới bằng 1, và sau đó thanh
ghi timer lại trả về giá trị 0 và bắt đầu đếm lại, , và nó chỉ dừng khi bit định thời được gán bằng 0
trở lại. Cờ này như một cách đánh dấu một chu kỳ đếm, giữa 2 lần cờ này bằng 1 là 256 giá trị đã
được đếm
Cũng có timer nhiều hơn 8bit
Hợp ngữ ASM
Vi điều khiển muốn hoạt động được phải có các chỉ dẫn cho nó làm việc, đó là
các file hex. Mở một file hex ta thấy toàn những 0 với 1. Con người sẽ mất rất nhiều thời gian để
viết nên 1 chương trình toàn 0 với 1, vì vậy người ta xây dựng các ngôn ngữ lập trình. Thay vì
viết 1 dòng lệnh toàn 0 với 1 thì ta viết một dòng lệnh khác tương đương nhưng gần gũi hơn với
ngôn ngữ con người. Ngôn ngữ càng gần với con người thì có cấp càng cao.
ASM là ngôn ngữ gần với file hex nhất. Làm việc với ASM ta chủ yếu làm việc
với các bit, như việc set bit bằng 1 hay di chuyển giá trị từ thanh ghi này sang thanh ghi khác,…
2. Sau khi tìm hiểu qua sách vở những khái niệm này từ xong, nhóm bắt
đầu chính thức tìm hiểu về PIC.
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 ...