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 Mạch tự động bật nguồnbởi nhathung1101Bác đúng là hệ Pháp, nên toàn quên chữ "d".
Nếu em được như bác, đúng 0h mới được stand by với hũ rượu và vợ thì tuyệt.
Nhưng đời không như là mơ, em và lão Đinh Vặn ngấm đủ mà.
Lão Đinh Vặn...-
Channel: Điện tử gia dụng
hôm nay, 00:17 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nhathung1101Vì bản chất của nó hoạt động theo dòng. Áp chỉ để mức giới hạn.
Cứ hiểu như bạn khôn hơn 10 người, nhưng khả năng thu nhận kiến thức chỉ bằng 1/10 người khác, thì nó sẽ tự điều chỉnh thôi.-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 23:41 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Ựa... có lý...
Dưng mà lão chỉ dùng 1 con opto là nguy hiểm lắm.
Có khi nó on lúc lão với ấy ấy về nhà lúc vắng vợ thì khổ. Nên phải thêm cái mạch logic nữa mới được....-
Channel: Điện tử gia dụng
Hôm qua, 23:20 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi lct1610Bác có cách nào khác ngoài quấnlại/rút bớt vòng dây BA (và mua mới ) k nhỉ ? Tại gỡ ra cũng khá lằng nhằng và kì công...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 19:30 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi mèomướpDạ với mức áp chênh lệch quá nhìu thì ngoài chỉnh hồi tiếp thì chú cần quấn lại thứ cấp biến áp nữa ạ. Tùy loại mà có thể sẽ khéo léo rút bớt vòng dây đỡ phải tách lõi ferit ạ...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:57 -
-
bởi lct1610E có adapter laptop cũ hiệu asus chạy tốt ,có đầu ra ổn định ở 19,4v dòng 3,42A ( công suất 60w). E định là hạ nó xuống 12v để cấp nguồn cho đầu camera. Và e đã thử bằng cách can thiệp vào phần hồi tiếp (sử dụng ic DAS001 hay TSM103W) thông...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:44 -
-
bởi nguyendinhvanỞ đây thì cũng chỉ có mấy cái máy tập gym là cùng, vào Nhà máy thì không đủ tuổi, mà bài thực hành thì không đủ cơm trưa.
Mà mấy cái máy gym thì cần giải pháp đồng bộ tốt hơn là biện pháp chắp vá....-
Channel: Đặt hàng
26-12-2024, 23:12 -
-
Trả lời cho Mạch tự động bật nguồnbởi nguyendinhvanMấy cái hệ thống Minh Thông đó là tôi tránh xa.
Vì một ngày mình bấm nút La- bô mấy lần, bấm vào những giờ nào nó cũng lưu vào datalog.
Dễ lộ bảo mật.
...-
Channel: Điện tử gia dụng
26-12-2024, 23:00 -
-
Trả lời cho Mạch tự động bật nguồnbởi vi van phamĐinh Vặn và Nhà Thùng ngồi uống bia thì cúp điện. Đinh Vặn vào trạng thái stanby, cầm ly bia mà không uống được. Đến khi có điện, cảm biến của Đinh Vặn phát huy chức năng, cầm chai bia tu 1 hơi.
Nhà Thùng vào trạng thái stanby,...-
Channel: Điện tử gia dụng
26-12-2024, 07:47 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Lão hôm nay uốn mấy lọ? Làm tôi đọc bài của lão toát cả mồ hôi, mãi khi nhìn sơ đồ mới hiểu....
Aiza... Lão lại đi về thời 0.4 rồi! Giờ cảm biến và trợ lý và thiết bị có đầy...
Tôi về đến Pháp Vân, gọi...-
Channel: Điện tử gia dụng
25-12-2024, 23:30 -
Comment