Chào mừng các bạn đến với forum lớp DTVT_K7A CNTT Thái Nguyên
Bạn hãy "Đăng nhập" để tham gia cùng chúng tôi

Join the forum, it's quick and easy

Chào mừng các bạn đến với forum lớp DTVT_K7A CNTT Thái Nguyên
Bạn hãy "Đăng nhập" để tham gia cùng chúng tôi

Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Top posters

banmun08 (721)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
Toanlt_GP (368)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
tiendientu343 (344)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
hany_mitu (281)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
TranTuyen_BG (275)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
Capkama (271)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
VDuy_NĐ (260)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
Minh (257)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
tieuthantien_3t (173)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 
Hangvt_gc (171)
cho em hỏi về hàm ngắt trong lập trình . Bar_leftcho em hỏi về hàm ngắt trong lập trình . Barcho em hỏi về hàm ngắt trong lập trình . Bar_right 

Latest topics

» Game dân gian thuần việt 2014 ra mắt phiên bả
by banmun08 Fri May 02, 2014 5:38 pm

» Ứng dụng Bóng đá trực tuyến - Chia sẻ mới dàn
by meocontt89 Fri May 02, 2014 3:44 pm

» Bài bào cáo mạch bấm chuông trò chơi
by tuyenbk2009 Sun Apr 27, 2014 10:48 pm

» Tư vấn học công nghệ thông tin - lập trình
by wyuru Thu Apr 24, 2014 5:17 pm

» Hero Chibi - Khai mở máy chủ S10 - SonGoKu
by Poligon121 Wed Apr 16, 2014 2:15 pm

» mạch đông hồ vạn niên sư dụng DS1307
by ttd2506 Mon Apr 14, 2014 9:45 pm

» Game8 phát 1000 GiftCode mừng máy chủ mới của
by Poligon121 Mon Apr 14, 2014 3:07 pm

» HIỆP KHÁCH 4U.COM OPEN GAME HỒI 10H00 SÁNG
by anata Fri Apr 11, 2014 1:34 pm

» Đua tốp Mu Thần Tài nhận iphone iphone 5s
by muthantai Sun Apr 06, 2014 12:26 pm

» Hiệp khách 4u.com OPEN game hồi 10h00 chủ nh
by anata Sat Apr 05, 2014 7:48 am


3 posters

    cho em hỏi về hàm ngắt trong lập trình .

    thanga7a
    thanga7a
    Thượng Sĩ
    Thượng Sĩ


    Gender : Nam Số bài : 88
    Birthday : 04/08/1991
    Họ và tên : vũ đình thắng Đến từ : bình giang _hải dương
    Ước mơ : kĩ sư điện tử
    Status : tui là thắng đến từ hải dương

    cho em hỏi về hàm ngắt trong lập trình . Empty cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by thanga7a Thu Oct 20, 2011 6:31 pm

    các đại ka chỉ bảo cho em chut về hàm ngắt trong lập trình(giả sử dùng c )

    vì em hay viết bằng c nên ko biết dùng ngắt trong một số chương trình .
    các anh chỉ bảo cho em chút về ngắt mấy.

    - tại sao khi viết chương trình ngắt ta ko cần khai báo trong chương trình chính mà nó vẫn dc sử dụng.

    và cách nó chạy trong chương trình như thế nào (cụ thế đến chỗ nào là nó ngắt )

    giả sử như mạch đếm sản phẩm của các đại ka:

    em không hiể nó ngắt như thế nào và ngắt ở chỗ nào :
    các đại ka chỉ bảo em với nhá .
    em cảm ơn.

    Code:
    // chuong trinh quet led 7 thanh duoc viet boi tiendt343@gmail.com
    // moi y kien dong gop xin gui ve Bui Duy Tien dtvtk7a
    // DH cong nghe thong tin va truyen thong thai nguyen
    // xin chan thanh cam on
    #include<reg52.h>
    //================            
    sbit    Led1  =  P1^0;
    sbit    Led2  =  P1^1;
    sbit    Led3  =  P1^2;
    sbit    Led4  =  P1^3;
    //=================
    unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
    int a,b,c,d,k,i,num;
    //=================     //
    //chuong trinh hien thi    
    void hienthi(void)
    {
    a=k/1000;
    b=(k%1000)/100;
    c=((k%1000)%100)/10;
    d=((k%1000)%100)%10;;

    for(i=0;i<=20000;i++)
    {
    Led1=1;  //led dau tien sang
    P2=M[a];
    Led1=0; 
    P2=0xff;//xoa du lieu
    Led2=1;  //led 2 sang
    P2=M[b]; 
    Led2=0;
    P2=0xff;//xoa du lieu
    Led3=1;
    P2=M[c];
    Led3=0;
    P2=0xff;
    Led4=1;
    P2=M[d];
    Led4=0;
    P2=0xff;
    }
    }

    void main()
    {
    IE=0x84;
    IT1=1;
    k=0;
    while(1)
    {
    hienthi();
    }
    }
    void ngatngoai1(void) interrupt 2     //*** san pham
    {
    ++k;
    }
    //=================End=================
    tiendientu343
    tiendientu343
    Đại Tướng
    Đại Tướng


    Gender : Nam Số bài : 344
    Birthday : 03/01/1990
    Họ và tên : Bùi Duy Tiến Đến từ : Hải Dương
    Ước mơ : CEO
    Status : Biết lái máy bay ! Biết lái xe tăng.

    cho em hỏi về hàm ngắt trong lập trình . Empty Re: cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by tiendientu343 Thu Oct 20, 2011 7:55 pm

    À chú hiểu thế này. Ngắt là mình thiết lập "một sự kiện" sẵn sàng nhận cho chương trình.
    khi nào có sự kiện(nhận sự kiện) nó sẽ tự động nhảy đến chương trình" Phục vụ ngắt".
    Trong chương trình bạn ko phải khai báo ngắt mà thiết lập thanh ghi cho phép ngắt ở chỗ này nè:
    Code:

    IE=0x84;// thanh ghi thiết lập ngắt ngoài 1
    IT1=1; // kích hoạt mức thấp(1->0)
    khi ta thiết lập như vậy rồi thì khi có một tín hiệu chuyển từ mức 1 về 0 ở chân INT1 thì chương trình sẽ tự động nhảy đến chương trình phục vụ ngắt để đếm số sản phẩm(số tín hiệu ngắt)
    Code:

    void ngatngoai1(void) interrupt 2    //*** san pham
    {
    ++k;// đếm số sản phẩm
    }
    thực hiện xong sẽ quay về chương trình chính và tiếp tục chờ ngắt tiếp theo(nếu có)
    cho em hỏi về hàm ngắt trong lập trình . Ngat
    thanga7a
    thanga7a
    Thượng Sĩ
    Thượng Sĩ


    Gender : Nam Số bài : 88
    Birthday : 04/08/1991
    Họ và tên : vũ đình thắng Đến từ : bình giang _hải dương
    Ước mơ : kĩ sư điện tử
    Status : tui là thắng đến từ hải dương

    cho em hỏi về hàm ngắt trong lập trình . Empty Re: cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by thanga7a Thu Oct 20, 2011 10:21 pm

    anh cho em hỏi nếu mình thiết lập ngược lại có dc không.nếu mình thiết lập IT1=0;
    Thế có phải là ta đang thiết lập là khi có một tác động( ấn button) chẳng hạn

    thì nó sẽ tác động là 0>>1 đúng không ạ

    nếu mình thiết lập ngắt IT2 thí sao hả anh.
    thì lệnh thiết lập như thế nào.

    IE=0x84; địa chỉ này thiết lập như thế nào hả anh.

    em xem trong bảng thì có: Ngắt ngoài 0 IE0 0003H

    Ngắt ngoài 1 IE1 0013H

    nếu mà là IE=0x84 tính như thế nào hả anh.

    nếu mình cho IT1=1 thì thiết lập ban đầu cái chân ngắt IT1 thì là ở mức cao.
    nếu khi ta ấn nút thì nó sẽ chuyển xuống mức thấp và khi đo sẽ có ngắt xảy ra đúng ko anh. khi đó ta phải nối đầu kia với GND.
    Còn nêu ta thiết lập là IT=0 Tthì nếu ta chuyển từ mức 0 lên 1 thi nó cũng xảy ra ngắt .và khi đo đầu kia sẽ phải nối vơi Vcc .
    tiendientu343
    tiendientu343
    Đại Tướng
    Đại Tướng


    Gender : Nam Số bài : 344
    Birthday : 03/01/1990
    Họ và tên : Bùi Duy Tiến Đến từ : Hải Dương
    Ước mơ : CEO
    Status : Biết lái máy bay ! Biết lái xe tăng.

    cho em hỏi về hàm ngắt trong lập trình . Empty Re: cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by tiendientu343 Fri Oct 21, 2011 10:23 am

    Chắc chú chưa đọc về ngắt trong giao trình phải ko?
    Thế này. Thanh ghi IE là thanh ghi điều khiển ngắt
    IT chỉ có IT1,IT0 dùng cho ngắt ngoài 0 và ngắt ngoài 1.
    cho em hỏi về hàm ngắt trong lập trình . Ok7
    còn chú thích chú xem trong cuốn lập trình 8051 với C a đã post nhé! có hết đấy
    thanga7a
    thanga7a
    Thượng Sĩ
    Thượng Sĩ


    Gender : Nam Số bài : 88
    Birthday : 04/08/1991
    Họ và tên : vũ đình thắng Đến từ : bình giang _hải dương
    Ước mơ : kĩ sư điện tử
    Status : tui là thắng đến từ hải dương

    cho em hỏi về hàm ngắt trong lập trình . Empty Re: cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by thanga7a Fri Oct 21, 2011 5:20 pm

    em hiểu chút về cái đó rùi.

    đại ka cho em hỏi tý.

    giả sử khi ta ấn nút thì ngắt 1 xảy ra .nhưng mà nói làm thế nào để có thể biết được vị trí để nhảy đến
    Code:
    void ngatngoai1(void) interrupt 2    //*** san pham (ngat 1 lại dat      là interrupt 1 la sao ?)
    {
    ++k;
    }

    Code:
    void ngatngoai1(void) interrupt 1    //*** san pham
    {
    k--;
    }

    giả sử ta sử dụng thêm một ngắt nữa ,ngắt 0;

    và cũng với các khai báo như trên trên với k--; thì làm sao nó có thể phân biệt ngắt nào là của chương trình nào.

    giả sử ta bấm nút 1 nó xảy ra ngắt 1 và nhảy tới chương trình với k--;
    còn bấm nút 2 nó xảy ra ngắt 2 và nhảy tới chương trình với k++;

    hoặc ngươc lại

    anh xem cai này cho rõ:
    Code:
    #include <REGX51.H>



    unsigned char mang[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
    unsigned int i,j,k;

    void delay(unsigned int ms)
    {
     for(i=0;i<ms;i++)
      for(j=0;j<125;j++){;}
    }

    void main()
    {
     IE=0X04;        // khai bao ngat ngoai 1       (khi co ngat thi no se nhay toi chuong trinh nao ngatngoai 1(); hay la ngatngoai 0() )//
     IT1=1;

     IE=0X81;        // khai bao ngat ngoai 0
     IT0=1;
     P2=0x00;

     k=9;
     while(1)
        {
          P2=mang[k];
        delay(100);

      }
    }
     void ngatngoai1(void) interrupt 1      
     {
      k++;
     }

     void ngatngoai0(void) interrupt 0
     {
      k--;
     }


    cho em hỏi về hàm ngắt trong lập trình . Bcaacbc54b44bf680929743bd8b45441_36850232.untitled
    thanga7a
    thanga7a
    Thượng Sĩ
    Thượng Sĩ


    Gender : Nam Số bài : 88
    Birthday : 04/08/1991
    Họ và tên : vũ đình thắng Đến từ : bình giang _hải dương
    Ước mơ : kĩ sư điện tử
    Status : tui là thắng đến từ hải dương

    cho em hỏi về hàm ngắt trong lập trình . Empty Re: cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by thanga7a Sat Oct 22, 2011 8:46 am

    dai ka dau rui. giup em voi
    hienk7a
    hienk7a
    Trung sĩ
    Trung sĩ


    Gender : Nam Số bài : 70
    Birthday : 15/06/1989
    Họ và tên : Nguyễn Văn Hiển Đến từ : THÁI NGUYÊN
    Ước mơ : Happiness
    Status : future

    cho em hỏi về hàm ngắt trong lập trình . Empty Re: cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by hienk7a Sat Oct 22, 2011 11:53 am

    À đấy là do C nó hỗ trợ thôi. Em ko cần khai báo địa chỉ ngắt như asm. Như trong asm chúng ta khai báo địa chỉ ngắt 0 là 03H và ngắt 1 là 13H thì trong thư viện của C nó đã mặc định khai báo rồi, chúng ta ko cần khai báo nữa. chỉ cần khai báo chương trình trong ngắt với cấu trúc void interrupt x thôi. Khi có ngắt nó sẽ tự nhảy đến chương trình interrupt. Và nó sẽ nhảy đến interrupt 0 với ngắt 0 và nhảy đến interrupt 1 khi có ngắt 1 (Ko viết C nhiều nên ko rõ cái interrupt đánh số ntn nữa). Smile .
    Cái ct của em có thể đặt 2 ngắt là
    Code:
    void ngatngoai1(void) interrupt 1    //tang san pham
    {
    ++k;
    }

    Code:
    void ngatngoai0(void) interrupt 0    //giam san pham
    {
    k--;
    }

    Ta có thể thấy cấu trúc ngắt như sau:
    Code:
    void <Tên ct ngắt>(void) interrupt <0 với ngắt 0 và 1 với ngắt 1>
    {
    ct con trong ngắt
    }

    Sponsored content


    cho em hỏi về hàm ngắt trong lập trình . Empty Re: cho em hỏi về hàm ngắt trong lập trình .

    Bài gửi by Sponsored content


      Hôm nay: Mon Nov 25, 2024 7:06 am