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

正文內(nèi)容

課程設(shè)計(jì)論文-基于at89c52單片機(jī)的簡易電子琴設(shè)計(jì)-資料下載頁

2024-11-16 17:37本頁面

【導(dǎo)讀】本設(shè)計(jì)主要研究基于AT89C52單片機(jī)的簡易電子琴設(shè)計(jì)。利用按鍵實(shí)現(xiàn)音符和音。音頻功率放大;最后用蜂鳴器進(jìn)行播放“送別”。其軟件部分主要有主程序模塊、定時(shí)中斷程序、定時(shí)計(jì)數(shù)程序、顯示。它包括單片機(jī)的選擇、時(shí)鐘。系統(tǒng)設(shè)計(jì)、復(fù)位電路設(shè)計(jì)、簡單的I/O口擴(kuò)展、掉電保護(hù)等。按鍵系統(tǒng)模塊:本設(shè)計(jì)采用10個(gè)按鍵,其中7個(gè)按鍵用來顯示7個(gè)音調(diào),其它3個(gè)按鍵可以進(jìn)行高低中音的切換,并自動(dòng)播放已存歌曲。電阻提高驅(qū)動(dòng)能力。原理和各個(gè)模塊的程序調(diào)試來闡述。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的。系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡單,軟件。功能完善,控制系統(tǒng)可靠,性價(jià)比高等,具有一定的使用和參考價(jià)值。

  

【正文】 har high,low。 //定時(shí)器預(yù)裝值的高 8 位和低 8 位 sbit speak=P3^0。 sbit gao=P3^5。 sbit di=P3^6。 sbit zdbf=P3^7。 uchar yinjie=1。 uchar time。 uchar n=0。 uchar bo=0。 uchar code fre[][2]= { 0x8c,0xf8, 0x5b,0xf9, 0x15,0xfa, 0x67,0xfa, 0x90,0xfb, 0xae,0xfb, 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 24 0x0c,0xfc, //低音 0x44,0xfc, 0xac,0xfc, 0x09,0xfd, 0x34,0xfd, 0x82,0xfd, 0xc2,0xfd, 0x06,0xfe, //中音 0x22,0xfe, 0x56,0xfe, 0x85,0xfe, 0x9a,0xfe, 0xc1,0xfe, 0xe4,0xfe, 0x03,0xff, //高音 }。 void delay(uint )。 void ITimer0(void)。//定時(shí)器初始化 void key(void)。 void dtxs(int,int)。 void song() { 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 25 TH0=high。 TL0=low。 TR0=1。 delay(time*240)。 } void yinyue() { uchar code hls[]={ 5,2,2, 3,2,1, 5,2,1, 1,3,4, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 1,2,1, 2,2,1 ,3,2,2 ,2,2,1, 1,2,1 ,2,2,6, 5,2,2, 3,2,1, 5,2,1, 1,3,3, 7,2,1, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,3, 7,1,1, 1,2,6, 6,2,2, 1,3,2, 1,3,4, 7,2,2, 6,2,1, 7,2,1, 1,3,4 ,6,2,1, 7,2,1, 1,3,1 ,6,2,1, 6,2,1 ,5,2,1 ,3,2,1, 1,2,1, 2,2,6, 5,2,2, 3,2,1, 1,2,1, 1,3,3, 7,2,1, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,3, 7,1,1, 1,2,6 }。 uchar m。 n=0。 while(n174) { m=hls[n]+7*(hls[n+1]1)1。 high=fre[m][1]。 low=fre[m][0]。 time=hls[n+2]。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 26 n=n+3。 song()。 } } void main (void) { uchar num。 ITimer0()。 speak=0。 while(1) { key()。 switch(keyport) { case 0xfe:num=1。break。 case 0xfd:num=2。break。 case 0xfb:num= 3。break。 case 0xf7:num= 4。break。 case 0xef:num= 5。break。 case 0xdf:num= 6。break。 case 0xbf:num= 7。break。 case 0x7f:num= 8。break。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 27 default:num= 0。break。 } if(num==0) { TR0=0。 speak=0。 } else { high=fre[7*yinjie+num1][1]。 low=fre[7*yinjie+num1][0]。 TR0=1。 } dtxs(yinjie,num)。 } } void ITimer0(void) { TMOD |= 0x01。 //使用模式 1, 16 位定時(shí)器,使用 |符號可以在使用多個(gè)定時(shí)器時(shí)不受影響 EA=1。 //總中斷打開 ET0=1。 //定時(shí)器中斷打開 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 28 TR0=1。 //定時(shí)器開關(guān)打開 } void Timer0_isr(void) interrupt 1 { TH0=high。 TL0=low。 speak=!speak。 if(zdbf==0) { delay(100)。 if(zdbf==0) { bo++。 if(bo/2==1) { delay(100)。 if(n174)n=500。 //n 賦值大于 174,跳出 while,停止音樂 else n=0。 dtxs(3,0)。 } if(bo%2==0) { delay(100)。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 29 n=500。 //n 賦值大于 174,跳出 while,停止音樂 } } }/**/ } void key() { if(zdbf==0) {delay(100)。 if(zdbf==0) yinyue()。 } if(gao==0) { delay(100)。 if(gao==0) { delay(100)。 if(yinjie==2) yinjie=1。 else yinjie=2。 } 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 30 } if(di==0) { delay(100)。 if(di==0) { delay(100)。 if(yinjie==0) yinjie=1。 else yinjie=0。 } } } void delay(unsigned int x) { int a,b。 for(a=x。a0。a) for(b=110。b0。b)。 } void dtxs(k,l)//k 是按鍵號, l 是工作方式 { char seg[14]={0x6f,0x0a,0xe3,0xcb,0x8e,0xcd, 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 31 0xed,0x0b,0xef,0xcf,0xaf,0xec,0x65,0xea}。 P2=0x01。//選擇第一個(gè)數(shù) 碼管 P0=seg[l]。//顯示按鍵號 delay(4)。 P2=0x02。//選擇第二個(gè)數(shù)碼管 P0=seg[k+10]。//顯示工作方式 delay(4)。 } 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 32 附 2 系統(tǒng)原理圖
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1