Thông báo

Collapse
No announcement yet.

Xin code cho LED

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

  • Xin code cho LED

    các bạn cho mình hỏi nếu muốn các led sáng mờ rồi từ từ sáng thì viết như thế nào
    và ngược lại
    bạn nào có doạn code nào nháy đẹp chỉ cho mình với



    #include <regx51.h>


    #define led1 P1_0
    #define led2 P1_1
    #define led3 P1_2
    #define led4 P1_3
    #define led5 P1_4
    #define led6 P1_5
    #define led7 P1_6
    #define led8 P1_7

    //+++++++++++++++++++++++++++
    // ham delay de tri hoan 1 thoi gian
    //+++++++++++++++++++++++++++

    void delay(unsigned char time)
    {
    unsigned char i,j;

    for(i=0;i<time;i++)
    for(j=0;j<200;j++);

    }


    void dat(bit a, bit b, bit c, bit d,bit e,bit f , bit g , bit h)
    {
    led1=a;
    led2=b;
    led3=c;
    led4=d;
    led5=e;
    led6=f;
    led7=g;
    led8=h;

    }

    void choptat()
    {
    dat(0,0,0,0,0,0,0,0); //
    delay(30); // muon nhanh cham j do thi tuy ban
    dat(1,1,1,1,1,1,1,1);
    delay(30);
    }

    void chaser(unsigned char times)
    {
    unsigned char i;
    for(i=0;i<times;i++)
    {

    dat(1,0,0,0,0,0,0,0); delay(150);
    dat(0,1,0,0,0,0,0,0); delay(150);
    dat(0,0,1,0,0,0,0,0); delay(150);
    dat(0,0,0,1,0,0,0,0); delay(150);
    dat(0,0,0,0,1,0,0,0); delay(150);
    dat(0,0,0,0,0,1,0,0); delay(150);
    dat(0,0,0,0,0,0,1,0); delay(150);
    dat(0,0,0,0,0,0,0,1); delay(150);
    dat(0,0,0,0,0,0,1,0); delay(150);
    dat(0,0,0,0,0,1,0,0); delay(150);
    dat(0,0,0,0,1,0,0,0); delay(150);
    dat(0,0,0,1,0,0,0,0); delay(150);
    dat(0,0,1,0,0,0,0,0); delay(150);
    dat(0,1,0,0,0,0,0,0); delay(150);
    dat(1,0,0,0,0,0,0,0); delay(150);
    dat(1,1,1,1,1,1,1,1); delay(150);
    dat(0,1,1,1,1,1,1,1); delay(150);
    dat(1,0,1,1,1,1,1,1); delay(150);
    dat(1,1,0,1,1,1,1,1); delay(150);
    dat(1,1,1,0,1,1,1,1); delay(150);
    dat(1,1,1,1,0,1,1,1); delay(150);
    dat(1,1,1,1,1,0,1,1); delay(150);
    dat(1,1,1,1,1,1,0,1); delay(150);
    dat(1,1,1,1,1,1,1,0); delay(150);
    dat(1,1,1,1,1,1,0,1); delay(150);
    dat(1,1,1,1,1,0,1,1); delay(150);
    dat(1,1,1,1,0,1,1,1); delay(150);
    dat(1,1,1,0,1,1,1,1); delay(150);
    dat(1,1,0,1,1,1,1,1); delay(150);
    dat(1,0,1,1,1,1,1,1); delay(150);
    dat(0,1,1,1,1,1,1,1); delay(150);
    dat(1,1,0,0,0,0,0,0); delay(150);
    dat(0,0,1,1,0,0,0,0); delay(150);
    dat(0,0,0,1,1,0,0,0); delay(150);
    dat(0,0,0,0,0,1,1,0); delay(150);
    dat(0,0,0,0,0,0,1,1); delay(150);
    dat(0,0,0,0,1,1,0,0); delay(150);
    dat(0,0,1,1,0,0,0,0); delay(150);
    dat(1,1,0,0,0,0,0,0); delay(150);
    dat(0,0,0,0,1,0,0,0); delay(150);
    dat(0,0,0,1,1,1,0,0); delay(150);
    dat(0,0,1,1,1,1,1,0); delay(150);
    dat(1,1,1,1,1,1,1,1); delay(150);
    dat(0,1,1,1,1,1,1,0); delay(150);
    dat(0,0,1,1,1,1,0,0); delay(150);
    dat(0,0,0,1,1,0,0,0); delay(150);
    dat(0,0,0,0,1,0,0,0); delay(150);
    dat(0,0,0,0,1,0,0,0); delay(150);
    dat(0,0,0,1,1,1,0,0); delay(150);
    dat(0,0,1,1,1,1,1,0); delay(150);
    dat(1,1,1,1,1,1,1,1); delay(150);
    dat(1,1,1,0,0,1,1,1); delay(150);
    }
    }

    void main()
    {
    while(1) // vong lap vo tan
    {

    chaser(10);
    }
    }
    Học Hỏi Không Ngừng Nghỉ

  • #2
    Nguyên văn bởi dan
    Bạn xem thử cái này :
    int count=0,program=0;
    int dat[16]={0,0,0,0,0,0,0,0,0,1,3,5,10,20,50,100};
    int delay=0,c=0;
    unsigned char k;
    int pwm0=0,pwm1=0,pwm2=0,pwm3=0,pwm4=0,pwm5=0,pwm6=0,p wm7=0;
    void set_value_pwm(int value0,int value1,int value2,int value3,int value4,int value5,int value6,int value7)
    {
    pwm0=value0;
    pwm1=value1;
    pwm2=value2;
    pwm3=value3;
    pwm4=value4;
    pwm5=value5;
    pwm6=value6;
    pwm7=value7;
    }
    void shift()
    {
    int i,temp[16];
    temp[0]=dat[15];
    for(i=0;i<15;i++)
    {
    temp[i+1]=dat[i];
    }
    for(i=0;i<16;i++)
    {
    dat[i]=temp[i];
    }
    }
    void Timer1InterruptHandler() org IVT_ADDR_ET1
    {
    unsigned char i,j;
    EA_bit=0;
    TR1_bit=0;
    TH1=0xff;
    TL1=0xf0;
    count++;
    if(count==100)
    {
    count=0;
    if(program==0)
    {
    if(delay<100)
    {
    set_value_pwm(delay,0,0,0,0,0,0,0);
    if(delay<99)delay++;
    else
    {
    delay=0;
    program=1;
    }
    }
    }
    if(program==1)
    {
    if(delay<100)
    {
    set_value_pwm(100,delay,0,0,0,0,0,0);
    if(delay<99)delay++;
    else
    {
    delay=0;
    program=2;
    }
    }
    }
    if(program==2)
    {
    if(delay<100)
    {
    set_value_pwm(100,100,delay,0,0,0,0,0);
    if(delay<99)delay++;
    else
    {
    delay=0;
    program=0;
    }
    }
    }

    }
    EA_bit=1;
    TR1_bit=1;
    if(count<pwm0)P1_0_bit=0;
    else P1_0_bit=1;
    if(count<pwm1)P1_1_bit=0;
    else P1_1_bit=1;
    if(count<pwm2)P1_2_bit=0;
    else P1_2_bit=1;
    if(count<pwm3)P1_3_bit=0;
    else P1_3_bit=1;
    if(count<pwm4)P1_4_bit=0;
    else P1_4_bit=1;
    if(count<pwm5)P1_5_bit=0;
    else P1_5_bit=1;
    if(count<pwm6)P1_6_bit=0;
    else P1_6_bit=1;
    if(count<pwm7)P1_7_bit=0;
    else P1_7_bit=1;
    }
    void main()
    {
    TF1_bit=0;
    ET1_bit=1;
    EA_bit=1;
    GATE1_bit=0;
    C_T1_bit=0;
    M11_bit=0;
    M01_bit=1;
    TR1_bit=0;
    TH1=0xff;
    TL1=0xf0;
    TR1_bit=1;
    while(1)
    {
    }
    }
    cám ơn anh tiện thể cho em hỏi a 1 câu ??
    minh lập trinh cho AT89c51 ở cổng P0.0 -> P0.7 và P2.0 -> P2.7
    và P3.0 .....P3.7 có khác gì so với công P1.0....P1.7 không ạ
    em mới học nên nhờ các anh chỉ giúp !! em xin cảm ơn
    Học Hỏi Không Ngừng Nghỉ

    Comment


    • #3
      Các bác cho em hỏi : em có làm 1 biển quang báo gồm 7 chữ,chữ nhìu nhất 200led 3led+1tro 330om,tổng cộng là 1300led ,em có sử dụng nguồn máy tính pc 12v, nhưng mới chạy dc nửa tháng thì chết nguồn , có phải em đẻ dây từ biển xuống nguồn dài 10m lên mới bị chết ko?

      Comment


      • #4
        ý em hỏi là nếu em lập trình tiếp các cổng P0.0 ... P0.7 thì sẽ phải kai báo tiếp trong đoạn code trên là gì ,,và tương tự các cổng P2.0 -> P2.7
        và P3.0 .....P3.7
        Học Hỏi Không Ngừng Nghỉ

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        • since0501
          Trả lời cho Pin Li-FePO4 (pin sắt) rất dể hỏng! Các biện pháp ngăn ngừa.
          bởi since0501
          Mình đào mộ xíu, cho mình hỏi là pin của bác vẫn ok chứ? Mình vừa đóng khối pin 16 cell 40135 thì khi chạy điện áp nó sụt so với khi nghỉ như video mình dẫn link, vậy cho mình hỏi là dung lượng pin sẽ tính khi áp nghỉ hay áp đang hoạt động, và pin sụt áp như vậy là bình thường hay pin kém?
          ht...
          hôm nay, 17:56
        • mèomướp
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi mèomướp
          Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
          Hôm qua, 13:11
        • tuyennhan
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi tuyennhan
          Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
          Hôm qua, 09:25
        • tuyennhan
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi tuyennhan
          Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
          Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
          Hôm qua, 09:10
        • Ng.Phuong.5
          Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
          bởi Ng.Phuong.5
          Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
          Mấy con...
          09-01-2025, 19:44
        • viettinh
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi viettinh
          Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
          Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
          09-01-2025, 18:12
        • nguyendinhvan
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi nguyendinhvan
          Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
          Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
          Cách đơn giản...
          09-01-2025, 00:04
        • mèomướp
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi mèomướp
          Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
          08-01-2025, 19:02
        • tuyennhan
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi tuyennhan
          Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
          08-01-2025, 15:43
        • tuyennhan
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi tuyennhan
          Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
          08-01-2025, 15:28
        Đang tải...
        X