Thông báo

Collapse
No announcement yet.

xin code điều khiển 8 led. sáng từ. phải qua trái và ngược lại

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

  • #16
    bác nào co thể giúp em viết bằng keil C bang int hay char cho đoạn chương trình cho 16 Led Như sau :Chớp tắt dồn từ trái sang phải và ngược lại (2 lần).
    Cám ơn nhiều...

    Comment


    • #17
      Nguyên văn bởi balehoang_18 Xem bài viết
      bác nào co thể giúp em viết bằng keil C bang int hay char cho đoạn chương trình cho 16 Led Như sau :Chớp tắt dồn từ trái sang phải và ngược lại (2 lần).
      Cám ơn nhiều...
      Viết rồi up lên mọi người chỉnh sửa cho, ko ai rảnh ngồi viết code cho bạn đâu?
      Email:
      Phone: 0969 226 539

      Comment


      • #18
        mình viết bằng 8051iDE, bạn tham khảo

        ORG 00H
        MOV P2,#11111111B
        BATDAU:

        GAN1: JB P0.0,GAN2
        MOV P2,#11111110B
        ACALL DELAY
        MOV P2,#11111100B
        ACALL DELAY
        MOV P2,#11111000B
        ACALL DELAY
        MOV P2,#11110000B
        ACALL DELAY
        MOV P2,#11100000B
        ACALL DELAY
        MOV P2,#11000000B
        ACALL DELAY
        MOV P2,#10000000B
        ACALL DELAY
        MOV P2,#00000000B
        ACALL DELAY
        MOV P2,#11111111B; sang tu trai sag
        ACALL DELAY
        MOV P1,#11111111B
        ACALL DELAY
        LJMP BATDAU

        GAN2: JB P0.1,GAN3
        MOV P2,#01111111B
        ACALL DELAY
        MOV P2,#00111111B
        ACALL DELAY
        MOV P2,#00011111B
        ACALL DELAY
        MOV P2,#00001111B
        ACALL DELAY
        MOV P2,#00000111B
        ACALL DELAY
        MOV P2,#00000011B
        ACALL DELAY
        MOV P2,#00000001B
        ACALL DELAY
        MOV P2,#00000000B; sang tu phai sag
        ACALL DELAY
        MOV P2,#11111111B
        ACALL DELAY
        MOV P1,#11111111B
        ACALL DELAY
        LJMP BATDAU

        GAN3: JB P0.2,GAN1
        MOV P2,#11100111B
        ACALL DELAY
        MOV P2,#11000011B
        ACALL DELAY
        MOV P2,#10011001B
        ACALL DELAY
        MOV P2,#00111100B
        ACALL DELAY
        MOV P2,#01111110B
        ACALL DELAY
        MOV P2,#11111111B; sag o giua ra
        ACALL DELAY
        MOV P1,#11111111B
        ACALL DELAY
        LJMP BATDAU

        DELAY:
        MOV R1,#10
        LOOP1:
        MOV R2,#100
        LOOP2:
        MOV R3,#100
        LOOP3:
        DJNZ R3,LOOP3
        DJNZ R2,LOOP2
        DJNZ R1,LOOP1
        RET
        ENDClick image for larger version

Name:	Capture.jpg
Views:	1
Size:	106.7 KB
ID:	1376024

        Comment


        • #19
          Hiệu ứng cho 16 led:
          1. Chớp tắt dồn từ trái sang phải và ngược lại (2 lần)
          2. Sáng dồn ở giữa ra 2 đầu và ngược lại (3 lần).
          3. Chạy nhị phân (5 lần).

          Nhờ mọi người xem hộ :


          #include<AT89x51.h>

          void delay()
          { unsigned int x,y;
          for(x=0; x<10000; x++)
          y++;
          }
          void delay1()
          {
          unsigned int x,y;
          for(x=1;x<6000;x++)
          y++;
          }
          void nhiphan()
          {
          unsigned int x,y;
          for(x=255;x>=1;x--)
          for(y=255;y>=1;y--)
          {
          P1=y;
          P3=x;
          delay1();
          }
          }
          void trai1()
          {
          unsigned char x,y,c,d;
          unsigned char a=0x01,b=0xff,e=0x00,f=0x00;
          for(x=16;x>=1;x--)
          {
          for(y=1;y<=x;y++)
          {
          c = a | e;
          d = b | f;
          P1 = c;
          P3 = d;
          delay();
          a = a<<1;
          b = b<<1;
          if(y==8)
          {
          b = ~ b;
          b = b << 1;
          b = ~ b;
          }
          delay1();
          }
          f = ~ f;
          f = f >> 1;
          f = ~ f;
          a = ~ a;
          a = a << 1;
          a = ~ a;
          if(x<=8)
          {
          e = ~ e;
          e = e >> 1;
          e = ~ e;
          }
          delay1();
          }
          }
          void phai1()
          {
          unsigned char x,y,c,d;
          unsigned char a=0x00,b=0x80,e=0x00,f=0x00;
          for(x=16;x>=1;x--)
          {
          for(y=1;y<=x;y++)
          {
          c = a | e;
          d = b | f;
          P1 = c;
          P3 = d;
          delay();
          a = a>>1;
          b = b>>1;
          if(y==8)
          {
          a = ~ a;
          a = a >> 1;
          a = ~ a;
          }
          }
          e = ~ e;
          e = e << 1;
          e = ~ e;
          b = ~ b;
          b = b >> 1;
          b = ~ b;
          if(x<=8)
          {
          f = ~ f;
          f = f << 1;
          f = ~ f;
          }

          }
          delay1();
          }
          void main()
          {
          while(1)
          {
          unsigned int i,j,k;
          unsigned int y,x[16]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xf d,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},
          z[16]={0x7f,0xbf,0xdf,0xef,0x3f7,0xfb,0xfd,0xfe,0x7f,0x bf,0xdf,0xef,0x3f7,0xfb,0xfd,0xfe};
          for(k=1;k<4;k++)
          {for(i=0; i<8; i++)
          for(j=0;j<3;j++)
          {
          P1=x[i];
          delay1();
          P1=0xff;
          P3=0xff;
          delay();
          }
          for(i=0;i<8; i++)
          for(j=0;j<3;j++)
          {
          P1=0xff;
          P3=x[i];
          delay1();
          P3=0xff;
          delay();
          }
          for(i=0; i<8; i++)
          for(j=0;j<3;j++)
          {
          P1=0xff;
          P3=0xff;
          delay1();
          P3=z[i];
          delay();
          }
          for(i=0;i<8; i++)
          for(j=0;j<3;j++)
          {
          P1=z[i];
          delay1();
          P1=0xff;
          P3=0xff;
          delay(); }}
          for(y=1;y<=3;y++)
          {
          phai1();
          trai1();
          }

          nhiphan();
          }
          }

          Nhờ mọi người giúp xem giùm...

          Comment


          • #20
            Nguyên văn bởi dacdai1234 Xem bài viết
            Tình hình là cháu muốn xin cái code đó ạ. Cháu đang cần gấp bác nào biết cho cháu xin ạ
            ;chop tat
            ; sang dan
            ; tat dan
            ; sang duoi tren xuong
            ; sang duoi duoi len
            ; chop tat
            ; chop tat
            ; chop tat
            ; sang don
            org 0000h
            main:
            mov p1,#0ffh
            call delay2


            mov r0,#10

            veday: mov p1,#0ffh
            call delay

            mov p1,#000h
            call delay
            djnz r0,veday
            sangdantrai:
            mov r0,#2
            veday4:
            mov r1,#10
            mov a,#0
            lap:
            mov p1,A
            call delay
            rlc a
            setb c
            djnz r1,lap
            djnz r0,veday4
            ; chop tat
            mov p1,#0ffh
            call delay2

            sangdanphai:
            mov r0,#2
            veday3:
            mov 10h,#9
            mov a,#0
            lap2:
            mov p1,a
            call delay
            rrc a
            setb c
            djnz 10h, lap2
            djnz r0,veday3
            ;choptat
            mov p1,#0ffh
            call delay2

            tatdantrai:
            mov r0,#2
            veday2:
            mov 20h,#9
            mov a,#0ffh
            lap1:
            mov p1,a
            call delay
            rlc a
            clr c
            djnz 20h,lap1
            djnz r0,veday2
            ;choptat
            mov p1,#0ffh
            call delay2

            tatdanphai:
            mov r0 ,#2
            veday1:

            mov 30h,#9
            mov a,#0ffh
            lap3:
            mov p1,a
            call delay
            rrc a
            clr c
            djnz 30h,lap3
            djnz r0,veday1
            ;choptat
            mov p1,#0ffh
            call delay2

            ;sangdichtrai
            mov 10h,#2
            veday5:
            mov r1,#8
            mov a,#1
            lap5:
            mov p1,a
            call delay
            rl a
            djnz r1,lap5
            djnz 10h,veday5
            ;choptat
            mov p1,#0ffh
            call delay2

            ;sangdichphai
            mov r5,#2
            veday6:
            mov r1,#8
            mov a,#128
            lap6:
            mov p1,a
            call delay
            rr a
            djnz r1,lap6
            djnz r5,veday6
            ;chop tat
            mov p1,#0ffh

            call delay2
            ; chop tat
            mov r0,#5
            dayne:
            mov p1,#11000000b
            call delay
            mov p1,#000h
            call delay
            djnz r0,dayne
            ;cohp tat
            mov r0,#5
            dayne1:
            mov p1,#00110000b
            call delay
            mov p1,#000h
            call delay
            djnz r0,dayne1
            ;chop tat
            mov r0,#5
            dayne2:
            mov p1,#00001111b
            call delay
            mov p1,#000h
            call delay
            djnz r0,dayne2
            ;choptat
            mov p1,#0ffh
            call delay2
            jmp main
            delay:

            mov 40h,#5
            mov tmod,#01
            veday7:
            mov th0,#high(-20000)
            mov tl0,#low(-20000)
            setb tr0
            jnb tf0,$
            clr tf0
            djnz 40h,veday7
            clr tr0
            ret
            delay2:
            mov 30h,#100
            mov tmod,#01
            veday10:
            mov th0,#high(-50000)
            mov tl0,#low(-50000)
            setb tr0
            jnb tf0,$
            clr tf0
            djnz 30h,veday10
            clr tr0
            ret
            end
            tròn code có chú thích cái mà bác cần .. copy ra .. cái này viết lâu rồi hehe nên hơi gà
            đam mê là không sợ khó khăn

            Comment


            • #21
              ;code bang asm nhé <led k noi len +>
              led0 equ p1
              org 00h ;bat dau chuong trinh

              main:

              call x
              call x1

              jmp main
              ;===========
              x:
              mov led0,#0ffh
              mov dptr,#left_right
              mov r0,#8
              mov b,#0
              loop:
              mov a,b
              movc a,@a+dptr
              mov led0,a
              call delay
              inc b
              djnz r0,loop
              ret

              ;============
              mov led0,#0ffh
              x1:
              mov led0,#0ffh
              mov dptr,#right_left
              mov r0,#8
              mov b,#0
              loop1:
              mov a,b
              movc a,@a+dptr
              mov led0,a
              call delay
              inc b
              djnz r0,loop1
              ret
              left_right: db 7fh,3fh,1fh,0fh,07h,03h,01h,00h
              right_left: db 0feh,0fch,0f8h,0f0h,0e0h,0c0h,80h,00h
              ;========== tao thoi gian tre
              delay:
              mov r5,#255
              delay1:
              mov r6,#255
              delay2:
              mov r7,#1
              djnz r7,$
              djnz r6,delay2
              djnz r5,delay1
              ret
              end ;chuc ban may man nhe!

              Comment


              • #22
                có code điều khiển 16 led ko ak cho em với.
                nhấp nháy,dịch trái phải,sáng dồn.cảm on nhiều

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                • Andrea14
                  Vấn đề về tốc độ quay
                  bởi Andrea14
                  Chào mọi người,

                  Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
                  Hôm qua, 12:42
                • 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
                Đang tải...
                X