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 Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc 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 26-03-2006, 06:55 PM   #1
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 ntc
Cái Timer thì thời gian chỉ cần tương đối thôi, không cần chính xác.

Về phần thiết kế phần cứng cũng ổn rồi.

Cái mình muốn đưa ra thảo luận trong ứng dụng này là cái chỗ bí mà nhh mắc phải.

Cái lệnh ORG, bạn có thể không cần sử dụng trước bảng tra, mà có thể để cho trình biên dịch tự sắp xếp, để tránh hiện tượng bị code đè lên. Mà trường hợp này khi biên dịch bằng MPASM thì nó có báo lỗi mà.

Stack! Bàn đầu mình cũng nghĩ vấn đề chương trình chạy không đúng là do stack. Nhưng hình như không phải. .
Kinh nghiệm của ntc vấn đề này là gì vậy? Cái bảng bị ghi đè này chăng !Chia se cho anh em với !
__________________
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 27-03-2006, 04:08 PM   #2
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
Về việc bắt đầu viết chương trình bằng ngôn ngữ gì ASM,CCS C,HT-PIC,...,theo mình tốt hơn vẫn nên học cơ bản bằng ASM trước sau đó đào sâu thì càng tốt không thì nhảy qua các ngôn ngữ khác cũng dễ chịu rồi !
Bạn nên đọc luồng này để tham khảo cách học của mọi người :
http://www.picvietnam.com/forum//showthread.php?t=91
Chúc bạn mau chóng tìm cho mình cách học hiệu quả nhất !
__________________
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 27-03-2006, 10:41 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
Dùng bao nhiêu ngắt cũng được. Cái quan trọng là ban phải phát hiện ra ngắt nào xảy ra để xử lí.

Như vậy, khi bắt đầu chương trình ngắt, bạn phải có đoạn chương trình kiểm tra xem ngắt nào xảy ra bằng cách kiểm tra các cờ ngắt. Ngắt nào xảy ra thì cờ ngắt tương ứng với ngắt đó sẽ nhảy lên mức logic 1. Kiểm tra xong thì ra lệnh cho vi điều khiển nhảy đến đoạn chương trình xử lí tương ứng.
__________________

ntc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-03-2006, 10:58 PM   #4
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 có tất cả 3 Timer. Mìhn không nhớ thật sự chi tiết, nhưng đại khái nó như vầy:

Timer 0 và Timer 2 là bộ đếm 8 bit.

Timer 0 có bộ chia tần số (prescaler) dùng chung với Watchdog Timer. Nghĩa là khi bộ chia tần số này được sử dụng bởi WDT, thì cái Timer 0 không được quyền xài nó và ngược lại.

Timer 2 có cả 2 bộ chia tần số phía trước và phía sau (prescaler và postscaler) cho phép ta ấn định tỉ số chia linh hoạt hơn để tạo ra khoảng thời gian thích hợp cho ứng dụng.

Timer 0 và Timer 2 tuy là bộ đếm 8 bit, nhưng tỉ số chia của các bộ chia lớn hơn Timer 1. Như vậy nó cũng cho phép tạo ra các khoảng thời gian delay với độ trễ thích hợp với các ứng dụng trong thực tế.

Timer 1 là bộ đếm 16 bit, được hỗ trợ bởi bộ chia tần số prescaler. Tuy nhiên tỉ số chia này nhỏ (1:1 đến 1:16).

Mỗi Timer có cấu tạo khác nhau, điều đó cũng có nghĩa mỗi Timer sẽ thích hợp hơn với một tình huống nào đó trong thực tế, và tùy theo cái tình huống mà lựa chọn Timer thích hợp.

Sơ lược như vậy, bạn tham khảo datasheet để biết thêm chi tiết, mình chỉ nhớ mang máng như vậy thôi, không biết có chỗ nào nhớ lộn không nữa.

Về việc tham khảo cách khởi tạo và sử dụng Timer, bạn tham khảo thêm các hướng dẫn trong tài liệu "mid-range PIC mcu reference manual" trong micro chip. Trong đó hướng dẫn rất chi tiết, bạn chỉ việc dựa trên cái sườn bài có sẵn trong cái tài liệu đó và thay đổi các thông số cài đặt cho thích hợp là ok.

__________________

ntc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-03-2006, 11:10 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
Chắc bữa nào phải sửa lại cái Timer cho đàng hoàng rồi post lên cho anh em quá. Hic, dạo này bị bác F chơi, quăng việc liên tục, mệt gần chết, cũng hết thời gian rảnh luôn.

Về cái Timer của nhh. Bạn khắc phục như thế này thử xem: cái bảng dữ liệu, bạn chuyển lên đặt ở phía trên, sao cho các lệnh của phần table nó nằm trong vùng code 256 byte đầu của bộ nhớ chương trình, không đặt nó ở cuối chương trình nữa. Nhiều khi do chương trình phía trên bạn viết dài, nên cái table bị rơi ra khỏi vùng 256 word đầu tiên của bộ nhớ chương trình. Chắc ăn là chuyển hẳn nó lên phía trên chương trình start luôn, tức là viết table xong thì tới cái label start.

Có phải cái chương trình của bạn khi viết xong, bạn không thể kiểm soát được là nó sẽ chạy theo kiểu nào đúng không. .

nhh hiểu ý mình không. Sửa lại rồi thông báo tình hình cho anh em như thế nào nhé!

.
__________________


thay đổi nội dung bởi: ntc, 27-03-2006 lúc 11:19 PM.
ntc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-04-2006, 12:24 PM   #6
zero_OR_one
Nhập môn đệ tử
 
Tham gia ngày: Oct 2005
Bài gửi: 5
:
em có 1 bài toán bên mục của bác Chính,nhờ mọi người chỉ cho
zero_OR_one vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-04-2006, 11:51 AM   #7
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
Timer 1 của PIC16F877A có chế độ cho phép bật tắt Timer.

__________________

ntc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-04-2006, 12:50 PM   #8
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 ntc
Timer 1 của PIC16F877A có chế độ cho phép bật tắt Timer.

Mình xin nói thêm cả timer1 và timer2 luôn, để bật timer1 và timer2 lần lượt dung lệnh:
Code:
BSF T1CON,TMR1ON    ;bat Timer1
BSF T2CON,TMR2ON    ;bat Timer2
__________________
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 16-04-2006, 12:57 PM   #9
picpicpic
Đệ tử 2 túi
 
picpicpic's Avatar
 
Tham gia ngày: Jan 2006
Bài gửi: 36
:
Cũng ko có gì mới cả...
Các bác mau mau post tiếp đi chứ !

Đợi các bác lâu quá mất cả hứng ...!
__________________
************************************************** **
The only wrong thing would be to deny what your heart truly feels!
************************************************** **
picpicpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-04-2006, 10:06 PM   #10
newuser
Đệ tử 4 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 66
:
Timer0 ở PIC6F877A vẫn là free counter, theo mình thì cấp điện vào là nó đã chạy tự do rồi, vấn đề là bạn dùng nó lúc nào thôi, về prescaler thì mình nghĩ cũng như 16F84A, nghĩa là khi đã dùng nó cho WDT thì timer0 sẽ dùng với tỉ lệ chia là 1:1
newuser vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2006, 11:02 AM   #11
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
Tại sao lại chỉ dùng với tỉ lệ chia 1:1
Còn những tỉ lệ khác không dùng được sao, bạn xem kĩ datasheet phần timer0, nó chia đến tận tỉ lệ 1:128 lậ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
nhh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2006, 01:38 PM   #12
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Trích:
Nguyên văn bởi nhh
Tại sao lại chỉ dùng với tỉ lệ chia 1:1
Còn những tỉ lệ khác không dùng được sao, bạn xem kĩ datasheet phần timer0, nó chia đến tận tỉ lệ 1:128 lận !
Không phải, ý bạn đó nói là Timer0 dùng chung prescaler với Watchdog cơ mà. Bit chọn lựa bộ chia trước Prescaler cho Watdog hay timer0 là bit PSA (bit 3 trong thanh ghi OPTION).

Khi PSA = 1 thì nó dùng cho WDT
PSA = 0 thì prescaler dùng cho timer0.

Và dĩ nhiên khi PSA = 1 thì timer0 chỉ có tỉ lệ chia là 1:1 tức là sẽ k bị chia trước tần số.

Chúc các bạn thành công.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-04-2006, 12:10 AM   #13
pb1
Đệ tử 2 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 31
:
các bác xem giúp em cái

hơ hơ.... sao không up file lên được nhỉ?

bác fall ơi, xem giúp em cái !.Em đã tải file lên rồi, tại sao không thấy file đâu?
em định tải file lên để nhờ các bác chỉ giáo tí.

thay đổi nội dung bởi: falleaf, 19-06-2006 lúc 12:39 PM.
pb1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-06-2006, 12:37 PM   #14
ngulapphuong
Nhập môn đệ tử
 
Tham gia ngày: Jun 2006
Bài gửi: 9
:
Nhờ các bác cho em hỏi về cách định địa chỉ gián tiếp, thanh ghi SFR, INDF và những vấn đề liên quan
ngulapphuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-06-2006, 12:39 PM   #15
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
Trích:
Nguyên văn bởi pb1
bác fall ơi, xem giúp em cái !.Em đã tải file lên rồi, tại sao không thấy file đâu?
em định tải file lên để nhờ các bác chỉ giáo tí.
gửi email cho mình, mình tải lên lại cho, nhớ ghi rõ là gửi lên luồng nào nhé
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bà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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT về USART trong PIC16F877A mafd_47a MPASM 16 19-02-2025 05:32 AM
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 28 28-01-2025 10:45 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
Pic16f877a TỪ DỄ TỚi KhÓ ntc Cơ bản về vi điều khiển và PIC 373 23-05-2009 10:24 PM
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:08 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