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
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); } }