PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   "PIC16F877A!NÀO TA CÙNG CHAT!" (http://www.picvietnam.com/forum/showthread.php?t=239)

anhthang 09-02-2007 08:09 AM

Gởi anh Nguyễn Trung Chính, Em chỉ mới biết về Pic được 15 ngày!

Em có xem vài cái tutorial do Anh viết, Em rất thích! Mong rằng Anh nhín chút thời gian viết tiếp nữa, Em ủng hộ Anh. Em biết:"Thật là khó khăn để trình bày một vấn đề cho người mới học". Em tin: "Chẳng bao lâu nữa, mọi người sẽ được phổ cập Pic" và sẽ gởi bài như Anh...

Trong tutorial viết về hàm delay của Anh, có một số chỗ Em thấy khó chịu. Trước khi mọi việc được sáng tỏ, Em mong Anh cho em biết:
" Có tài liệu nào trình bày thời gian thực hiện của một lệnh nào đó không ?"

Nếu có được điều Em muốn, thì mới tự tin cho Anh thấy chỗ khó chịu trong tutorial viết về hàm delay.

Một lần nữa, Em xin Cảm ơn mọi thành viên trong PicVietNam ( Falleaf, NHH, NTC, NamQN,..còn nhiều lắm!) đã góp phần phổ cập Pic cho Em!

qanhep 09-02-2007 08:37 AM

Chú anhthang chịu khó vào www.microchip.com mà load cái instruction set về mà đọc. Trong đó nói rõ, lệnh nào thực hiện hết bao nhiêu chu kỳ máy.

ntc 09-02-2007 12:41 PM

Bài viết về chương trình delay bạn download bản đã chỉnh sửa để đọc nhé. Tại đây, bài số #22:

http://www.picvietnam.com/forum//sho...p?t=238&page=2

Về thời gian thực thi lệnh, bạn đọc trong datasheet, từ khóa là "instruction cycle". Có thể dùng để search trên google để tìm hiểu thêm.

anhthang 09-02-2007 07:48 PM

Cảm ơn anh NTC và bạn Qanhep nhiều, chúc mọi người khỏe mạnh, hạnh phúc!

hieulongan039 09-02-2007 10:24 PM

chao các ban,
mình có 1 vài thắc mắc muốn thỉnh giáo các bạn:
1/ minh cũng vừa mới tìm hiểu PIC mà thôi mà mình chỉ có tài liệu tiếng việt về PIC 16F84 mà thôi mà mình thì muốm tìm hiểu PIC 16F877 nen ko biết là tập lệnh (những lệnh giống giữa 2 loại này) có xài chung được hay ko (vì mình muốn học 16F877 nhưng sau nay có dùng 16F84 cung duợc).
2/ trong bank thanh ghi của PIC có phần thanh ghi mục đích chung W (G-P-R) mà mình thấy là một nhiều địa chỉ có nghĩa là nó là tập hợp của nhiều thanh ghi vậy khi minh truy xuất thì nó sẽ như thến nào.
3/ trong PIC 16F877 có tấc cả 4 bank thank ghi nhưng sao mình thấy nó có những thanh ghi cùng tên nhưng khác địa chỉ vậy là sao?
4/ mình dùng mạch nạp qua cổng COM (PGC2)mà bác falleaf upload lên có thể dùng trong mạch thí nghiệm nạp xong chạy luôn ko? vì mình thấy mạch đó ko cần cấp nguồn nuôi.
5/ giá của PIC 16F877 là bao nhiêu 1 con, để mình biết mà cẩn thận hơn (sinh viên mà).
6/ trong TP>HCM có chổ nào học PIC ko nếu có các bác chỉ mình đi học với.
còn nữa mình sẽ hỏi tiếp trong lần sau (để về nghiên cứu trước đã hehe) hehe

anhthang 10-02-2007 08:39 AM

Thật là xui xẻo! Trung gõ cho Bạn được 30 phút tự nhiên cúp điện.
Trung nghĩ Bạn chưa xem hết các luồng trong trang Web này, tất cả các câu trả lời điều nằm trong đó hết.
Pic16F877A giá 90 ngàn
Lớp học Pic do PicVietNam chỉ mở ở Hà Nội!
Mạch nạp PG2C không cho phép chạy trực tiếp, nhiệm vụ của nó chỉ là nạp chương trình.
Còn mạch nạp Tiny Bootloader thì cho phép chạy trực tiếp để thí nghiệm.
Nhưng không thể loại bỏ một trong hai mạch nạp.

Trước tiên Bạn cần biết khái niệm Bootloader là gì?
Bootloader là chương trình Asm dùng để nạp vào vi điều khiển Pic. Muốn nạp nó vào Pic thì Bạn dùng PG2C để nạp.Khi nạp xong, Bạn cắm Pic vào mạch chạy thử . Sau khi reset, nó sẽ đợi tín hiệu từ máy tính trong một giây,nếu nhận được tín hiệu từ máy tính thì nó sẽ nhận chương trình nạp mới vào ( nếu Bạn có kết nối với mạch Tiny Bootloader và mạch tiny bootloader có kết nối với máy tính)
Còn nếu không nhận được tín hiệu từ máy tính nó sẽ thực thi chương trình cũ.
Bạn thấy tiện lợi không, khi Bạn kết nối mạch chạy thử ( Test ) với Tiny Bootloader và kết nối với máy tính. Trong khoảng thời gian 1s tính từ lúc reset mạch, chương trình Bootloader sẽ thực thi, và sẵn sàng nạp chương trình mới từ máy tính vào ( nếu có tín hiệu từ máy tính ). Còn nếu không nhận được tín hiệu từ máy tín thì nó sẽ thực thi chương trình cũ.

anhthang 10-02-2007 08:55 AM

Biết đến đâu, chỉ đến đó!
 
Mạch nạp PG2C yêu cầu như sau: Bạn phải cắm Pic vào mạch nạp, và từ đó mới được phép cắm mạch nạp vào máy tính. Sau khi nạp xong bạn phải gỡ mạch nạp ra khỏi máy tính, và từ đó mới được phép lấy Pic ra. Giả sử Bạn đã viết xong một chương trình, muốn nạp nó vào Pic. Bạn phải cắm Pic vào mạch nap, và cắm mạch nạp vào máy tính. Sau khi nạp xong, Bạn phải thực hiện các thao tác: gỡ mạch nạp ra khỏi máy tình, gỡ Pic ra khỏi mạch nạp và cắm vào mạch chạy thử ( mạch test ). Không may chương trình viết sai thì sao? Bạn phải sửa chương trình và nạp lại, mệt mỏi lắm!
Mạch nạp Bootloader sẽ giúp Bạn.
Vì mạch PG2C đã lấy các tín hiệu cần thiết từ cổng RS232. Trung cũng mới học Pic như Bạn, hi. Qua tết mình sẽ mua PG2C, Tiny Bootloader, và 2 con Pic16F877A về chơi, mấy hôm nay thèm quá!
Mong thành viên trong PicVietNam thông cảm nếu em trình bày không đúng, vì em chỉ mới học Pic có 16 ngày thôi!
Chúc mọi người năm mới hạnh Phúc!


F: mọi người đều cùng học hỏi lẫn nhau, F rất cảm ơn những bài trả lời như thế này, vì những câu hỏi căn bản luôn được hỏi đi hỏi lại, vậy các bạn thành viên hãy cùng giúp các thành viên khác, và giúp đỡ diễn đàn.

anhthang 10-02-2007 08:57 AM

xin lỗi: vì Pic lấy tín hiệu cần thiết qua cổng RS232 nên không cần cấp nguồn.

anhthang 10-02-2007 06:51 PM

Trời! mình gõ nhầm: mạch nạp PG2C lấy các tín hiệu cần thiết từ cổng RS232 của máy tính nên "không cần cấp nguồn" chứ không phải Pic lấy tín hiệu cần thiết từ cổng RS232. Thành thật xin lỗi.

namqn: vậy phiên bản gốc của bạn chỉ thiếu cụm từ "nên không cần cấp nguồn", hai post sau có thể xóa đi. Nếu bạn không biết cách sửa thì tôi sẽ sửa sau.

hawinter 10-02-2007 07:12 PM

các bác cho hỏi khi muốn nạp một chương trình mới vào PIC
mình có cách nào để xoá chương trình cũ đi không em nghe nói là nên
xoá chương trình cũ trước khi nạp chương trình mới (em sử dụng pg2c và Icprog)
Em mua con 877A có 55k ở Hà Nội (17A Hàn Thuyên)

falleaf 10-02-2007 08:08 PM

Nếu như bạn nạp lại mới, thì bạn nên xóa chương trình cũ trước, sau đó mới nạp, và nên đặt chế độ verify.

Trong ICPROG nó có nút xóa. Hoặc trong một số trình nạp, nó cho phép bạn đặt chết độ khi bấm nút nạp, thì nó xóa trước rồi mới nạp và verify luôn.

Chúc vui

namqn 10-02-2007 09:46 PM

Trích:

Nguyên văn bởi anhthang (Post 7321)
Trước tiên Bạn cần biết khái niệm Bootloader là gì?
Bootloader là chương trình Asm dùng để nạp vào vi điều khiển Pic. Muốn nạp nó vào Pic thì Bạn dùng PG2C để nạp.Khi nạp xong, Bạn cắm Pic vào mạch chạy thử . Sau khi reset, nó sẽ đợi tín hiệu từ máy tính trong một giây,nếu nhận được tín hiệu từ máy tính thì nó sẽ nhận chương trình nạp mới vào ( nếu Bạn có kết nối với mạch Tiny Bootloader và mạch tiny bootloader có kết nối với máy tính)
Còn nếu không nhận được tín hiệu từ máy tính nó sẽ thực thi chương trình cũ.
Bạn thấy tiện lợi không, khi Bạn kết nối mạch chạy thử ( Test ) với Tiny Bootloader và kết nối với máy tính. Trong khoảng thời gian 1s tính từ lúc reset mạch, chương trình Bootloader sẽ thực thi, và sẵn sàng nạp chương trình mới từ máy tính vào ( nếu có tín hiệu từ máy tính ). Còn nếu không nhận được tín hiệu từ máy tín thì nó sẽ thực thi chương trình cũ.

Nói tổng quát hơn, bootloader là một chương trình (viết bằng bất cứ ngôn ngữ gì) dùng để nạp code mới vào chip thông qua một phương tiện truyền thông nào đó (thường dùng RS-232, hay USB). Một điều kiện cần là chip phải có khả năng tự nạp chương trình, đây là lưu ý quan trọng vì nhiều bạn vẫn dùng PIC1F84(A) hay PIC16F628(A) để bắt đầu học PIC, và các chip này không dùng với bootloader được.

Thân,

hungpq 12-02-2007 09:35 AM

Báo cáo với các bác là tôi đã ghi được dữ liệu vào bộ nhớ Flash của con pic16f877a. Đoạn code trong datasheet của con 16f877a nó bị sai các bác ah, còn MPLAB vẫn cho mô phỏng việc ghi flash bình thường, chỉ có điều nó không cho mình xem bit WR trong thanh ghi EECON1 set lên.

hieulongan039 13-02-2007 06:00 PM

cám ơn bác anhthang rat nhieu.
nhan tiện năm mới chúc bác cùng cả gia đình PIC Việt Nam năm mới an khang thịnh vượng nhiều niềm vui sức khoẻ để tiếp tục nghiên cứu PIC càng ngày càng chuyên nghiệp và số người sử dụng cũng tăng theo. (hơi dài dòng).
bác cho mình hỏi thêm vài cài nữa nghe:
1/ khi mình muốn truy xuất bất kỳ 1 thanh ghi nào thì mình fải nhảy đếm bank chứa thanh ghi đó bằng cách set bit ớ thanh ghi status hả bác.
2/ trong PIC 16f877 co tới 4 bank thanh ghi mà nó có các thanh ghi trùng tên như status hay portB và cả thanh ghi muc đích chung mình vẫn chưa hiểu lám vì thanh ghi muc đích chung là cả 1 khoảng thanh ghi vậy khi nói đến W, hay status thì nó biết cài nào mà truy xuất chứ?

thân ái
and HAPPY NEW YEAR

hieulongan039 14-02-2007 06:26 PM

cho minh hoi thêm 1 câu kỹ thuật bảng là gì vậy? hồi xưa mình có sử dụng 89 nhưng chưa nghe thuật ngữ này mong anh em chỉ giáo


Múi giờ GMT. Hiện tại là 03:36 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam