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

正文內(nèi)容

基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)-文庫吧資料

2025-06-26 12:36本頁面
  

【正文】 d(uchar key_decimal) //轉(zhuǎn)成ds1302所需的BCD碼 { uchar temp。)。 lcd_write_date(39。U39。)。 case 7: lcd_write_date(39。)。 lcd_write_date(39。A39。)。 case 6: lcd_write_date(39。)。 lcd_write_date(39。R39。)。 case 5: lcd_write_date(39。)。 lcd_write_date(39。H39。)。 case 4: lcd_write_date(39。)。 lcd_write_date(39。E39。)。 case 3: lcd_write_date(39。)。 lcd_write_date(39。U39。)。 case 2: lcd_write_date(39。)。 lcd_write_date(39。039。)。 switch(we) { case 1: lcd_write_date(39。 //溫度符號(hào) lcd_write_date(0x43)。 lcd_write_date(0x30+wendu_shu)。 lcd_write_date(0x30+wendu_ge)。 //送顯示 lcd_write_date(0x30+wd_flag)。 //取個(gè)位 temp求模要定義類型,為16位,故定義uint wendu_shu=((uint)temp)%100%10。 } wendu_shi=temp/100。 } else { temp=dat*。 wd_flag=3。 }void wendu_decimal(uint dat) //溫度轉(zhuǎn)換后送顯示{ float temp。=0x0f)。 decimal=bcd4。 lcd_write_date(0x30+ge)。 lcd_write_(0x80+0x40+add)。 shi=date/10。 lcd_write_date(0x30+ge)。 lcd_write_(0x80+add)。 shi=date/10。 delay(2)。lcdnum13。 } lcd_write_(0x80+0x40)。lcdnum++) //寫第一行數(shù)據(jù) { lcd_write_date(tabe1[lcdnum])。 for(lcdnum=0。 lcd_write_(0x01)。 lcd_write_(0x0c)。 P3=0xdf。 delay(5)。 delay1()。 // 將dat中的顯示數(shù)據(jù)寫入LCD數(shù)據(jù)口 delay1()。 // E端時(shí)序 delay1()。 // RW=0,RS=1,寫LCD命令字 delay1()。 delay1()。 delay(5)。 delay1()。 //E端時(shí)序 delay1()。 //將中的命令字寫入LCD數(shù)據(jù)口 delay1()。 // RW=1,RS=0,寫LCD命令字 delay1()。 delay1()。 ds1302_write(0x8e,0x80)。 ds1302_write(0x8a,0x03)。 ds1302_write(0x86,0x27)。 ds1302_write(0x82,0x56)。 ds1302_write(0x8e,0x00)。 }void ds1302_init() //ds1302初始化 { ds1302_rst=0。 ds1302_rst=0。 temp=read_byte()。 //在rst沒拉高之前先把sclk置0 ds1302_rst=1。 ds1302_rst=0。 ds1302_rst=0。 write_byte(date)。 //在rst沒拉高之前先把sclk置0 ds1302_rst=1。 } void ds1302_write(uchar add,uchar date){ ds1302_rst=0。 //拉低sclk ACC=1。 ds1302_sclk=1。k0。 } }uchar read_byte() { uchar k。 //拉低sclk ds1302_sclk=1。k) { ds1302_io=ACC0。 for(k=8。}/**********************ds1302***************************/void write_byte(uchar dat) //寫一字節(jié){ uchar k。 wen=(wen8)|b。 //讀取溫度值低位 a=read_onechar()。 //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度 ds18b20_delay(150)。 //初始化 write_onechar(0xcc)。 // 啟動(dòng)溫度轉(zhuǎn)換 ds18b20_delay(150)。 //初始化 write_onechar(0xcc)。 uint wen=0x0000。 } return value。=0x7f。 if(DQ==1) value|=0x80。 ds18b20_delay(1)。i) { value=1。 for(i=8。 dat=1。 DQ=1。 else DQ=0。 if(datamp。i0。 }void write_onechar(uchar dat) //寫一字節(jié){ uchar i。 x=DQ。 DQ=1。 DQ=0。 DQ=1。 }ds18b20_delay(uchar xus) //延時(shí)xus{ while(xus)。}void delay1(){ _nop_()。y0。z0。//延時(shí)void delay(uchar x){ uchar y,z。 //書頁設(shè)置void playsong()。void init()。 //音樂功能按鍵sbit ACC0=ACC^0。 //秒表功能按鍵sbit book = P3^2。 //鬧鐘功能按鍵sbit led = P2^6。 //加 sbit down = P1^7。 // 1602使能sbit set = P1^5。 // 1602命令、數(shù)據(jù)選擇 sbit lcd1602_rw = P2^1。 //串行時(shí)鐘sbit alarm_out = P1^3。 //1302復(fù)位sbit ds1302_io = P1^1。//定義IOsbit DQ = P3^3。uint wendu。uchar miao,fen,shi,nian,yue,ri,week,wd_flag,wendu_shi,wendu_ge,wendu_shu,variate,alarm_shi,alarm_fen,alarm_miao,miaobiao_shi,miaobiao_fen,miaobiao_miao。uchar Sound_Temp_TH0,Sound_Temp_TL0。 uchar code SignTab[7] = { 0,2,4,5,7,9,11 }。uchar code str[]=Never frown,even when you are sad,because you never know who is falling in love with your smile! To the world you may be one person,but to one person you may be the world 。uchar code tabe6[]=Listen music: 。uchar code tabe4[]=Stopwatch:。 //液晶一直顯示的字符uchar code tabe2[]= : : 。如可以增加語音報(bào)時(shí),用于定點(diǎn)報(bào)時(shí),更加方便人們對(duì)時(shí)間的掌握;如可以增加紅外遙控,用于遠(yuǎn)程調(diào)控?cái)?shù)字鐘,更加方便于日常生活。另外還外加了一些擴(kuò)展功能,比如:鬧鐘設(shè)計(jì),能夠進(jìn)行鬧鐘提醒;秒表計(jì)時(shí),能夠方便的應(yīng)用于日常生活;電子書閱覽,能夠消磨空閑時(shí)間;MP3播放,能夠播放一下旋律。經(jīng)過調(diào)試,發(fā)現(xiàn)各個(gè)按鍵的功能均能夠?qū)崿F(xiàn),并且在LCD1602液晶顯示屏中顯示出來,喇叭也工作正常,均實(shí)現(xiàn)了設(shè)計(jì)所要求的功能,調(diào)試完畢。調(diào)試過程發(fā)現(xiàn)虛焊和短路情況,排除此類情況,并調(diào)節(jié)背光電壓后液晶顯示正常。在硬件調(diào)試的過程中,發(fā)現(xiàn)了很多問題,比如電源線沒有焊好,導(dǎo)致供電不穩(wěn)定;LCD1602插槽接觸不良,導(dǎo)致液晶顯示不太穩(wěn)定;有些需要共地的地方?jīng)]有共地,部分線路存在短路斷路的情況,造成了調(diào)試的失敗;另外DS18B20溫度傳感器也接反了,使得測(cè)量錯(cuò)誤、芯片發(fā)熱,差點(diǎn)損壞了芯片。接上+5V電源后,分別測(cè)量各點(diǎn)電位是否正常,特別要注意的是DS18B20溫度傳感器的接法,否則容易損壞芯片,造成測(cè)量誤差或者無法測(cè)量的結(jié)果。然后再檢查各個(gè)模塊的線路是否有短路、斷路的情況出現(xiàn),另外晶體振蕩器和電容應(yīng)盡可能靠近單片機(jī)芯片安裝,以減少寄生電容,更好是保證振蕩器穩(wěn)定和可靠地工作。雙擊下調(diào)按鍵,向下翻頁電子書閱覽按鍵按下開始結(jié)束雙擊上調(diào)按鍵,向上翻頁電子書閱覽按鍵按下圖11 電子書閱覽流程圖5調(diào)試與調(diào)試結(jié)果 硬件調(diào)試在沒通電之前,先用萬用表檢查線路的正確性,并核對(duì)元器件的型號(hào)、規(guī)格是否符合要求。點(diǎn)擊電子書按鍵,進(jìn)入閱覽界面,點(diǎn)擊上調(diào)按鍵向上翻頁,點(diǎn)擊下調(diào)按鍵向下翻頁,最后點(diǎn)擊電子書按鍵退出閱覽界面。圖10為音樂播放程序流程圖。 音樂播放程序設(shè)計(jì)音樂播放按鍵的主要程序流程為:首先點(diǎn)擊音樂播放按鍵,進(jìn)入音樂播放界面,其中播放的音樂數(shù)據(jù)存放在單片機(jī)的ROM里。進(jìn)入秒表計(jì)時(shí)畫面后,點(diǎn)擊上調(diào)按鍵開始計(jì)時(shí),點(diǎn)擊下調(diào)按鍵暫停計(jì)時(shí),再次點(diǎn)擊上調(diào)按鍵繼續(xù)計(jì)時(shí),最后點(diǎn)擊秒表按鍵退出秒表計(jì)時(shí)。取當(dāng)前時(shí)間取鬧鐘時(shí)間開始結(jié)束兩者比較結(jié)果相等鬧鐘響起YN圖8 鬧鐘處理程序流程圖 秒表計(jì)時(shí)程序設(shè)計(jì)秒表計(jì)時(shí)的主要程序流程為:首先點(diǎn)擊秒表計(jì)時(shí)按鍵,進(jìn)入秒表顯示的界面。另外,還能從程序上對(duì)鬧鐘的鬧鈴時(shí)間進(jìn)行調(diào)整。按下上調(diào)按鍵或下調(diào)按鍵,更改數(shù)據(jù)設(shè)置按鍵按下,選擇調(diào)整的對(duì)象開始結(jié)束按下上調(diào)按鍵或下調(diào)按鍵,更改數(shù)據(jù)最后按下設(shè)置按鍵,保存參數(shù)圖7 時(shí)間調(diào)整程序流程圖 鬧鐘處理程序設(shè)計(jì)鬧鐘處理的主要程序流程為:首先點(diǎn)擊鬧鐘設(shè)置按鍵,進(jìn)入鬧鐘設(shè)置界面,可以設(shè)置鬧鐘的開關(guān)狀態(tài)和鬧鐘時(shí)間。上調(diào)按鍵和下調(diào)按鍵顧名思義可以對(duì)時(shí)間進(jìn)行上下調(diào)整,當(dāng)調(diào)整完所有時(shí)間后,點(diǎn)擊設(shè)置按鍵移位到年份,再次點(diǎn)擊設(shè)置按鍵能夠保存所調(diào)整的時(shí)間并且跳出時(shí)間調(diào)整界面。下面會(huì)對(duì)每個(gè)程序設(shè)計(jì)流程有著明了的解析并附有該程序設(shè)計(jì)流程圖。每個(gè)程序?qū)?yīng)獨(dú)立的按鍵,其中設(shè)置按鍵對(duì)應(yīng)的I/,上調(diào)按鍵對(duì)應(yīng)的I/,下調(diào)按鍵對(duì)應(yīng)的I/,鬧鐘按鍵對(duì)應(yīng)的I/,秒表按鍵對(duì)應(yīng)的I/,音樂播放按鍵對(duì)應(yīng)的I/,電子書閱覽按鍵對(duì)應(yīng)的I/。點(diǎn)擊音樂播放按鍵,進(jìn)入音樂播放界面,再次點(diǎn)擊音樂播放按鍵開始播放音樂,點(diǎn)擊上調(diào)按鍵停止播放,再次點(diǎn)擊音樂播放按鍵切換到下一首歌曲開始播放,最后再次點(diǎn)擊音樂播放按鍵退出音樂播放界面。各按鍵的功能如下:如圖中的設(shè)置按鍵,點(diǎn)擊之后進(jìn)入時(shí)間調(diào)整界面,點(diǎn)擊上調(diào)按鍵和下調(diào)按鍵顧名思義可以對(duì)時(shí)間進(jìn)行上下調(diào)整,再次點(diǎn)擊設(shè)置按鍵,可以進(jìn)行移位調(diào)整,直至調(diào)整完年份,再次點(diǎn)擊設(shè)置按鍵跳出時(shí)間調(diào)整;點(diǎn)擊鬧鐘按鍵,進(jìn)入鬧鐘設(shè)置界面,再次點(diǎn)擊鬧鐘設(shè)置按鍵進(jìn)行移位,可以設(shè)置鬧鐘時(shí)間并設(shè)定開關(guān),調(diào)整完畢后點(diǎn)擊設(shè)置按鍵跳出鬧鐘設(shè)置;點(diǎn)擊秒表按鍵,進(jìn)入秒表計(jì)時(shí)界面,點(diǎn)擊上調(diào)按鍵開始計(jì)時(shí),點(diǎn)擊下調(diào)按鍵暫停計(jì)時(shí),再次點(diǎn)擊上調(diào)按鍵繼續(xù)計(jì)時(shí),最后點(diǎn)擊秒表按鍵退出秒表計(jì)時(shí)。喇叭的負(fù)極直接接地。此時(shí)I/O口線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證測(cè)量精度。它的一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)盒數(shù)據(jù)處理。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出。R/W、RS、E端口分別與單片機(jī)的 、由于單片機(jī)P0端口內(nèi)部沒有上拉電阻,所以當(dāng)其作為輸出端口時(shí),必須外加上拉電阻,即如圖所示10x8的排阻。1602字符型液晶是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊,因?yàn)?602識(shí)別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量值。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK始終是輸入端。是復(fù)位/片選線,高電平有效,所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。本設(shè)計(jì)通過把Vcc1和鋰電池相接,在主電源
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1