Thông báo

Collapse
No announcement yet.

Giúp em về nút nhấn điều khiển nhanh chậm của AT89C51

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

  • Giúp em về nút nhấn điều khiển nhanh chậm của AT89C51

    Giáo viên có cho mình 1 bài tập,yêu cầu lập trình cho led chạy từ port 0 đến port 3,có 2 nút nhấn,nhấn nút 1 thì led chạy nhanh hơn,nhấn nút kia thì led chạy chậm hơn.Ai giúp mình viết phần chương trình nút nhấn tác động với,mình viết mãi mà nó ko chạy..Hic,còn gà mới bắt đầu học vđk thôi
    Nếu ct: Org 0
    .............
    .............
    Tới đoạn cả 4 port chạy thì ta viết nút nhấn hay nút nhấn viết trước ạ?

  • #2
    chú post chương trình chú viết ko chạy lên ACE sửa cho

    Comment


    • #3
      bạn viết chương trình pwm ấy, sử dụng 2 phím ấn để tăng giảm độ rộng xung là ok
      Nguyễn Huy Biên - 01649 802 694
      gmail :

      Comment


      • #4
        huong dan ne

        Nguyên văn bởi shaman1904 Xem bài viết
        Giáo viên có cho mình 1 bài tập,yêu cầu lập trình cho led chạy từ port 0 đến port 3,có 2 nút nhấn,nhấn nút 1 thì led chạy nhanh hơn,nhấn nút kia thì led chạy chậm hơn.Ai giúp mình viết phần chương trình nút nhấn tác động với,mình viết mãi mà nó ko chạy..Hic,còn gà mới bắt đầu học vđk thôi
        Nếu ct: Org 0
        .............
        .............
        Tới đoạn cả 4 port chạy thì ta viết nút nhấn hay nút nhấn viết trước ạ?
        có 2 phuơng án,1 là ngắt 2 là kiểm tra nút nhấn,
        bạn hỏi như thế chắc bạn chưa học ngắt rùi,ban sử dụng lệnh jnb hoặc jb để là việc đó ví dụ
        ORG 30H
        MAIN:
        MOV P0,#00H
        MOV P1,#00H
        MOV P2,#00H
        MOV P3,#00H ;CHỪA 2 HÂN ĐẺ LÀM NÚT NHẤN
        KT:
        JB P3.6,KT1
        LCALL QUETLEDCHAM
        KT1:
        JB P3.7,KT
        LCALL QUETLEDNHANH
        RET
        QUETLEDCHAM:
        ;;;;;;;;;;BẠN VIẾT CHƯƠNG TRÌNH QUÉT LED VÀO ĐÂY VỚI DELAY CHẬM
        QUETLEDNHANH:
        ;;;;;;;;;;BẠN VIẾT CHƯƠNG TRÌNH QUÉT LED VÀO ĐÂY VỚI DELAY NHANH
        END
        =======================
        LẦN SAU BẠN ĐƯA CHƯƠNG TRÌNH MÌNH LÊN ĐỂ MỌI NG GIÚP ĐỠ NHÉ

        Comment


        • #5
          Có ai có code C không
          0979.316.957
          0905.028.957

          Comment


          • #6
            #include <REGX52.H>

            sbit PWM = P2^3;
            sbit TANG = P1^2;
            sbit GIAM = P1^5;
            unsigned char dem=0,tocdo=50;

            bit TANG1=1,TANG0=1,GIAM0=1,GIAM1=1;

            void timer0(void) interrupt 1
            {
            TR0 = 0;
            TF0 = 0;
            dem++;
            if(dem > 100)
            dem = 0;
            if(dem<tocdo)
            PWM = 1;
            else
            PWM = 0;
            TR0 = 1;
            }

            void phimnhan()
            {
            //////////////////////////
            TANG0=TANG1;TANG1=TANG;
            if((TANG0==1)&&(TANG1==0))
            tocdo=tocdo+10;
            if(tocdo==110)tocdo=100;

            /////////////////////////////////
            GIAM0=GIAM1;GIAM1=GIAM;
            if((GIAM0==1)&&(GIAM1==0))
            tocdo=tocdo-10;
            if(tocdo==-10)tocdo=0;
            }

            void main(void)
            {
            TMOD = 0×02;
            IE = 0×82;
            TH0=TL0=-100; // tao tan so 0.1 ms
            TR0 = 1;
            PWM=0;
            while(1)
            {
            phimnhan();
            }
            }
            code này trên diễn đàn machdientu.net bạn tham khảo nhé
            Nguyễn Huy Biên - 01649 802 694
            gmail :

            Comment


            • #7
              có code chỉnh tốc độ nháy bằng volume ko bạn?
              0979.316.957
              0905.028.957

              Comment


              • #8
                Nguyên văn bởi thanhtoanshs Xem bài viết
                có code chỉnh tốc độ nháy bằng volume ko bạn?
                để chỉnh bằng volume thì có thể làm như dưới hình với chương trình delay thay bằng
                Code:
                 JNB Px.x,$
                JNB Px.x,$

                Còn ko thì dùng VDK nào đó có ADC, lấy giá trị ADC để quản lý % tốc độ nháy theo dãy áp lấy mẫu

                Comment


                • #9
                  Nguyên văn bởi bienhou Xem bài viết
                  bạn viết chương trình pwm ấy, sử dụng 2 phím ấn để tăng giảm độ rộng xung là ok
                  Giờ mới học mà bác nói câu này thì làm khó anh em rồi !

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X