Em đang làm một bộ điều khiển đơn giản như sau:
- Khi có sườn xuống ở chân ngắt P3.2 thì cổng P3.4=1, p3.5=0
- Khi có sườn xuống ở chân ngắt P3.3 thì P3.4=0, P3.5=1
Em viết chương trình như sau:
#include<at89c2051>
main()
{
EA=1; //Cho phép su dung ngat
EX0=0; //cho phep ngat ngoai 0
EX1=1; //Cho phép ngat ngoai 1
IT0=1; //cho phep ngat ngoai 0 la theo suon xuong
IT1=1; //Cho phep ngat ngoai 1 la theo suon xuong
While(1)
{
}
}
void Ngatcounter(void) interrupt 0
{
P3_4=1;
P3_5=0;
}
void ngatsensor(void) interrupt 2
{
P3_4=0;
P3_5=1;
}
Em muốn hỏi các anh chị vài vấn đề:
1. Ban đầu khi chưa có ngắt nào cả thì em muốn set P3.4=0, P3.5=1, nhưng kể từ khi có ngắt(ngắt nào cũng đuoc) thì P3.4 va P3.5 chỉ được set theo chương trình ngắt. Vậy phải bổ sung chương trình như thế nào?
2. Giả sử khi ngắt P3.2 xảy ra, theo câu lệnh thì P3.4=1, P3.5=0, sau khi kết thúc ngắt 0 mà chưa có ngắt 1 thì trạng thái P3.4 và P3.5 có bị thay đổi không (Em chỉ muốn thay đổi khi có ngắt 1)
3. Câu này đáng ra phải hỏi từ đầu. muốn thiết lập P3.4 và P3.5 là đầu ra ( để cấp nguồn cho opto PC817) thì phải thiết lập chương trình ra sao?
Vì không phải dân điện tử mà lại là ks điện nên việc tìm hiểu về 8051 hơi khó khăn( Mặc dầu trước đây có học 16f877a nhưng cũng chỉ là học cho đủ môn chuyên ngành).
Rất mong anh chị em trên diễn đàn giúp đỡ. Em đang làm mạch đk nho nhỏ cho công ty.
Xin cảm ơn!
- Khi có sườn xuống ở chân ngắt P3.2 thì cổng P3.4=1, p3.5=0
- Khi có sườn xuống ở chân ngắt P3.3 thì P3.4=0, P3.5=1
Em viết chương trình như sau:
#include<at89c2051>
main()
{
EA=1; //Cho phép su dung ngat
EX0=0; //cho phep ngat ngoai 0
EX1=1; //Cho phép ngat ngoai 1
IT0=1; //cho phep ngat ngoai 0 la theo suon xuong
IT1=1; //Cho phep ngat ngoai 1 la theo suon xuong
While(1)
{
}
}
void Ngatcounter(void) interrupt 0
{
P3_4=1;
P3_5=0;
}
void ngatsensor(void) interrupt 2
{
P3_4=0;
P3_5=1;
}
Em muốn hỏi các anh chị vài vấn đề:
1. Ban đầu khi chưa có ngắt nào cả thì em muốn set P3.4=0, P3.5=1, nhưng kể từ khi có ngắt(ngắt nào cũng đuoc) thì P3.4 va P3.5 chỉ được set theo chương trình ngắt. Vậy phải bổ sung chương trình như thế nào?
2. Giả sử khi ngắt P3.2 xảy ra, theo câu lệnh thì P3.4=1, P3.5=0, sau khi kết thúc ngắt 0 mà chưa có ngắt 1 thì trạng thái P3.4 và P3.5 có bị thay đổi không (Em chỉ muốn thay đổi khi có ngắt 1)
3. Câu này đáng ra phải hỏi từ đầu. muốn thiết lập P3.4 và P3.5 là đầu ra ( để cấp nguồn cho opto PC817) thì phải thiết lập chương trình ra sao?
Vì không phải dân điện tử mà lại là ks điện nên việc tìm hiểu về 8051 hơi khó khăn( Mặc dầu trước đây có học 16f877a nhưng cũng chỉ là học cho đủ môn chuyên ngành).
Rất mong anh chị em trên diễn đàn giúp đỡ. Em đang làm mạch đk nho nhỏ cho công ty.
Xin cảm ơn!
Comment