Tình hình là mình đang làm mạch điều khiển 8 LED đơn bằng vđk 89c51 và thứ 6 đây phải nộp rùi, có vài điều mình hok hỉu mong mọi người giải đáp giúp nha.
Đây là mạch mình tự vẽ:
Về mạch mình có mấy câu hỏi sau:
1. Về phần reset - giá trị của R1 là bao nhiêu? Mình thấy vài tài liệu trên mạng gi là 10k or 8.2 k nhưng khi mình mô phỏng trên proteus thì k đc, khi ấn nút k có tác dụng ji, khi mình cho R1 chừng 1k thì khi ấn nút nó sẽ reset, vậy có đc k?
2. Trong mạch có cái điện trở thanh kia, khi mô phỏng trong proteus mình mún điều chỉnh giá trị của nó thì vào chổ nào ?
Đây là code của mình, mình cho 1 nút điều khiển P1.0: khi P1.0 = 1 thì nó sẽ sáng từng cặp đèn 1-8 -> 2-7 -> 3-6 -> 4-5 rùi ngược lại và liên tục như vậy, khi nhấn nút P1.0 sẽ bằng 0 nó sẽ sáng các đèn từ 1->8 và ngược lại.
Về code thì mình có câu hỏi này, có thể hơi ngớ ngẫn 1 tý các pác đừng chém nha : ta có lệnh nhập dữ liệu cho port : P0 = 0x01, mình mún hỏi "0x" là cái ji, tại sao phải viết nó vào ???
Các bạn có mạch + code (có mo phỏng nữa càng tốt) hoặc ý tưởng ji hay cho mạch điều khiển LED thì chia sẽ cho mình với nha
Cuối cùng là xin các bạn xem qua đoạn code của mình và chỉnh sửa giúp mình cho nó ngắn gọn và xúc tích nhất nha
Thanks các bạn đã đọc bài của mình
#include <REGX51.H>
void delay( unsigned int ms )
{
unsigned char j=120;
while(ms--)
while(j--){};
}
main ()
{
unsigned char i,j;
while (1)
{
if(P1_0 == 0)
{
P0 = 0x01;
delay(200);
for (i=0;i<7;i++)
{
P0<<=1 ;
delay(200);
}
for (j=0;j<6;j++)
{
P0>>=1 ;
delay(200);
}
}
else
{
P0=0x81;
delay(200);
P0=0x42;
delay(200);
P0=0x24;
delay(200);
P0=0x18;
delay(200);
P0=0x24;
delay(200);
P0=0x42;
delay(200);
}
}
}
Đây là mạch mình tự vẽ:
Về mạch mình có mấy câu hỏi sau:
1. Về phần reset - giá trị của R1 là bao nhiêu? Mình thấy vài tài liệu trên mạng gi là 10k or 8.2 k nhưng khi mình mô phỏng trên proteus thì k đc, khi ấn nút k có tác dụng ji, khi mình cho R1 chừng 1k thì khi ấn nút nó sẽ reset, vậy có đc k?
2. Trong mạch có cái điện trở thanh kia, khi mô phỏng trong proteus mình mún điều chỉnh giá trị của nó thì vào chổ nào ?
Đây là code của mình, mình cho 1 nút điều khiển P1.0: khi P1.0 = 1 thì nó sẽ sáng từng cặp đèn 1-8 -> 2-7 -> 3-6 -> 4-5 rùi ngược lại và liên tục như vậy, khi nhấn nút P1.0 sẽ bằng 0 nó sẽ sáng các đèn từ 1->8 và ngược lại.
Về code thì mình có câu hỏi này, có thể hơi ngớ ngẫn 1 tý các pác đừng chém nha : ta có lệnh nhập dữ liệu cho port : P0 = 0x01, mình mún hỏi "0x" là cái ji, tại sao phải viết nó vào ???
Các bạn có mạch + code (có mo phỏng nữa càng tốt) hoặc ý tưởng ji hay cho mạch điều khiển LED thì chia sẽ cho mình với nha
Cuối cùng là xin các bạn xem qua đoạn code của mình và chỉnh sửa giúp mình cho nó ngắn gọn và xúc tích nhất nha
Thanks các bạn đã đọc bài của mình
#include <REGX51.H>
void delay( unsigned int ms )
{
unsigned char j=120;
while(ms--)
while(j--){};
}
main ()
{
unsigned char i,j;
while (1)
{
if(P1_0 == 0)
{
P0 = 0x01;
delay(200);
for (i=0;i<7;i++)
{
P0<<=1 ;
delay(200);
}
for (j=0;j<6;j++)
{
P0>>=1 ;
delay(200);
}
}
else
{
P0=0x81;
delay(200);
P0=0x42;
delay(200);
P0=0x24;
delay(200);
P0=0x18;
delay(200);
P0=0x24;
delay(200);
P0=0x42;
delay(200);
}
}
}
Comment