Bạn nào co giáo trinh VDK ( phần NGẮT ) post cho minh xin! NGẮT là sao? dùng để làm gì? bạn nào giải thích dùm minh với,mình học tới đây không hiểu gì hết đó
Thông báo
Collapse
No announcement yet.
Ngắt trong VDK 89C51
Collapse
X
-
ngắt trong 8051
đây là chương nói về ngắt trong giáo trình của thầy Nguyễn tăng Cường(HVKTQS).bạn xem thử coi.hjhjAttached FilesLast edited by fly_1304; 16-05-2010, 18:29.ĐẠI HỌC SƯ PHẠM KỸ THUẬT I
Nợ cha một sự nghiệp - Nợ mẹ một nàng dâu
-
Nguyên văn bởi maluong Xem bài viếtCảm ơn bác em cũng đã hiểu cơ bản về ngắt rồi nhưng nếu có các VD trong bài giảng bằng C thì hay quá. ASM em ko biết
PHP Code:<REGX52.H>
//=======a....d la cac bit dau vao cua 74HC47
#define a P2_0
#define b P2_1
#define c P2_2
#define d P2_3
//========thu tu led tinh tu phai qua trai
#define led1 P2_4
#define led2 P2_5
#define led3 P2_6
#define led4 P2_7
//********Khai báo các bi?n******************
unsigned char t1,t2,t3,t4,thu_tu_led;
//*********Ham tao do tre*******************
void delay(unsigned int ms)
{
unsigned int i,j;
for (i=0; i<ms; i++)
{ for (j=0; j<120; j++) ;
//----------------led 7 thanh-------------------------
void display(unsigned char number)
//hi?n th? 1 s? trên led 7 thanh.
//d?i s? number thành mã BCD
{ char x,y;
x=number/8;y=number-x*8;d=x;
x=y/4;y=y-x*4;c=x;
x=y/2;y=y-x*2;b=x;
a=y;
}
void display_led(unsigned int number,led)
{
if(led==1)
{P2=0xff;led1=0;}
else if (led==2)
{P2=0xff;led2=0;}
else if (led==3)
{P2=0xff;led3=0;}
else if (led==4)
{P2=0xff;led4=0;}
else
{P2=0xff;}
display(number);
}
void timer0_init()//dung cho ngat timer 0
{
TMOD&=0xF0;//0xFO=1111.0000
TMOD|=0x01;//timer0 in mode 1(16bit)
ET0=1;
EA=1; //tham khao "ho vi dieu khien 8051"
TH0=0x00; //Phai chu y
TL0=0x00; //Phai chu y
TR0=1;
}
void chuongtrinh_timer0 (void) interrupt 1//chuong trinh phuc vu ngat timer0
{ unsigned char hh;
if (thu_tu_led==1){hh=t1;}
else if (thu_tu_led==2){hh=t2;}
else if (thu_tu_led==3){hh=t3;}
else {hh=t4;}
display_led(hh,thu_tu_led);
thu_tu_led= thu_tu_led+1;
if (thu_tu_led>4){thu_tu_led=1;}
//giu nguyen
TH0=0xf0;
TL0=0xf0;
TF0=0;
TR0=1;
}
}
}
main()
{//làm gì thì làm
//luu ý:t1,t2,t3,t4 là các giá tr? hi?n th? trên led 7 thanh
//còn vi?c b?n l?y giá tr? c?a nó ? dâu thì tùy b?n
}
void time0_init() đây là phần khai báo chế độ ngắt của vđk
void chuongtrinh_timer0 (void) interrupt 1 phần này là cái mà chương trình ngắt thực hiện khi có yêu cầu ngắt
Comment
-
anh fly_1304 ơi gửi cho em trọn bộ sách của thầy Nguyễn Tăng Cường vào mail này có được không anh
em cảm ơn anh
mail cua em là: phamtrungtdh@gmail.com
Comment
-
Tôi có ví dụ 89C51 với ngắt ngoài và ngắt timer, với code asm và C. tham khảo tại Phan Information Technology trong mục "Học tập"0912666017
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
-
Trả lời cho Hỏi về test hipot cao ápbởi nguyendinhvanCách nghĩ của bạn là theo duy tâm thôi. Còn trong công việc thì phải theo duy lý.
Bạn vào goggle và gõ từ : tiêu chuẩn an toàn cách điện.
Bạn sẽ thấy vô vàn các quy định, VN cũng có , quốc tế cũng có. Mỗi vùng , mỗi khu vực,...-
Channel: Điện tử dành cho người mới bắt đầu
02-11-2024, 20:04 -
Comment