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

正文內(nèi)容

電子琴課程設(shè)計(jì)--基于單片機(jī)的電子琴設(shè)計(jì)(已改無錯(cuò)字)

2022-12-27 16:23:34 本頁面
  

【正文】 否 是 開始 T0初始化并開中斷允許 T0中斷 鍵盤掃描程序 有鍵按下否 識(shí)別按鍵功能 播放鍵 根據(jù)按鍵功能裝入相應(yīng)音符值到 T0 跳入播放子程序 啟動(dòng) T0 啟動(dòng) T0 按鍵釋放成功否 播放是否結(jié)束 停止 T0工作 停止 T1工作 延時(shí)去抖動(dòng) 是否彈奏鍵 返回鍵盤掃描 返回鍵盤掃描 ) 、設(shè)計(jì)源程序 include include define uint unsigned int define uchar unsigned char sbit SPK = P3^7。 // 外接揚(yáng)聲器 sbit BEEP=P3^0。 //生日快樂歌的音符頻率表,不同頻率由不同的延時(shí)來決定 uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}。 //生日快樂歌節(jié)拍表,節(jié)拍決定每個(gè)音符的演奏長(zhǎng) 短 uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}。 //延時(shí) void DelayMS(uint x) { uchar t。 while(x) for(t=0。t120。t++)。 } //播放函數(shù) void PlayMusic() { unsigned int i=0,j,k。 while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各個(gè)音符, SONG_LONG 為拍子長(zhǎng)度 for(j=0。jSONG_LONG[i]*20。j++) { BEEP=~BEEP。 //SONG_TONE 延時(shí)表決定了每個(gè)音符的頻率 for(k=0。kSONG_TONE[i]/3。k++)。 } DelayMS(50)。 i++。 } } uint FreqTemp。 unsigned int code Freqtab[] = { //定時(shí)半周期的初始值 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 uchar Keyscan(void) { uchar i, j, temp, Buffer[4] = {0xfe, 0xfd, 0xfb, 0xf7}。 for(j = 0。 j 4。 j++) { //循環(huán)四次,掃描四行 P2 = Buffer[j]。 //在低四位分別輸出一個(gè)低電平 _nop_()。 temp = 0x10。 //計(jì)劃先讀出 位 for(i = 0。 i 4。 i++) { //循環(huán)四次,檢查四列 if(!(P2 amp。 temp)) { //從高四位,截取 1 位 return (i + j * 4)。 //返回取得的按鍵值 } temp = 1。 //換右邊一位 } } return 16。 //沒有鍵按下就返回 16 } void Display(uchar k) { P1=((k/10)4)+(k%10)。 } void Main(void) { uchar Key_Value = 16, Key_Temp1, Key_Temp2。//讀出的鍵值 TMOD = 0x01。 //T0 定時(shí)方式 1 ET0 = 1。 //允許 T0 中斷 EX0 = 1。 //允許 X0 中斷 E
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1