Thông báo

Collapse
No announcement yet.

help me

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

  • help me

    Đề 10. Th[FONT="Arial"][I][B][I]iết kế hệ thống dàn đèn.
    Yêu cầu:
     Các linh kiện: 02 Led 7 vạch; 08 Led thường; 01 bàn phím 2x2.
    Thiết kế mạch điều khiển sáng đèn LD thường và LED 7 vạch.
     Bấm phím 1: 8 LD nhấp nháy, đếm tăng số chẵn 00->02->..98 trên LED 7 vạch.
     Nhấn phím 2: 8 LD nháy dồn, đếm giảm số lẻ 99->97->..01 trên LED 7 vạch.
     Nhấn phím 3: Nháy đuổi 2 LED, đếm thuận 00-99 trên Led 7 vạch
     Nhấn phím 4: nháy dồn 2 LED, đếm nghịch 99-00 trên Led 7 vạch.


    đây là đề bài . mình viết code jui . Nhưng mình găpk rắc rối la` khi bấm nút mình không biết làm thế nào cho 2 cái yêu cầu "vd như 8 LD nháy dồn, đếm giảm số lẻ 99->97->..01 trên LED 7 vạch. " được thực hiện đồng thời cả , vấn đề là dùng hàm ngắt . (mình mới học cái này nên hàm ngắt chưa biết gi` ). mong các ban xử lý hộ. thanks nhiều .///// day là code mình viết

    #include<regx51.h>
    sbit phim1=P0^0;
    sbit phim2=P0^1;
    sbit phim3=P0^2;
    sbit phim4=P0^3;


    unsigned char led7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
    unsigned char i,j;

    void dem (unsigned char chuc,vi );
    void delay(long ms);
    void quetphim_hienthi();

    void delay(long ms)
    {
    long i;
    for(i=0;i<=ms;i++)

    ;
    }
    void tamlednhapnhay()
    {

    P1=0Xff;delay(5000);
    P1=0X00;delay(5000);
    }
    void tamlednhaydon()
    {


    P1=0xff;delay(1000);
    P1=0xfe;delay(1000);
    P1=0xfc;delay(1000);
    P1=0xf8;delay(1000);
    P1=0xf0;delay(1000);
    P1=0xe0;delay(1000);
    P1=0xc0;delay(1000);
    P1=0x80;delay(1000);
    P1=0x00;delay(1000);
    P1=0xff;delay(1000);
    }
    void nhayduoi2led()

    {

    P1=0Xfc;delay(2000);
    P1=0Xf3;delay(2000);
    P1=0Xcf;delay(2000);
    P1=0X3f;delay(2000);
    P1=0xff;delay(2000);

    }
    void nhaydon2led()
    {
    P1=0Xfc;delay(2000);
    P1=0Xf0;delay(2000);
    P1=0Xc0;delay(2000);
    P1=0X00;delay(2000);
    P1=0XFF;delay(2000);
    }


    void dem1 ()
    {
    int i,j,c,v;

    for(j=0;j<=99;j++)
    {

    if(j%2==0)
    { tamlednhapnhay();
    c=j/10;
    v=j%10;
    for(i=0;i<=25;i++)
    {
    P3=led7[v];P2_1=1;delay(100);P2_1=0;
    delay(30);
    P3=led7[c]; P2_0=1;delay(100);P2_0=0;
    delay(30); }}}}

    // ham con 2
    void dem2 ()
    {

    int i,j,c,v;
    for(j=99;j>0;j--)
    {

    if(j%2==1)
    { tamlednhaydon();
    c=j/10;
    v=j%10;
    for(i=0;i<=30;i++)
    {
    P3=led7[v];P2_1=1;delay(50);P2_1=0;
    delay(15);
    P3=led7[c]; P2_0=1;delay(50);P2_0=0;
    delay(15); }}}}
    // dem 3

    void dem3 ()
    {

    int i,j,c,v;

    for(j=0;j<=99;j++)
    {
    nhayduoi2led();
    c=j/10;
    v=j%10;
    for(i=0;i<=30;i++)
    {
    P3=led7[v];P2_1=1;delay(50);P2_1=0;
    delay(15);
    P3=led7[c]; P2_0=1;delay(50);P2_0=0;
    delay(15); }}}
    // nhaydon2led
    void dem4 ()
    {
    int i,j,c,v;
    for(j=99;j>0;j--)
    {
    nhaydon2led();
    c=j/10;
    v=j%10;
    for(i=0;i<=30;i++)
    {
    P3=led7[v];P2_1=1;delay(50);P2_1=0;
    delay(15);
    P3=led7[c]; P2_0=1;delay(50);P2_0=0;
    delay(15); }}}

    void main()
    {while(1)
    {
    if(phim1==0) { dem1(); break; }
    if(phim2==0) { dem2(); break; }
    if(phim3==0) {dem3(); break;}
    if(phim4==0) {dem4(); break;}

    P2_1=1;
    P2_0=1;
    P3=led7[0];
    }
    }

    mạch mo pong cua minh day :

  • #2
    Hi tienutc,

    Sao bạn không up cái lưu đồ thuật toán của bạn lên đây. Trông vào đó ai cũng có thể cùng suy nghĩ và đưa ra ý kiến giúp bạn. Bạn up code lên thế này có rất nhiều người ngại đọc, hơn nữa những bạn chưa viết bằng C sẽ không đọc được chương trình của bạn đâu.
    Kiếm tiền ONLINE nhàn như ăn cháo -

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X