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

正文內(nèi)容

基于51單片機lcd電子時鐘畢業(yè)設(shè)計(編輯修改稿)

2025-07-25 00:14 本頁面
 

【文章內(nèi)容簡介】 //給DS1302寫一個字節(jié)void WriteDs1302(unsigned char address,unsigned char dat)。 //給DS1302寫入時間,先確定地址,再確定要寫入的數(shù)據(jù)unsigned char ReadDs1302(unsigned char address)。 //讀取DS1302的數(shù)據(jù)void InitDS1302()。/**********定義溫度傳感器DS18B20的數(shù)據(jù)線和相關(guān)函數(shù)*************/sbit DS18B20=P1^6。 //DS18B20的數(shù)據(jù)線int temp。void DS18B20Init(void)。 //DS18B20初始化函數(shù)int GetTemp(void)。void TempWriteByte(unsigned char dat)。unsigned char TempRead(void)。bit TempReadBit(void)。 void delayb(unsigned int count)。void TempChange(void)。void Conversion(bit cen_m,unsigned char year,unsigned char month,unsigned char day)。bit GetMoonDay(unsigned char month_p,unsigned int TableAddr)。void DisplayShengXiao(void)。void DelayMs(unsigned int a)。void Delay(unsigned char num)。/**********定義開關(guān)按鍵,及蜂鳴器的數(shù)據(jù)線************/sbit SetKey=P2^3。 //按鍵功能:設(shè)置sbit SureKey=P2^0。 //按鍵功能:確認sbit PlusKey=P2^2。 //按鍵功能:加sbit ReduceKey=P2^1。 //按鍵功能:減void Key(void)。define Fosc 12000000 //定義晶振頻率12000000HZdefine jiepai 3/4 //定義普通音符演奏的長度分率,//每4分音符間隔sbit Speaker=P1^4。 //定義輸出管腳unsigned int code FreTab[12]={262,277,294,311,330,349,369,392,415,440,466,494}。 //C調(diào)歌曲12個半音的頻率unsigned char code PositTab[7]={0,2,4,5,7,9,11}。 //1~7在頻率表中的位置unsigned char code LengthTab[7]={1,2,4,8,16,32,64}。 unsigned char SoundTempTH0,SoundTempTL0。 //音符定時器初值暫存unsigned char SoundTempTH1,SoundTempTL1。 //音長定時器初值暫存void SpeakerDiDi(void)。void SpeakerDiDi(void){ unsigned char i。 for(i=0。i3。i++) { Speaker=0。 DelayMs(100)。 Speaker=1。 DelayMs(100)。 } DelayMs(500)。 for(i=0。i3。i++) { Speaker=0。 DelayMs(100)。 Speaker=1。 DelayMs(100)。 } DelayMs(500)。 for(i=0。i2。i++) { Speaker=0。 DelayMs(500)。 Speaker=1。 DelayMs(100)。 }}void InitialSound(void){ Speaker=1。 SoundTempTH1=(65535(1/1200)*Fosc)/256。 //計算TL1應(yīng)裝入的初值 (10ms的初裝值) SoundTempTL1=(65535(1/1200)*Fosc)%256。 //計算TH1應(yīng)裝入的初值 TH1=SoundTempTH1。 //裝入初值 TL1=SoundTempTL1。 TMOD|=0x11。 //定時器2都工作在定時器模式,工作方式1 ET0=1。 //定時器0開中斷 ET1=0。 //定時器1關(guān)中斷 TR0=0。 //不啟動定時器 TR1=0。 //不啟動定時器 EA=1。 //開啟CPU中斷}void Speakertimer(void) interrupt 1 //音符發(fā)生中斷{ Speaker=!Speaker。 //取反 TH0=SoundTempTH0。 //定時器0重新裝初值 TL0=SoundTempTL0。}void PlayMusic(unsigned char *SoundName,unsigned char diaohao,unsigned shengjiang,unsigned int Speed) //SoundName為演奏歌曲歌名 diaohao是指樂曲升多少個半音演奏 //shengjiang 1:降八度, 2:不升不降, 3:升八度。 Speed歌曲演奏速度{ unsigned int NewFreTab[12]。 //新的頻率表 unsigned char i,j。 unsigned int Point,yinfuchang,yipai,LDiv1,LDiv2,sifenyifu,CurrentFre,TempCounter,SoundLength。 //Point 指針索引值 LDiv 音符演奏的長度(多少個10ms) yipai 1分音符的長度(幾個10ms)即一個節(jié)拍 //sifenyifu 4分音符的長度 CurrentFre 查出對應(yīng)音符的頻率 SoundLength歌曲長度 TempCounter計算計數(shù)器初值 unsigned char yindiao,length,yinfu,shengban,gaodi,SLen,leixing,fudian。 //yindiao音調(diào) length音長 yinfu音符 gaodi高低音 shengban是否升半 leixing音符類型(0普通1連音2頓音) for(i=0。i12。i++) // 根據(jù)調(diào)號及升降八度來生成新的頻率表 { j=i+diaohao。 if(j11) { j=j12。 NewFreTab[i]=FreTab[j]*2。 //頻率翻倍速 } else NewFreTab[i]=FreTab[j]。 if(shengjiang==1) NewFreTab[i]=2。 //如果是降調(diào) 則頻率除以2 else if(shengjiang==3) NewFreTab[i]=2。 //如果是升調(diào) 則頻率翻倍速 } SoundLength=0。 while(SoundName[SoundLength]!=0x00) //計算歌曲長度 以0X00結(jié)尾 { SoundLength+=2。 } Point=0。 yindiao=SoundName[Point]。 //第一個字節(jié)為音符音調(diào) length=SoundName[Point+1]。 //第二個字節(jié)為音符時值 yipai=12000/Speed。 //算出一個節(jié)拍的長度(單位是10ms) sifenyifu=yipai/4。 //算出4分音符的長度 sifenyifu=sifenyifusifenyifu*jiepai。 //普通音最長間隔標準 TR0=0。 TR1=1。 //啟動定時器1 while(PointSoundLength) { yinfu=yindiao%10。 //個位,17七個音符 gaodi=yindiao/10%10。 //十位,高低音 shengban=yindiao/100。 //百位,是否升半 CurrentFre=NewFreTab[PositTab[yinfu1]+shengban]。 //查出對應(yīng)音符的頻率 if(yinfu!=0) { if (gaodi==1) CurrentFre=2。 //低音,頻率除以2 if (gaodi==3) CurrentFre=2。 //高音, 頻率翻倍速 TempCounter=65536(50000/CurrentFre)*10/(12000000/Fosc)。//計算計數(shù)器初值 SoundTempTH0=TempCounter/256。 SoundTempTL0=TempCounter%256。 TH0=SoundTempTH0。 TL0=SoundTempTL0+12。 //加12是對中斷延時的補償 } SLen=LengthTab[length%10]。 //算出是幾分音符 leixing=length/10%10。 //算出音符類型(0普通1連音2頓音) fudian=length/100。 yinfuchang=yipai/SLen。 //算出連音音符演奏的長度(多少個10ms) if (fudian==1) yinfuchang=yinfuchang+yinfuchang/2。 if(leixing!=1) if(leixing==0) //算出普通音符的演奏長度 if (SLen=4) LDiv1=yinfuchangsifenyifu。 else LDiv1=yinfuchang*jiepai。 else LDiv1=yinfuchang/2。 //算出頓音的演奏長度 else LDiv1=yinfuchang。 if(yinfu==0) LDiv1=0。 LDiv2=yinfuchangLDiv1。 //算出不發(fā)音的長度 if (yinfu!=0) {
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1