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

              • bqviet
                Trả lời cho Đấu tắt điện cho máy tính bảng
                bởi bqviet
                Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                06-12-2025, 17:17
              • nguyendinhvan
                Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                bởi nguyendinhvan
                Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                05-12-2025, 19:59
              • afrendly
                Trả lời cho Đấu tắt điện cho máy tính bảng
                bởi afrendly
                Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                04-12-2025, 01:27
              • nick22
                Trả lời cho Máy điện châm ?
                bởi nick22
                Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                01-12-2025, 13:23
              Đang tải...
              X