User Tag List

+ Trả lời chủ đề
Trang 1/2 12 CuốiCuối
Hiện kết quả từ 1 tới 10 của 19

Chủ đề: Chương trình này không chạy!

  1. #1
    svBK's Member
    Tham gia ngày
    Aug 2004
    Bài gửi
    25

    Mặc định Chương trình này không chạy!

    Em mới bắt đầu tìm hiểu về C for 8051 và viết ct nhưng chẳng đúng gì cả(Keil C)

    #include<reg51.h>
    void main(void)
    {
    unsigned int i;
    P1=1;
    for(i=1;i33;i++)// 12MHZ--> 1clock=1us
    {;}
    P1=8;
    for(i=1;i333;i++)
    {;}

    }
    Chương trình của em mục đích làm cho 8 led nối ở 8 chân ra của P1 sáng tuần tự.Nhưng với chương trình ngắn thế này mà chạy sai bét.Sáng lung tung
    Em cũng chẳng hiểu gì mấy về bộ định thời,hay ngắt....
    Các bác dành chút thời gian viết cho em cái source..

  2. #2
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định

    Tặng chú chương trình mẫu:
    #include <AT89X52.H>
    //==================================
    void init()
    {
    P1=1; // Only Led 0 is turned on (high active state)
    ET0 = 0; // Disable Timer 0 interupt
    EA = 0; // Disable all interrupts
    TMOD = 0x11; // Timers work in mode 16 bit counter
    TR0=0;
    }
    //====================================
    void delayms(unsigned char n)
    {
    unsigned char i;
    for (i=1;i<=n;i++) // 1 ms delay per loop
    {
    TH0=0xFC;
    TL0=0x17;
    TR0=1;
    while (!TF0) {}
    TF0=0;
    TR0=0;
    }
    }
    //================================================== ===========================
    void main()
    {
    init();
    while(1)
    { delayms(1000);//delay 1s
    P1<<=1; //shift left 1 bit
    }
    }

    Kẻ thù lớn nhất của tôi là sự lười biếng và tự mãn
    Điểm yếu lớn nhất của tôi là sự thiếu tự tin và kém cỏi

    canhnguyen@svbkol.org

  3. #3
    Quân nhân danh dự Avatar của Mr.vulh_bk
    Tham gia ngày
    Dec 2003
    Bài gửi
    3.493

    Mặc định

    Đề nghị bác Langthang post nhìu nhìu cho anh em học tập với !!

    The end is just the beginning

  4. #4
    svBK's Member
    Tham gia ngày
    Aug 2004
    Bài gửi
    25

    Mặc định

    Cảm ơn bác lang thang nhiều.Em mới bắt đầu làm quen với 8051 đọc nhiều TVO mà cũng ..chưa hiểu rõ về nó.
    Bác có thể nói hộ em khi viết chương trình nó lưu và đâu,nó thực hiện thế nào...nói chung là nói nôm na theo kiểu của bác để thằng em này dễ hiểu thôi.
    Em sẽ viết các ct # sửa hộ em nhé.Rất cảm ơn bác!@

  5. #5
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định

    OK thôi nếu giúp được gì mình sẽ cố gắng giúp.

  6. #6
    HUT's Student
    Tham gia ngày
    Jul 2004
    Bài gửi
    104

    Mặc định

    Lang thang là chuyên gia lập trình cho VXL đây à. Kinh quá nhỉ. Các bạn khóa dưới có vấn đề gì cứ liên hệ với langthanh nhé. Nhưng phải kiên trì đấy. Thằng này hay giấu nghề lắm. He He

  7. #7
    svBK's AntiFan
    Tham gia ngày
    Oct 2004
    Bài gửi
    134

    Mặc định

    Quote Nguyên văn bởi LangthangInternet
    OK thôi nếu giúp được gì mình sẽ cố gắng giúp.
    bác ơi cho em hỏi các khai báo này có ý nghĩa gì thế

    extern void init ();

    static unsigned char i;

    :a36 :a11 :a11 :a11

  8. #8
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định

    Quote Nguyên văn bởi Jacky
    static unsigned char i;
    static
    A storage class that, when used with a variable declaration in a function,
    causes variables to retain their value after exiting the block or function in
    which they are declared.
    extern void init ();
    It can be used as a stylistic hint to indicate that the function's definition is probably in another source file.

    Đây là những thông tin tôi tìm được phần nào giải đáp thắc mắc của bạn. Tôi thì chưa dùng 2 cái keyword này bao giờ. Chúc vui!!!!

  9. #9
    Quân Nhân Danh Dự Avatar của Bandani
    Tham gia ngày
    Feb 2003
    Bài gửi
    599

    Mặc định

    Chương trình của chú tele có quá nhiều lỗi
    Thứ nhất là include , thu hai là chương trình chính muốn quét đi quét lại thì dung while(){....}, thứ hai viết trễ như thế thì củ chuối...., và anh không hiểu chư xuất ra port1 như thê thì làm sao mà cho led sáng chạy đươc. Lưu ý nữa là với XTAL 12MHz thì một chu kì máy (tương ứng với bộ đinh thời tăng 1 lớn hơn 1us) nếu muốn chính xác 1us thi dung XTAL 11,059.
    Mọi người lập trình vơi Kein thì nên đọc userguider của nó, hoặc vừa viết vừa tham khảo.
    Vũ Trụ Nội Mạc Phi Phận Sự www.traveltovietnam.cc www.bookilook.com

  10. #10
    binhjuventus
    Guest

    Mặc định

    Quote Nguyên văn bởi Bandani
    Lưu ý nữa là với XTAL 12MHz thì một chu kì máy (tương ứng với bộ đinh thời tăng 1 lớn hơn 1us) nếu muốn chính xác 1us thi dung XTAL 11,059.
    Ơ, sao tưởng là chia clock theo tỷ số 1/12 thì 12M mới chính xác 1 us chứ nhỉ, còn 11.0592 chỉ cho xấp xỉ 1 us thôi chứ???

+ Trả lời chủ đề
Trang 1/2 12 CuốiCuối

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube