娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月08日(星期四)

2018年05月08日 | 基于51單片機的4×4矩陣鍵盤電子琴

發布者:靜心悠然 來源: eefocus關鍵字:51單片機  4×4矩陣鍵盤  電子琴 手機看文章 掃描二維碼
隨時隨地手機看文章

前些日子,做而論道寫了一篇關于單片機發音的文章,后來,就不斷有網友來電詢問單片機電子琴的設計方法。
以前制作過一個24鍵(獨立按鍵)的,程序是用匯編語言寫的,估計多數人看不了。
下面,把新設計的16按鍵的電子琴,公布給網友。
電路圖如下:

基于51單片機的4×4矩陣鍵盤電子琴 - 非著名博主 - 電子信息角落


制作說明:
  單片機采用51系列的都行,AT89C2051也可;
  圖中沒有畫出復位和晶振電路,實際制作時,不可省略,晶振可以使用11.0592或12MHz;
  揚聲器應該按照圖中給出的附圖加上驅動電路
  顯示器及七段譯碼器不接,單片機電子琴也可以正常工作。

  74LS47 和數碼管之間,應該接上“限流電阻”,約 470 歐姆即可。

C語言程序如下:
/************************************************************* 
* 程序功能 : 對4×4矩陣鍵盤進行掃描,顯示鍵值和輸出音響 
**************************************************************/ 
#include  
#include  
#define uint unsigned int 
#define uchar unsigned char

sbit SPK = P3^7;                  //P3.7外接揚聲器
uint FreqTemp;
unsigned int code Freqtab[] = { //定時半周期的初始值
     64021,64103,64260,64400,      //低音3 4 5 6
     64524,64580,64684,64777,      //低音7,中音1 2 3
     64820,64898,64968,65030,      //中音4 5 6 7
     65058,65110,65157,65178};     //高音1 2 3 4


/************************************************************* 
* 函數功能 : 用掃描法讀 P1 外接 4×4 鍵盤
* 函數返回 : 按下鍵:返回0~15、如無鍵按下:返回16
**************************************************************/ 
uchar Keyscan(void) 

     uchar i, j, temp, Buffer[4] = {0xfe, 0xfd, 0xfb, 0xf7}; 
     for(j = 0; j < 4; j++) {    //循環四次,掃描四行
       P1 = Buffer[j];           //在低四位分別輸出一個低電平
       _nop_(); 
       temp = 0x80;              //計劃先讀出P1.7位
       for(i = 0; i < 4; i++) { //循環四次,檢查四列
         if(!(P1 & temp)) {      //從高四位,截取1位
           return (i + j * 4); //返回取得的按鍵值 
         }
         temp >>= 1;             //換右邊一位
     } }
     return 16;                  //沒有鍵按下就返回16

/************************************************************** 
* 函數功能 : 將參數分成十位、個位,分別顯示到P2
* 輸入 : k (鍵盤數值) 
***************************************************************/ 
void Display(uchar k)
{
     P2 = ((k / 10) << 4) + (k % 10);
}
/************************************************************** 
* 主函數 
***************************************************************/ 
void Main(void) 

     uchar Key_Value = 16, Key_Temp1, Key_Temp2;//讀出的鍵值 
     TMOD = 0x01;                   //T0定時方式1
     ET0 = 1;                       //允許T0中斷
     EX0 = 1;                       //允許X0中斷
     EA = 1;
     while(1) { 
       TR0 = 0;                     //暫不發音
       Key_Temp1 = Keyscan();       //讀入按鍵
       if(Key_Temp1 != 16) {        //有鍵按下
         Display(Key_Value);        //顯示鍵值、延時消抖 
         Key_Temp2 = Keyscan();     //再讀一次
         if (Key_Temp1 == Key_Temp2) {//兩次相等
           Key_Value = Key_Temp1; //就確認下來
           FreqTemp = Freqtab[Key_Value]; //根據鍵值,取出定時半周期的初始值
           Display(Key_Value);      //顯示
           TR0 = 1;                 //啟動定時器,發音
           while (Keyscan() < 16); //等待釋放
           SPK = 1;                 //停止發音
} } } }
//=============================================== 
void T0_INT(void) interrupt 1
{
     TL0 = FreqTemp;                //載入定時半周期的初始值
     TH0 = FreqTemp >> 8;
     SPK = ~SPK;                    //發音

//=============================================== 


關鍵字:51單片機  4×4矩陣鍵盤  電子琴 引用地址:基于51單片機的4×4矩陣鍵盤電子琴

上一篇: 4×4 矩陣式鍵盤電路的改進
下一篇:利用定時方式0,測量外部脈沖寬度(5到250ms),74HC595輸出顯示

推薦閱讀

蘋果、華為、亞馬遜和聯想出貨量年同比增長;三星、華碩和宏碁要轉向筆記本電腦市場??蘋果和亞馬遜致力于以更低的硬件價格實現更大的平板電腦出貨量,從而支持其利潤豐厚的服務收益。 華為在聯網平板電腦市場取得成功,而其他移動先行公司仍然難以實現如此高的蜂窩連接速率。 即使如此,Strategy Analytics新開設的部門連接計算設備服務(CCD)最新發...
2019年的谷歌I/O大會于美國加州山景城海岸線圓形劇場正式開始了,谷歌的高管紛紛亮相,為新產品做出主題演講,和往年一樣,谷歌今年在I/O大會上,花了不少的時間來談論新的安卓操作系統,今天在會議上,谷歌推出了關于谷歌助手方面的更新。 安卓Q也就是安卓10,在大會上,演示者表示,今年谷歌將非常注重數據健康。在智能手機已經成為不可缺少的時代下,...
程序中的幾個段理解有些技術文章中會直接使用RO,請注意區分RO和RO-data的區別。 Code:即代碼域,它指的是編譯器生成的機器指令。RO_data:ReadOnly data,即只讀數據域,它指程序中用到的只讀數據,全局變量,例如C語言中const關鍵字定義的全局變量就是典型的RO-data。RW_data:ReadWrite data,即可讀寫數據域,它指初始化為“非0值”的可讀寫數據,...
三星墨西哥網站上的一篇帖子,可能無意中泄露了 Galaxy S20 FE 迭代產品的名字,這款手機被命名為 Galaxy S21 FE。這是 GalaxyClub 首次提到這款機型的名字,外媒認為,如果 Galaxy S21 FE 真的在研發中,那么我們可能會在今年內看到它的發布。該網站在橫幅上簡短地顯示了 Galaxy S21 FE 的名稱,沒有任何附帶的清單或圖片。這條信息的鏈...

史海拾趣

問答坊 | AI 解惑

本人收集的各種手機模塊的示例程序

希望可以有參考價值。 1.西門子: TC35 MC35 2.WAVECOM: Q2403 Q2501 3.索尼愛立信: GR47 4.華為: GTM900 5.中興: MZ28 等等。。。。…

查看全部問答∨

建立一個新的應用程序,初學者求助。。。。。。。。

建立一個新的應用程序,它采用標準庫函數來顯示一條hello world消息:   1、在相應安裝文件的myprojects文件夾中建立新的文件夾hello;   2、在tutorial/hello中的所有文件拷貝到上述新文件夾(就是這一步,我找不到這個目錄 ...…

查看全部問答∨

請問:誰有vxworks下intel82546網卡的驅動

我現在用的bsp版本可能不支持intel82546,希望各位仁兄能提供幫助,萬分感謝!…

查看全部問答∨

WINCE下怎樣減少可執行文件大小?謝謝!

我做的是windows mobile,編譯后可執行文件太大了,有什么辦法解決呢?…

查看全部問答∨

大家來看看這是單文檔界面還是對話框界面?

上位機的一個截圖。這是我空間里貼的圖http://hi.baidu.com/bd%5Fshb/blog/item/ac0cb2c2804a4c180ef47794.html…

查看全部問答∨

[初學][求助]關于專用鍵盤上電自檢的問題

本人現在在用8051單片機做一個5×6的鍵盤的程序,鍵盤掃描已調試成功,在示波器上也能觀察到按下其中任一按鍵時,時鐘線與數據線有正常的波形出來,但是接上PC后確不能使用,后在網上查找,發現在上電時要有一個上電自檢的過程,但找到的東西沒有 ...…

查看全部問答∨

派睿電子在華支付寶用戶量實現翻倍增長

本帖最后由 jameswangsynnex 于 2015-3-3 19:59 編輯 派睿電子公司(隸屬于Premier Farnell集團)日前宣布采用其支付寶服務的用戶群數量在華實現翻倍增長,并且該趨勢正在持續加強。自其推出支付平臺至今的一年中,不斷贏得廣大電子設計工程師的一 ...…

查看全部問答∨

MSP430仿真器驅動安裝的問題

各位大俠,緊急求助,我買了一個MSP430仿真器PCB空板,焊好后通過USB插上電腦后,電腦設別后就自動裝上了驅動     然后我就更新了固件,連接板子下載程序,可是下不進去,顯示了如下圖        &nbs ...…

查看全部問答∨

【設計工具】Xilinx FPGA 電路配置

FPGA配置電路可以看成用戶設計和硬件電路之間的連接紐帶,最終目的是在一定外部條件下,準確快速地實現FPGA系統配置。 在FPGA的配置系統中,軟件編程由FPGA提供商提供,設計人員要掌握其操作方法, 將配置數據從PC加載到XilinxFPGA芯片的整個配 ...…

查看全部問答∨

Altium Designer 6.9畫原理圖 問題 大家幫忙看看。

我用 Altium Designer 6.9畫了一個關于51單片機  最后規則檢查時出現Signal PinSignalJ8_2[0] has no driver 錯誤  而且出現的很多錯誤都是這種類型的!  不知道怎么修改,請大家幫忙看看。…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 沾益县| 临漳县| 广东省| 金乡县| 固安县| 福海县| 德化县| 安仁县| 水富县| 西乡县| 宜州市| 和平县| 昭通市| 南澳县| 耒阳市| 郁南县| 大英县| 兴文县| 贵州省| 哈尔滨市| 耒阳市| 宁国市| 阳泉市| 固阳县| 平顺县| 合阳县| 陇川县| 资中县| 巢湖市| 西乌珠穆沁旗| 左云县| 阜新| 江华| 罗田县| 南漳县| 原平市| 阿坝| 报价| 航空| 安陆市| 宝坻区|