版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計說明書課題名稱: 基于AT89S52的數(shù)字時鐘及 溫度顯示模塊設(shè)計 學(xué)生姓名 付 盼 專 業(yè) 應(yīng)用電子技術(shù) 班 級 1301班 時 間 2015.10-2016.4 指導(dǎo)教師 汪 洋 電子工程學(xué)院摘要 在科技日益革新的時代,人們的生活節(jié)奏也在飛快的進行著,本設(shè)計主要為提供一個準(zhǔn)確的時間及房間溫度,對于購買溫度計體積過大不便提供解決方案。可以實行多點采集溫度,以便能夠很好的控制環(huán)境溫度。本方案主要利用數(shù)字式溫度傳感器采集溫度數(shù)據(jù),利用顯示芯片1602實現(xiàn)實時溫度數(shù)據(jù)在顯示屏上顯示。本設(shè)計主要應(yīng)用數(shù)字式溫度傳感器DS18B20檢測溫度,使用實時時鐘芯片DS12C887儲存具體日期和時間,單
2、片機通過單總線方式讀取溫度傳感器的數(shù)據(jù),并通過單片機控制1602液晶顯示出來,此系統(tǒng)還具有鬧鐘功能,主機通過蜂鳴器和LED提示到達預(yù)設(shè)定的時間。該系統(tǒng)具有良好的通用性、較好的數(shù)據(jù)處理和監(jiān)控能力,適合一般家庭出行。關(guān)鍵詞:DS18B20,DS12C887,STC89C52目錄摘要2目錄3第一章 引言11.1 課題背景和意義1第二章 總體方案設(shè)計22.1 任務(wù)與要求22.1.1 任務(wù)22.1.2 要求22.2 方案論證22.2.1 溫度傳感器的選型22.2.2 實時時鐘芯片的選型22.2.3 單片機系統(tǒng)的選型32.2.4 顯示設(shè)備選型32.3 系統(tǒng)總體設(shè)計3第三章 實時溫度與時間系統(tǒng)設(shè)計43.1
3、硬件設(shè)計43.1.1 主控制器簡介43.1.2溫度傳感器簡介53.1.3實時時鐘簡介63.1.4單片機系統(tǒng)設(shè)計83.2 單片機程序設(shè)計123.2.1 DS12C887模塊程序設(shè)計123.2.2 溫度傳感器程序設(shè)計12第四章 程序簡介13第五章 總結(jié)30致謝32參考文獻32第一章 引言1.1 課題背景和意義數(shù)字時鐘具有性能穩(wěn)定、精確度高、成本低、易于產(chǎn)品化,以及方便、實用等特點。適用于家庭、公司、機關(guān)等眾多場所。為人們的日常生活、出行安排提供了方便,成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠帧?近些年,隨著科技的發(fā)展和社會的進步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘
4、不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子時鐘、數(shù)字鬧鐘等等。單片機在多功能高精度時鐘中的應(yīng)用已是非常普遍的,人們對高精度鐘的功能及工作順序都非常熟悉,但是卻很少知道它的內(nèi)部結(jié)構(gòu)以及工作原理。由單片機作為數(shù)字鐘的核心控制器,可以通過它的時鐘信號進行計時實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來。通過鍵盤可以進行定時、校時功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管顯示技術(shù)。 本文提出了一種基于STC89C52RC單片機的時鐘設(shè)計方案,本方案以STC89C52RC單片機作為主控核心,與時鐘芯片DS12C887、獨立按鍵、1602LCD顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有
5、獨立按鍵和LCD顯示器,根據(jù)使用者的需要可以隨時對時間進行校準(zhǔn)與設(shè)定等操作,綜上所述此電子時鐘具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。第二章 總體方案設(shè)計2.1 任務(wù)與要求2.1.1 任務(wù)實現(xiàn)溫度,日期的采集,并能穩(wěn)定的顯示在1602的液晶屏上。2.1.2 要求2.1.2.1基本功能:(1)實現(xiàn)溫度實時采集,。(2)可以設(shè)置時間到達提醒,實現(xiàn)當(dāng)達到溫度上下限時有聲光提示報警。(3)實現(xiàn)日期數(shù)據(jù)的讀取。2.1.2.2擴展功能:1、實現(xiàn)提醒播放音樂的功能。2、構(gòu)建完整的體系。首先完成基本功能,然后完成擴展功能設(shè)計,要求完成電路
6、設(shè)計,完成原理圖的繪制,系統(tǒng)工作可靠。2.1.2.2.1 技術(shù)指標(biāo)1、實時溫度采集精確到1度。2、實現(xiàn)日期數(shù)據(jù)的采集。3、實現(xiàn)日期,溫度采集,日期,溫度數(shù)據(jù)的顯示,處理。2.2 方案論證2.2.1 溫度傳感器的選型 現(xiàn)有的溫度傳感器有很多種類,按構(gòu)成材料分可以分為熱電偶傳感器、熱電阻、NTC熱敏電阻、半導(dǎo)體溫度傳感器、按輸出信號方式可分為模擬溫度傳感器和數(shù)字式溫度傳感器。由于本系統(tǒng)需要外圍電路簡單,測量精度高和系統(tǒng)穩(wěn)定,故選用DALLAS公司生產(chǎn)的DS18B20數(shù)字式單總線溫度傳感器。2.2.2 實時時鐘芯片的選型市面上的實時時鐘芯片類型很多,一般都具有掉電保護系統(tǒng),在運行時需要能自行產(chǎn)生時鐘
7、數(shù)據(jù),并且有掉電數(shù)據(jù)保護,而且能夠自行走時,防止掉電調(diào)試,DS12C887這款時鐘芯片自帶晶體振蕩器和鋰電池,在沒有外部電源的情況下可以工作10年,且價格相對實惠,適合一般開發(fā)使用。2.2.3 單片機系統(tǒng)的選型 單片機系統(tǒng)選用宏晶科技有限公司的STC89C52單片機,宏晶科技的單片機具有良好的性價比,而且其體系和架構(gòu)資料豐富,用它能夠快速的開發(fā)出整個系統(tǒng)。2.2.4 顯示設(shè)備選型 顯示原器件很多,如12864/1208等等,但是考慮到成本和便攜性,故而選擇了1602,這款液晶相對較小,而且屏幕顯示較為清晰,完全能滿足日常所用。2.3 系統(tǒng)總體設(shè)計本系統(tǒng)主要應(yīng)用數(shù)字式溫度傳感器DS18B20檢測
8、溫度,單片機通過單總線讀取溫度傳感器數(shù)據(jù),應(yīng)用實時時鐘芯片記錄時間,單片機讀取實時時鐘芯片內(nèi)寄存器的數(shù)據(jù),并通過1602液晶顯示出來,通過與預(yù)先設(shè)定的時間進行比較,已達到提醒用戶的目的。 第三章 實時溫度與時間系統(tǒng)設(shè)計3.1 硬件設(shè)計3.1.1 主控制器簡介為了實現(xiàn)溫度的采集,與時間的采集,本系統(tǒng)的采用STC89C52為主控制器。STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)
9、Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35Mhz,6T/12T可選。 3.1.1.1 STC89C52引腳介紹單片機的40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。(1)電源:
10、VCC - 芯片電源,接+5V; VSS - 接地端;(2)時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 (3) 控制線:控制線共有4根, ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖PSEN:外ROM讀選通信號。RST/VPD:復(fù)位/備用電源。EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。3.1.1.2 I/O線STC89C52共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。 3.1.2溫度傳感器簡介(1)DS18B20數(shù)字溫度傳感器概述3DS18B20數(shù)字溫度計是
11、DALLAS公司生產(chǎn)的1Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。其引腳功能描述見表3-1。 表3.1DS18B20詳細引腳功能描述序號名稱引腳功能描述1GND地信號2DQ數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生電源時,可向電源提供電源3VDD可選擇的VDD引腳,當(dāng)工作于寄生電源時,該引腳必須接地 表3-1(2)DS18B20的命令序列初始化ROM命令跟隨著需要交換的數(shù)據(jù);功能命令跟隨著需要交換的數(shù)據(jù)。訪問DS18B20必須嚴(yán)格遵守這一命令序列,如果丟失任何一步或序列混亂,DS18B
12、20都不會響應(yīng)主機(除了Search ROM 和Alarm Search這兩個命令,在這兩個命令后,主機都必須返回到第一步)。a初始化:DS18B20所有的數(shù)據(jù)交換都由一個初始化序列開始。由主機發(fā)出的復(fù)位脈沖和跟在其后的由DS18B20發(fā)出的應(yīng)答脈沖構(gòu)成。當(dāng)DS18B20發(fā)出響應(yīng)主機的應(yīng)答脈沖時,即向主機表明它已處在總線上并且準(zhǔn)備工作。b. ROM命令:ROM命令通過每個器件64-bit的ROM碼,使主機指定某一特定器件(如果有多個器件掛在總線上)與之進行通信。DS18B20的ROM如表3-3所示,每個ROM命令都是8 bit長.DS12C887簡介DSl8820芯片溫度測量的啟動,發(fā)送指令,
13、存取時鐘等,全部在一組數(shù)據(jù)線上完成,因為其內(nèi)部結(jié)構(gòu)上集成了溫度電路、存儲器等多功能模塊。DSl8820芯片工作原理示意圖見圖3.1.1所示:主機初始化脈沖DS18B20芯片響應(yīng)脈沖DS18B20芯片準(zhǔn)備好DS18B20芯片完成其他功能主機儲存器指令主機ROM指令否圖3.1.1:D18B20工作原理圖 3.1.3實時時鐘簡介1. 概述: DS12C887可計算到2100年前的秒、分、小時、星期、日期、月、年七種日歷信息并帶閏年補償;自帶晶體振蕩器和鋰電池。在沒有外部電源的情況下可工作10年;對于一天內(nèi)的時間記錄,有12小時制和24小時制兩種模式。在12小時制模式中,用AM和PM區(qū)分上午和下午;可
14、選用夏令時模式時間表示方法有兩種:一種用二進制數(shù)表示,一種用BCD碼表示;DS12C887中帶有128字節(jié)RAM,其中11字節(jié)用來存儲時間信息,4字節(jié)RAM用來存儲DS12C887的控制信息,稱為控制寄存器,113字節(jié)RAM供用戶使用;數(shù)據(jù)/地址總線復(fù)用用戶可編程以實現(xiàn)多種方波輸出可應(yīng)用于MOTOROLA和INTEL兩種總線。我這里只闡述INTEL總線實現(xiàn)方法三種可編程中斷:定鬧中斷、時鐘更新結(jié)束中斷、周期性中斷2. 芯片的引腳排列:DS12C887各引腳的功能說明GND、VCC:直流電源,其中VCC接+5V輸入,GND接地。當(dāng)VCC輸入為+5V時,用戶可以訪問DS12C887內(nèi)RAM中的數(shù)據(jù)
15、,并可對其進行讀、寫操作;當(dāng)VCC輸入小于+4.25V時,禁止用戶對內(nèi)部RAM進行讀、寫操作,此時用戶不能正確獲取芯片內(nèi)的時間信息;當(dāng)VCC輸入小于+3V時,DS12C887會自動將電源切換到內(nèi)部自帶的鋰電池上,以保證內(nèi)部的電路能夠正常工作。MOT:模式選擇引腳DS12C887有兩種工作模式,即Motorola模式和Intel模式。當(dāng)MOT接VCC時,選用的工作模式是Motorola模式;當(dāng)MOT接GND或不接時,選用的是Intel模式。本文主要討論Intel模式。SQW:方波輸出引腳當(dāng)供電電壓VCC大于4.25V時,SQW引腳可進行方波輸出,此時用戶可以通過對控制寄存器編程來得到13種方波信
16、號的輸出。AD0AD7:復(fù)用地址/數(shù)據(jù)總線該總線采用時分復(fù)用技術(shù),在總線周期的前半部分,出現(xiàn)在AD0AD7上的是地址信息,可用以選通DS12C887內(nèi)的RAM;總線周期的后半部分出現(xiàn)在AD0AD7上的是數(shù)據(jù)信息。AS:地址選通輸入引腳在進行讀寫操作時,AS的下降沿將AD0AD7上出現(xiàn)的地址信息鎖存到DS12C887上,而下一個上升沿清除AD0AD7上的地址信息,不論是否有效,DS12C887都將執(zhí)行該操作。DS/RD:數(shù)據(jù)選擇或讀輸入引腳該引腳有兩種工作模式:Motorola工作模式中,每個總線周期的后一部分的DS為高電平,被稱為數(shù)據(jù)選通。在讀操作中,DS的上升沿使DS12C887將內(nèi)部數(shù)據(jù)送
17、往總線AD0AD7上,以供外部讀取。在寫操作中,DS的下降沿將使總線 AD0AD7上的數(shù)據(jù)鎖存在DS12C887中;Intel工作模式中,DS被稱作RD。該引腳是讀允許輸入腳,即Read Enable。是讀(RD)信號輸入端。當(dāng)他有效時表示DS12C887正往總線輸出數(shù)據(jù)。RD信號線在存儲器芯片上被稱作OE信號線。R/W:讀/寫輸入端該引腳也有2種工作模式:Motorola工作模式中,該引腳的作用是區(qū)分進行的是讀操作還是寫操作,當(dāng)R/W為高電平時為讀操作,R/W為低電平時為寫操作;Intel工作模式中,此時該作為寫允許輸入,即Write Enable。是寫(WR)信號輸入端。CS:片選輸入,低
18、電平有效。IRQ:中斷請求輸入,低電平有效,該引腳有效對DS12C887內(nèi)的時鐘、日歷和RAM中的內(nèi)容沒有任何影響,僅對內(nèi)部的控制寄存器有影響,在典型的應(yīng)用中,RESET可以直接接VCC,這樣可以保證DS12C887在掉電時,其內(nèi)部控制寄存器不受影響。RESET:復(fù)位端在典型的應(yīng)用中,RESET直接接VCC3.1.4單片機系統(tǒng)設(shè)計 (1)單片機最小系統(tǒng)設(shè)計這是STC89C52單片機最小系統(tǒng)原理圖,P0使用1K排阻做上拉電阻,復(fù)位端口與5V電源一個10uF的電容,和地之間接一個1K的電阻,即可構(gòu)成上電復(fù)位的電路。XTAL1和XTAL2之間并接一個晶振,然后晶振的兩端和地之間各接一個30pF電容,
19、這樣就構(gòu)成了單片機的振蕩電路。 (2)單片機電源設(shè)計 單片機的5V接線端接入5V直流電源,通過一個雙聯(lián)開關(guān),然后通過0.1uF和10uF的電容對電源進行濾波,最后到達電源指示燈。電源指示燈為一個LED串接一個1K的限流電阻,構(gòu)成電源指示電路。最后輸出的5V電源即可為單片機供電。(3)DS12C887電路DS12C887驅(qū)動電路很簡單,接上電源和地就可以工作了。(4)1602電路(5)程序仿真圖 3.2 單片機程序設(shè)計 3.2.1 DS12C887模塊程序設(shè)計開始DS12C887 初始化調(diào)用函數(shù)獲取時鐘信息送數(shù)據(jù)顯示圖3-2 DS12C887的流程圖3.2.2 溫度傳感器程序設(shè)計開始18B20初
20、始化延時寫跳過讀ROM指令寫溫度轉(zhuǎn)換指令18B20初始化延時寫跳過讀ROM指令寫讀暫存器指令讀取數(shù)據(jù)結(jié)束第四章 程序簡介#include<reg51.h>#include<math.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit rs=P35;sbit rw=P36;sbit en=P37;sbit dq=P27;sbit AS=P30;sbit RW=P31;sbit DS=P32;sbit CS=P33;sbit k1=P20;sbit k2=P2
21、1;sbit k3=P22;sbit k4=P23;uchar code table='0','1','2','3','4','5','6','7','8','9'uchar code table1="Day" uchar keynum,flag,flag_clk,flag_set=0;uchar c_hour,c_min;uchar miao,fen,shi,y,m,d,Day;void delay1(uchar
22、z)uchar x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void delay(uchar n) uchari; for(i=n;i!=0;i-);/-延時750ms程序- voiddelay750ms(void)uchari,j,k; for(i=0;i<4;i+) for(j=0;j<250;j+) for(k=0;k<250;k+);void lcd_com(uchar com)/發(fā)送命令 rs=0;/指令選項 P0=com; delay1(5); en=1; delay1(5); en=0;void lcd_data(uch
23、ar date)/發(fā)送數(shù)據(jù) rs=1;/數(shù)據(jù)選項 P0=date; delay1(5); en=1; delay1(5); en=0;void lcd1602_inint()/1602液晶的初始化 en=0; rw=0; lcd_com(0x38);/液晶顯示 /lcd_com(0x0f);/光標(biāo)設(shè)置 lcd_com(0x0c);/光標(biāo)不閃爍 lcd_com(0x06);/地址指針設(shè)置 lcd_com(0x01);/清屏設(shè)置 lcd_com(0x80);/*DS18B20溫度芯片初始化*/-初始化單總線-bitinit_ow(void)bitflag;dq=0;delay(83);dq=1;d
24、elay(9);flag=dq;delay(83);returnflag;/-寫字節(jié)子程序-voidwrbyte(uchar m)uchari;for(i=0;i<8;i+)dq=0;_nop_();_nop_();if(m&0x01)dq=1;elsedq=0;delay(9);dq=1;_nop_();m=m>>1;/-字節(jié)讀子程序-ucharrdbyte(void)uchari,m;for(i=0;i<8;i+)dq=0;_nop_();_nop_(); dq=1;delay(1);m=m>>1;if(dq)m=m|0x80;delay(9);
25、returnm;/*溫度的顯示*/void LcdDisplay() /lcd顯示 uchar templ,temph,temp; init_ow();/ 初始化DS18B20wrbyte(0x0cc);/ 發(fā)跳過序列號匹配命令(0xcc)wrbyte(0x44);/ 發(fā)啟動溫度轉(zhuǎn)換命令(0x44) delay750ms();/ 延時750ms,等待DS18B20的溫度轉(zhuǎn)換結(jié)束init_ow();/ 初始化DS18B20wrbyte(0x0cc);/ 發(fā)跳過序列號匹配命令(0xcc)wrbyte(0x0be);/ 發(fā)讀高速緩存RAM命令(0x0be)templ=rdbyte();/讀DS18B
26、20的高速緩存字節(jié)0(溫度轉(zhuǎn)換的低字節(jié))temph=rdbyte();/ 讀DS18B20的高速緩存字節(jié)1(溫度轉(zhuǎn)換的高字節(jié))init_ow();/ 初始化DS18B20,結(jié)束讀高速緩存RAMtemp= (temph<<4)|(templ>>4);/ 從溫度轉(zhuǎn)換結(jié)果中取7位整數(shù)溫度值和1位符號位if(temph&0x80)/ 判斷溫度值是否為負(最高位是否為1) / 溫度為負值的處理temp=cabs(temp);/ 對溫度值取絕對值lcd_com(0x8b); lcd_data('-'); lcd_com(0x8c); lcd_data(tab
27、letemp/10); lcd_com(0x8d); lcd_data(tabletemp%10); lcd_com(0x8e); lcd_data(0xdf); lcd_com(0x8f); /顯示。 lcd_data('C'); /*時分秒的顯示*/void write_sfm(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10; lcd_com(0x80+0x42); lcd_data(':'); lcd_com(0x80+0x45); lcd_data(':'); lcd_co
28、m(0x80+0x40+add);lcd_data(tableshi); lcd_com(0x80+0x41+add);lcd_data(tablege);/*DS12C887的初始化*/void write_ds(uchar add,uchar date)/寫數(shù)據(jù)和地址CS=0;AS=1;DS=1;RW=1;P1=add;AS=0;RW=0;P1=date;RW=1;AS=1;CS=1;uchar read_ds(uchar add)/讀數(shù)據(jù) uchar ds_date; AS=1;DS=1;RW=1;CS=0;P1=add;AS=0;DS=0;P1=0xff;ds_date=P1;DS=1
29、;AS=1;CS=1;return ds_date;/*年份的顯示*/void write_nyr(uchar year,uchar mon,uchar day) lcd_com(0x80); lcd_data(table2); lcd_com(0x81); lcd_data(tableyear/100); lcd_com(0x82); lcd_data(tableyear/10%10); lcd_com(0x83); lcd_data(tableyear%10); lcd_com(0x84); lcd_data('-'); lcd_com(0x85); lcd_data(ta
30、blemon/10); lcd_com(0x86); lcd_data(tablemon%10); lcd_com(0x87); lcd_data('-'); lcd_com(0x88); lcd_data(tableday/10); lcd_com(0x89); lcd_data(tableday%10); /*數(shù)據(jù)的初始化*/void set time() write_ds(4,12);/設(shè)置小時 write_ds(2,46);/設(shè)置分鐘 write_ds(7,22);/日 write_ds(8,10);/月 write_ds(9,15);/年 / write_ds(6,2
31、);/星期 /*基本的日期時間顯示*/void display_basic() uchar i; y=read_ds(9); m=read_ds(8); d=read_ds(7); write_nyr(y,m,d); shi=read_ds(0x04); write_sfm(0,shi); fen=read_ds(2); write_sfm(3,fen); miso=read_ds(0); write_sfm(6,miao); for(i=0;i<3;i+) lcd_com(0x80+0x4b+i); lcd_data(table1i); Day=read_ds(6)-1;/國外一個星期
32、是從星期天開始的 lcd_com(0x80+0x4f); lcd_data(tableDay);/*按鍵顯示*/void keys can() if(k2=0) delay1(5); if(k2=0) flag=1; flag_clk=1; while(!k1); if(flag=1) if(k1=0) delay1(5); if(k1=0) keynum+; lcd_com(0x0f);/開光標(biāo) lcd_com(0x80+0x40+7); /秒的地址顯示 while(!k1); if(keynum=2) lcd_com(0x80+0x40+4);/分的地址顯示 if(keynum=3) lc
33、d_com(0x80+0x40+1);/小時的地址顯示 if(keynum=4) lcd_com(0x80+0x4f);/星期的地址顯示 if(keynum=5)/跳出顯示 lcd_com(0x0c);/關(guān)閉光標(biāo)顯示 flag=0;/掃描開始 flag_clk=0; keynum=0;/還原鍵值顯示 write_ds(0,miao);/設(shè)置結(jié)束后直接顯示出來 write_ds(2,fen); write_ds(4,shi); write_ds(6,Day); if(keynum!=0) if(k3=0) delay1(5); if(k3=0) while(!k3); if(keynum=1)
34、miso=miao+1; if(miso=60) miso=0; write_sfm(6,miao); lcd_com(0x80+0x40+7); if(keynum=2) fen=fen+1; if(fen=60) fen=0; write_sfm(3,fen); lcd_com(0x80+0x40+4); if(keynum=3) shi=shi+1; if(shi=24) shi=0; write_sfm(0,shi); lcd_com(0x80+0x40+1); if(keynum=4) Day=Day+1; if(Day=8) Day=1; lcd_data(tableDay); l
35、cd_com(0x80+0x4f); if(k4=0) delay1(5); if(k4=0) while(!k4); if(keynum=1) miso=miao-1; if(miso=00) miso=59; write_sfm(6,miao); lcd_com(0x80+0x40+7); if(keynum=2) fen=fen-1; if(fen=0) fen=59; write_sfm(3,fen); lcd_com(0x80+0x40+4); if(keynum=3) shi=shi-1; if(shi=0) shi=23; write_sfm(0,shi); lcd_com(0x
36、80+0x40+1); if(keynum=4) Day=Day-1; if(Day=0) Day=7; lcd_data(tableDay); lcd_com(0x80+0x4f); /*鬧鐘設(shè)置*/void clock_set() uchar m; if(k1=0)/進入設(shè)置 delay1(5); if(k1=0) m=1; flag_set=1;/只掃描這個選項 flag=1; while(!k1); if(m=1) lcd_com(0x01); while(m=1)/防止不斷清屏 lcd_com(0x83);/顯示鬧鐘 lcd_data(tablec_hour/10); lcd_com
37、(0x84); lcd_data(tablec_hour%10); lcd_com(0x85); lcd_data(':'); lcd_com(0x86); lcd_data(tablec_min/10); lcd_com(0x87); lcd_data(tablec_min%10); if(k3=0) delay1(5); if(k3=0) while(!k3);/松手檢測,保證按一下跳一次 c_hour+; if(c_hour=24) c_hour=0; if(k4=0) delay1(5); if(k4=0) while(!k4);/松手檢測,保證按一下跳一次 c_min
38、+; if(c_min=60) c_min=0; if(k1=0) delay1(5); if(k1=0) m=0; /開始掃描main函數(shù) flag_set=0; flag=0; /*鬧鐘響鈴*/void clock_music() if(shi=c_hour && fen=c_min) lcd_com(0x01); while(c_hour=shi && c_min=fen) lcd_com(0x80+0x40); lcd_data(0x20);/測試使用 void main() write_ds(0x0B,0x26);/選擇計時方式 write_ds(0x
39、0A,0x20);/開時鐘 set time(); lcd1602_inint(); while(1) if(flag_clk=0) clock_set(); if(flag_set=0) keys can(); if(flag=0) LcdDisplay(); display_basic(); clock_music(); 第五章 總結(jié) 畢業(yè)論文的制作給了我難忘的回憶,在我徜徉書海查找資料的日子里,面對無數(shù)書本的羅列,最難忘的是每次找到資料時的激動和興奮。親手設(shè)計電路圖的時間里,記憶最深的是每一步小小思路實現(xiàn)時那幸福的心情。為了論文我曾趕稿到深夜,但看著親手打出的一字一句,心里滿滿的只有喜悅毫無疲憊。這段旅程看似荊棘密
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年短期個人資金借貸協(xié)議
- 2024年物業(yè)服務(wù)協(xié)議新案例3篇
- 2025贈與房產(chǎn)合同范本
- 2024年知識產(chǎn)權(quán)保密合同范本
- 2025物業(yè)清潔服務(wù)委托合同范本
- 優(yōu)化高校學(xué)科設(shè)置與調(diào)整的策略
- 強化70后養(yǎng)老法律保護與權(quán)益保障策略
- 商丘醫(yī)學(xué)高等??茖W(xué)校《模具CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 商丘學(xué)院《中國美學(xué)專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年二零二四年度大型牛羊養(yǎng)殖基地買賣合同標(biāo)準(zhǔn)范本3篇
- 蔬菜產(chǎn)品供貨合同范例
- 江南大學(xué)《人工智能》2022-2023學(xué)年第一學(xué)期期末試卷
- 初中物理教師個人校本研修工作計劃(20篇)
- 種子生產(chǎn)與經(jīng)營基礎(chǔ)知識單選題100道及答案解析
- 江蘇省揚州市2023-2024學(xué)年高一上學(xué)期1月期末考試 物理 含解析
- 2024年【高校教師資格證】考試題庫(歷年真題)
- 合規(guī)風(fēng)控管理制度
- 機器人設(shè)備巡檢管理制度
- GB/T 23473-2024林業(yè)植物及其產(chǎn)品調(diào)運檢疫規(guī)程
- 剪叉式液壓升降機畢業(yè)設(shè)計
- 山東省濟南市槐蔭區(qū)2023-2024學(xué)年五年級上學(xué)期期末數(shù)學(xué)試卷 (一)
評論
0/150
提交評論