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

  • nguyendinhvan
    Trả lời cho Vấn đề về tốc độ quay
    bởi nguyendinhvan
    Sử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
    Hôm qua, 19:50
  • Andrea14
    Vấn đề về tốc độ quay
    bởi Andrea14
    Chào mọi người,

    Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
    12-12-2025, 12:42
  • bqviet
    Trả lời cho Đấu tắt điện cho máy tính bảng
    bởi bqviet
    Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
    06-12-2025, 17:17
Đang tải...
X