![]() |
đếm sự kiện với timer
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ị. |
Trích:
|
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); } |
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. |
Minh sẽ nối PORTD với 1 con giải mã BCD 7447 mà
|
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.
|
1 Attachment(s)
Trích:
Code:
#include <16F877a.H> |
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 |
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... |
Pit 8253
1 Attachment(s)
PIT Programmable Interval Timer 8253
Mẫu tạo âm La tần số 440Hz băng chip đếm xung Timer 8253A :) |
Múi giờ GMT. Hiện tại là 05:59 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam