cho em hỏi xíu sao em lắp mạch rồi . chân reset nối đât, ie lên nguon rồi, p1 em noi voi led, chan 1819 em lap thach anh roi, em viet chuong trình delay 1 giây để led nhấp nháy ma sao nó ko nháy j hết , mong các anh biết chỉ em với
hoi về delay
Collapse
X
-
mạch reset thêm cái tụ nối lên dương nguồn nữa. Tham khảo lại cấu hình tối thiểu để Chip có thể chạy đi.
Thêm cái nữa là chương trình chắc đúng chưa ?
-
-
-
Chương trình này thấy quen quen, giống cuốn nào của bọn Tây thì phải. Thử chương trình khác nhé !
PHP Code:#include "regx52.h" void delay( unsigned int ms ) { unsigned int i,j; for (i=0;i<ms;i++) for (j=0;j<120;j++) {} } void main (void) { while(1) { P1 = 0x00; delay(1000); P1 = 0xFF; delay(1000); } }
Comment
-
Có thể lý do là ở đây:
thanks bro, nó đã chạy okie , ma em chưa hiểu sao chương trình em nó lại ko nhấp nháy rõ ràng em viết delay 1s mà
- chương trình delay của bạn đếm đến lớn nhất là 33000, nếu bạn chọn thạch anh 11.0592MHz thì mỗi chu kì máy hết 1.085us từ đó chương trình delay của bạn được khoảng 35ms.
- Trong chương trình chính cứ 35ms bạn thay đổi dữ liệu một lần --> tần số thay đổi dữ liệu của bạn là 1/35x10^(-3) = 28Hz. Mắt chúng ta chỉ có thể phân biệt được 24 hình /1s (24Hz) --> Không thể phân biệt được quá trình thay đổi dữ liệu với tần số 28Hz
Vì thế tôi đoán led vẫn nhấp nháy, nhưng mà bạn không nhìn thấy nó nhấp nháy thôi
- Nếu bạn chọn thạch anh nhỏ hơn thì câu trả lời của tôi có thể là sai.
Thân!
Toan.lvFor a better world
Comment
-
bạn thử thay thế x<33000 => x<=33000 đi,đã từng có 1 bạn ý kiến rằng.để 33000 thì xấp xỉ 1s,nhưng <33000 thì chỉ khoảng 0, mấy s đấy,cho nên bạn có thể không thấy đcNguyên văn bởi siriusr Xem bài viếtthanks bro, nó đã chạy okie , ma em chưa hiểu sao chương trình em nó lại ko nhấp nháy rõ ràng em viết delay 1s mà
Comment
-
#include "regx52.h"
void delay( unsigned int ms )
{
unsigned int i,j;
for (i=0;i<ms;i++)
for (j=0;j<120;j++)
{}
}
void main (void)
{
while(1)
{
P1 = 0x00;
delay(1000);
P1 = 0xFF;
delay(1000);
P1 = 0x0E;
delay(1000);
P1 = 0xFC;
delay(1000);
P1 = 0xF8;
delay(1000);
P1 = 0xF0;
delay(1000);
P1 = 0xE0;
delay(1000);
P1 = 0xC0;
delay(1000);
P1 = 0x80;
delay(1000);
P1 = 0x00;
delay(1000);
P1 = 0x80;
delay(1000);
P1 = 0xC0;
delay(1000);
P1 = 0xE0;
delay(1000);
P1 = 0xF0;
delay(1000);
P1 = 0xF8;
delay(1000);
P1 = 0xFC;
delay(1000);
P1 = 0xFE;
delay(1000);
P1 = 0xFF;
delay(1000);
}
}
cho hỏi tiếp , chuong trình này về nguyên lí lặp vô tận đúng ko. ma sao khi em đem lên mạch nó chạy cỡ 5 lần rồi tắt hết lun , mong anh chỉ em với
Comment
-
Chương trình hoàn toàn bình thường, không có lí do gì ở chường trình này khiến nó không lặp vô tận.
Lỗi ở đây chắc là do phần cứng của bạn. Kiểm tra lại xem nhé !
Comment
Bài viết mới nhất
Collapse

Comment