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

正文內(nèi)容

基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)-預(yù)覽頁

2025-07-14 12:36 上一頁面

下一頁面
 

【正文】 D1602顯示模塊聲音模塊(喇叭)DS18B20溫度模塊電源模塊復(fù)位電路圖1 系統(tǒng)框圖如圖1所示,系統(tǒng)的整個(gè)控制流程是:經(jīng)過程序編程,向DS1302中寫入一個(gè)初值,如寫入2013327 23:56:58 WED,便從此開始計(jì)時(shí)。復(fù)位是單片機(jī)的一個(gè)很重要的操作方式。只要Vcc的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。如圖3所示為DS1302的電路原理圖,其中Vcc1為后備電源,Vcc2為主電源。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。如圖4所示電路原理圖,STC89C52的P0P7端口分別與LCD1602的D0D7端口相連接,VSS端口與VDD端口分別接地與接5V電源,LCD的控制端口R/W為讀寫信號(hào)線,高電平(1)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作;端口RS為寄存器選擇,高電平(1)時(shí)選擇數(shù)據(jù)寄存器、低電平(0)時(shí)選擇指令寄存器;端口E為使能端,高電平(1)時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。DS18B20的測(cè)量范圍為55℃~+125℃,℃,可在1s(典型值)內(nèi)把溫度變換成數(shù)字,它的工作電源為:3~5V/DC,可選擇寄生工作方式,是一種先進(jìn)的單總線數(shù)據(jù)通信方式。圖5 DS18B20電路原理圖 聲音模塊和按鍵控制模塊的設(shè)計(jì)如圖6所示為聲音模塊和按鍵控制模塊的電路原理圖,聲音模塊比較簡單,只用普通的小喇叭與1K的電阻相連,然后與STC89C52單片機(jī)相連接,由單片機(jī)進(jìn)行控制。點(diǎn)擊電子書按鍵,進(jìn)入電子書閱覽界面,點(diǎn)擊上調(diào)按鍵向上翻頁,點(diǎn)擊下調(diào)按鍵向下翻頁,最后點(diǎn)擊電子書按鍵退出電子書閱覽界面。使用按鍵掃描功能進(jìn)入相應(yīng)的子函數(shù),根據(jù)標(biāo)志位在LCD上顯示不同的界面。圖7為時(shí)間調(diào)整程序流程圖。圖8為鬧鐘處理程序流程圖。圖9為秒表計(jì)時(shí)程序流程圖。按下上調(diào)按鍵,開始計(jì)時(shí)秒表按鍵按下開始結(jié)束按下下調(diào)按鍵,暫停計(jì)時(shí)繼續(xù)計(jì)時(shí)YN秒表按鍵按下圖9 秒表計(jì)時(shí)程序流程圖雙擊音樂播放按鍵,音樂播放開始結(jié)束按下上調(diào)按鍵,暫停播放有歌曲播放YN按下音樂播放按鍵,播放下一首圖10 音樂播放程序流程圖 電子書程序設(shè)計(jì)電子書閱覽的主要程序:首先進(jìn)入電子書閱覽界面的顯示,電子書閱覽的內(nèi)容存在單片機(jī)的ROM里。首要檢查的電源的正負(fù)極有沒有接反以及電源之間有沒有短路,各電源之間需要共VCC并且所有的地線需要共地。在斷電的情況下,除單片機(jī)以外,用仿真插頭將所連接電路與單片機(jī)仿真器的仿真接口相連,為軟件調(diào)試做好準(zhǔn)備。其次調(diào)試溫度測(cè)量模塊,保證DS18B20供電正常,然后調(diào)試保證DS1302供電正常,最后開始調(diào)試各按鍵模塊的功能。本設(shè)計(jì)雖然完成了基本功能,且有擴(kuò)展,但是還有許多可以完善的地方。uchar code tabe3[]=Alarm set:。uchar code tabe7[]=Song 1: 。 uchar code LengthTab[7]= { 1,2,4,8,16,32,64 }。uchar flag=1,count=0,flag_up=0,flag_down=0,flag_alarm=0,alarm_on,alarm_count=0,done=0,miaobiao_count=0,second,msecond,book_count=0,sum,i,music_count=0。 //ds18b20溫度傳送數(shù)據(jù)IO口sbit ds1302_rst = P1^2。 //蜂鳴器口sbit lcd1602_rs = P2^0。 //選擇按鍵 sbit up = P1^6。 //led背光sbit miaobiao = P3^1。sbit ACC7=ACC^7。void Play(uchar *Sound,uchar Signature,uchar Octachord,uint Speed)。z) for(y=110。 _nop_()。 ds18b20_delay(8)。 ds18b20_delay(14)。 for(i=8。0x01==0x01) DQ=1。 ds18b20_delay(1)。i0。 DQ=1。 ds18b20_delay(4)。 ds18b20_init()。 ds18b20_init()。 b=read_onechar()。 return wen。k0。 //拉高sclk ACC=1。k) { ACC7=ds1302_io。 } return ACC。 write_byte(add)。 } uchar ds1302_read(uchar add){ uchar temp。 write_byte(add)。 return temp。 //寫允許 ds1302_write(0x80,0x58)。 ds1302_write(0x88,0x03)。 //寫保護(hù) }/***************************lcd1602***************************/void lcd_write_(uchar ) //命令字寫入lcd單元中{ lcd1602_rw=0。 P0=。 lcd1602_e=0。}void lcd_write_date(uchar date) //數(shù)據(jù)寫入lcd單元中 { lcd1602_rw=0。 lcd1602_e=1。 lcd1602_e=0。}void lcd1602_init() //LCD初始化函數(shù) { uchar lcdnum。 lcd_write_(0x06)。lcdnum8。 //寫入第二行數(shù)據(jù) for(lcdnum=0。 }}/****************************顯示部分*****************************/void write_time1(uchar add,uchar date) //日期送顯示{ uchar shi,ge。 lcd_write_date(0x30+shi)。 ge=date%10。}uchar bcd_decimal(uchar bcd) //bcd轉(zhuǎn)換十進(jìn)制{ uchar decimal。 return decimal。 temp=dat*。 //取十位 temp除不用定義類型 wendu_ge =((uint)temp)%100/10。 lcd_write_date(0x30+wendu_shi)。 lcd_write_date(0xdf)。M39。)。 break。 lcd_write_date(39。E39。W39。)。 break。 lcd_write_date(39。U39。F39。)。 break。 lcd_write_date(39。T39。S39。)。 break。 return temp。 alarm_out=~alarm_out。 case 2: fen++。 if(shi23) shi=0。 break。 case 6: yue++。 if(nian99) nian=0。 //減 更新標(biāo)志 while(!down)。 case 2: fen。 if(miao==255) shi=23。 break。 case 6: yue。 if(nian==255) nian=99。 fen==alarm_fen amp。 for(i=0。j++) alarm_out=~alarm_out。 while(!nao)。 alarm_out=1。 for(num=0。 } lcd_write_(0x0f)。 lcd_write_date(0x3a)。O39。)。 } if(alarm_on==1) { lcd_write_(0x80+0x40+13)。 lcd_write_date(39。N39。 lcd_write_(0x80)。 delay(2)。 write_time2(10,miaobiao_miao)。 for(num=0。 }}void music_huan(){ uchar num。num14。amp。amp。amp。 //按set一下,count加1 if(flag==1) { done=1。 //BIT7為1,晶振停止工作 ds1302_write(0x8e,0x80)。amp。amp。 if(nao==0) { while(!nao)。 alarm_huan()。amp。amp。 if(miaobiao==0) { while(!miaobiao)。 miaobiao_huan()。amp。amp。 if(book==0) { while(!book)。 book_huan()。amp。amp。 if(music==0) { while(!music)。 music_huan()。 key_up_down()。 ds1302_write(0x80,key_bcd(miao) | 0x80)。 //液晶寫字符后光標(biāo)自動(dòng)向右移動(dòng)一位,把光標(biāo)左移一位 } } while(count==2)。 if(flag_up || flag_down) { flag_up=0。 ds1302_write(0x8e,0x80)。 break。 flag_down=0。 write_time2(0,shi)。 case 4: do { lcd_write_(0x80+0x0e)。 ds1302_write(0x8e,0x00)。 lcd_write_(0x80+0x0e)。 key_up_down()。 ds1302_write(0x86,key_bcd(ri))。 } } while(count==6)。 if(flag_up || flag_down) { flag_up=0。 ds1302_write(0x8e,0x80)。 break。 flag_down=0。 write_time1(2,nian)。 //調(diào)整結(jié)束,關(guān)閉顯示光標(biāo) flag=1。 ds1302_write(0x80,key_bcd(miao)amp。 default:break。 alarm_on=1。)。 lcd_write_date(39。 lcd_write_(0x80+0x40+15)。 lcd_write_(0x80+0x40+13)。 lcd_write_date(39。F39。 } } break。 alarm_miao++。 if(alarm_miao==255) alarm_miao=59。 } break。 alarm_fen++。 if(alarm_fen==255) alarm_fen=59。 } break。 alarm_shi++。 if(alarm_shi==255) alarm_shi=23。 } break。 done=0。 watch_flag=1。 ET0=0。 case 2: miaobiao_count=0。 msecond=0。 } } if(book_count!=0) { switch(book_count) { case 1: if(up==0) { delay(2)。 } } } if(down==0) { delay(2)。 } } } break。 do
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1