![]() |
|
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 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 9
: |
![]() Mình mới tìm hiểu về PIC.đang có 1 bài toán mong mọi người giúp:
Đếm số tự nhiên từ 1 đến 9 hiển thị trên LED7 dùng chức năng đếm sự kiện của timer.Và VDK phải được nối đến 1 button,mỗi khi nhấn button thì LED7 tăng lên 1 đơn vị. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 5 túi
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
: |
Cấu hình Timer dùng bộ đếm đống bộ (Synchronous timer), khi đó timer sẽ đếm tăng theo tín hiệu đầu vào của timer đó.
|
![]() |
![]() |
![]() |
#3 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 9
: |
Trích:
đoạn code này do mình viết nhưng chưa chạy.bạn xem giúp mình nó sai ở đâu nha.Thanks nhiều!! #include "E:\Code_CCS\demskien\demsk.h" #include "DEF_877A.H" #use delay(clock=1000000) int count=0; #int_ext void ngat_RB0(){ count++; PORTD=count; if(count==9) count=0; } void main() { TRISB=0xff; TRISD=0x00; PORTD=0x00; PORTB=0xff; enable_interrupts(global); enable_interrupts(int_ext); ext_int_edge(H_to_L); while(1); } |
|
![]() |
![]() |
![]() |
#4 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
Code:
#include <16F877a.H> #fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP #use delay(clock=1000000) int count=0; #int_ext void ngat_RB0(){ count++; output_d(count); if(count>=10) { count=0; output_d(count); } } void main() { set_tris_d(0x00); output_d(0x00); enable_interrupts(global); enable_interrupts(int_ext); ext_int_edge(H_to_L); while(1); { } }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 5 túi
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
: |
Bài này bạn sử dụng ngắt chứ không phải timer đếm sự kiện hix....
Bạn xuất trực tiếp số ra PORTD (PORTD = count) thì LED hiển thị không đúng là phải rồi để LED hiển thị đúng bạn phải mã hóa cho LED trước. VD nếu muốn LED hiển thị số 0 thì PORTD phải có giá trị khác để làm sao cho các thanh của LED: a,b,c,d,e,f sáng. |
![]() |
![]() |
![]() |
#6 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 9
: |
Minh sẽ nối PORTD với 1 con giải mã BCD 7447 mà
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 5 túi
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
: |
Oh thế có nghĩa là chip của bạn đang bị đơ à, trong chương trình bạn chưa có khai báo chip sử dụng, thạch anh rồi các bit cấu hình nữa.
|
![]() |
![]() |
![]() |
#8 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 9
: |
Bạn cho mình hỏi khi mô phỏng trên proteus thì có cần thiết phải set fuse ko.Vì đoạn code trên mình mô phỏng chạy ngon,mà PIC ko bị đơ j cả.hi
#include "E:\Code_CCS\demskien\demsk.h"//dòng này chính là dòng mình đã khai báo sử dụng chíp |
![]() |
![]() |
![]() |
#9 | |
Đệ tử 5 túi
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
: |
Trích:
Tốt nhất khi chạy mô phỏng bạn cũng làm như thật luôn ý, để đến lúc làm mạch thật đỡ phải hoang mang hii... |
|
![]() |
![]() |
![]() |
#10 |
Nhập môn đệ tử
Tham gia ngày: Jul 2010
Bài gửi: 1
: |
![]() PIT Programmable Interval Timer 8253
Mẫu tạo âm La tần số 440Hz băng chip đếm xung Timer 8253A ![]() |
![]() |
![]() |
![]() |
|
|