PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 25-08-2007, 02:39 PM   #1
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Học PIC16F877A qua đề tài Lịch Vạn Niên

Chào các bạn!
Hiện mình đã làm xong mạch Lịch Vạn niên sử dụng PIC16F877A. Mình sẽ lần lượt post các chương trình thử nghiệm trên mạch này. Qua Project này các bạn sẽ làm chủ được con PIC16F877A và trình dịch MikroC, một trình biên dịch rất dễ sử dụng cho người mới bắt đầu học.
Đây là sơ đồ mạch nguyên lý:
Hình Kèm Theo
File Type: bmp RTC.bmp (688.9 KB, 2884 lần tải)

thay đổi nội dung bởi: tinhthanthep, 25-08-2007 lúc 03:04 PM.
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2007, 02:47 PM   #2
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Dùng PIC16F877A với chuẩn nạp chương trìng bootloader-ICSP của Picvietnam. Thạch anh 20MHz, tụ 1uF lọc nhiễu.
Hình Kèm Theo
File Type: bmp 3.bmp (388.2 KB, 463 lần tải)
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2007, 02:52 PM   #3
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Có 4 nút bấm Mode, Set, Up, Down dùng để cài đặt và xem thông tin của lịch vạn niên. Hiển thị bằng màn hình LCD 16x2 cắm qua hàng Jump LCDDISPLAY. Có nút gạt để chọn backlight của LCD. 3 LED đơn mắc ở cổng E dùng để chỉ thị các chế độ.
Hình Kèm Theo
File Type: bmp 4.bmp (641.8 KB, 389 lần tải)
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2007, 02:58 PM   #4
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Nhiệt độ môi trường được lấy từ con LM335. Thông qua việc sử dụng LM335 bạn sẽ hiểu được cách sử dụng modul ADC của PIC. Thời gian thực được lấy từ con DS1307, mở rộng thêm bộ nhớ ngoài bằng con 24C04 với 256B, qua cách giao tiếp với 2 con IC này bạn học thêm được cách dùng giao tiếp I2C. Gắn thêm cái loa Speaker vào chân PWM để học cách sử dụng mô đul PWM của PIC.
Như vậy đến đây mạch của ta đã hoàn chỉnh để có thể làm một cái lịch vạn niên hiển thị ngày tháng năm, giờ phút giây, nhiệt độ môi trường, báo giờ chuông. Còn lại là khả năng bay bổng của các bạn bằng phần mềm.
Hình Kèm Theo
File Type: bmp 2.bmp (703.5 KB, 354 lần tải)
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2007, 03:01 PM   #5
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Còn nốt cái nguồn cho mạch chạy. Nguồn đầu vào là một cái adapter 9V DC rất phổ biến , cắm vào cái nguồn này đầu ra sẽ là 5VDC cho mạch chạy.
Hình Kèm Theo
File Type: bmp 5.bmp (384.8 KB, 298 lần tải)
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2007, 03:11 PM   #6
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Như vậy là mạch nguyên lý đã xong. Mạch in hôm nào chụp ảnh post cho các bạn xem sau. Giờ là bắt tay vào viết chương trình. Đầu tiên bạn lên mạng hỏi thằng google xem hiện giờ MikroC mới nhất là phiên bản nào và tải nó về. Nếu nó hỏi key thì lại nhờ anh google tìm hộ cho cái key. Sau khi cài đặt Trình biên dịch xong thì bạn làm theo các hướng dẫn của file đính kèm theo đây để bắt đầu viết một chương trình cho project.
File Kèm Theo
File Type: pdf 1st_project_pic_c.pdf (206.0 KB, 5975 lần tải)
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-09-2007, 10:12 AM   #7
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh
Trích:
Nguyên văn bởi tinhthanthep View Post
Có 4 nút bấm Mode, Set, Up, Down dùng để cài đặt và xem thông tin của lịch vạn niên. Hiển thị bằng màn hình LCD 16x2 cắm qua hàng Jump LCDDISPLAY. Có nút gạt để chọn backlight của LCD. 3 LED đơn mắc ở cổng E dùng để chỉ thị các chế độ.
Liệu có thể bổ sung thêm Âm lịch, Alarm? Hoàn toàn được = phần mềm. Khổ nỗi cái LCD 16*2 hiển thị ít kí tự quá.
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-09-2007, 02:33 PM   #8
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Trích:
Nguyên văn bởi nhh View Post
Liệu có thể bổ sung thêm Âm lịch, Alarm? Hoàn toàn được = phần mềm. Khổ nỗi cái LCD 16*2 hiển thị ít kí tự quá.
Muốn hiển thị âm lịch thì cho sang trang màn hình tiếp theo. Sử dụng nút bấm mode để xem tiếp các thông tin khác của lịch vạn niên.
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-09-2007, 10:54 AM   #9
david
Đệ tử 4 túi
 
david's Avatar
 
Tham gia ngày: Aug 2006
Bài gửi: 81
:
Trích:
Nguyên văn bởi tinhthanthep View Post
Muốn hiển thị âm lịch thì cho sang trang màn hình tiếp theo. Sử dụng nút bấm mode để xem tiếp các thông tin khác của lịch vạn niên.
Bác có thể nói rõ hơn được không,theo em hiểu thì mình phải lưu lịch âm vao eeprom đúng không,vì không có công thức toàn học nào có thể chuyển đổi từ ngày dương sang ngày âm được,thể để lưu khoảng 10 năm thì bác làm thế nào? làm sao xác định được ngày âm tương ứng với ngày dương?
Mong hồi âm của bác!
david vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-05-2010, 02:51 AM   #10
olong88
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 1
:
giúp em với

Trích:
Nguyên văn bởi tinhthanthep View Post
Dùng PIC16F877A với chuẩn nạp chương trìng bootloader-ICSP của Picvietnam. Thạch anh 20MHz, tụ 1uF lọc nhiễu.
chào anh tinhthanthep!
em đang làm đồ án vi điều khiển : đồng hồ số+đo nhiệt độ+lcd16*2
em dùng con pic18f4550+ds1307+lm35
giờ em không viết được chương trình vì em học avr nhưng thầy hướng dẫn lại bắt dùng con pic. giờ em không biết phải làm sao.
em gửi cho anh sơ đồ nguyên lý mong anh giúp em về phần chương trình có được không
em cảm ơn anh trước.
mạch của em về yêu cầu chỉ cần hiện giờ, phút, giây,ngày, tháng, năm+ nhiệt độ lên lcd16*2
mong anh giúp em với vì gần đến ngày bảo vệ rồi
địa chỉ của em là : phamlong.1188@gmail.com
File Kèm Theo
File Type: rar mach in1.rar (18.9 KB, 124 lần tải)
olong88 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2007, 03:14 PM   #11
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Nếu bạn nào hỏi thằng google mãi không được thì mess cho mình mình gửi cả softwave và crack cho nhá.
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2007, 05:29 PM   #12
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Cảm biến nhiệt độ các bạn cố thể dùng các dòng MCP97xx 98xx của Microchip cho thiết kế của mình. Cảm biến nhiệt độ là một phần thiết kế rất quan trọng trong các thiết kế.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-08-2007, 06:59 PM   #13
congduc_1984
Nhập môn đệ tử
 
Tham gia ngày: Jul 2007
Bài gửi: 6
:
Smile Hay quá !

Chương trình này bạn tự viết phải ko ?Làm sao bạn viết được như vậy?
Tớ tham gia vào Pic là vì muốn học cách lập trình và thiết kế các loại ic này ,nhưng căn bản của mình chỉ hạn chế ở những mạch điện tử thông dụng ko rành về ic nhớ và các loại ic xử lý .
Bây giờ minh muốn học nó thì phải bắt đầu từ đâu vậy .Bạn có thể hướng dẫn cho mình được ko (tất nhiên là có phí học rồi) ,nếu bạn quá bận thì có thể chỉ mình chổ học được ko ?
Mình ở giữa TP.BIÊN HÒA và THỦ ĐỨC
Cảm ơn các bạn nhiều .
Mail "virut_goocky_07@yahoo.com.vn"
Phone :0919310478
congduc_1984 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-08-2007, 04:33 PM   #14
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Project1: I/O PORT

Chương trình đầu tiên ta học về cách làm việc với các cổng I/O. Ở đây ta có cổng E mắc với các Led đơn. Ta làm chương trình nháy Led đơn theo thứ tự như sau: 100,010,001,100.... Mỗi lần nháy cách nhau 250ms.

void MAIN() {
PORTE = 0; // Xóa dữ liệu cổng E
TRISE = 0; // ĐỊnh nghĩa cổng E là Output
ADCON1 = 0xE; // Định nghĩa cổng E là I/O Port.

Loop: // Nhãn vòng lặp
PORTE.F0 = 1; // Bật Led 1
PORTE.F1 = 0; // Tắt Led 2
PORTE.F2 = 0; // Tắt Led 3
Delay_ms(250); // Trễ 250ms
PORTE.F0 = 0; // Tắt Led 1
PORTE.F1 = 1; // Bật Led 2
PORTE.F2 = 0; // Tắt Led 3
Delay_ms(250); // Trễ 250ms
PORTE.F0 = 0; // Tắt Led 1
PORTE.F1 = 0; // Tắt Led 2
PORTE.F2 = 1; // Bật Led 3
Delay_ms(250); // Trễ 250ms
goto Loop; // Lặp lại chu trình nháy.
}

Sau khi viết xong các bạn dịch sang file hex bằng cách ấn tổ hợp phím Ctrl + F9. Rồi đem file hex này nạp vào PIC16F877A là mạch chạy ngon lành.

thay đổi nội dung bởi: tinhthanthep, 27-08-2007 lúc 05:10 PM.
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-08-2007, 05:13 PM   #15
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
Tham gia ngày: Jun 2005
Bài gửi: 141
:
Bây giờ các bạn lại muốn cả 3 đền nhấp nháy cùng một lúc, khoảng thời gian nhấp nháy là 250ms thì chương trình sẽ như thế này:

void MAIN() {
PORTE = 0; // Xóa dữ liệu cổng E
TRISE = 0; // ĐỊnh nghĩa cổng E là Output
ADCON1 = 0xE; // Định nghĩa cổng E là I/O Port.

Loop: // Nhãn vòng lặp
PORTE = ~PORTE; // Đảo trạng thái cổng E
Delay_ms(250); // Trễ 250ms
goto Loop; // Lặp lại chu trình nháy.
}
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 04:09 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam