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

                Đang tải...
                X