PDA

View Full Version : Giúp mình với! SOSSSSSSSS


hamchoi
25-10-2005, 12:09 PM
(Vì chưa biết cách Post sơ đồ mạch nên đành mô tả vậy)
Mình dùng con 16F628 để điều khiển hiển thị 4 LED 7 đoạn thông qua con 74LS47:
+ 16F628 nối với 74LS47:
- RB6 -> A
- RA1 -> B
- RA0 -> C
- RB7 -> D
+ 16F628 nối với 4 LED:
- RB1 -> Led 1
- RB0 -> Led 2
- RA2 -> Led 3
- RA3 -> Led 4
Chương trình viết bằng CCS như sau:
#include "E:\truong\laptrinhCCS\bailam.h"
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
While(1)
{
Output_bit( PIN_B1, 1);
Output_bit( PIN_B0, 1);
Output_bit( PIN_A2, 1);
Output_bit( PIN_A3, 1);
Output_bit( PIN_B7, 0);
Output_bit( PIN_A1, 0);
Output_bit( PIN_A0, 0);
Output_bit( PIN_B6, 1);
delay_ms(50);
}
}
Nhưng sao 4 đèn LED nó cứ hiện số 9599 nhỉ, trong khi kết quả mong muốn là 1111.
Có sư huynh nào biết bệnh chỉ giùm với!!
:(

noisePIC
25-10-2005, 09:40 PM
Nếu chương trình của bạn hiện được số thế này ...thì có lẽ do phần cứng bạn lắp chắc là bị sai. Với cả vô lý là nếu sai thì phải là 9999 chứ. Bạn thử kiểm tra con 7447 xem..Nếu ABCD=0001 thì lối ra có là 1 không? ABCD=2 thì LED hiển thị là 2 không? Cái đó chuẩn chưa?...

Sao bạn không nối PORTA với ABCD để khi xuất dữ liệu thì tốt hơn
VÍ DỤ PORTA=5 thì LED hiển thị là 5?

hamchoi
26-10-2005, 11:10 AM
Cảm ơn nha, mình đã khắc phục lỗi vừa rồi nhưng lại gặp một trục tặc mới. Mình có sử dụng 3 chân RB2, RB3, RB4 để nối với 3 nút nhấn thì nút nối với chân RB4 bị lỗi. Khi nhấn nút thì mức điện thế ở chân này sẽ từ mức 1 về 0, nhưng đồng thời với sự thay đổi này thì điện thế ở các chân khác cũng thay đổi làm cho các chữ số ở LED bị mất, khi đè nút này thì các đèn LED lại sáng. Có phải sự thay đổi này là do chức năng thứ 2 của chân RB4 không nhỉ. Giải thích dùm mình với!