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

正文內(nèi)容

北郵計(jì)算機(jī)c小學(xué)期程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告(含源代碼和注釋)共五則范文-資料下載頁(yè)

2024-10-25 06:53本頁(yè)面
  

【正文】 ************************* 彈奏函數(shù)************************************/ void play(int n)//參數(shù)為鍵盤(pán)上的數(shù)字;{write_(0X80+0X40+n)。write_dat(16)。sound(n)。//彈奏音符;delay_ms(1)。write_dat(20)。TCCR1A=0x00。TCCR1B=0X00。//中斷,為下一個(gè)節(jié)拍做準(zhǔn)備;PORTD|=(1//PD5作為輸出管腳,接揚(yáng)聲器; } //___________________________________________ void INI_POTR(void){ DDRD|=0xff。DDRB=0xff。PORTD=(1//A口作為鍵盤(pán)輸入口;DDRB=0xff。} //_____________________________________第16頁(yè) 北京郵電大學(xué)信息與通信工程學(xué)院void INN_DEVICE(void){ MCUCR=0X00。// 中斷寄存器置零;} //____________________________________ //檢測(cè)鍵盤(pán)是否被按下的函數(shù) uint isKeyPress(){ DDRA=0xff。//初始設(shè)置端口均為輸出PORTA=0xf0。//設(shè)置端口的初值為11110000 DDRA=0xf0。//將低四位設(shè)為輸入if(PINA == 0xf0)//當(dāng)沒(méi)有按下時(shí),PINA仍然為11110000 {DDRA=0xff。return 0。//返回0,代表未按下} else//當(dāng)按下后,PINA不再是11110000 {DDRA=0xff。return 1。//返回1,代表按下了} } //鍵盤(pán)輸入檢測(cè)函數(shù);//_______________________________ int key_in(void){DDRA = 0xff。//先全部設(shè)置為輸出,再將后四位置為輸入PORTA = 0xf0。//設(shè)置高低電平DDRA = 0xf0。uint i = 0,j = 16,Key = 17。unsigned char temp1,temp2。if(isKeyPress()){temp1 = PINA。temp1 amp。= 0x0f。//只關(guān)心低四位的情況switch(temp1){case 0b00000001:j = 0。break。case 0b00000010:j = 1。第17頁(yè) 北京郵電大學(xué)信息與通信工程學(xué)院break。case 0b00000100:j = 2。break。case 0b00001000:j = 3。break。}temp2 = PINA。temp2 amp。= 0x0f。if(temp1!= temp2)return 17。DDRA = 0xff。PORTA= 0x0f。DDRA = 0x0f。temp1 = PINA。temp1 amp。= 0xf0。switch(temp1){case 0b00010000:i = 0。break。case 0b00100000:i = 1。break。case 0b01000000:i = 2。break。case 0b10000000:i = 3。break。}temp2 = PINA。temp2 amp。= 0xf0。if(temp1!= temp2)return 17。Key = i*4 + j+1。//return Key。}}/*****************************//去抖動(dòng)//只關(guān)心高四位的情況第18頁(yè)北京郵電大學(xué)信息與通信工程學(xué)院音樂(lè)播放函數(shù);*****************************/ void m_sound(uint a){int m=(62500/a)1。//發(fā)聲原理OCR1A=m。TCCR1A=0X50。//控制寄存器,選擇可翻轉(zhuǎn)功能,產(chǎn)生方波;TCCR1B=0X0a。}//**********************************播放函數(shù); void music_play(uint a[][2]){const char Mtable[]=“Music Mode”。write_(0X01)。//清屏;for(int i=0。i{write_dat(Mtable[i])。}int i=0。char tem=aim,T=1。while((a[i][1]!=0)amp。amp。(tem==aim)amp。amp。state){//A 返回 B 暫停 F 模式 C 上一曲你 D 播放E 下一曲;num=key_in()。switch(num){case 16:state=0。// F STATE = 0彈奏break。case 15:aim=1。//下一首Ebreak。case 14:pause=1。//播放Dbreak。case 13:aim=0。///上一首Cbreak。case 12:pause=0。///暫停Bbreak。case 11:第19頁(yè) 北京郵電大學(xué)信息與通信工程學(xué)院T=2。break。case 10: T=1。break。case 9:T=0。break。case 5://變速,1代表正常速度A//慢速0 //快速9//5 降調(diào)S=。break。case 6:S=1。break。default:break。}while(a[i][0]amp。amp。pause){num=key_in()。if(num==12){pause=0。}else{if(S == )m_sound(a[i][0]*S)。elsem_sound(a[i][0])。if(T==2)delay_ms(a[i][1]100)。else if(T==0)delay_ms(a[i][1]+100)。elsedelay_ms(a[i][1])。i++。TCCR1A=0x00。TCCR1B=0X00。}}pause=0。//6 正常調(diào)//加減速//下一個(gè)音符; 第20頁(yè)北京郵電大學(xué)信息與通信工程學(xué)院TCCR1A=0x00。TCCR1B=0X00。//中斷,為下一個(gè)節(jié)拍做準(zhǔn)備;}if(a[i][1]==0){aim =(++aim)% list。} }/***************** 錄制音樂(lè)函數(shù); *****************/ void record(void){write_(0X01)。const uchar R_table[]=“Recording Mode”。for(int i=0。iwrite_dat(R_table[i])。}pause=1。while(pause){uint Skey = key_in()。if((Skey0)amp。amp。(Skey{int i=0。//count=0。while(i{Skey=key_in()。OCR1A=0。TCCR1A=0x00。TCCR1B=0X00。if((Skey0)amp。amp。(Skey{play(Skey)。Ssong[i][0]=tone[Skey]。Ssong[i][1]=600。i++。delay_ms(20)。}if(Skey==14)第21頁(yè)//清屏;//開(kāi)始錄制//先清零計(jì)數(shù)器//錄制完成,北京郵電大學(xué)信息與通信工程學(xué)院按D鍵結(jié)束錄制{i=10。}}pause=0。//借助 PAUSE 來(lái)標(biāo)記一下什么時(shí)候退出while} } } //***************************歌曲數(shù)據(jù) uint music_data[][2]= { {440,400},{440,400},{659,400},{659,400},{740,400},{740,400},{659,800}, {587,400},{587,400},{554,400},{554,400},{494,400},{494,400},{440,800}, {659,400},{659,400},{587,400},{587,400},{554,400},{554,400},{497,800}, {659,400},{659,400},{587,400},{587,400},{554,400},{554,400},{497,800}, {440,400},{440,400},{659,400},{659,400},{740,400},{740,400},{659,800}, {587,400},{587,400},{554,400},{554,400},{494,400},{494,400},{440,800}, {0,0} }。// abcdefguint music_1[][2]= {{262,400},{294,400},{330,400},{262,400},{262,400}, //樂(lè)譜 {294,400},{330,400},{262,400},{330,400},{349,400}, {392,800},{330,400},{349,400},{392,800},{392,300}, {440,100},{392,300},{349,100},{262,400},{392,400}, {440,300},{392,100},{349,300},{330,100},{262,400}, {294,400},{196,400},{262,400},{294,800},{196,400}, {262,400},{294,800},{0,0}}。//music_1int main(void){INI_POTR()。//初始化write_(0X38)。//顯示光標(biāo)等;write_(0X01)。//清屏;write_(0X0f)。//打開(kāi)光標(biāo);write_(0X06)。write_(0X80+0X02)。for(int i=0。i第22頁(yè) 北京郵電大學(xué)信息與通信工程學(xué)院{write_dat(table[i])。}write_(0X80+0X11)。delay_ms(5)。while(1){num = key_in()。if(num==16)//模式選擇{if(state==1)state=0。elsestate=1。}放模式if(state==1){(state==1){switchaim(){case 0:music_play(music_data)。break。case 1:music_play(Ssong)。break。default:break。}whiledelay_ms(10)。}}else if(num==11)//錄制模式;{record()。delay_ms(10)。}else{write_(0X01)。第23頁(yè)//播北京郵電大學(xué)信息與通信工程學(xué)院}const uchar Ptable[]=“playing Mode”。for(int i=0。i{write_dat(Ptable[i])。}while((num!=16)amp。amp。(num!=11)){play(num)。num=key_in()。}} }//彈奏模式:實(shí)現(xiàn)了最初設(shè)想的功能,所設(shè)計(jì)的電子琴可以進(jìn)行即興彈奏、錄制音樂(lè)、播放音樂(lè)以及音樂(lè)變速。測(cè)試圖片如下:第24頁(yè) 北京郵電大學(xué)信息與通信工程學(xué)院第25頁(yè) 北京郵電大學(xué)信息與通信工程學(xué)院接通電源后,顯示屏以每次顯示一個(gè)字符的形式顯示出“HELLO WELCOM!”的歡迎文字,接著自動(dòng)進(jìn)入彈奏模式,并在LCD的第一行顯示出“Playing Mode”的文字,用戶(hù)每次按下按鍵都會(huì)在LCD的第二行的相應(yīng)位置出現(xiàn)對(duì)應(yīng)按鍵順序的光標(biāo)閃爍。在彈奏模式下,按下F鍵會(huì)進(jìn)入播放模式,LCD顯示出“Music Mode”字樣,此時(shí)按下D鍵是播放/繼續(xù),按下B鍵是暫停,C鍵和E鍵分別代表上一首和下一首,9鍵則是將音樂(lè)速度調(diào)整為慢速,再次按下F鍵會(huì)回到彈奏模式。在彈奏模式下,按下A鍵會(huì)進(jìn)入錄制模式,此時(shí)LCD顯示“Recording Mode”字樣,可以使用1~0十個(gè)按鍵進(jìn)行錄音,想要聽(tīng)聽(tīng)錄制好的音樂(lè),可以切換到播放模式下進(jìn)行欣賞。六、排錯(cuò)過(guò)程:l 基礎(chǔ)題目訓(xùn)練階段:,在進(jìn)行編程的過(guò)程中發(fā)現(xiàn)端口不夠用,因?yàn)镻B3和PD3這兩個(gè)能產(chǎn)生中斷的端口必須空出來(lái)作為暫停和開(kāi)第26頁(yè) 北京郵電大學(xué)信息與通信工程學(xué)院始按鍵的接口,于是我重新布線(xiàn),將數(shù)碼管顯示小數(shù)點(diǎn)的右下角的引腳改接到PC0,同時(shí)在代碼中將此端口設(shè)置為高電平輸出,這樣就解決了該問(wèn)題。,卻發(fā)現(xiàn)流水燈在工作,計(jì)時(shí)器卻停止了工作。經(jīng)過(guò)仔細(xì)排查,發(fā)現(xiàn)簡(jiǎn)單地將代碼合并會(huì)導(dǎo)致單片機(jī)陷入流水燈的工作循環(huán),而沒(méi)有進(jìn)入計(jì)時(shí)器的工作進(jìn)程。經(jīng)過(guò)一番思考,我們將流水燈的代碼加以修改寫(xiě)入計(jì)時(shí)器的工作循環(huán)中,解決了計(jì)時(shí)器不工作的問(wèn)題。,我們發(fā)現(xiàn)按下計(jì)時(shí)器的暫停按鈕后,會(huì)導(dǎo)致流水燈也停止工作。經(jīng)過(guò)小組的討論,我們決定在中斷程序函數(shù)里面加上流水燈工作
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1