基于STC單片機(jī)的電子時(shí)鐘畢業(yè)設(shè)計(jì)_第1頁(yè)
基于STC單片機(jī)的電子時(shí)鐘畢業(yè)設(shè)計(jì)_第2頁(yè)
基于STC單片機(jī)的電子時(shí)鐘畢業(yè)設(shè)計(jì)_第3頁(yè)
基于STC單片機(jī)的電子時(shí)鐘畢業(yè)設(shè)計(jì)_第4頁(yè)
基于STC單片機(jī)的電子時(shí)鐘畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、裝訂線 電子時(shí)鐘摘要 本設(shè)計(jì)是基于STC單片機(jī)的電子時(shí)鐘技術(shù),由STC12C5A16S2芯片和LCD1602液晶顯示屏,DS18B20進(jìn)行溫度測(cè)量,輔以必要的的電路,構(gòu)成一個(gè)單片機(jī)定時(shí)鬧鐘。電子鐘可采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來(lái)完成。LCD顯示“時(shí)”,“分”,LED閃動(dòng)來(lái)做秒計(jì)數(shù),定時(shí)時(shí)間到能發(fā)出警報(bào)聲或者啟動(dòng)繼電器,從而控制電器的啟?!,F(xiàn)在是自動(dòng)化高度發(fā)達(dá)的時(shí)代,特別是電子類(lèi)產(chǎn)品都是靠?jī)?nèi)部的控制電路來(lái)實(shí)現(xiàn)對(duì)產(chǎn)品的控制,達(dá)到自動(dòng)運(yùn)行的目的,這就需要我們這里要做的設(shè)計(jì)中的電器元件及電路的支持。 在這次設(shè)計(jì)中主要是用STC12C5A16S2來(lái)進(jìn)行定時(shí),也結(jié)合著其他輔助電路實(shí)施控制,在定時(shí)的時(shí)

2、候,按一下控制小時(shí)的鍵對(duì)小時(shí)加一;按一下控制分鐘的鍵對(duì)分鐘加一;到達(dá)預(yù)設(shè)的時(shí)間,此電路就會(huì)發(fā)出報(bào)警聲音提示已經(jīng)到點(diǎn)。關(guān)鍵詞 定時(shí)鬧鐘STC12C5A16S2LCD16021共 2 頁(yè) 第 1 頁(yè)Time clockAbstract The regular alarm clock designers design, by the microcontroller STC12C5A16S2 chip andLCD1602display、 DS18B20 , combined with the necessary circuitry to form a single-chip timer alarm

3、clock. Clock can be digital circuit, the microcontroller can also be used to complete. LCD display "when", "sub", LED flash to do the second count, regular time to be able to sound an alarm or start relay to control the electrical start and stop. Now is the era of highly develope

4、d automation, especially electronic products are relying on the internal control circuitry to achieve control of the product to achieve the purpose of automatic operation, which requires us to do the design of electrical components and circuits to support . In this design it is mainly used to carry

5、out regular AT89S51, but also combined with other auxiliary circuit implementation of the control, in time, when you click a control button on the hour plus one hour; click the button on the control minutes plus one minute; reach preset time, this will sound an alarm circuit has prompted the pointKe

6、y Words time clock STC12C5A16S2 LCD1602共 2 頁(yè) 第 2 頁(yè)目 錄引 言11 電子時(shí)鐘的設(shè)計(jì)目的和要求21.1設(shè)計(jì)目的21.2設(shè)計(jì)要求22 電子時(shí)鐘的設(shè)計(jì)流程32.1總體方案的原理32.2總體設(shè)計(jì)方案和框圖33 系統(tǒng)硬件設(shè)計(jì)43.1STC12C5A16S2單片機(jī)43.2模塊電路53.2.1 復(fù)位電路與晶振電路53.2.2顯示模塊及芯片53.串口通訊單元73.蜂鳴器單元73.1鳴器的結(jié)構(gòu)原理73.2蜂鳴器的驅(qū)動(dòng)83.4.3蜂鳴器驅(qū)動(dòng)電路83.4.4蜂鳴器驅(qū)動(dòng)設(shè)計(jì)94 系統(tǒng)軟件設(shè)計(jì)104.1程序流程圖104.2 電子時(shí)鐘主要程序115 安裝調(diào)試17總 結(jié)18

7、參 考 文 獻(xiàn)19附錄 電路原理圖203共 1 頁(yè) 第 1 頁(yè) 引 言隨著微電子技術(shù)的不斷發(fā)展,微處理器芯片的集成程度越來(lái)越高,單片機(jī)已可以在一塊芯片上同時(shí)集成CPU、存儲(chǔ)器、定時(shí)器計(jì)數(shù)器、并行和串行接口、看門(mén)狗、前置放大器、AD轉(zhuǎn)換器、DA轉(zhuǎn)換器等多種電路,這就很容易將計(jì)算機(jī)技術(shù)與測(cè)量控制技術(shù)結(jié)合,組成智能化測(cè)量控制系統(tǒng)。這種技術(shù)促使機(jī)器人技術(shù)也有了突飛猛進(jìn)的發(fā)展。單片機(jī)技術(shù)作為自動(dòng)控制技術(shù)的核心之一,被廣泛應(yīng)用于工業(yè)控制、智能儀器、機(jī)電產(chǎn)品、家用電器等領(lǐng)域。隨著微電子技術(shù)的迅速發(fā)展,單片機(jī)功能也越來(lái)越強(qiáng)大,本設(shè)計(jì)基于STC單片機(jī)的電子時(shí)鐘技術(shù),以STC12C5A16S2為核心,構(gòu)成數(shù)字鐘,

8、首先應(yīng)選擇一個(gè)脈沖源能自動(dòng)地產(chǎn)生穩(wěn)定的標(biāo)準(zhǔn)時(shí)間脈沖信號(hào)。而脈沖源產(chǎn)生的脈沖信號(hào)的頻率較高,因此,需要進(jìn)行分頻,使得高頻脈沖信號(hào)轉(zhuǎn)變?yōu)檫m合于計(jì)時(shí)的低頻脈沖信號(hào),即“秒脈沖信號(hào)”(頻率為1HZ)。校時(shí)電路一般采用自動(dòng)快速調(diào)整和手動(dòng)調(diào)整,“自動(dòng)快速調(diào)整”可利用分頻器輸出的不同頻率的脈沖使顯示的時(shí)間自動(dòng)迅速調(diào)整?!笆謩?dòng)調(diào)整”可利用手動(dòng)的節(jié)拍調(diào)準(zhǔn)顯示時(shí)間?;谝蟊敬尾捎昧俗詣?dòng)快速調(diào)整。數(shù)字鬧鐘要求有定時(shí)響?hù)[的功能,故需要提供設(shè)定鬧時(shí)電路和對(duì)比起鬧電路。設(shè)時(shí)電路應(yīng)共享譯碼器、驅(qū)動(dòng)器到數(shù)字顯示器,以便使用者設(shè)定時(shí)間,并可減少電路的芯片數(shù)量;而對(duì)比起鬧電路提供聲源,應(yīng)具有人工止鬧功能,止鬧后不再重新操作,將

9、不再發(fā)生起鬧等功能。 共 20 頁(yè) 第 0 頁(yè)裝訂線長(zhǎng) 春 大 學(xué) 課程設(shè)計(jì)紙 1 電子時(shí)鐘的設(shè)計(jì)目的和要求1.1設(shè)計(jì)目的(1) 掌握時(shí)鐘的基本構(gòu)件;(2) 掌握各電子元器件的基本形狀及其功能;(3) 掌握各電子元器件的焊接步驟與工作原理;(4) 掌握單片機(jī)內(nèi)部結(jié)構(gòu)與程序編制方法; (5) 掌握數(shù)碼管內(nèi)部結(jié)構(gòu),掌握數(shù)碼顯示技術(shù);()通過(guò)本次設(shè)計(jì)實(shí)驗(yàn),對(duì)自己的專(zhuān)業(yè)知識(shí)掌握和運(yùn)用有一個(gè)系統(tǒng)的考核。1.2設(shè)計(jì)要求利用實(shí)驗(yàn)開(kāi)發(fā)板上的液晶顯示屏,設(shè)計(jì)帶有鬧鐘及日期顯示功能的數(shù)字時(shí)鐘。(1) 利用液晶顯示屏顯示時(shí)間及日期,時(shí)間為24小時(shí)制,日期格式為年-月-日;(2) 利用按鍵對(duì)時(shí)間、日期、鬧鈴進(jìn)行設(shè)置,

10、到鬧鈴時(shí)間到時(shí),蜂鳴器發(fā)出聲音, 按停止鍵可使鬧鈴?fù)V梗?3) 用了LED做鬧鈴倒計(jì)時(shí)顯示。()實(shí)現(xiàn)的功能在數(shù)字鐘正常進(jìn)行顯示時(shí)其顯示周期為000000至23:59:59,其中有五個(gè)按鍵按下“暫停”鍵時(shí)鐘停止走動(dòng)按下“開(kāi)始”鍵時(shí)鐘開(kāi)始走動(dòng)按下“秒設(shè)置”時(shí)鐘秒位自加1加至60時(shí)向分位進(jìn)1按下“分設(shè)置”時(shí)鐘分位自加1加至60時(shí)向時(shí)位進(jìn)1按下“時(shí)設(shè)置”時(shí)鐘秒位自加1加至24時(shí)顯示00。 2 電子時(shí)鐘的設(shè)計(jì)流程2.1總體方案的原理在一個(gè)完整的鬧鐘系統(tǒng)的設(shè)計(jì)中,我們采用的是自頂向下的設(shè)計(jì)思想,整個(gè)系統(tǒng)由若干個(gè)模塊組合來(lái)實(shí)現(xiàn),包括計(jì)數(shù)模塊、控制模塊、譯碼模塊、動(dòng)態(tài)掃描輸出模塊、鬧鐘控制模塊。設(shè)計(jì)鬧鐘時(shí)應(yīng)考

11、慮的問(wèn)題有:鬧鐘能否計(jì)數(shù)、能否對(duì)計(jì)時(shí)時(shí)間進(jìn)行調(diào)整,定時(shí)鬧鈴功能是否正常,動(dòng)態(tài)掃描顯示是否正常等等。2.2總體設(shè)計(jì)方案和框圖圖2-1電子時(shí)鐘系統(tǒng)框圖電子鬧鐘應(yīng)包括秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電源以及鬧鈴指示電路等幾部分。 按鍵功能說(shuō)明:K1,設(shè)置時(shí)間和鬧鐘的小時(shí);K2,設(shè)置小時(shí)以及設(shè)置鬧鐘的開(kāi)關(guān);K3,設(shè)置分鐘和鬧鐘的分鐘;K4;設(shè)置完成退出電子鬧鐘的主電路指的是圖2-1中虛線框內(nèi)部分,主要涉及到CPU電路和按鍵按鈕電路。主機(jī)的設(shè)計(jì)具體地說(shuō)有:(1)系統(tǒng)時(shí)鐘電路設(shè)計(jì);(2)系統(tǒng)復(fù)位電路設(shè)計(jì);(3)按鍵與按鈕電路設(shè)計(jì):(4)鬧鈴聲指示電路設(shè)計(jì)。3 系統(tǒng)硬件設(shè)計(jì)3.1STC12C5A1

12、6S2單片機(jī)教學(xué)用電子打鈴器主要由STC12C5A16S2單片機(jī)、鍵盤(pán)掃描模塊、時(shí)鐘和復(fù)位模塊、蜂鳴器模塊、LCD1602顯示模塊等組成。運(yùn)用匯編語(yǔ)言來(lái)控制單片機(jī)STC12C5A16S2來(lái)實(shí)現(xiàn)、動(dòng)態(tài)數(shù)碼顯示等功能。且本設(shè)計(jì)中的STC12C5A16S2單片機(jī)是整個(gè)工作過(guò)程的核心,是整個(gè)設(shè)計(jì)靈魂,它控制了脈沖時(shí)序的產(chǎn)生顯示信號(hào)的發(fā)送控制顯示LED的選擇。 STC12C5A16S2是一種帶4K字節(jié)存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器,俗稱(chēng)單片機(jī).圖3-1 STC12C5A16S2管腳圖P0.0P0.7(3932)P0口是一個(gè)漏極開(kāi)路型準(zhǔn)雙向I/O口。在訪問(wèn)外部存儲(chǔ)器時(shí),它是分時(shí)多路轉(zhuǎn)換的地址

13、(低8位)和數(shù)據(jù)總線,在訪問(wèn)期間激活了內(nèi)部的上拉電阻。在EPROM編程時(shí),它接收指令字節(jié),而在驗(yàn)證程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。P1.0P1.7(1-8):P1口是帶內(nèi)部上拉電阻的8位雙向I/O口。在EPROM編程和程序驗(yàn)證時(shí),它接收低8位地址。 P2.0P2.7(21-28):P2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。在訪問(wèn)外部存儲(chǔ)器時(shí),它送出高8位地址。在對(duì)EFROM編程和程序驗(yàn)證期間,它接收高8位地址。 P3.0P3.7(10-17):P3口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。此部分是整個(gè)鬧鐘運(yùn)行的核心部件,起著控制鬧鐘所有運(yùn)行狀態(tài)的作用。控制方法有很多,大部

14、分都采用單片機(jī)控制。由于51單片機(jī)具有價(jià)格低廉是使用簡(jiǎn)單的特點(diǎn),這里選擇了ATMEL公司的STC12C5A16S2作為控制核心部件。STC12C5A16S2單片機(jī)系列的存儲(chǔ)器用的是哈佛結(jié)構(gòu),即將程序和數(shù)據(jù)存儲(chǔ) 截然分開(kāi),程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器各有自己的尋址方式、尋址空間和控制系統(tǒng)。STC89C52的存儲(chǔ)器可分為五類(lèi):程序存儲(chǔ)器,內(nèi)部數(shù)據(jù)存儲(chǔ)器,特殊功能寄存器,位地址空間,外部數(shù)據(jù)存儲(chǔ)器。3.2模塊電路3.2.1 復(fù)位電路與晶振電路 復(fù)位電路是單片機(jī)系統(tǒng)必須的,用來(lái)為單片機(jī)提供正確的復(fù)位信號(hào);振蕩電路就為單片機(jī)工作提供了所需要的時(shí)鐘脈沖信號(hào),使單片機(jī)的開(kāi)始正常工作; 如圖3-2所示 18腳和19

15、接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出;第9引腳為復(fù)位輸入端,接上電容,電阻及開(kāi)關(guān)后能夠形成上電復(fù)位電路。圖3-2 復(fù)位電路與晶振電路3.2.2顯示模塊及芯片液晶顯示器各種圖形的顯示原理:線段的顯示,點(diǎn)陣圖形式液晶由M×N個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個(gè)點(diǎn)組成,屏上64×16個(gè)顯示單元與顯示RAM區(qū)1024字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。

16、例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(dāng)000H=FFH時(shí),則屏幕的左上角顯示一條短亮線,長(zhǎng)度為8個(gè)點(diǎn),當(dāng)3FF=FFH時(shí),則屏幕的右下角顯示一條短亮線當(dāng)000H=FFH,001H=00H,002H=00H00EH=00H,00FH=00H時(shí),則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。字符的顯示:用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮。為“0”的不亮。這樣

17、一來(lái)就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來(lái)說(shuō)。顯示字符就比較簡(jiǎn)單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址設(shè)立光標(biāo)在此送上該字符對(duì)應(yīng)的代碼即可。圖3-3 LCD1602液晶顯示模塊3.串口通訊單元MAX232芯片是美信公司專(zhuān)門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。 引腳圖片:   圖3-4MAX232管腳及功能引腳介紹:主要分為幾部分電荷泵電路:由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。 數(shù)據(jù)轉(zhuǎn)換通道:

18、由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。 其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 供電:15腳GND、16腳VCC(+5v)。 由于RS232電平較高,在接通時(shí)產(chǎn)生的瞬時(shí)電涌非常高,很有可能擊毀max

19、232,所以在使用中應(yīng)盡量避免熱插拔。3.蜂鳴器單元3.1鳴器的結(jié)構(gòu)原理(1)壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。 壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。 (2)電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。 3.2蜂鳴器的驅(qū)動(dòng) 在單片機(jī)應(yīng)用的設(shè)計(jì)上,很多方案都會(huì)用到蜂鳴器,大部分都是使用蜂鳴器來(lái)做提示或報(bào)警,比如按鍵按下、開(kāi)始工作、工作結(jié)束或是故障等等。這里對(duì)單片機(jī)在蜂鳴器驅(qū)動(dòng)上的應(yīng)用作一

20、下描述。圖3-5為蜂鳴器發(fā)聲電路原理圖。圖3-5蜂鳴器發(fā)聲電路原理圖圖3-5蜂鳴器發(fā)聲電路原理圖驅(qū)動(dòng)方式:由于自激蜂鳴器是直流電壓驅(qū)動(dòng)的,不需要利用交流信號(hào)進(jìn)行驅(qū)動(dòng),只需對(duì)驅(qū)動(dòng)口輸出驅(qū)動(dòng)電平并通過(guò)三極管放大驅(qū)動(dòng)電流就能使蜂鳴器發(fā)出聲音,很簡(jiǎn)單,這里就不對(duì)自激蜂鳴器進(jìn)行說(shuō)明了。這里只對(duì)必須用1/2duty 的方波信號(hào)進(jìn)行驅(qū)動(dòng)的他激蜂鳴器進(jìn)行說(shuō)明。 單片機(jī)驅(qū)動(dòng)他激蜂鳴器的方式有兩種:一種是PWM 輸出口直接驅(qū)動(dòng),另一種是利用I/O 定時(shí)翻轉(zhuǎn)電平產(chǎn)生驅(qū)動(dòng)波形對(duì)蜂鳴器進(jìn)行驅(qū)動(dòng)。 PWM 輸出口直接驅(qū)動(dòng)是利用PWM 輸出口本身可以輸出一定的方波來(lái)直接驅(qū)動(dòng)蜂鳴器。比如頻率為2000Hz 的蜂鳴器的驅(qū)動(dòng),可

21、以知道周期為500s,這樣只需要把PWM 的周期設(shè)置為500s,占空比電平設(shè)置為250s,就能產(chǎn)生一個(gè)頻率為2000Hz 的方波,通過(guò)這個(gè)方波再利用三極管就可以去驅(qū)動(dòng)這個(gè)蜂鳴器了。3.4.3蜂鳴器驅(qū)動(dòng)電路由于蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O 口是無(wú)法直接驅(qū)動(dòng)的,所以要利用放大電路來(lái)驅(qū)動(dòng),一般使用三極管來(lái)放大電流就可以了。下圖為比較安全的驅(qū)動(dòng)電路 圖3-6蜂鳴器安全的驅(qū)動(dòng)電路圖3.4.4蜂鳴器驅(qū)動(dòng)設(shè)計(jì)由于這里要介紹兩種驅(qū)動(dòng)方式的方法,所以程序不僅介紹了PWM 輸出口驅(qū)動(dòng)蜂鳴器的方法,還要介紹I/O 口驅(qū)動(dòng)蜂鳴器的方法。所以,我們將設(shè)計(jì)如下的一個(gè)系統(tǒng)來(lái)說(shuō)明單片機(jī)對(duì)蜂鳴器的驅(qū)動(dòng):系統(tǒng)

22、有兩個(gè)他激蜂鳴器,頻率都為2000Hz,一個(gè)由I/O 口進(jìn)行控制,另一個(gè)由PWM 輸出口進(jìn)行控制;系統(tǒng)還有兩個(gè)按鍵,一個(gè)按鍵為PORT 按鍵,I/O 口控制的蜂鳴器不鳴叫時(shí)按一次按鍵I/O 口控制的蜂鳴器鳴叫,再按一次停止鳴叫,另一個(gè)按鍵為PWM 按鍵,PWM 口控制的蜂鳴器不鳴叫時(shí)按一次按鍵PWM輸出口控制的蜂鳴器鳴叫,再按一次停止鳴叫。5 PWM 輸出口直接驅(qū)動(dòng)蜂鳴器方式由于PWM 只控制固定頻率的蜂鳴器,所以可以在程序的系統(tǒng)初始化時(shí)就對(duì)PWM 的輸出波形進(jìn)行設(shè)置。 首先根據(jù)SH69P43 的PWM 輸出的周期寬度是10 位數(shù)據(jù)來(lái)選擇PWM 時(shí)鐘。系統(tǒng)使用4MHz 的晶振作為主振蕩器,一個(gè)

23、tosc 的時(shí)間就是0.25s,若是將PWM 的時(shí)鐘設(shè)置為tosc 的話, 則蜂鳴器要求的波形周期500s 的計(jì)數(shù)值為500s/0.25s=(2000)10=(7D0)16,7D0H 為11 位的數(shù)據(jù),而SH69P43 的PWM 輸出周期寬度只是10 位數(shù)據(jù),所以選擇PWM 的時(shí)鐘為tosc 是不能實(shí)現(xiàn)蜂鳴器所要的驅(qū)動(dòng)波的。共 20頁(yè) 第 20 頁(yè)4 系統(tǒng)軟件設(shè)計(jì)4.1程序流程圖初始化時(shí)鐘顯示定時(shí)是否到K1是否按下K2是否按下miao是否0分加1時(shí)加1Beep1=1?鬧鈴響定時(shí)顯示K.2是否按下K3是否按下Miao1是否0時(shí)加1分加1YYYYYYYYNNNNNNNN圖4-1系統(tǒng)總流程圖4.2

24、電子時(shí)鐘主要程序#include<reg52.h>#include <intrins.h>sbit SCLK = P10; /DS1302時(shí)鐘口P1.0sbit IO = P11; /DS1302數(shù)據(jù)口P1.1sbit RST = P12; /DS1302片選口P1.2unsigned char code init = 0x00, 0x00, 0x20, 0x01, 0x01, 0x05, 0x10;unsigned char data now7;void DS1302_Initial();void DS1302_SetTime(unsigned char *p);vo

25、id DS1302_GetTime(unsigned char *p);sbit LCD_RS = P17; sbit LCD_wr = P16;sbit LCD_EN = P15;void write_com(unsigned char com);void write_date (unsigned char date);void Init();void delay(int ms);void delayms( unsigned int z);void write_sfm(unsigned char add,unsigned char date);void main() /unsigned ch

26、ar i3,i1,i2;LCD_wr=0;Init();while(1)write_sfm( 4,45);delay(5000);void write_sfm(unsigned char add,unsigned char date) unsigned char shi,ge; shi=date%10; ge=date/10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); LCD_EN = 0; void Init() write_com(0x38); /16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay(

27、5); write_com(0x38); delay(5); write_com(0x38); delay(5); write_com(0x0c); /顯示開(kāi),關(guān)光標(biāo) delay(5); write_com(0x06); /移動(dòng)光標(biāo) delay(5); write_com(0x01); /清除LCD的顯示內(nèi)容 delay(5); /void delay(int ms) int i; while(ms-) for(i = 0; i< 250; i+) _nop_(); _nop_(); _nop_(); _nop_(); void delayms( unsigned int z) unsi

28、gned int x,y; for( x=z;x>0;x-) for( y=1100;y>0;y-);/*延時(shí)X微秒(STC12C5A60S212M)不同的工作環(huán)境,需要調(diào)整此函數(shù)此延時(shí)函數(shù)是使用1T的指令周期進(jìn)行計(jì)算,與傳統(tǒng)的12T的MCU不同*/void Delay() _nop_(); _nop_();/*從DS1302讀1字節(jié)數(shù)據(jù)*/unsigned char DS1302_ReadByte() unsigned char i; unsigned char dat = 0; for (i=0; i<8; i+) /8位計(jì)數(shù)器 SCLK = 0; /時(shí)鐘線拉低Delay

29、(); /延時(shí)等待 dat >>= 1; /數(shù)據(jù)右移一位if (IO) dat |= 0x80; /讀取數(shù)據(jù)SCLK = 1; /時(shí)鐘線拉高Delay(); /延時(shí)等待 return dat;/*向DS1302寫(xiě)1字節(jié)數(shù)據(jù)*/void DS1302_WriteByte(unsigned char dat) char i; for (i=0; i<8; i+) /8位計(jì)數(shù)器 SCLK = 0; /時(shí)鐘線拉低 Delay(); /延時(shí)等待 dat >>= 1; /移出數(shù)據(jù) IO = CY; /送出到端口 SCLK = 1; /時(shí)鐘線拉高 Delay(); /延時(shí)等待

30、/*讀DS1302某地址的的數(shù)據(jù)*/unsigned char DS1302_ReadData(unsigned char addr) unsigned char dat; RST = 0; Delay(); SCLK = 0; Delay(); RST = 1; Delay(); DS1302_WriteByte(addr); /寫(xiě)地址 dat = DS1302_ReadByte(); /讀數(shù)據(jù) SCLK = 1; RST = 0; return dat;/*往DS1302的某個(gè)地址寫(xiě)入數(shù)據(jù)*/void DS1302_WriteData(unsigned char addr, unsigne

31、d char dat) RST = 0; Delay(); SCLK = 0; Delay(); RST = 1; Delay(); DS1302_WriteByte(addr); /寫(xiě)地址 DS1302_WriteByte(dat); /寫(xiě)數(shù)據(jù) SCLK = 1; RST = 0;/*寫(xiě)入初始時(shí)間*/void DS1302_SetTime(unsigned char *p) unsigned char addr = 0x80;unsigned char n = 7; DS1302_WriteData(0x8e, 0x00); /允許寫(xiě)操作 while (n-) DS1302_WriteDat

32、a(addr, *p+); addr += 2; DS1302_WriteData(0x8e, 0x80); /寫(xiě)保護(hù)/*讀取當(dāng)前時(shí)間*/void DS1302_GetTime(unsigned char *p) unsigned char addr = 0x81; unsigned char n = 7; while (n-) *p+ = DS1302_ReadData(addr); addr += 2; /*初始化DS1302*/void DS1302_Initial() RST = 0; SCLK = 0; DS1302_WriteData(0x8e, 0x00); /允許寫(xiě)操作 DS1

33、302_WriteData(0x80, 0x00); /時(shí)鐘啟動(dòng) DS1302_WriteData(0x90, 0xa6); /一個(gè)二極管4K電阻充電 DS1302_WriteData(0x8e, 0x80); /寫(xiě)保護(hù)5 安裝調(diào)試5.1硬件系統(tǒng)的組裝與調(diào)試 硬件組裝前首先要仔細(xì)核對(duì)硬件系統(tǒng)設(shè)計(jì)原理的正確性,包括參數(shù)選用的正確性和原理的正確性,對(duì)沒(méi)有把握的電路可以通過(guò)在通用實(shí)驗(yàn)板上直接焊接實(shí)際電路來(lái)進(jìn)行實(shí)物調(diào)試和驗(yàn)證,調(diào)試分為斷電調(diào)試和通電調(diào)試。 (1)斷電調(diào)試 為了安全起見(jiàn),首先必須進(jìn)行斷電調(diào)試,斷電調(diào)試的內(nèi)容至少包含短路檢測(cè)和原理正確性確認(rèn);系統(tǒng)電路焊接完成后,首先對(duì)實(shí)物進(jìn)行原理正確性的確

34、認(rèn),其次必須進(jìn)行短路檢測(cè),選用合適的萬(wàn)用表歐姆檔,用紅表筆接到電路板的+5V電源的+、 極,如果存在充放電現(xiàn)象,最后電阻穩(wěn)定在一個(gè)合適的位置,則基本上可排除系統(tǒng)短路現(xiàn)象。 (2)通電調(diào)試 系統(tǒng)時(shí)鐘是否起 凡是微處理器系統(tǒng),正常運(yùn)行的必要條件是系統(tǒng)時(shí)鐘穩(wěn)定正常,在實(shí)際工作中,因?yàn)楦鞣N原因?qū)е孪到y(tǒng)時(shí)鐘不正常而出現(xiàn)系統(tǒng)無(wú)法正常運(yùn)行的情況也時(shí)有出現(xiàn),因此系統(tǒng)時(shí)鐘是否起震應(yīng)是通電檢查的首要一環(huán),檢查方法包括邏輯筆發(fā)、數(shù)字萬(wàn)用表法、示波器法,在這里采用數(shù)字萬(wàn)用表法,測(cè)試晶振兩端引腳電壓為2.5V左右。 復(fù)位是否正常及關(guān)鍵點(diǎn)電壓參數(shù)是否正常 復(fù)位不正常也會(huì)導(dǎo)致系統(tǒng)不工作,這里的重點(diǎn)是檢查相關(guān)電路是否正常,同時(shí)檢查相應(yīng)電路的關(guān)鍵電壓參數(shù)是否正常,進(jìn)行一一排查。5.2軟件調(diào)試單片機(jī)的程序設(shè)計(jì)調(diào)試分為兩種,一種是使用軟件模擬調(diào)試,即用開(kāi)發(fā)單片機(jī)程序的計(jì)算機(jī)去模擬單片機(jī)的指令執(zhí)行,并虛擬單

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論