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

正文內(nèi)容

基于單片機(jī)的多功能時(shí)鐘-預(yù)覽頁

2025-02-11 16:24 上一頁面

下一頁面
 

【正文】 數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用(胡天明,2008)。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。其硬件部分難點(diǎn)在于元器件的選擇、布局及焊接。隨著集成化的發(fā)展,現(xiàn)在系統(tǒng)的設(shè)計(jì)都是在模塊化的基礎(chǔ)上設(shè)計(jì)系統(tǒng)的。要想用單片機(jī)獲取時(shí)間這類非電信號(hào)的信息,必須使用時(shí)間芯片,將時(shí)間信息轉(zhuǎn)換為電流或電壓輸出。但是這種方案需由軟件編程來實(shí)現(xiàn)秒脈沖的產(chǎn)生,編程相對(duì)來說比較復(fù)雜,而且也不利于排故(宋禮國,2009)。方案二:使用并行接口時(shí)鐘芯片DS12887設(shè)計(jì)時(shí)鐘電路。圖1 AT89S52與DS12887的接口電路該設(shè)計(jì)雖然能完成所要求的任務(wù),綜合性能也比較好,但其并行接口方式占用大量接口資源,給其他設(shè)計(jì)帶來諸多不便。而在夜晚不需要觀察時(shí)鐘的時(shí)候就可以給主電路斷電,這樣可以節(jié)約大量能量。圖2 AT89S52與DS1302的電路接口比較上述兩種方案可以看出,第二種方案計(jì)時(shí)更加準(zhǔn)確而且電路硬件設(shè)計(jì)先對(duì)來說并不復(fù)雜,軟件設(shè)計(jì)更加簡(jiǎn)潔,因此采用第二種方案。點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,而在本課題設(shè)計(jì)中的顯示數(shù)字較多字符較少,而且此種方案耗能多,不符合現(xiàn)代的節(jié)能理念,所以不用此種作為顯示。另外,這種設(shè)計(jì)硬件更加簡(jiǎn)潔。 溫度測(cè)試由于現(xiàn)在用品追求多樣化,多功能化,給系統(tǒng)加上溫度測(cè)量顯示模塊,能夠方便人們的生活,使該設(shè)計(jì)具有人性化。它的ROM中存有其芯片的唯一標(biāo)識(shí)碼,即任意兩個(gè)DS18B20的標(biāo)識(shí)碼是不同的,特別適合于微處理芯片構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng)?;贒S18B20的以上優(yōu)點(diǎn),本設(shè)計(jì)選取DS18B20來測(cè)量溫度。時(shí)鐘芯片采用DALLAS公司推出的一種高性能、低功耗、帶RAM和實(shí)時(shí)時(shí)鐘DS1302。以LCD液晶顯示器為顯示模塊,把單片機(jī)傳來的數(shù)據(jù)顯示出來,并且顯示多樣化。若用數(shù)字電路完成,所設(shè)計(jì)的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴數(shù)字電路的各功能模塊的組合來實(shí)現(xiàn)。目前,新型單片機(jī)內(nèi)還有A/D(Analog to Digital)和D/A(Digital to Analog)轉(zhuǎn)換器、高速輸入輸出部件、DMA(Direct Memory Access)通道、浮點(diǎn)運(yùn)算等特殊功能部件。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。以后每周期重復(fù)一次,直至RST端變?yōu)榈碗娖?。圖4 復(fù)位電路(2)單片機(jī)的第18引腳和19引腳接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,XTAL2接外部晶振和微調(diào)電容的另一端。圖5 時(shí)鐘電路(3)單片機(jī)最小系統(tǒng),由主控器AT89S5時(shí)鐘電路和復(fù)位電路三部分組成。圖6 單片機(jī)最小系統(tǒng) 時(shí)鐘電路的芯片介紹及電路設(shè)計(jì) DS1302簡(jiǎn)介DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償功能,~。DS1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。表2 DS1302的控制字節(jié)D7D6D5D4D3D2D1D01 RAMA4A3A2A1A0RAMDS1302在任何數(shù)據(jù)傳送時(shí)必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被訪問到。上電運(yùn)行時(shí),在Vcc≥,RST腳必須保持低電平。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及RAM相關(guān)的寄存器等。當(dāng)它為0時(shí),時(shí)鐘將開始啟動(dòng)。DS1302的晶振選用32768Hz,電容推薦值為6pF。圖8 時(shí)鐘電路接口 溫度測(cè)量芯片介紹及電路設(shè)計(jì) DS18B20簡(jiǎn)介DS18B20 數(shù)字溫度計(jì)提供 9 位溫度讀數(shù),指示器件的溫度。這允許在許多不同的地方放置溫度靈敏器件,此特性的應(yīng)用范圍包括 HVAC環(huán)境控制,建筑物、設(shè)備或機(jī)械內(nèi)的溫度檢測(cè),以及過程監(jiān)視和控制中的溫度檢測(cè)。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的穩(wěn)定報(bào)警觸發(fā)器TH和TL、配置寄存器。對(duì)于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。12864是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及12864全點(diǎn)陣液晶顯示器組成。12864內(nèi)部功能器件及相關(guān)功能如下:1. 指令寄存器(IR)IR是用于寄存指令碼,與數(shù)據(jù)寄存器數(shù)據(jù)相對(duì)應(yīng)。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動(dòng)執(zhí)行的。利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗(yàn)?zāi)K之工作狀態(tài)。5.XY地址計(jì)數(shù)器XY地址計(jì)數(shù)器是一個(gè)9位計(jì)數(shù)器。6.顯示數(shù)據(jù)RAM(DDRAM)DDRAM是存儲(chǔ)圖形顯示數(shù)據(jù)的。當(dāng)一行掃描完成,此地址計(jì)數(shù)器自動(dòng)加1,指向下一行掃描數(shù)據(jù),RST復(fù)位后Z地址計(jì)數(shù)器為0。8. 字符顯示FYD128640402B每屏可顯示4行8列共32個(gè)1616點(diǎn)陣的漢字,每個(gè)顯示RAM可顯示1個(gè)中文字符或2個(gè)168點(diǎn)陣全高ASCII碼字符,即每屏最多可實(shí)現(xiàn)32個(gè)中文字符或64個(gè)ASCII碼字符的顯示。三種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0000000006共4個(gè))顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。本設(shè)計(jì)采用了匯編語言,因?yàn)閰R編語言更接近機(jī)器語言,可以直接存取寄存器和I/O,編寫的代碼可以非常精確的被執(zhí)行,可以編寫出比一般編譯系統(tǒng)高效的代碼,可以作為不同語言或不同標(biāo)準(zhǔn)的接口。匯編程序通常由三部分組成:指令、偽指令和宏指令。 不宜使用的領(lǐng)域 大型軟件的整體開發(fā);沒有特殊要求的一般應(yīng)用系統(tǒng)的開發(fā)等。在主程序中,系統(tǒng)上電自動(dòng)復(fù)位以后首先進(jìn)行系統(tǒng)的液晶顯示、時(shí)鐘芯片DS12887初始化,然后讀寫日期、時(shí)間等信息,待數(shù)據(jù)讀寫結(jié)束后顯示時(shí)鐘。開始清屏初始化讀DS1302子程序顯示子程序掃描鍵盤判斷是否按鍵顯示時(shí)間調(diào)整屏鍵值判斷調(diào)整時(shí)間圖13 主程序流程圖 DS1302時(shí)鐘芯片的讀操作流程圖首先對(duì)時(shí)鐘芯片DS1302初始化,經(jīng)過對(duì)狀態(tài)寄存器判斷之后,對(duì)DS1302進(jìn)行讀操作,讀操作時(shí)利用時(shí)鐘日歷地址相鄰的特點(diǎn),直接使地址增加,隨后判斷數(shù)據(jù)是否讀完了。本設(shè)計(jì)采用了分屏顯示的原理,在時(shí)間顯示時(shí)顯示屏一,在時(shí)間調(diào)整時(shí)顯示屏二,其流程圖分別如圖1圖16所示。當(dāng)調(diào)整完畢之后,從剛才調(diào)整好的時(shí)間開始顯示、計(jì)時(shí)。 硬件調(diào)試本設(shè)計(jì)的硬件驗(yàn)證電路完全由按照上述理論進(jìn)行焊接。圖16 整體電路實(shí)物圖硬件焊接好后需要測(cè)試是否都連接好了,本設(shè)計(jì)采用的測(cè)試方法是用萬用表來測(cè)量,用萬用表的兩個(gè)表筆分別接連線的兩端,測(cè)試是否電阻為零,如果電阻為零說明連接正確,如果有電阻說明沒有連接好。接下來進(jìn)行編輯、修改等操作。編譯通過后會(huì)顯示編譯成功提示,如圖21所示。例如在調(diào)試過程中,最先遇到的問題是液晶顯示器不能顯示。由于按鍵程序設(shè)計(jì)時(shí)跳轉(zhuǎn)比較麻煩因此出了些小錯(cuò)誤,在按鍵調(diào)整之后總是不能返回時(shí)間顯示界面。主要工作和成果如下:(1)介紹基于單片機(jī)的時(shí)鐘電路的設(shè)計(jì)方法,并對(duì)基于單片機(jī)的時(shí)鐘的應(yīng)用進(jìn)行了初步探討。(4)系統(tǒng)設(shè)計(jì)出的實(shí)時(shí)時(shí)鐘除了可以顯示時(shí)間之外,還可以進(jìn)行遠(yuǎn)程通信,利用遠(yuǎn)程電腦對(duì)時(shí)鐘進(jìn)行時(shí)間設(shè)置。所以說,實(shí)時(shí)時(shí)鐘在工農(nóng)業(yè)的監(jiān)控中,它能發(fā)揮的作用會(huì)更多更大!它的這些功能還沒有完善,希望以后有機(jī)會(huì)可繼續(xù)完善其相應(yīng)的功能。sbit LCM_psb = P2^6。 //Reset Signal 低電平有效unsigned char number = 0, count=0。//ds18B20/*****************************************************************************///鍵盤引腳定義sbit KEY_1 = P1^4。 //減 //定義DS1302時(shí)鐘接口sbit DS1302_CLK = P1^1。sbit ACC7 = ACC^7。bit w = 0。//定義靜態(tài)小時(shí)更新用數(shù)據(jù)變量static unsigned char keys = 0。 i 125。 } //i 從0加到125,CPU大概就耗時(shí)1毫秒}void sound(){ beep =0。 led=1。void LCM_WriteDatOrCom(bit ,unsigned char )。 //LCM初始化void LCM_clr(void)。void nl()。// || if ( mo == 0x01 amp。amp。 day_moon == 0x01 ){ LCM_WriteString( 今日春節(jié) )。 } if (month_moon== 0x02 amp。amp。 dd == 0x13 ){ LCM_WriteString( 明天情人節(jié)了 )。 } if ( mo == 0x03 amp。amp。 dd == 0x08 ){ LCM_WriteString( )。 }//4 if ( mo == 0x04 amp。amp。 dd == 0x13 ){ LCM_WriteString( 黑色星期五 )。 } if ( mo == 0x05 amp。amp。 dd == 0x01 ){ LCM_WriteString( 國際兒童節(jié) )。 } if (month_moon== 0x07 amp。amp。 dd == 0x01 ){ LCM_WriteString(香港回歸記念日 )。 } if ( mo == 0x07 amp。amp。 dd == 0x01 ){ LCM_WriteString( 八一建軍節(jié) )。 } if ( mo == 0x08 amp。amp。 dd == 0x10 ){ LCM_WriteString( 中國教師節(jié) )。一八事變記念)。 } if ( mo == 0x09 amp。amp。 dd == 0x04 ){ LCM_WriteString( 世界動(dòng)物日 )。 } if ( mo == 0x11 amp。amp。 day_moon == 0x08 ){ LCM_WriteString( 今日臘八節(jié) )。 } if (month_moon== 0x12 amp。amp。 dd == 0x01 ){ LCM_WriteString( 世界艾滋病日 )。 } if ( hh = 0x06 amp。amp。amp。 hh 0x22 ){ LCM_WriteString(△▲__●☆__晚上)。 } if ( hh = 0x00 amp。 LCM_psb=0。 LCM_WriteDatOrCom (0,0x06)。 a=content。 for(i=0。 } LCM_std=0。 //data else LCM_std=0。 LCM_sclk=1。j++) { for(i=0。 LCM_sclk=1。i4。 LCM_WriteDatOrCom (0,0x30)。j++) { for (i=0。 LCM_WriteDatOrCom (0,0x01)。 void LCM_WriteString(unsigned char *str){ while(*str != 39。}/******************************************************************************/void Delay(int num)//延時(shí)函數(shù){ while(num)。 //稍做延時(shí) DQ = 0。 x=DQ。 for (i=8。 DQ = 1。}/******************************************************************************/void WriteOneChar(unsigned char dat)//寫一個(gè)字節(jié){ unsigned char i=0。 DQ = datamp。 dat=1。 float tt=0。 // 啟動(dòng)溫度轉(zhuǎn)換 Init_DS18B20()。 //讀低8位 b=ReadOneChar()。 tt=t*。void LCM_w_mm(void)。void LCM_w_yy(void)。void Init_1302(void)。void Write1302(unsigned char , unsigned char )。 signed char max,mini。address=0x80。address=0x82。address=0x84。address=0x8a。address=0x86。address=0x
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1