Tìm kiếmĐăng ký thành viên  >  Đăng nhập    Liên hệ     
  

Trang chủ



Thảo luận



 SỰ KIỆN ĐẶC BIỆT TẠI VAGAM/ EVENTS & SEMINARS
 Thông tin chung
 Điện – điện tử: căn bản và các chuyên đề
 Cảm biến và cơ cấu chấp hành
 Lập trình vi xử lý, vi điều khiển và điều khiển logic
- Vi điều khiển 89c51
- Vi điều khiển AVR.
- Vi điều khiển PIC.
- Các trao đổi về Vi điều khiển khác
 Giao tiếp máy tính - truyền dữ liệu - xử lý ảnh số
 Phần mềm và ngôn ngữ lập trình trong kỹ thuật
 Điều khiển tự động
 Thiết kế và mô phỏng hệ thống cơ khí
 Các chuyên đề ÔTÔ, XE MÁY - ROBOT - AUTOMATION
 Anh văn kỹ thuật
 Chia sẻ tài liệu cùng các thành viên
 Các chủ đề thảo luận chung
 Mã nguồn mở



Tài liệu tham khảo









http://hocdelam.org

http://labview.hocdelam.org

http://vagam.dieukhien.net/index.php?tpid=5&catid=10&chapid=83

http://vagam.dieukhien.net/index.php?tpid=5&catid=24&chapid=75

http://vagam.dieukhien.net/index.php?tpid=5&catid=5&chapid=33

http://vagam.dieukhien.net/index.php?arid=37

http://vagam.dieukhien.net/discuss.php?thid=148&pagenum=1

http://vagam.dieukhien.net/discuss.php?thid=456

http://vagam.dieukhien.net/discuss.php?thid=497&pagenum=1

http://vagam.dieukhien.net/discuss.php?ftopid=12&fcatid=44

http://www.dieukhien.net

http://dieukhientudong.com

http://suno.vn


http://spkt.net/diendan/

http://sanpham.hocdelam.org

http://robot.kut.ac.kr

http://labview.hocdelam.org/vn/Nghien-cuu/Hoi-thao-khoa-hoc.nso

http://www.phone4vn.com




Bài 3 : Tạo cảnh báo sử dụng ngắt ngoài

 
 giotdang | 05:54:42 30-12-07 | Posts: 191 1
Tips: bạn phải đăng nhập mới thấy các Video hướng dẫn bài này

Tóm tắt : Qua bài học này bạn sẽ biết được thế nào là ngắt ngoài .Cách sử dụng ngắt ngoài của AVR


Giới thiệu :



Atmega16 có 3 ngắt ngoài INT0(PORTD.2) INT1(PORTD.3) và INT2(PORTB.2)
Khi xảy ra một trong các sự kiện đối với các chân này :

Low level - Điện áp ở chân ngắt xuống mức logic 0 V
Any change - Bất kì sự thay đổi điện áp từ chân ngắt
Falling Edge - Khi có 1 sườn điện áp xuống (5V->0V)
Rising Edge -Khi có 1 sườn điện áp lên (0V->5V)

Sau đó 1 cờ ngắt sẽ dựng lên 1 và báo cho biết có ngắt , nhảy đến chương trình con thực hiện ngắt .

Ví dụ : Dùng ngắt để báo động khi xảy ra sự cố của hệ thống .
Khi hệ thống xảy ra sự cố , chân PORTD3(INT1 ) sẽ có giá trị là 0V chương trình sẽ bật đèn đỏ để cảnh báo .Khi kết thúc sự cố bật trở lại đèn xanh .

Ban đầu khởi tạo ta sẽ để đèn xanh bật đỏ tắt , PORTD.3 treo lên 5V , là port vào
PORTD=0x08;
DDRD=0x00;

Chọn ngắt INT1 chế độ Low level (khi nào chân PD3 có mức logic 0V là xảy ra ngắt )

GICR|=0x80;
MCUCR=0x00;
MCUCSR=0x00;
GIFR=0x80;
c code
  1.  
  2. /*****************************************************
  3. This program was produced by the
  4. CodeWizardAVR V1.24.8d Professional
  5. Automatic Program Generator
  6. © Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
  7. http://www.hpinfotech.com
  8.  
  9. Project :
  10. Version :
  11. Date : 12/29/2007
  12. Author : le ngoc tuan
  13. Company : vagam
  14. Comments:
  15.  
  16.  
  17. Chip type : ATmega16
  18. Program type : Application
  19. Clock frequency : 8.000000 MHz
  20. Memory model : Small
  21. External SRAM size : 0
  22. Data Stack size : 256
  23. *****************************************************/
  24.  
  25. #include <mega16.h>
  26. #include <delay.h>
  27.  
  28. // Declare your global variables here
  29.  
  30. #define den_xanh PORTB.4
  31. #define den_do PORTB.5
  32.  
  33.  
  34.  
  35. // External Interrupt 1 service routine
  36. interrupt [EXT_INT1] void ext_int1_isr(void)
  37. {
  38. // Place your code here
  39. den_xanh=1;den_do=0;//bat den do ,tat den xanh
  40. }
  41.  
  42.  
  43.  
  44. void main(void)
  45. {
  46. // Declare your local variables here
  47.  
  48. // Input/Output Ports initialization
  49. // Port A initialization
  50. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
  51. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
  52. PORTA=0x00;
  53. DDRA=0x00;
  54.  
  55. // Port B initialization
  56. // Func7=In Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
  57. // State7=T State6=0 State5=0 State4=T State3=T State2=T State1=T State0=T
  58. PORTB=0x80;
  59. DDRB=0x30;
  60.  
  61. // Port C initialization
  62. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
  63. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
  64. PORTC=0x00;
  65. DDRC=0x00;
  66.  
  67. // Port D initialization
  68. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
  69. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
  70. PORTD=0x08;
  71. DDRD=0x00;
  72.  
  73.  
  74.  
  75. // External Interrupt(s) initialization
  76. // INT0: Off
  77. // INT1: On
  78. // INT1 Mode: Low level
  79. // INT2: Off
  80. GICR|=0x80;
  81. MCUCR=0x00;
  82. MCUCSR=0x00;
  83. GIFR=0x80;
  84.  
  85.  
  86. // Global enable interrupts
  87. #asm("sei")
  88. while (1)
  89. {
  90. den_xanh=0;den_do=1;
  91. };
  92. }
  93.  
  94.  




giotdang1985@yahoo.com

 satthu | 07:50:48 30-12-07 | Posts: 372
Cảm ơn bác nhiều nhé!