日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開(kāi)發(fā)網(wǎng)

電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 單片機(jī) >> 正文

單片機(jī)實(shí)現(xiàn)十六按鍵電子琴C51源程序

作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2011/3/22
//-------------------------------------------------------------
//矩陣鍵盤十六按鍵電子琴源程序.C
//硬件說(shuō)明:51Hei單片機(jī)開(kāi)發(fā)板,12M晶振
//編寫人:胡琴 
//網(wǎng)站:http://www.51hei.com
//編寫日期:2010.01.17
//修改日志:2010.01.18 加顯示功能
//-------------------------------------------------------------
#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;
}
//========定時(shí)器T0中斷服務(wù)子程序=========================
void time0(void) interrupt 1
{
    TH0=a;
 TL0=b;
 yy=~yy;
}
//=======主函數(shù)========================================
void main()
{  P2=0x35;  //鎖存2個(gè)74hc573,防止數(shù)碼管點(diǎn)陣點(diǎn)亮.
   leds=1;  //打開(kāi)led太耗電了 所以關(guān)閉了
   init();
   yy=1;
   while(1)
   { 
   kk();
   TR0=0;
 }
}
Tags:單片機(jī),電子琴,C51源程序  
責(zé)任編輯:admin
相關(guān)文章列表
基于AT89C52單片機(jī)控制的雙軸太陽(yáng)自動(dòng)跟蹤系統(tǒng)設(shè)計(jì)
ESP32單片機(jī)入門篇
超聲波測(cè)距+溫度+報(bào)警的單片機(jī)代碼_51單片機(jī)超聲波測(cè)距C語(yǔ)言程序
七段數(shù)碼管顯示原理研究_數(shù)碼管顯示0~9對(duì)應(yīng)的段碼
單片機(jī)C語(yǔ)言編程入門教程  流水燈程序示例
基于51單片機(jī)—多功能秒表,多功能計(jì)時(shí)器C語(yǔ)言程序
STC89C52單片機(jī)數(shù)字電流表電壓表源碼與電路圖  51單片機(jī)電流電壓
自學(xué)stm32單片機(jī)四個(gè)步驟,實(shí)用又高效!
先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
單片機(jī)最小系統(tǒng)介紹及電路設(shè)計(jì) STM32單片機(jī)最小系統(tǒng)
什么是PIC單片機(jī)
為什么51單片機(jī)的晶振一般使用11.0592? 51單片機(jī)常用波特率初值表
51單片機(jī)寄存器功能一覽表
單片機(jī)寫延時(shí)程序的幾種方法
自學(xué)單片機(jī)編程之中斷與時(shí)鐘程序
哈佛結(jié)構(gòu)與馮·諾伊曼結(jié)構(gòu)區(qū)別以及X86體系
單片機(jī)萬(wàn)年歷:公歷日期與農(nóng)歷日期的相互轉(zhuǎn)換程序
AVR定時(shí)器1的CTC模式設(shè)置
單片機(jī)超聲波視覺(jué)識(shí)別系統(tǒng)的測(cè)量軟件開(kāi)發(fā),超聲波測(cè)距
LCD1602的單片機(jī)驅(qū)動(dòng)詳解
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁(yè)面
下到頁(yè)底
晶體管查詢