![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 6 túi
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.
|
![]() |
![]() |
![]() |
#2 |
Đệ tử 6 túi
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ế độ.
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 6 túi
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. |
![]() |
![]() |
![]() |
#4 |
Đệ tử 6 túi
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.
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 6 túi
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.
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 9 túi
|
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 |
![]() |
![]() |
![]() |
#7 |
Đệ tử 6 túi
Tham gia ngày: Jun 2005
Bài gửi: 141
: |
|
![]() |
![]() |
![]() |
#8 | |
Đệ tử 4 túi
Tham gia ngày: Aug 2006
Bài gửi: 81
: |
Trích:
Mong hồi âm của bác! |
|
![]() |
![]() |
![]() |
#9 | |
Đệ tử 9 túi
|
Trích:
Trong khi chưa thể coding mấy cái công thức chuyển đổi loằng ngoằng này, theo cách củ chuối, ta cứ lật tờ lịch ra, đánh dấu các ngày mùng 1 âm lịch hằng tháng xem nó trùng với ngày dương lịch nào, sau đó lưu vào eeprom. 10 năm tầm cỡ 120 giá trị, ko nhiều lắm. Bác nào hứng thú thì chuyển mã sang C chuyên nghiệp hơn.
__________________
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 |
|
![]() |
![]() |
![]() |
#10 | |
Đệ tử 4 túi
Tham gia ngày: Aug 2006
Bài gửi: 81
: |
Trích:
+)Dùng 1 biến đếm tháng dương Count,ta biết cứ qua một tháng dương thì sẽ qua một tháng âm,nên mỗi khi biến đếm tăng lên 1 thì cũng đã sang tháng âm mới, và ngày âm tương ứng với ngày mồng 1 hàng tháng ta sẽ lưu vào eeprpom +)Khi có một ngày dương lịch ví dụ như 28/12/2007 cần xác định lịch âm ta sẽ dựa vào biết đếm(giả sử biến đếm Count= 3,lấy mốc từ tháng 1/9/2007 ) để gọi ra ngày âm lịch tương ứng với ngày 1/12/2007 là ngày 22/10 ) ta sẽ lấy : (28-1) + 22 -30 = 19 là ngày âm lich tương ứng,ở đây 30 là số ngày của tháng 10 âm lịch,hay là số ngày ứng với biến đếm = 3,điều này có nghĩa là với tập giá trị của Count từ 1 đến 120 (120 tháng ứng với 10 năm) ta cần xác định với giá trị nào Count thì tương ứng với 30,với giá trị nào của Count thì tương ứng với 29 và với giá trị nào của Count thì tương ứng với 28.Ta có thể sử dụng 1 eeprom 256 byte với 120 byte đầu ghi ngày âm,120 byte sau số ngày trong tháng ứng với giá trị biến Count +)Bổ sung thêm là nếu (ngày dương - 1) +ngày âm (lấy ra từ eeprom) < 28 thì ngày đó là ngày âm cần tìm Bác hiểu ý em chứ ! thay đổi nội dung bởi: david, 26-09-2007 lúc 10:27 AM. |
|
![]() |
![]() |
![]() |
#11 | |
Nhập môn đệ tử
Tham gia ngày: Oct 2009
Bài gửi: 1
: |
giúp em với
Trích:
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 |
|
![]() |
![]() |
![]() |
|
|