Thông báo

Collapse
No announcement yet.

lập trình hẹn giờ tắt cho quạt

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • lập trình hẹn giờ tắt cho quạt

    Chào mọi người, em đang làm 1 mạch điều khiển cho quạt điện, trong đó có 1 chức năng đó là hẹn giờ tắt
    Tạm thời theo mô phỏng thì vấn đề như thế này:
    -Dùng 1 phím bấm để kích hoạt chế độ hẹn giờ tắt: sau 30',60',90'
    -Hiển thị các chế độ hẹn bằng led: 1 led, 2 led, 3 led sáng
    Và dc đoạn code sau:
    #include <mega8.h>

    #define hen_gio PIND.2 // chan INT0
    //hien thi che do hen gio
    #define hen30 PORTC.0 //led1
    #define hen60 PORTC.1 //led2
    #define hen90 PORTC.2 //led3



    // External Interrupt 0 service routine
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    // Place your code here
    int i;
    int j=0;

    j+=1;
    if (j>3) j=0;

    switch(j){
    //case 0 : i=0;break;
    case 1 : {i=30;hen30=1;};break;
    case 2 : {i=60;hen30=hen60=1;};break;
    case 3 : {i=90;hen30=hen60=hen90=1;};break;
    default : {i=0;hen30=hen60=hen90=0;};

    };
    }

    // Declare your global variables here
    //int i;
    //int j=0;
    //int k=0;
    void main(void)
    {
    // Port B initialization
    PORTB=0x00;
    DDRB=0x00;

    // Port C initialization

    PORTC=0x00;
    DDRC=0xFF;

    // Port D initialization

    PORTD=0x00;
    DDRD=0xFF;



    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Rising Edge
    // INT1: Off
    GICR|=0x40;
    MCUCR=0x03;
    GIFR=0x40;


    ACSR=0x80;
    SFIOR=0x00;

    // Global enable interrupts
    #asm("sei")

    while (1)
    {
    hen30=hen60=hen90=0;

    };
    }
    COmpily xong xuôi rồi và đã dc 1 file ".hex"
    Thế nhưng khi chạy thì bấm switch mãi mà chẳng dc led nào sáng cả
    Mọi người giúp em vụ này với.
    * Bùi Quang Minh
    * Lớp: Điện tử 10 - K51 - Đại học Bách khoa Hà Nội
    * Email:
    * Sdt: 01682524028

  • #2
    không ai trả lời đề tài này sao???
    * Bùi Quang Minh
    * Lớp: Điện tử 10 - K51 - Đại học Bách khoa Hà Nội
    * Email:
    * Sdt: 01682524028

    Comment


    • #3
      Nguyên văn bởi mbuiquang Xem bài viết
      Chào mọi người, em đang làm 1 mạch điều khiển cho quạt điện, trong đó có 1 chức năng đó là hẹn giờ tắt
      Tạm thời theo mô phỏng thì vấn đề như thế này:
      -Dùng 1 phím bấm để kích hoạt chế độ hẹn giờ tắt: sau 30',60',90'
      -Hiển thị các chế độ hẹn bằng led: 1 led, 2 led, 3 led sáng
      Và dc đoạn code sau:

      COmpily xong xuôi rồi và đã dc 1 file ".hex"
      Thế nhưng khi chạy thì bấm switch mãi mà chẳng dc led nào sáng cả
      Mọi người giúp em vụ này với.
      PHP Code:

      // External Interrupt 0 service routine
      interrupt [EXT_INT0void ext_int0_isr(void)
      {
          
      // Place your code here
          
      int i;
          
      int j=0;

          
      j+=1;
          if (
      j>3j=0;

              switch(
      j){
                  
      //case 0 : i=0;break;
                  
      case : {i=30;hen30=1;};break;
                  case 
      : {i=60;hen30=hen60=1;};break;
                  case 
      : {i=90;hen30=hen60=hen90=1;};break;
                  default : {
      i=0;hen30=hen60=hen90=0;};

              };

      Với biến j bạn khai báo ở trong hàm ngắt, mỗi khi vào ngắt j đều bằng 0 và sau lệnh
      PHP Code:
      j+=
      thì j = 1; bấm bao nhiêu lần nó cũng chỉ là 1 thôi và kết quả của bạn mỗi khi bấm nút đều là
      PHP Code:
      case : {i=30;hen30=1;};break; 
      và cái dòng lệnh
      PHP Code:
      hen30=hen60=hen90=0
      chắc chắn sẽ ko sáng led nào rồi
      Diễn đàn Vi điều khiển:

      Comment

      Về tác giả

      Collapse

      mbuiquang Tìm hiểu thêm về mbuiquang

      Bài viết mới nhất

      Collapse

      Đang tải...
      X