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

Ðề tài đã khoá
 
Ðiều Chỉnh Xếp Bài
Old 04-12-2005, 01:28 PM   #1
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
Pic16f877a TỪ DỄ TỚi KhÓ

Chào cả làng!


Luồng thứ hai là luồng “PIC16F877A! Nào ta cùng chat!”. Rút kinh nghiệm cái luồng “Học PIC trong vòng một ngày” của bác Falleaf, tui tạo ra them một luồng nữa để cho các bạn thảo luận, thắc mắc và … nói nhảm. Như vậy các bạn sẽ dễ dàng theo dõi các bài viết trong luồng “PIC16F877A TỪ DỄ TỚI KHÓ”, đồng thờI giảm bớt sự luộm thuộm, lung tung cho các luồng trong trang web của chúng ta.

Rất mong các bạn tuân thủ đúng qui định trên để đảm bảo mục đích chung của các luồng.

Qyuết định như vậy đi. Hehe. trị thấy tui làm vậy có được không vậy? Nhớ cho biết ý kiến nghe.

Chào thân ái! Chúc cả làng PICVietnam một ngày chủ nhật vui vẻ!

thay đổi nội dung bởi: falleaf, 26-06-2006 lúc 05:03 PM.
ntc vẫn chưa có mặt trong diễn đàn  
Old 04-12-2005, 08:13 PM   #2
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
Tuần tới, anh sẽ cung cấp mạch phát triển của PIC16F877A cho nhóm PIC ở HCM làm, sau khi có các kết quả thực hành, anh sẽ cung cấp các bài viết chi tiết về mạch phát triển cho PIC16F877A.

Tuy nhiên, trong giai đoạn này, em nên đưa ra một số mạch ứng dụng cụ thể, theo từng bài học cụ thể, các source code và các mạch cần phải cung cấp theo từng bài liên tục, không viết tràn lan, và tránh đi sai mục tiêu.

Trước tiên, em nên chỉ rõ hướng em sẽ đi, để người đọc dễ theo dõi, khi luồng này phát triển và có nhiều người quan tâm, em dán nó lên để cho mọi người dễ thấy.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn  
Old 04-12-2005, 10:45 PM   #3
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
OK! Phản hồi như vậy là được rồi. Tui sẽ làm tới nới tới chốn cái dzụ này.

Nói thiệt là tui cũng chẳng phải là tiền bối gì, chỉ có biết tới đâu thì viết tới đó thôi.

Ghi nhận ý kiến của bác falleaf. Em sẽ tổ chức lại cái tài liệu em gửi cho bác thành từng bài nhỏ có liên quan cụ thể với nhau, chuyển qua pdf và post lên. Việc này cứ để em làm, bác chỉ cần viếng thăm đều đều để có ý kiến ý cò là được rồi.

Mục đích của luồng này trước hết là giúp các bạn làm quen từ từ với PIC16F877A. Trong thời gian đầu, tui sẽ cố gắng viết bài càng chi tiết càng tốt (từ mạch test cho tới chương trình cụ thể) để các bạn có thể làm quen với con PIC này một cách dễ dàng. Sau bước đầu làm quen, các bài viết sẽ mang tính chất đặt vấn đề để tất cả cùng giải quyết, chúng ta sẽ đi theo hướng làm việc dựa trên quá trình tìm hiểu các datasheet của cái mà mình muốn điều khiển, rồi sau đó mới đưa ra phương pháp điều khiển cụ thể cho nó.

Các bài viết sẽ đi theo trình tự từ dễ tới khó, và để tiện cho việc thảo luận, các bài viết sẽ được đánh số rõ ràng, như vậy bên cái luồng "PIC! Nào ta cùng chat!", muốn thảo luận về bài nào ta chỉ cần nói số thứ tự của cái bài đó ra là mọi người sẽ biết. Mỗi bài sẽ chỉ đi sâu vào một ứng dụng cụ thể, các thông tin cung cấp trong mỗi bài sẽ có tính tập trung cao để các bạn dễ theo dõi.
ntc vẫn chưa có mặt trong diễn đàn  
Old 03-04-2009, 11:22 PM   #4
phudu1088
Nhập môn đệ tử
 
phudu1088's Avatar
 
Tham gia ngày: Mar 2009
Bài gửi: 3
:
anh ơi anh có mạch lịch vạn niên không anh giúp em với. anh post cho em được không
phudu1088 vẫn chưa có mặt trong diễn đàn  
Old 05-12-2005, 09:14 PM   #5
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
Bài tui viết xong rồi, nhưng dang chờ mấy tiền bối xét duyệt và điều chỉnh. Trong khi chờ đợi, tui sẽ đưa ra cái mục lục của các bài sắp được post lên. Trong quá trình viết bài có thể sẽ có vài điều chỉnh nhỏ, nhưng định hướng các bài viết sẽ là như vậy. Bài nào có điều chỉnh khác với mục lục tui sẽ đề cập cụ thể:

Bài 1 Điều khiển các port I/O
Bài 2 Chương trình delay
Bài 3 Một số ứng dụng xuất/nhập qua các port của vi điều khiển (bài này
khá dài nên có khả năng sẽ được chia ra thành nhiều bài nhỏ).
Bài 4 Điều khiển IC ghi dịch 74HC595
Bài 5 PIC16F877A và LED 7 đoạn (bài này cũng khó khả năng được chia ra)
Bài 6 Ngắt và cấu trúc của một chương trình ngắt dành cho vi điều khiển
PIC16F877A
Bài 7 Các Timer của vi điều khiển PIC16F877A
Bài 8 Timer và hoạt động định thời
Bài 9 Ứng dụng tổng hợp (coi như là một bài tập để ôn lại tất cả các bài
trước, tui cho rằng bài này sẽ khá thú vị, hehe)
Bài 10 Điều khiển LCD

Tạm thời là như vậy cái đã. Các bạn thấy cái mục lục như vậy đã đủ hấp dẫn chưa?? Hay phải thêm bớt cái gì nữa??
ntc vẫn chưa có mặt trong diễn đàn  
Old 08-12-2005, 01:07 PM   #6
tuanva
Đệ tử 2 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 33
:
Theo tôi nên bổ xung thêm phần Serial Communication
__________________
I'm beginner.

thay đổi nội dung bởi: falleaf, 29-05-2006 lúc 01:52 PM.
tuanva vẫn chưa có mặt trong diễn đàn  
Old 09-12-2005, 04:16 AM   #7
Quygia
Nhập môn đệ tử
 
Quygia's Avatar
 
Tham gia ngày: Nov 2005
Bài gửi: 5
:
Và thêm phần AD converter, giáo trình PIC tiếng Anh và những thứ liên quan, kể cả một cuốn note book cho 16F877 tui có nhiều, có điều không hiểu giữa A và không A, có khác nhau gì không hả bác ntc
__________________
Đầu như đầu bò, óc như kiến gió.
Quygia vẫn chưa có mặt trong diễn đàn  
Old 03-09-2006, 12:30 PM   #8
moihocpic1985
Nhập môn đệ tử
 
Tham gia ngày: Aug 2006
Bài gửi: 9
:
Trích:
Nguyên văn bởi ntc View Post
Bài tui viết xong rồi, nhưng dang chờ mấy tiền bối xét duyệt và điều chỉnh. Trong khi chờ đợi, tui sẽ đưa ra cái mục lục của các bài sắp được post lên. Trong quá trình viết bài có thể sẽ có vài điều chỉnh nhỏ, nhưng định hướng các bài viết sẽ là như vậy. Bài nào có điều chỉnh khác với mục lục tui sẽ đề cập cụ thể:

Bài 1 Điều khiển các port I/O
Bài 2 Chương trình delay
Bài 3 Một số ứng dụng xuất/nhập qua các port của vi điều khiển (bài này
khá dài nên có khả năng sẽ được chia ra thành nhiều bài nhỏ).
Bài 4 Điều khiển IC ghi dịch 74HC595
Bài 5 PIC16F877A và LED 7 đoạn (bài này cũng khó khả năng được chia ra)
Bài 6 Ngắt và cấu trúc của một chương trình ngắt dành cho vi điều khiển
PIC16F877A
Bài 7 Các Timer của vi điều khiển PIC16F877A
Bài 8 Timer và hoạt động định thời
Bài 9 Ứng dụng tổng hợp (coi như là một bài tập để ôn lại tất cả các bài
trước, tui cho rằng bài này sẽ khá thú vị, hehe)
Bài 10 Điều khiển LCD

Tạm thời là như vậy cái đã. Các bạn thấy cái mục lục như vậy đã đủ hấp dẫn chưa?? Hay phải thêm bớt cái gì nữa??
minh moi hoc pic, dang tim hieu ve pwm,compare ban co the them module CCP vao khong!
moihocpic1985 vẫn chưa có mặt trong diễn đàn  
Old 05-09-2006, 11:47 PM   #9
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
Hi all!



Mình quay lại diễn đàn với một tutorial mới đây.

Đây là một bài tập ứng dụng để thiết kế một real time clock sử dụng IC thời gian thực DS12c887, bao gồm các hướng dẫn xây dựng các module ứng dụng và hoàn tất ứng dụng.

Trong bài tập này, mình chưa đặt ra yêu cầu hoàn thiện ứng dụng. Công việc này chúng ta sẽ cùng làm, cùng xây dựng. Như vây sẽ tốt hơn.

Mình để trống một số chỗ chưa hoàn thiện, với ý đồ, làm chạy được rồi, nhưng mà thấy hơi ngứa mắt, thì mọi người sẽ tìm cách làm cho nó đỡ ngứa mắt hơn.

Những điểm chưa hoàn thiện, và những chỗ cần hoàn thiện cho ứng dụng, mình sẽ chỉ ra sau.

Chúng ta sẽ xây dựng ứng dụng theo cách suy nghĩ "củ chuối" nhất, và dễ hiểu nhất.

Sau khi đã thực hiện thành công, vấn đề hoàn thiện sẽ được đặt ra sau, từ chương trình đến mạch ứng dụng.

Thôi, nói nhiều quá. Nó đây!

Hy vọng có người chịu thực hành, và hi vọng nó giúp ích cho các thành viên của PICVIETNAM.

File Kèm Theo
File Type: zip rep03.01.pvn.ntcr.250306.zip (339.3 KB, 10866 lần tải)
__________________


thay đổi nội dung bởi: ntc, 05-09-2006 lúc 11:51 PM.
ntc vẫn chưa có mặt trong diễn đàn  
Old 03-12-2007, 10:06 AM   #10
mrknow
Nhập môn đệ tử
 
Tham gia ngày: Nov 2007
Bài gửi: 1
:
Trích:
Nguyên văn bởi ntc View Post
Bài tui viết xong rồi, nhưng dang chờ mấy tiền bối xét duyệt và điều chỉnh. Trong khi chờ đợi, tui sẽ đưa ra cái mục lục của các bài sắp được post lên. Trong quá trình viết bài có thể sẽ có vài điều chỉnh nhỏ, nhưng định hướng các bài viết sẽ là như vậy. Bài nào có điều chỉnh khác với mục lục tui sẽ đề cập cụ thể:

Bài 1 Điều khiển các port I/O
Bài 2 Chương trình delay
Bài 3 Một số ứng dụng xuất/nhập qua các port của vi điều khiển (bài này
khá dài nên có khả năng sẽ được chia ra thành nhiều bài nhỏ).
Bài 4 Điều khiển IC ghi dịch 74HC595
Bài 5 PIC16F877A và LED 7 đoạn (bài này cũng khó khả năng được chia ra)
Bài 6 Ngắt và cấu trúc của một chương trình ngắt dành cho vi điều khiển
PIC16F877A
Bài 7 Các Timer của vi điều khiển PIC16F877A
Bài 8 Timer và hoạt động định thời








Bài 9 Ứng dụng tổng hợp (coi như là một bài tập để ôn lại tất cả các bài
trước, tui cho rằng bài này sẽ khá thú vị, hehe)
Bài 10 Điều khiển LCD

Tạm thời là như vậy cái đã. Các bạn thấy cái mục lục như vậy đã đủ hấp dẫn chưa?? Hay phải thêm bớt cái gì nữa??
Chào bạn!
Tôi cũng đang rất quan tâm về Pic bạn có thể gởi cho mình xin tài liệu này được ko? Cảm ơn nhiều!
mail. buithanhluan@gmail.com
mrknow vẫn chưa có mặt trong diễn đàn  
Old 11-05-2008, 07:03 PM   #11
dinhthem
Đệ tử 2 túi
 
Tham gia ngày: Apr 2008
Bài gửi: 38
:
Trùi ui !! các bác up bài này mấy chục năm rồi mà bây giờ em bắt đầu đọc, lạc hậu quá

mong các bác chỉ bảo thêm nhe, mới đọc tiêu đề đã thấy hay rồi, cái mình cần học đây rùi, cám ơn bác nhe, trong quá trình học hỏi có điều chi thắc mắc mong các bác trả lời giúp, em có hỏi những câu ngớ ngẩn cũng đừng chê nhe, beginner mà. Thanks.
em đọc hết chương 3, đọc cũng hiểu và có thể viết cho nó chạy đc, mà vẫn chưa biết nãy giờ các anh viết bằng cái gì? ( ngôn ngữ gì, chương trình gì?) cho em xin luôn đc không?

thay đổi nội dung bởi: dinhthem, 11-05-2008 lúc 09:19 PM.
dinhthem vẫn chưa có mặt trong diễn đàn  
Old 09-12-2005, 06:00 PM   #12
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
Cai A hay khong A thi bac Falleaf da tra loi roi. Co A thi bo nho chuong trinh cua no la bo nho Flash, con khong co A thi bo nho chuong trinh cua no la bo nho EEPROM.

Hehe, bai dau tien chinh sua hoi nhieu (vi chua the lam hai long cac vi tien boi) nen cac ban chiu kho doi mot hai bua nua di.

Con viec nay nua, lam on chuyen qua cai luong "PIC16F877A!Nao ta cung chat". Hehe, tui bat dau thay cai luong nay hoi lon xon roi do.
ntc vẫn chưa có mặt trong diễn đàn  
Old 09-12-2005, 08:18 PM   #13
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
Em dang làm mod của box này mà, em có quyền sử dụng các chức năng điều khiển trong box của em, để di chuyển bài viết, cắt dán bài viết....

Các bạn cố gắng chuyển luồng để post bài, để tránh mod phải làm việc nhiều.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn  
Old 10-12-2005, 12:55 PM   #14
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
NÓ ĐÂY! Hehe. Bài đầu tiên.

Hy vọng sau khi đọc xong bài này, các bạn sẽ nhận ra rằng đây không phải là tài liệu dịch hay copy từ đâu đó.

Các bạn đọc xong nhớ cho biết ý kiến nghe, cách viết của tui như vậy đọc có thấy dễ hiểu không.

Bài này là bài cơ bản và khá đơn giản và được viết khá kĩ, hy vọng các bạn có thể hiểu được một cách dễ dàng và thực hiện thành công ứng dụng trong bài.

Còn nữa, tui nhắc lại lần cuối cùng, qua cái luồng "PIC16F877A!NÀO TA CÙNG CHAT" rồi mình cùng thảo luận, hehe, nếu không thì tui bắt buộc phải dùng tới ... vũ lực à nghe.
File Kèm Theo
File Type: pdf TUT01.03.PVN.NTCR.071205.pdf (339.7 KB, 36830 lần tải)
ntc vẫn chưa có mặt trong diễn đàn  
Old 05-02-2006, 10:55 PM   #15
hungkhanh
Nhập môn đệ tử
 
Tham gia ngày: Feb 2006
Bài gửi: 1
:
Trong bài 2, có một đoạn code mình không hiểu cho lắm?

Code:
Đoạn chương trình 2:
MOVLW d’255’
MOVWF delay‐reg1 ; đưa giá trị 255 vào thanh ghi “delay‐reg1”
loop
DECFSZ delay‐reg1,0 ; giảm giá trị thanh ghi “delay‐reg1”và so sánh với 0
GOTO loop1 ; nếu chưa bằng 0 nhảy tới label “loop1”
GOTO next ; nếu đã băng 0 chương trình delay hoàn tất
loop1
MOVLW d’255’
MOVWF delay‐reg2 ; đưa vào thanh ghi “delay‐reg2” giá trị 255
DECFSZ delay‐reg2,0 ; giảm giá trị thanh ghi “delay‐reg2” và so sánh với 0
MOVWF loop1 ; nếu chưa bằng 0 thì nhảy đến label “loop1”
GOTO loop ; nếu bằng 0 thì nhảy đến label “loop”
next
Thử phân tích một chút. Bây giờ ta sẽ xem xét đoạn code sau chạy từ đầu như thế nào

Code:
MOVLW d’255’
MOVWF delay‐reg1 ; đưa giá trị 255 vào thanh ghi “delay‐reg1”
loop
DECFSZ delay‐reg1,0 ; giảm giá trị thanh ghi “delay‐reg1”và so sánh với 0; GIÁ TRỊ ĐƯỢC GHI TRONG DELAY-REG1 GIẢM 1 THÀNH 244, SAU ĐÓ GIÁ TRỊ 244 ĐƯỢC GHI VÀO W-REGISTER, CÒN GIÁ TRỊ ĐƯỢC GHI TRONG DELAY-RED1 VẪN GIỮ NGUYÊN LÀ 255
GOTO loop1 ; nếu chưa bằng 0 nhảy tới label “loop1”
GOTO next ; nếu đã băng 0 chương trình delay hoàn tất
loop1
MOVLW d’255’
MOVWF delay‐reg2 ; đưa vào thanh ghi “delay‐reg2” giá trị 255
DECFSZ delay‐reg2,0 ; giảm giá trị thanh ghi “delay‐reg2” và so sánh với 0. TƯƠNG TỰ NHƯ TRÊN, GIÁ TRỊ ĐƯỢC DÁN CHO DELAY-REG2 SAU KHI THỰC HIỆN LỆNH NÀY VẪN LÀ 255
MOVWF loop1 ; nếu chưa bằng 0 thì nhảy đến label “loop1”
GOTO loop ; nếu bằng 0 thì nhảy đến label “loop”
next
Dó đó, đoạn code sau sẽ delay với khoảng thời gian là infinity.

Đoạn code sau sẽ đúng ghi ta thay đổi 0 thành 1 để sau khi thực hiện kệnh, giá trị sẽ được ghi vào file register. Ngoài ra, còn một chỗ không ổn ở chỗ loop1. Thử phân tích:

- Đầu tiên gán giá trị 255 vào dalay-reg2.
- giảm giá trị của delay-reg2 và so sánh với 0, nếu khác 0 thì thực hiện lệnh tiếp theo. (do ban đầu giá trị là 255 nên giảm 1 còn 254, khác 0 nên sẽ thực hiệ lênh tiếp theo, tức goto loop1)
- lại set giá trị của delay-reg2 là 255.
- giảm gias trị đi 1 và so sánh với 0.
....
như vậy, riêng loop1 cũng thực với với thời gian là infinity dù ở lệnh DECFSZ có để giá trị tham số là 1 hay 0.

vì vậy, ngoài sửa lại giá trị tham số của lệnh DECFSZ từ 0 thành 1, cần đưa phần gán giá trị 255 cho delay-reg2 ra ngoài vòng lặp, đặt nó ở cùng vị trí với chỗ gán giá trị 255 cho delay-reg1.

chắc là NTC đau chân quas nên không chú ý chỗ này ;D


Btw, cho mình hỏi một câu rất dở hơi, thạch anh tên tiếng Anh là gì vậy? có bạn nào giải thích cho mình biết thạch anh là gì không, mình hiểu nó là dùng để tạo xung, nhưng cụ thể hơn thì không biết. Mong được giúp đỡ.
hungkhanh vẫn chưa có mặt trong diễn đàn  
Ðề tài đã khoá


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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 26 07-05-2024 08:55 AM
TUT về USART trong PIC16F877A mafd_47a MPASM 11 04-05-2024 04:43 AM
Lập nhóm PIC16F877A nhh Cơ bản về vi điều khiển và PIC 285 08-03-2017 11:08 PM
Bộ so sánh và PWM cho PIC16F877A anhquangngai Cơ bản về vi điều khiển và PIC 24 08-09-2012 09:00 AM
CCS C for PIC16F877A nhh Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 405 24-04-2008 12:00 PM


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


Đượ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