freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機簡易電子琴課程設計報告-資料下載頁

2025-08-03 01:28本頁面
  

【正文】 unsigned int code tone_delay_table[]={63628,63835,64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110}。//各音符對應的延時表 sbit beep=P3^5。//蜂鳴器的位定義 unsigned char Sound_Temp_TH0,Sound_Temp_TL0。 //音符定時器初值暫存 void delay_1ms(unsigned int i){ while(i)。} //延時//鍵盤矩陣掃描 //返回按下的鍵的值 unsigned char keys_scan(void) { unsigned char Tmp,k=16。P2=0x0F。 delay_1ms(2000)。 Tmp=P2 ^ 0x0F。 switch(Tmp)//確定掃描的是哪一列 { case 1: k=0。break。 case 2: k=1。break。 case 3: k=2。break。case 4: k=3。break。default: return 16。 //無鍵按下, 返回 } P2=0xF0。delay_1ms(2000)。 Tmp=(P24)^0x0F。switch(Tmp)//確定掃描的是那一行 { case 1: k+=0。 break。 case 2: k+=4。 break。 case 3: k+=8。 break。 case 4: k+=12。 break。 default: return 16。 //無鍵按下, 返回 } return k。 } void main() //主程序 { unsigned char key_NO=0。 //設置定時器工作方式 3, 以及相關(guān)開啟寄存器 TMOD |= 0x11。//使用模式1,16位定時器,使用|符號可以在使用多個定時器時不受影響 ET0 = 1。 //定時器中斷打開TR0 = 1。 //定時器開關(guān)打開EA = 1。 //總中斷打開 TH0=tone_delay_table[key_NO]/256。TL0=tone_delay_table[key_NO]%256。 while(1) {P2=0xF0。 if(P2!=0xF0) //當有按鍵按下時, 需要設置定時器的開啟 { key_NO=keys_scan()。//調(diào)用鍵盤掃描 if(key_NO15)//按下那個鍵, 發(fā)出對應的音調(diào){delay_1ms(2000)。if(key_NO15) { Sound_Temp_TH0=tone_delay_table[key_NO]/256。 Sound_Temp_TL0=tone_delay_table[key_NO]%256。 } }TR0=1。//開啟定時器 0, 音符中斷 } else//當沒有鍵按下時, 無聲音發(fā)出;{ TR0=0。//關(guān)閉定時器 beep=1。} delay_1ms(2000)。//稍做延時, 可以避免誤判斷 } } //音符發(fā)生的中斷 void play_tone() interrupt 1{ TH0=Sound_Temp_TH0。 TL0=Sound_Temp_TL0。beep=!beep。 }
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1