Thông báo
Collapse
No announcement yet.
điều khiển chương trình con dùng ngắt ngoài
Collapse
X
-
bạn tham khảo nhé
Code:#include <regx51.h> #define led1 P1_0 #define led2 P1_1 char mode; void init(); void EX1_ISR(); void proc1(); void proc2(); void main() { init(); while(1); } void init() { mode=0; EA=1;//cho phep ngat EX1=1;//ngat ngoai 1 IT1=1;//ngat theo suon } void EX1_ISR() interrupt IE1_VECTOR { if(!mode) { mode=1; proc1(); } else { mode=0; proc2(); } } void proc1() { led2=1; led1=0; } void proc2() { led1=1; led2=0; }
Comment
-
Nguyên văn bởi chjpchjp1991Bạn Kidteam viết hàm này mình thấy khó hiểu void EX1_ISR() interrupt IE1_VECTOR { hic hic
@chip: mình mới hoàn thành cái compiler asm đó
bạn tham khảo test giúp mình
có lỗi gì mình fix luôn
Comment
-
#include "reg52.h"
#define led1 P1_0
#define led2 P1_1
int k=0;
main()
{
IE=0x81;
while(1)
{
if(k%2) {led1=1; led2=0;}
else {led1=0; led2=1;}
}
}
void ngat0() interrupt 0
{
//if(k=100) k=0; ///cai nay viet them cho khoi bi tran bien k
while(P3==0xfb);
k++;
}
mình viết luôn chưa test đâu.. nhưng chắc k saiLast edited by tan0710; 08-10-2012, 09:34.
Comment
-
Nguyên văn bởi chjpchjp1991Bạn Kidteam viết hàm này mình thấy khó hiểu void EX1_ISR() interrupt IE1_VECTOR { hic hic
#define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ //được định nghĩa sẵn
@kidteam: void EX1_ISR(); đoạn khai báo chương trình con này k cần thiết, các hàm ngắt ko cần khai báo trước main.Website chính thức đổi địa chỉ website thành
Mời các bạn ghé thăm !!!
Comment
-
Nguyên văn bởi mast090 Xem bài viếtko khó hiểu đâu bạn. cái này chỉ là biến đã được định nghĩa giá trị thôi. bạn open file.h của 8051 lên tìm tới mục các vecto ngắt sẽ tìm thấy giá trị của ie_vector
#define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ //được định nghĩa sẵn
@kidteam: void EX1_ISR(); đoạn khai báo chương trình con này k cần thiết, các hàm ngắt ko cần khai báo trước main.
chỉ là do thói quen thôi bạn à (mình quen trước khi sử dụng cái gì thì khai báo cái đó mặc dù biết là trường hợp này là không cần khai báo)
Comment
-
Nguyên văn bởi kidteam Xem bài viếtbạn tham khảo nhé
Code:#include <regx51.h> #define led1 P1_0 #define led2 P1_1 char mode; void init(); void EX1_ISR(); void proc1(); void proc2(); void main() { init(); while(1); } void init() { mode=0; EA=1;//cho phep ngat EX1=1;//ngat ngoai 1 IT1=1;//ngat theo suon } void EX1_ISR() interrupt IE1_VECTOR { if(!mode) { mode=1; proc1(); } else { mode=0; proc2(); } } void proc1() { led2=1; led1=0; } void proc2() { led1=1; led2=0; }
Ở đây mình đặt 1 vòng lặp cho proc1 lặp vô hạn, nếu khi nào nhấn nút thfi chuyển qua proc2 cũng lặp vô hạn...cứ như thế proc2-->proc1-->proc2...
bạn sửa lại code giúp mình đc k.?
ví dụ ở đây proc1 là 2 led nháy xem kẽ, proc2 là 2 led nháy tắt đồng thời.!
Comment
-
Code:#include <regx51.h> #define led1 P1_0 #define led2 P1_1 unsigned char mode; void proc1(); void proc2(); void init(); void EX1_ISR(); void Delay_Ms(unsigned char uMs); void main() { init(); while(1) { if(!mode) proc1(); else proc2(); } } void init() { mode=0; EA=1; EX1=1; IT1=1; } void EX1_ISR() interrupt IE1_VECTOR { if(mode) mode=0; else mode=1; } void proc1() { led1=1; led2=0; Delay_Ms(100); led1=0; led2=1; Delay_Ms(100); } void proc2() { led1=led2=0; Delay_Ms(100); led1=led2=1; Delay_Ms(100); } void Delay_Ms(unsigned char uMs) { //lam gi do }
Comment
-
Nguyên văn bởi kidteam Xem bài viếtCode:#include <regx51.h> #define led1 P1_0 #define led2 P1_1 unsigned char mode; void proc1(); void proc2(); void init(); void EX1_ISR(); void Delay_Ms(unsigned char uMs); void main() { init(); while(1) { if(!mode) proc1(); else proc2(); } } void init() { mode=0; EA=1; EX1=1; IT1=1; } void EX1_ISR() interrupt IE1_VECTOR { if(mode) mode=0; else mode=1; } void proc1() { led1=1; led2=0; Delay_Ms(100); led1=0; led2=1; Delay_Ms(100); } void proc2() { led1=led2=0; Delay_Ms(100); led1=led2=1; Delay_Ms(100); } void Delay_Ms(unsigned char uMs) { //lam gi do }
Comment
-
Code:#include <regx51.h> #define led1 P1_0 #define led2 P1_1 unsigned char mode; void proc1(); void proc2(); void proc3(); void proc4(); //================================ //co the dat nhieu hon nua v.v. void init(); void EX1_ISR(); void Delay_Ms(unsigned char uMs); void main() { init(); while(1) { switch(mode) { case 0: proc1(); break; case 1: proc2(); break; case 2: proc3(); break; case 3: proc4(); break; } } } void init() { mode=0; EA=1; EX1=1; IT1=1; } void EX1_ISR() interrupt IE1_VECTOR { ++mode; if(mode==4) mode=0; } void proc1() { led1=1; led2=0; Delay_Ms(100); led1=0; led2=1; Delay_Ms(100); } void proc2() { led1=led2=0; Delay_Ms(100); led1=led2=1; Delay_Ms(100); } void proc3() { //lam gi do tuy ban } void proc4() { //lam gi la tuy o ban } void Delay_Ms(unsigned char uMs) { //lam gi do do ban nhe }
Comment
-
Nguyên văn bởi kidteam Xem bài viếtCode:#include <regx51.h> #define led1 P1_0 #define led2 P1_1 unsigned char mode; void proc1(); void proc2(); void proc3(); void proc4(); //================================ //co the dat nhieu hon nua v.v. void init(); void EX1_ISR(); void Delay_Ms(unsigned char uMs); void main() { init(); while(1) { switch(mode) { case 0: proc1(); break; case 1: proc2(); break; case 2: proc3(); break; case 3: proc4(); break; } } } void init() { mode=0; EA=1; EX1=1; IT1=1; } void EX1_ISR() interrupt IE1_VECTOR { ++mode; if(mode==4) mode=0; } void proc1() { led1=1; led2=0; Delay_Ms(100); led1=0; led2=1; Delay_Ms(100); } void proc2() { led1=led2=0; Delay_Ms(100); led1=led2=1; Delay_Ms(100); } void proc3() { //lam gi do tuy ban } void proc4() { //lam gi la tuy o ban } void Delay_Ms(unsigned char uMs) { //lam gi do do ban nhe }
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Năm mới dientuvietnam.netbởi mèomướpDạ năm mới cháu xin kính chúc ông, bà, cô, dì, chú, bác, anh, chị, em, các bạn, các cháu... trong diễn đàn sức khỏe dồi dào, gặp nhìu may mắn và thành công...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 05:42 -
-
Trả lời cho Năm mới dientuvietnam.netbởi nhathung1101Chúc cả nhà ăn no mặc ấm, quần lúc có lúc không.
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 00:02 -
-
Trả lời cho Năm mới dientuvietnam.netbởi vandong1111Năm mới 2025 cháu chúc các chú, các bác mạnh khỏe, vui vẻ, gặp nhiều may mắn.
-
Channel: Tâm tình dân kỹ thuật
29-01-2025, 20:59 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi bqvietNói một cách xây dựng thì kiểu đồng hồ kiêm kẹp dòng NJTY3266 mà bạn Mèo đề cập là đúng nhu cầu người hỏi rồi. Một số cửa hàng bán trên 200ng, vài sàn thương mại điện tử bán dưới - thế là đúng nhu cầu về giá. Nếu khéo săn...
-
Channel: Điện tử dành cho người mới bắt đầu
27-01-2025, 20:02 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Đa năng còn chưa dùng hết, nếu không biết cách dùng.
200k thì hơi khó mua, nhưng 50k chắc là có. Cứ bảo bán cho tôi cái đồng hồ hỏng.-
Channel: Điện tử dành cho người mới bắt đầu
26-01-2025, 23:21 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi nhathung1101Lão Đinh Vặn học giải phương trình hồi đi trẻ mà. Mẫu giáo học lập trình AI rồi. Lớp lão ấy gần lớp em nên em biết....
-
Channel: Điện tử công suất
26-01-2025, 23:11 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vậy chú đã hỏi hãng SIEMEN chưa? Tại sao cái PLC S7-200 cổ lỗ mà họ vẫn thiết kế riêng cho thị trường TQ với chữ SMART? Thậm chí phần mềm riêng để đọc file ngu.smart?
Vấn đề không còn là công nghệ "cốt lõi" nữa, mà là giá thành quyết định. Ham rẻ là trả giá mà....-
Channel: Điện tử công suất
26-01-2025, 23:01 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi vi van phamĐồng ý với Bqv.
50 năm làm nghề, tôi đã chứng kiến 3 lần máy x quang mới nhập từ nước ngoài về bị lỗi.
- Lần thứ 1 máy xq của Pháp được ks Pháp lằp đặt bị lỗi 1 con didode, đưa cho ks Pháp con didode khác cùng mã số, ông...-
Channel: Điện tử công suất
26-01-2025, 08:09 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi mèomướpDạ chú dinh... muốn sửa lỗi cho hãng thì chú cứ gửi những hình ảnh, video cho họ đi ạ, chú có thể tìm thông tin của những lãnh đạo bên ấy để gửi thì sẽ hiệu quả hơn ạ. Về tổng quan thì họ sẽ ko phản hồi rõ ràng đâu ạ, vì nhận...
-
Channel: Điện tử công suất
26-01-2025, 06:19 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi bqvietCuối năm bàn thêm chuyện to hơn chút, đấy là 2 vụ rơi đám 737 đời mới và trục trặc ở cả tá chiếc khác. Ngay cả những thứ tưởng như cao siêu sang xịn thật thì vẫn có thể gặp trường hợp oái oăm như thường. Từ hồi đó bqv đã thấy khó hiểu làm sao lại đẻ ra đám MCAS quái thai đến thế được. Rồi...
-
Channel: Điện tử công suất
24-01-2025, 19:40 -
Comment