Thông báo

Collapse
No announcement yet.

Lập trình Led bằng C dùng 8051

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

  • #16
    Nguyên văn bởi MinhNhat_dhv Xem bài viết
    Bác hepro_90nd ơi. Ý em là thế này.Em tác động vào các cổng theo từng bít. Ví dụ như một chữ có 10 chữ cái chẳng hạn, thì em định nghĩa cho nó từ chân P0_0 đến chân P1_1 chằng hạn. còn các chân P1_2 đến P1_4 thì em định nghĩa cho viền, và các chân còn lại em lại định nghĩa cho các chữ cái khác. Và viết hiệu ứng cho từng chữ riêng. Sau rồi làm cách nào để cho chúng chạy đồng thời cùng 1 lúc. Viết như bác thì khi muốn sửa hiệu ứng cho từng chữ rất khó. Bác có cách nào ko? giúp em với.
    Bạn có thể dùng realtime os mà viết,
    Vũ xuân Lợi
    YM!:

    Comment


    • #17
      Em cảm ơn ý kiến quý báu của các bác. Em sẽ ghi nhận và làm thử. Trong khi em chờ các bác giúp đỡ thì em có thử viết một đoạn code bằng C dùng ngắt. Nhưng ko hiểu sao khi em mô phỏng thì chỉ có viền chạy mà chữ thì ko chạy. Chương trình xử lý ngắt em dùng để chạy viền. Như vậy trong suốt chương trình điều kiện ngắt luôn đc thoả mãn. Mong các bác tìm xem lỗi trong chương trình of em là ở đâu. Em cảm ơn.
      //CHUONG TRINH DIEU KHIEN LED

      #include <REGX52.H>
      //*******************************************
      #define led_1 P0_0
      #define led_2 P0_1
      #define led_3 P0_2
      #define led_4 P0_3
      #define led_5 P0_4
      #define led_6 P0_5
      #define led_7 P0_6
      #define led_8 P0_7
      #define led_9 P2_0
      #define led_10 P2_1
      #define led_11 P2_2
      #define led_12 P2_3
      #define vien_1 P2_4
      #define vien_2 P2_5
      #define vien_3 P2_6
      //********************************************
      unsigned char i;
      void delay_ms(unsigned int time);
      //CHUONG TRINH PHUC VU NGAT
      void inter_1(void) interrupt 1
      {
      while(!TF0)
      {
      TF0=0;
      TR0=0;
      vien_1=0; vien_2=0; vien_3=1;
      delay_ms(200);
      vien_1=1; vien_2=0;vien_3=0;
      delay_ms(200);
      vien_1=0; vien_2=1;vien_3=0;
      delay_ms(200);
      }
      }
      void delay_ms(unsigned int time)
      {
      while(time--)
      {
      unsigned char t=121;
      while(t--);
      }
      }
      void tat_ca (void)
      {
      led_1=led_2=led_3=led_4=led_5=led_6=led_7=led_8=le d_9=led_10=led_11=led_12=1;
      }
      void sang_don_a_ab_abc (void)
      {
      for(i=1;i<=12;i++)
      {
      switch(i)
      {
      case 1: led_1=0; break;
      case 2: led_2=0; break;
      case 3: led_3=0; break;
      case 4: led_4=0; break;
      case 5: led_5=0; break;
      case 6: led_6=0; break;
      case 7: led_7=0; break;
      case 8: led_8=0; break;
      case 9: led_9=0; break;
      case 10: led_10=0; break;
      case 11: led_11=0; break;
      case 12: led_12=0; break;

      }
      delay_ms(100);
      }
      delay_ms(1500);
      for(i=1;i<=12;i++)
      {
      switch(i)
      {
      case 1: led_1=1; break;
      case 2: led_2=1; break;
      case 3: led_3=1; break;
      case 4: led_4=1; break;
      case 5: led_5=1; break;
      case 6: led_6=1; break;
      case 7: led_7=1; break;
      case 8: led_8=1; break;
      case 9: led_9=1; break;
      case 10: led_10=1; break;
      case 11: led_11=1; break;
      case 12: led_12=1; break;
      }
      delay_ms(100);
      }
      }

      void chay_cheo (void)
      {
      for(i=1;i<=11;i++)
      {
      switch(i)
      {
      case 1: led_1=led_12=0; break;
      case 2: led_1=led_12=1; led_2=led_11=0; break;
      case 3: led_2=led_11=1; led_3=led_10=0; break;
      case 4: led_3=led_10=1; led_4=led_9=0; break;
      case 5: led_4=led_9=1; led_5=led_8=0; break;
      case 6: led_5=led_8=1; led_6=led_7=0; break;
      case 7: led_6=led_7=1; led_5=led_8=0; break;
      case 8: led_5=led_8=1; led_4=led_9=0; break;
      case 9: led_4=led_9=1; led_3=led_10=0; break;
      case 10: led_3=led_10=1; led_2=led_11=0; break;
      case 11: led_2=led_11=1; led_1=led_12=0; break;
      }
      delay_ms(100);
      }
      }
      void interrupt_setup(void)
      {
      EA=1;
      ET0=1;
      TMOD=0x01;
      TH0=0xFC;
      TL0=0x18;
      TR0=1;
      }

      void main (void)
      {
      while(1)
      {
      interrupt_setup();
      tat_ca();
      delay_ms(200);
      sang_don_a_ab_abc();
      delay_ms(200);
      chay_cheo();
      chay_cheo();
      chay_cheo();
      }
      }

      Comment


      • #18
        Nguyên văn bởi vuxuanloi Xem bài viết
        Bạn có thể dùng realtime os mà viết,
        Bác có tài liệu về cái đó ko? bác share cho em với. Hiện em đang dùng 8051 bác nhé. Đây là mail of em: Nhat.dt.dhv@gmail.com

        Comment


        • #19
          reply

          bác nào biết cách lập trình mà điều khiển dc độ sáng ko ?
          dùng pp băm xung đấy, m chưa thử nhưng băm xung là đk dc độ sáng

          Comment


          • #20
            ban có thể đưa sơ đồ nguyên lý lên cho minh tham khảo được không .
            thanks

            Comment


            • #21
              Mình có code rất dễ hiểu bằng asm của 1 bạn viết cho mình . Bạn đọc nhé

              org 000h
              cuong:
              mov p1,#10000000b
              lcall tre
              lcall vien
              mov p1,#01000000b
              lcall tre
              lcall vien
              mov p1,#00100000b
              call tre
              call vien
              mov p1,#00010000b
              call tre
              call vien



              ljmp cuong
              vien:
              mov p1,#00000001b
              lcall tre
              mov p1,#00000011b
              lcall tre
              mov p1,#00000111b
              lcall tre
              ret
              tre:
              mov r0,#255
              aa: mov r4,#255
              dd: djnz r4,dd
              djnz r0,aa
              ret
              end

              Comment


              • #22
                anh oi cho em hoi khai bao them vong lap:
                for(b=0;b<125;b++)
                co tac dung gi a?

                Comment


                • #23
                  Hiệu ứng viền dùng ngắt ngoài. chữ thì viết hiệu ứng bình thuong thoi
                  Email:
                  Phone: 0969 226 539

                  Comment


                  • #24
                    bạn up sơ đồ nguyên lý lên dc k hi,hoặc gửi vào đây cho mình cũng đươc dangbao0@gmail.com

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X