Thông báo

Collapse
No announcement yet.

Câu hỏi hóc búa về tần số!

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

  • Câu hỏi hóc búa về tần số!

    Các anh cho em hỏi, đề bài giao tiếp "Loa, ma trận bàn phím và led 7 đoạn" ( gợi ý : Loa xuất tần số nhập từ bàn phím , led hiển thị tần số xuất ra loa.)
    Làm sao tra bản các giá trị tần số để xuất ra loa? đây mọi người. Em viểt được phần xuất giá trị nhập từ bàn phím ra led rồi (giao tiếp matrix 4X4 với Led7seg) nhưng bế tắc phần tần số. VD em có bản tần số unsigned char[20HZ,40HZ,60HZ...] để xuất ra loa.
    CÁI CODE NÀY CÓ CHỨC XUẤT GIÁ TRỊ TỪ BÀN PHÍM RA LED
    Code:
    #include <REGX51.H>
    sbit led1 = P2^0;
    sbit led2 = P2^1;
    
    //HAM DELAY CO BAN
    void delay_us(int time)
    {
    while(time--);
    }
    
      //CAC GIA TRI THEO HEX XUAT RA LED 0-->9
    unsigned char seg7[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
    void sang(int n)
         {
    int c,dv,i;
    c=n/10;
    dv=n%10;
       for(i=0;i<50;i++) {
      P0=seg7[c];
      led1=1;led2=0;
      delay_us(200);
     
      P0=0xff;
      delay_us(200);
     
      P0=seg7[dv];
      led2=1;led1=0;
      delay_us(200);
     
      P0=0xff;
      delay_us(200);
                        }
     
         }
    
    //phimduocan
     void phim_duoc_an(unsigned char phim)
       {
    switch(phim)// Tuy vao so lan
           {
    case 0: { sang(0); break; }// Neu so lan =0 hien so 0 thoat khoi switch
    case 1: { sang(1); break; }// Neu so lan =1 hien so 1 thoat khoi switch
    case 2: { sang(2); break; }// ....
    case 3: { sang(3); break; }
    case 4: { sang(4); break; }
    case 5: { sang(5); break; }
    case 6: { sang(6); break; }
    case 7: { sang(7); break; }
    case 8: { sang(8); break; }
    case 9: { sang(9); break; }
    case 10:{sang(10); break;}
    case 11:{sang(11); break;}
    case 12:{sang(12); break;}
    case 13:{sang(13); break;}
    case 14:{sang(14); break;}
    case 15:{sang(15); break;}// Neu so lan =9 hien so 9 thoat khoi switch
           }
        }
    unsigned char quetphim[4]={0xFE,0xFD,0xFB,0xF7};
    // Dinh nghia so lan quet phim
    #define solanquetphim 100 // Cac ban co the thay doi gia tri nay cho phu hop
    unsigned char quetbanphim(void)
         {
    unsigned char giatribanphim;// Bien de luu gia tri phim an tu 0 den 15 ma hoa 16 phim
    unsigned char x,y;
    
    for(x=0; x<4;x++)
     {
    P3=quetphim[x];// Dua lan luot cac hang xuong 0
    for(y=0;y<solanquetphim;y++)// Kiem tra solanquetphim lan
       {
    if(P3_4==0) giatribanphim=0+4*x;// Gia tri phim tuong ung
    if(P3_5==0) giatribanphim=1+4*x;// Tuy thuoc vao hang x
    if(P3_6==0) giatribanphim=2+4*x;// La may ma gia tri cua
    if(P3_7==0) giatribanphim=3+4*x;// gia tri ban phim tuong ung.
        }
     }
    return(giatribanphim);
         }
    //Hàm Main.
    void main(void)
     {
    unsigned char i;
    while(1)
      {
    i=quetbanphim();
    phim_duoc_an(i);
       }
     }

Về tác giả

Collapse

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

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

Collapse

Đang tải...
X