• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機實現十六按鍵電子琴C51源程序

    單片機實現十六按鍵電子琴C51源程序

    作者: 時間:2012-10-17 來源:網絡 收藏
    //-------------------------------------------------------------//矩陣鍵盤十六按鍵源程序.C//硬件說明:51Hei開發板,12M晶振//編寫人:胡琴 //網站:http://www.51hei.com//-------------------------------------------------------------#include AT89X51.H>		//包含頭文件#define uchar unsigned char	//宏定義#define uint unsigned int	//宏定義uint a,b;		//定義全局變量sbit k1=P3^0;	//按鍵sbit k2=P3^1;	//按鍵sbit k3=P3^2;	//按鍵sbit k4=P3^3;	//按鍵sbit yy=P2^2;	//音頻輸出引腳sbit leds=P1^4;//==============行列式鍵盤掃描子程序============================void kk(void){ P3=0xf0;if(P3!=0xf0){P3=0xef;loop1:if(!k1){a=0xfb,b=0x04;TR0=1;P0=0x3f;if(!k1){goto loop1;}}else TR0=0;yy=1; P0=0x00;loop2:if(!k2){a=0xfb;b=0x90;TR0=1;P0=0x06;if(!k2){goto loop2;}}else TR0=0;yy=1; P0=0x00;loop3:if(!k3){a=0xfc;b=0x0c;TR0=1;P0=0x5b;if(!k3){goto loop3;}}else TR0=0;yy=1; P0=0x00;loop4:if(!k4){a=0xfc;b=0x44;TR0=1;P0=0x4f;if(!k4){goto loop4;}}else TR0=0;yy=1; P0=0x00;P3=0xdf;yy=1; P0=0x00;loop5:if(!k1){a=0xfc;b=0xac;TR0=1;P0=0x66;if(!k1){goto loop5;}}else TR0=0;yy=1; P0=0x00;loop6:if(!k2){a=0xfd;b=0x09;TR0=1;P0=0x6d;if(!k2){goto loop6;}}else TR0=0;yy=1; P0=0x00;loop7:if(!k3){a=0xfd;b=0x34;TR0=1;P0=0x7d;if(!k3){goto loop7;}}else TR0=0;yy=1; P0=0x00;loop8:if(!k4){a=0xfd;b=0x82;TR0=1;P0=0x07;if(!k4){goto loop8;}}else TR0=0;yy=1; P0=0x00;P3=0xbf;loop9:if(!k1){a=0xfd;b=0xc8;TR0=1;P0=0x7f;if(!k1){goto loop9;}}else TR0=0;yy=1; P0=0x00;loop10:if(!k2){a=0xfe;b=0x06;TR0=1;P0=0x6f;if(!k2){goto loop10;}}else TR0=0;yy=1; P0=0x00;loop11:if(!k3){a=0xfe;b=0x22;TR0=1;P0=0x77;if(!k3){goto loop11;}}else TR0=0;yy=1; P0=0x00;loop12:if(!k4){a=0xfe;b=0x57;TR0=1;P0=0x7c;if(!k4){goto loop12;}}else TR0=0;yy=1; P0=0x00;P3=0x7f;loop13:if(!k1){a=0xfe;b=0x85;TR0=1;P0=0x39;if(!k1){goto loop13;}}else TR0=0;yy=1; P0=0x00;loop14:if(!k2){a=0xfe;b=0x9a;TR0=1;P0=0x5e;if(!k2){goto loop14;}}else TR0=0;yy=1; P0=0x00;loop15:if(!k3){a=0xfe;b=0xc1;TR0=1;P0=0x79;if(!k3){goto loop15;}}else TR0=0;yy=1; P0=0x00;loop16:if(!k4){a=0xfe;b=0xe4;TR0=1;P0=0x71;if(!k4){goto loop16;}}else TR0=0;yy=1; P0=0x00;}}	//======初始化=========================================== void init(void){TMOD=0x01;TH0=0x3c;TL0=0xb0;ET0=1;TR0=0;EA=1;}//========定時器T0中斷服務子程序=========================void time0(void) interrupt 1{TH0=a;TL0=b;yy=~yy;}//=======主函數========================================void main(){  P2=0x35;  //鎖存2個74hc573,防止數碼管點陣點亮.leds=1;  //打開led太耗電了 所以關閉了init();yy=1;while(1){ kk();TR0=0;}}


    關鍵詞: 單片機 電子琴 C51

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 辉南县| 延长县| 河曲县| 边坝县| 日喀则市| 安义县| 太和县| 穆棱市| 咸宁市| 虎林市| 乐山市| 福海县| 洪湖市| 息烽县| 崇阳县| 苗栗县| 库伦旗| 迁西县| 大渡口区| 斗六市| 宜章县| 玛沁县| 天台县| 海丰县| 潞城市| 邵阳市| 龙江县| 崇州市| 莱阳市| 萝北县| 湘潭县| 金寨县| 靖州| 阿克陶县| 偃师市| 格尔木市| 尚志市| 房产| 鞍山市| 抚州市| 山东省|