Thông báo

Collapse
No announcement yet.

Các Anh Ơi Giúp Em Cái Ngắt Ngoài Kích Cạnh Lên với !!!!

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

  • Các Anh Ơi Giúp Em Cái Ngắt Ngoài Kích Cạnh Lên với !!!!

    Em mới học AVR đang làm ngắt ngoài đơn giản
    dùng ngắt ngoài kích cạnh lên
    nhấn INT1 tăng lên 1
    nhấn INT0 giảm 1
    hiển thì ra led 7 đoạn
    nhưng lạ là khi chạy nhấn INT1 lần đầu thí nó tăng lên 1(có interrupt xảy ra) nhưng nhấn tiếp thì chẳng có gì nữa (không có interrupt)
    em không biết bị sao mong các anh giúp em với
    đây là code (em dùng codevision)
    PHP Code:

    #include <mega16.h>

    unsigned int n=0;
    char DecimalTo7Segment(unsigned char n){
        
    char data[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
        if(
    n>9){
            return -
    1;
        }
        return 
    data[n];
    }
    // External Interrupt 0 service routine
    interrupt [EXT_INT0void ext_int0_isr(void)
    {
        if(
    n>0){
            
    n--;    
            
    PORTB=DecimalTo7Segment(n);
        }
    }

    // External Interrupt 1 service routine
    interrupt [EXT_INT1void ext_int1_isr(void)
    {
        if(
    n<9){
            
    n++;
            
    PORTB=DecimalTo7Segment(n);
        }
    }

    void main(void)
    {
     
    PORTB=0x00;
    DDRB=0xFF;

    PORTD=0x00;
    DDRD=0x00;

    GICR|=0xC0;

    //kich canh len
    MCUCR=(0x01<<ISC11)|(0x01<<ISC10)!(0x01<<ISC01)|(0x01<<ISC00);
    #asm("sei")

    while (1)
          {

          }

    đây là mạch proteus
    Attached Files
    Last edited by ken_son; 04-01-2012, 14:51.

  • #2
    PORTD=0XFF;
    DDRD=0X00;
    sửa lại chương trình trong hàm main là như thế để kéo điện trở trong của 2 chân ngắt này lên. Ko thì nối 2 điện trở 10k 1 đầu vào vcc, 1 đầu vào chân ngắt trong phần cứng.
    Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
    Liên hệ sđt: 0902.808.371

    Comment


    • #3
      Nguyên văn bởi manh89 Xem bài viết
      PORTD=0XFF;
      DDRD=0X00;
      sửa lại chương trình trong hàm main là như thế để kéo điện trở trong của 2 chân ngắt này lên. Ko thì nối 2 điện trở 10k 1 đầu vào vcc, 1 đầu vào chân ngắt trong phần cứng.
      PORTD=0XFF; thì PORTD ở mức cao sao kích cạnh lên được ,em làm theo nhưng đứng luôn
      Có cách khác không

      Comment


      • #4
        Không ai giúp được sao hix

        Comment


        • #5
          Nguyên văn bởi ken_son Xem bài viết
          PORTD=0XFF; thì PORTD ở mức cao sao kích cạnh lên được ,em làm theo nhưng đứng luôn
          Có cách khác không
          Người ta thường dùng điện trở để treo các cổng lên(có thể dùng điện trở ngoài hoặc treo bằng điện trở bên trong AVR). Các chân ngắt nên nối với âm, nó vẫn kích cạnh lên như thường.
          WS:
          Blog:

          Comment


          • #6
            Nguyên văn bởi ken_son Xem bài viết
            PORTD=0XFF; thì PORTD ở mức cao sao kích cạnh lên được ,em làm theo nhưng đứng luôn
            Có cách khác không
            Ờ nhầm, vậy thì sửa thế này PORTD=0X00;
            Ở phần cứng chỗ 2 chân ngắt nối 2 con điện trở 4k7 xuống Mass.
            Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
            Liên hệ sđt: 0902.808.371

            Comment


            • #7
              #include <mega16.h>

              interrupt [EXT_INT0] void ext_int0_isr(void)
              {
              PORTB=255;
              }

              interrupt [EXT_INT1] void ext_int1_isr(void)
              {
              PORTB=0;
              }


              void main(void)
              {
              PORTA=0x00;
              DDRA=0x00;

              PORTB=0x00;
              DDRB=0xFF;

              PORTC=0x00;
              DDRC=0x00;

              PORTD=0x00;
              DDRD=0x00;

              GICR|=0xC0;
              MCUCR=0x05;
              MCUCSR=0x00;
              GIFR=0xC0;


              #asm("sei")

              while (1)
              {
              // Place your code here

              };
              }
              Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
              Liên hệ sđt: 0902.808.371

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X