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

正文內(nèi)容

畢業(yè)設(shè)計-基于at89c51單片機的實時時鐘設(shè)計-資料下載頁

2025-06-04 01:22本頁面
  

【正文】 break。 } } } void xianshi() { 基于單片機 AT89C51— 實時時鐘設(shè)計 29 //讀秒分時,日月年,星期 miao=bcd_decimal(ds1302_read(0x81))。 fen =bcd_decimal(ds1302_read(0x83))。 shi =bcd_decimal(ds1302_read(0x85))。 ri =bcd_decimal(ds1302_read(0x87))。 yue =bcd_decimal(ds1302_read(0x89))。 nian=bcd_decimal(ds1302_read(0x8d))。 week=bcd_decimal(ds1302_read(0x8b))。 //送液晶顯示 write_time2(6,miao)。 write_time2(3,fen)。 write_time2(0,shi)。 write_time1(8,ri)。 write_time1(5,yue)。 write_time1(2,nian)。 write_week(week)。 //讀溫度 wendu=read_wendu()。 //溫度顯示 wendu_decimal(wendu)。 } /**********定時器 0 中斷用于產(chǎn)生音階方波 ***********/ void tint0(void) interrupt 1 { TH0=H0。 TL0=L0。 alarm_out=~alarm_out。 // alarm_out 是音樂信號輸出腳, alarm_out 反相,產(chǎn)生 //方波 } /**********定時器 1 中斷用于產(chǎn)生節(jié)拍延時 ***********/ void tint1(void) interrupt 3 { t++。 // 計數(shù)初值為 0,所以不用賦值 } /**************************24c02********************************/ 基于單片機 AT89C51— 實時時鐘設(shè)計 30 void alarm_ring() { uchar i,j,a,t。 uint b。 if(alarm_on==1) //alarm_on=1 為鬧鐘有效 { if(shi==alarm_shi amp。amp。 fen==alarm_fen amp。amp。 miao==alarm_miao) flag_alarm=1。 } //鬧鐘時間到,鬧鐘標(biāo)志位置 1 if(flag_alarm==1) { alarm_out=~alarm_out。 { TMOD=0x11。 EA=1。 //開總中斷 ET0=1。 ET1=1。 t=0。 TR1=1。 i = 0。 display_1602_alarm()。 while(1) { //掃描按鍵 如有按鍵按下退出鬧鐘 if(up==0||down==0) { delay2(1)。 if(up==0||down==0) { break。 } while(!up)。 while(!down)。 } t=tone[i]。 //讀音調(diào) 基于單片機 AT89C51— 實時時鐘設(shè)計 31 if(t==0xff) break。 //0xff 是結(jié)束符 if(t!=0) //0 是休止符 { b=cyc[t%101]。 //根據(jù)基本音階,求出半周期數(shù) if(t10) b=b*2。 //若是低八度音階,半周期數(shù)加倍 if(t20) b=b/2。 //若是高八度音階,半周期數(shù)減半 H0=(65536b)/256。 //根據(jù)半周期數(shù),計算 T0 初值的高字節(jié)和低字節(jié) L0=(65536b)%256。 TR0=1。 //啟動定時器 0 發(fā)音 } t=0。 a=time[i]。 //讀節(jié)拍 while(at) { //掃描按鍵 如有按鍵按下退出鬧鐘 if(up==0||down==0) { delay2(1)。 if(up==0||down==0) { break。 } while(!up)。 while(!down)。 } } TR0=0。 i++。 for(b=0。b1000。b++)。 //稍加延時,增強節(jié)奏感 } EA=0。 } flag_alarm=0。 alarm_out=1。 //關(guān)閉喇叭 lcd1602_init()。 基于單片機 AT89C51— 實時時鐘設(shè)計 32 } if(flag_alarm==0||alarm_out!=0) { key_set_alarm()。 } } void Delayms(int ms) //延時函數(shù) { while(ms) { unsigned char i。 for (i=0。 i120。 i++)。 ms。 } } void voice()//發(fā)聲函數(shù) { uchar i,j,t。 t=8000。 if((fen==59)amp。amp。(miao==51))//判斷時間符合低音條件 { for(i=0。i255。i++) { alarm_out =~alarm_out。 for(j=0。j200。j++)。 } Delayms(2021)。 } if((fen==59)amp。amp。(miao==53))//判斷時間符合低音條件 { for(i=0。i255。i++) { alarm_out =~alarm_out。 for(j=0。j200。j++)。 } Delayms(2021)。 基于單片機 AT89C51— 實時時鐘設(shè)計 33 } if((fen==59)amp。amp。(miao==55))//判斷時間符合低音條件 { for(i=0。i255。i++) { alarm_out =~alarm_out。 for(j=0。j200。j++)。 } Delayms(2021)。 } if((fen==59)amp。amp。(miao==57))//判斷時間符合低音條件 { for(i=0。i255。i++) { alarm_out =~alarm_out。 for(j=0。j200。j++)。 } Delayms(2021)。 } if((fen==59)amp。amp。(miao==59))//判斷時間符合高音條件 { for(i=0。i255。i++) { alarm_out =~alarm_out。 for(j=0。jt。j++)。 } Delayms(2021)。 } } main() { lcd1602_init()。 ds18b20_init()。 ds1302_init()。 c02_init()。 基于單片機 AT89C51— 實時時鐘設(shè)計 34 while(1) { if(done==1) { keyjpress()。 } if(done==0) { //取得并顯示日歷和時間 key_set_alarm()。 xianshi()。 alarm_ring()。 voice()。 } } } /*********************************************************/ ifndef _24c02 define _24c02 endif /*******************************************************************/ define uchar unsigned char define uint unsigned int /*************************DS18B20 管腳配置 ***********************/ sbit sda = P1^4。 //24c02 數(shù)據(jù)輸入輸出 sbit scl = P1^5。 //24c02 時鐘 void c02_delay() { 。 } void start() //開始信號 { sda=1。 c02_delay()。 scl=1。 c02_delay()。 sda=0。 c02_delay()。 基于單片機 AT89C51— 實時時鐘設(shè)計 35 } void stop() //停止 { sda=0。 c02_delay()。 scl=1。 c02_delay()。 sda=1。 c02_delay()。 } void respons() //應(yīng)答 { uchar i。 scl=1。 c02_delay()。 while((sda==1)amp。amp。(i250))i++。 //如 sda=0 或 i250,跳出 scl=0。 c02_delay()。 } void c_init() { sda=1。 c02_delay()。 scl=1。 c02_delay()。 } void c02_write_byte(uchar date) //寫一字節(jié) { uchar i,temp。 temp=date。 for(i=0。i8。i++) { temp=temp1。 scl=0。 c02_delay()。 基于單片機 AT89C51— 實時時鐘設(shè)計 36 sda=CY。 c02_delay()。 scl=1。 c02_delay()。 } scl=0。 c02_delay()。 sda=1。 c02_delay()。 } uchar c02_read_byte() //讀
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1