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 sai
Last 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 Hàn chì thiếc lên nhôm.bởi bqvietChắc chắn không ai phủ nhận công sức của bác VVP, mà chỉ cần thời gian để hiểu, hiểu rồi thì sẽ thấm. Chuyện đó không nhanh trong vòng vài giờ đồng hồ được. Hóa học vốn không đơn giản, nhất là khi các phản ứng đề cập trên...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 20:45 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamNhiều người vào xem rồi lẳng lặng bỏ đi. Bài viết của tôi, mà không, phải nói là công sức của tôi đã bị phủ nhận. Mình sai ở đâu? Buồn.
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 20:19 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamĐể hàn nhôm các bạn cần chuẩn bị:
1- Sufat đồng CuSo4 pha thêm vài giot acit sulfuric, chứa vào chai nước muối sinh lý rửa mũi, mắt.
2- Cồn 90 độ, cũng chứa vào chai nước muối sinh lý.
B1- Trước tiên các bạn nhỏ lên vị...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 14:04 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamTrước tiên giúp các bạn hiểu rõ vấn đề, tôi giải thích hiện tượng vật lý trên video:
Lớp Cu sau khi mạ quá tệ do Cu bám trên Fe, thầy giáo đã đốt Cu thành CuO (oxid đồng) đồng thời Fe ( cây đinh) thành Fe2o3. Như vậy lớp CuO...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 23:42 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi mèomướpDạ cháu cũng xin phép dơ tay like ạ. Vậy là được 3 người rồi ạ, chờ thêm 1 người nữa để thành trên 3 ạ...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:25 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi bqvietBqv dơ tay đồng thuận, dù rằng đã mua loại flux trợ hàn thiếc chuyên dụng rồi. Có thêm một cách khác để hàn nhôm để dắt lưng dự phòng cũng hay.
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:17 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi dinhthuong80Cháu đang chờ thêm 2like nữa để xem bác chia sẻ ạ!
Đã xem clip bác giới thiệu!
Cảm ơn bác chia sẻ kinh nghiệm cho thợ điện tử....-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 10:45 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamCác bạn xem video này, cách mạ đồng lên sắt và inox chắc chắn, không bong tróc của 1 thầy giáo dạy Hóa ( Video chỉ nói mạ lên sắt, inox mà thôi), không giảng dạy lý thuyết phản ứng. https://www.youtube.com/watch?v=gVtN...h%E1%BB%8DcABC
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 07:56 -
-
bởi vi van phamHàn chì thiếc lên dây điện nhôm luôn là sự khó khăn của anh em thợ. Dung dịch trợ hàn nhôm quãng cáo mua về chỉ hàn được sắt và inox. Tôi tìm thấy trên mạng người ta dùng sulfat đồng CuSo4 mạ đồng lên nhôm rồi hàn. Cách này không dùng...
-
Channel: Tâm tình dân kỹ thuật
04-03-2025, 20:04 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nguyendinhvanNó là di chứng của cái bệnh thành tích, hình thức. Nếu không chữa trị đúng thày đúng thuốc thì sau này dễ biến chứng thành căn bệnh ảo.
Dẫu sao thì khoa học kỹ thuật công nghệ cũnc· cần kết hợp với cúng lễ ạ.
Cầu Thiên...-
Channel: Tâm tình dân kỹ thuật
03-03-2025, 22:15 -
Comment