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

        • nhathung1101
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi nhathung1101
          Vừa thử lại, con loa kẹo kéo Tầu giá 1tr2 và loa Pionner.

          Thử đọc chứ chưa hát:

          - Ủa ái ni thì loa tàu ra đúng.

          - Ủa ái ni trên con Pionner thành Ùa ái ni. Mà từ "ái" lại rõ to.

          Thử "chèm...
          hôm nay, 00:23
        • nhathung1101
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi nhathung1101
          Nhưng anh em nào còn đam mê sửa nguồn thì cứ cố gắng.
          Tiền số đang có giá, mà nguồn cho bọn "trâu cày" toàn vài Kw.
          Làm được vẫn sống tốt. Tôi thì nghỉ hưu rồi.

          Hôm trước có ku em năn nỉ tôi sửa cho nó cái nguồn 12V/170Amp. Tôi bảo đi mua cái mới.
          hôm nay, 00:02
        • nhathung1101
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi nhathung1101
          Ngày xưa, còn làm với bên viễn thông (giờ chẳng thèm làm vì công bèo).
          Tôi sửa nguồn, tối thiểu phải đủ công cụ:
          - Osciloscope.
          - Logic Analyzer (để làm với chuẩn truyền thông)
          - Đồng hồ đo dòng. Đồng hồ đo áp. Đồng...
          Hôm qua, 23:43
        • nhathung1101
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi nhathung1101
          Thì không cấp nguồn là an toàn nhất rồi còn gì? Lo gì cháy nổ.
          Còn đo đạc thì kiểm tra huyết áp hay nhịp tim ở cô hàng xóm vậy.

          Còn Mèo thì toàn xúi thâm, thằng nào nghe cứ lãnh đủ. Chuyên lừa chuột non....
          Hôm qua, 23:32
        • nhathung1101
          Trả lời cho Trình điều khiển bước rời rạc
          bởi nhathung1101
          "Chú ấy" ở bên Quảng Đông đấy. Đang bị "rã rời" rồi, nên đừng hướng vào con đường tội lỗi nữa....
          Hôm qua, 23:26
        • nhathung1101
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi nhathung1101
          Loa Tầu nó đáp ứng được tiếng VN, vì mấy câu hát kiểu "oăng oẳng như sủa" Nhật nó không có. Nó chỉ hát kiểu "đục đục chạc chạc" thôi.
          Nếu thấy loa Tầu hay, thì gỡ cái mác SONY gắn vào là xong. Còn cái loa Nhật thì vứt luôn, chỉnh làm quái gì.
          ...
          Hôm qua, 23:17
        • 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 qua, 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ế...
          10-01-2025, 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 .
          10-01-2025, 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ở ....
          10-01-2025, 09:10
        Đang tải...
        X