版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
課程名稱專業(yè)班級姓名學(xué)號指導(dǎo)教師課程名稱專業(yè)班級姓名學(xué)號指導(dǎo)教師單片機課程設(shè)計報告單片機課程設(shè)計電氣工程及其自動化2012年3月9日DS12887日歷時鐘課程設(shè)計目錄41.1設(shè)計任務(wù)及要求 41.2設(shè)計應(yīng)用意義 4二方案的論證 4三總體設(shè)計 43.1基本工作原理. 43.2、 硬件總體設(shè)計 53.3、 軟件總體設(shè)計 5四硬件設(shè)計 DS12887的功能介紹 64.1.1引腳功能 64.2LCD1602 7LCD1602液晶介紹. 74.3STC89C52 84.3.1芯片介紹. 84.3.2管腳說明 9五軟件設(shè)計 105.1時鐘設(shè)置 10六系統(tǒng)操作說明 11七結(jié)束語
八參考文獻 12附錄:121、系統(tǒng)原理圖132、程序:(1)液晶顯示的程序13(2)總的程序14一、 前言用單片機控制時間的讀取并顯示在液晶屏幕上面,并可通過按鍵實現(xiàn)對時間的修改。文中詳細論述了電子日歷鐘設(shè)計原理、使用的各芯片的介紹,闡明了本實例所使用的設(shè)計方案、詳細的電路圖以及電子程序.1.1設(shè)計任務(wù)及要求DS12887芯片具有低功耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點。采用DS12887芯片設(shè)計的時鐘電路無需任何外圍電路和器件,并具有良好的微機接口,廣泛用于各種需要精度較高的實時時鐘系統(tǒng)中。設(shè)計內(nèi)容包括DS12887芯片的時鐘電路硬件設(shè)計,軟件設(shè)計,畫出Protel原理圖、PCB版圖、寫出元件清單,驗收后方可焊接電路板并調(diào)試。設(shè)計實現(xiàn)如下目標:利用DS12887和STC8952單片機設(shè)計一個時鐘和日歷,時間以24小時為一個周期;顯示當前時、分、秒;有校時功能,可以分別對時及分進行單獨校時,使其校正到標準時間;可以實現(xiàn)基本的調(diào)時定時日期的修改。1.2本設(shè)計的應(yīng)用意義此電子日歷鐘小巧便捷利于攜帶,界面清爽,一目了然,方便您知曉當前時間,并可對時間做出修改,實在是居家旅行日常生活之必備用品!二、 方案的論證本系統(tǒng)采用STC89C52單片機作為控制核心,使用單片集成的即時時鐘芯片DS12887來實現(xiàn)時鐘功能,顯示系統(tǒng)采用液晶模塊LCD顯示時間、日歷及鬧鈴等提示信息,有著智能化的人機界面。用此方案設(shè)計的電路圖簡單,不需要驅(qū)動電路,用并行口的數(shù)據(jù)線便可以實現(xiàn)時間、日歷以及鬧鐘的顯示。STC89C52有成熟的閃存技術(shù),本身自帶有看門狗定時器電路,這樣在單片機死機或遇到程序故障時系統(tǒng)能夠自動復(fù)位,看門狗定時器由一個14位預(yù)分頻器構(gòu)成,以系統(tǒng)時鐘或者是系統(tǒng)時鐘的分頻信號作為其計數(shù)源,當看門狗溢出時將使系統(tǒng)復(fù)位。系統(tǒng)時鐘頻率可動態(tài)調(diào)節(jié),有集成省電、上電復(fù)位/掉電檢測等功能。三、 總體設(shè)計3.1基本工作原理利用DS12887實時時鐘電路芯片來讀取系統(tǒng)中的日期以及時間信息,并利用P0端口將相關(guān)信息傳送至STC89C51主芯片之中,利用P2端口使之顯示于LCD1602液晶顯示屏上,四個按鍵分別置于P1口的1、2、3、4端口可以對時間進行控制修改。相關(guān)說明:點擊確定按鍵可以進入LCD屏上方顯示的主菜單,點擊返回按鍵可以退出菜單,在時間修改菜單中點擊修改“小時”按鍵可以修改時間中的小時數(shù),點擊修改“分鐘”按鍵可以修改時間中的分鐘數(shù)。
3.2硬件總體設(shè)計3.3軟件總體設(shè)計主程序主要包括:系統(tǒng)初始化、獲取串口數(shù)據(jù)、設(shè)置日歷時鐘芯片、獲取時鐘芯片的時間信息和時鐘校正、顯示等子程序。初始化子程序主要包括設(shè)置單片機的串口和定時器的初始化,日歷時鐘芯片初始參數(shù)和驅(qū)動芯片的初始化等。主程序流程圖如圖6所示。田工町序迢赴閔四、硬件設(shè)計4.1DS12887的功能介紹DS12887是美國DALLAS半導(dǎo)體公司最新推出的8位串行接口并自帶RAM的實時日歷時鐘芯片,內(nèi)部有14個時鐘控制寄存器,包括10個時標寄存器,4個狀態(tài)寄存器和114bit作掉電保護用的低功耗RAM。CPU通過讀DS12887的內(nèi)部時標寄存器得到當前的時間和日歷,也可通過選擇二進制或BCD碼初始化芯片的10個時標寄存器,其4個狀態(tài)寄存器用來控制和指出DS12887的當前工作狀態(tài),114bit非易失性靜態(tài)RAM可在掉電時保存一些重要數(shù)據(jù)。
DS12887功能強大,應(yīng)用廠泛。4.1.1引腳功能:GND:接地端VCC:直流電源+5V電壓。當5V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫;當VCC低于4.25V,讀寫禁止,計時功能仍繼續(xù);當VCC下降到3V以下時,RAM和計時器被切換到內(nèi)部鋰電池。M0T(模式選擇):MOT引腳接到VCC時,選擇MOTOROLA時序,當接到GFND時,選擇INTEL時序。SQW(方波信號輸出):SQW引腳能從實時時鐘內(nèi)部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。ADO?AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與MOTOROLA微機系列和INTEL微機系列接口。AS(地址選通輸入):用于實現(xiàn)信號分離,在AD/ALE的下降沿把地址鎖入DS12887。DS(數(shù)據(jù)選通或讀輸入):DS/RD有2種操作模式,取決于MOT引腳的電平,當使用MOTOROLA時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總的時刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇INTEL時序時,DS稱作(RD),RD與典型存儲器的允許信號(OE)的定義相同。R/W(讀/寫輸入):也有兩種操作模式。選MOTOROLA時序時,是一電平信號,指示當前周期是讀或?qū)懼芷?,DSO為高電平時,高電平指示讀周期,低電平指示寫周期;選INTEL時序,信號是一低電平信號,稱為WR。在此模式下,R/W與通用RAM的寫允許信號(WE)的含義相同。/CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。RESET(復(fù)位輸出):當保持低電平時間大于200ms,保證DS12887有效復(fù)位。DS12887ATfl9C520-12345^743ADAI}戰(zhàn)齦血ADJS.
覽
3?-11
3j3016DS12887ATfl9C520-12345^743ADAI}戰(zhàn)齦血ADJS.
覽
3?-11
3j301610如下OVccSSV211235Q*4-朮口1374LMS13SYS7圖2DS12887與單片機的顒靜睪門山DS12887的內(nèi)部地址分配:地址00H和03H單元取值范圍是00H?3BH(十進制為0?59);
04H?05H單元按12小時制取值范圍是上午(AM)01H?0CH(十進制為1?12),下午(PM)51H?
5CH(十進制為81?92),按24小時制取值范圍是00H?17H(十進制為0?23);06H單元的取
值范圍是01H?07H(十進制為1?7);07H單元取值范圍O1H?1FH(十進制為1?31);08H
單元取值范圍是01H?OCH(十進制為1?12);09H單元取值范圍是00H?63H(十進制為0?99)。4.2LCD16022.11602液晶模塊簡介1602液晶顯示模塊,是點陣字符型液晶顯示模塊,可以用來顯示字母,符號,數(shù)字以及簡單的漢字和圖案等信息?!?602”的含義是這類液晶顯示模塊每行能夠顯示16個字符,一共可以顯示兩行。該液晶顯示模塊,分為帶背光和不帶背光兩類,兩者在應(yīng)用過程中功能基本類似,只是帶背光的模塊更厚一些,通常的背光顏色以黃綠色和藍色為主。目前,多數(shù)602液晶顯示模塊的生產(chǎn)廠商使用的控制芯片都是日立公司的HD44780,這得單片機對1602液晶顯示模塊的控制更加統(tǒng)一和方便。1602液晶顯示模塊的主要技術(shù)參數(shù)如下:(1) 顯示容量,為16個字符X兩行,即每行最多顯示32個字符;(2) 模塊工作電壓,在4.5-5V之間,模塊的最佳工作電壓為5V;(3) 模塊工作電流,再最佳工作電壓5V式,工作電流是2mA;(4) 顯示字符的大小,每個被顯示的字符大小為2.95mmX4.35mm(字符的寬度乘高度)。4.2.21602液晶模塊的管腳介紹第1腳:GND為電源地,接GND。第2腳:VCC接5V正電源。第3腳:VO為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為指令寄存器或數(shù)據(jù)寄存器的選擇。高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數(shù)據(jù)。第6腳:E端為讀或?qū)懖僮鞯氖鼓芏?,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7?14腳:D0?D7為8位雙向數(shù)據(jù)線。第15腳:BGVCC背光電源正極(+5V)輸入引腳。第16腳:BGGND背光電源負極,接GND。4.3STC89C52芯片4.3.1芯片介紹STC89C52單片機簡介STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌
入式控制應(yīng)用系統(tǒng)提供咼靈活、超有效的解決方案。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM, 32位I/O口線,看門狗定時器,內(nèi)置4KBEEPROM,MAX810復(fù)位電路,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口。另外STC89X52可降至OHz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35Mhz,6T/12T可選。和Atmel的對比:STC89C52RC單片機具有8K字節(jié)程序存儲空間;512字節(jié)數(shù)據(jù)存儲空間;內(nèi)帶4K字節(jié)EEPROM存儲空間;可直接使用串口下載的特點而AT89S52單片機則具有8K字節(jié)程序存儲空間;256字節(jié)數(shù)據(jù)存儲空間;沒有內(nèi)帶EEPROM存儲空間的特點。STC89C52芯片如下圖所示:T2/P1.0T2/P1.0140T2EX/PL1239P1.2338P1.3437卩1.1|536P1.51635P1.61734P1.7833RST19i i32RXD/P3.01101―%ij] [731TXD/r3.1|111亠30IXT0/P3.2112o29IXT1/P3.311328T0/P3.1|1427T1/P3.511526WR/P3.6|1625RD/P3.71721XTAL2|1823XTAL1|1922VSS12021VCCPO.O/ADOPO.1/AD1PO.2/AD2PO,3/AD3PO.4.W4PO.5/AD5PO.6/AD6PO.7/AD7EA ALE/PROGPSE\卩£7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/AUP2.2/A10卩£1/A9P2.0/A84.3.2管腳說明:VCC:供電電壓。VSS:接地端。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址T”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為STC89C52的一些特殊功能口:即P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INTO(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)同時,P3口也可為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。五、軟件設(shè)計系統(tǒng)軟件設(shè)計包括單片機計算機兩部分的編程。計算機軟件編程主要實現(xiàn)參數(shù)設(shè)置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲。單片機軟件編程主要實現(xiàn)鍵盤、液晶顯示、鬧鐘等各模塊的功能,采用C語言編程。該系統(tǒng)通過串行口與鍵盤通信,鍵盤給單片機發(fā)指令實現(xiàn)數(shù)據(jù)采集及系統(tǒng)控制,并將數(shù)據(jù)實時傳回液晶顯示器顯示結(jié)果。整個軟件系統(tǒng)采用模塊化的程序設(shè)計方法,共分為時間日期的設(shè)定、鬧鈴設(shè)定、LCD顯示模塊和鍵盤掃描模塊4個部分。其中主要是鬧點的設(shè)定與提取。軟件系統(tǒng)的主要特點是整個過程完全在鍵盤的控制之下,實現(xiàn)了友好的人機交互功能。主程序通過判斷鍵盤的輸入情況調(diào)用不同的子程序,子程序的功能實現(xiàn)也是在鍵盤的配合之下完成的。主程序流程圖,如圖6所示?!?孔程丹此赴閨首先對單片機的串行口及定時器進行初始化,然后進行鍵盤掃描,如果有鍵按下,則根據(jù)掃描到的鍵值跳轉(zhuǎn)到相應(yīng)的入口并執(zhí)行相應(yīng)的程序,并根據(jù)外部的輸入進行相應(yīng)的操作。如果沒有鍵按下,則回到初始化狀態(tài)。在并行運行的程序中,本設(shè)計將調(diào)用編寫的日歷時鐘和及LCD液晶顯示的程序程序,并將其送入液晶顯示器中進行顯示。5.1時鐘設(shè)置在使用DS12887時,首先要初始化,主要是打開晶振、對控制寄存器A、B寫入控制字以及對日歷、時鐘各寄存器寫入初始值。除校時外,上電時不用再次初始化。第一次初始化時,應(yīng)禁止操作DS12887內(nèi)部更新周期,即先將寄存器B的SET位置“1”,然后初始化時標寄存器(00H?09H)和狀態(tài)寄存器A,再通過讀寄存器C清除中斷標志,讀寄存器D將VRT位置“1”,最后將寄存器B的SET位清零,DS12887開始計時。設(shè)置日歷時鐘,必須保證時鐘芯片DS12887處于設(shè)置狀態(tài),即SET=1,然后向DS12887的專用寄存器寫入時間信息,寫入完畢后,DS12887恢復(fù)正常數(shù)據(jù)更新狀態(tài),即SET=O。在讀取日歷時鐘芯片DS12887的時鐘信息時,必須保證UIP=O,然后讀取存儲其內(nèi)部寄存器的時鐘信息。為了能夠方便地顯示時間和校正時鐘,可在單片機中的用戶寄存器中開辟特殊的時間地址單元作為顯示緩沖區(qū),分別放置“年,月,日,時,分,秒”等值。此時只要將DS12887中的時間值讀入到用戶開辟的時間地址中,用戶就可以方便控制時間。六、系統(tǒng)操作說明利用DS12887實時時鐘電路芯片來讀取系統(tǒng)中的日期以及時間信息,并利用P0端口將相關(guān)信息傳送至STC89C51主芯片之中,利用P2端口使之顯示于LCD1602液晶顯示屏上,四個按鍵分別置于P1口的1、2、3、4端口可以對時間進行控制修改。相關(guān)說明:點擊確定按鍵可以進入LCD屏上方顯示的主菜單,點擊返回按鍵可以退出菜單,在時間修改菜單中點擊修改“小時”按鍵可以修改時間中的小時數(shù),點擊修改“分鐘”按鍵可以修改時間中的分鐘數(shù)。七、結(jié)束語做了兩周的課程設(shè)計,讓我感觸很深,有關(guān)與單片機方面的,但更多的是團隊和合作方面的。我們組共有兩個人,在得到實驗課題之后,就覺得壓力好大。因為我們平時接觸的都是純粹理論性的東西,做實驗也是霧里看花,對硬件的認識也很缺乏。之后,我們就去圖書館查閱大量的單片機和數(shù)字芯片的資料,并帶還來仔細研究。在硬件電路的設(shè)計中,由于要涉及軟件設(shè)計的具體情況,我們又共同討論研究,最終將原理圖設(shè)計完成。在焊電路圖的過程中,由于原理圖比較復(fù)雜,接線及走線也就顯得很困難,在具體的調(diào)試中遇到的困難也比較多,但在指導(dǎo)老師的幫助下改正了幾處問題,雖然最終沒有調(diào)試成功,但在整個過程中,我收獲了很多。這次課程設(shè)計很漫長,特別是編寫程序的時候,但我從中學(xué)到了很多東西,個人的分析能力對問題的處理能力有了不同程度的提高。對電路的判斷分析和程序的分析特別是對52單片機進一步學(xué)習(xí),讓我收獲頗多。很感謝學(xué)校和老師給我們安排了這次的課程設(shè)計,讓我真正感受到了合作的重要性很多時候都是組員的討論和老師的指導(dǎo)中的一句半句啟發(fā)了我。這次的課程設(shè)計讓我知道:理論知識固然重要,但如果不與實踐聯(lián)系起來,也就如同空白紙一樣,毫無用處。八、參考文獻單片機基礎(chǔ)(第三版)單片機的C語言應(yīng)用程序設(shè)計(第4版)單片機系統(tǒng)及應(yīng)用實驗教程單片機原理與應(yīng)用系統(tǒng)設(shè)計程序設(shè)計基礎(chǔ)(C語言)EDA技術(shù)基礎(chǔ)教程附錄:原理圖、程序原理圖Cl□HH#
CspSainIO14.FI [Y1C2&ND匈SemiC3HiQQpF云^11lOOpF■■&W=£I'STRigSaniSpeakerVCCP89C51ET'2ENrt)lVCCXTAL1P0.0/AI:-0PO.l/AIMXTAL2P0.2/AI:-2RSTEAn.-TPP0.3/AI:'BP0.4/AIj4P0J/AI:-5P0.6/AI:Cl□HH#
CspSainIO14.FI [Y1C2&ND匈SemiC3HiQQpF云^11lOOpF■■&W=£I'STRigSaniSpeakerVCCP89C51ET'2ENrt)lVCCXTAL1P0.0/AI:-0PO.l/AIMXTAL2P0.2/AI:-2RSTEAn.-TPP0.3/AI:'BP0.4/AIj4P0J/AI:-5P0.6/AI:-6P0.7/AI:'?P1.0/T2PSEtTP1.1/T2E<ALETROGP1.2ZECIP3.0/RxDPl.B/CE-nP1.4/CE-!!P1.5/CEX2P3.1/TxDP1.6/CEW3P3.2/INT0P1.7/CE-3P3.3/INT1P3.4/T0P2.0/A8P3.5/T1P2.1/AQP3.6/WRP2.2/A10P3.7/RDP2.3/A11VSSP2.+/A12P2.5/A13P2.6/A14P2.7/A15U1RET9P嘩P3葩 =3^GKDDQVCC1011VCC Ccinq)on£Ht_5PUP?P4P5P6MOTVCCNCSWQNCNCAI:'LiNCAI:'lNCAI:-2IRQAI-'j.ELEbETAD4DSAD5NCAI:-6EL'WAPTADG1WcsDS12887vcc242322212019P331817P3?1615P3(514PIO13P17jijNLaM- 0tH§8oOAA— UN.zi-C^JWn寸巾9lA己m>HHHlHlHlHIHIHe己WPi;wQQQQ|Z|QQQpqpqr-iE寸gM$0r—1■)O-l寸'?■DE£r-iIX寸亠■oPL.£tipLIlCEElhZ/—||jNDVCCGHPRU)Adj2IK程序:1.液晶顯示的程序#includevreg52.h> 〃單片機頭文件#defineucharunsignedchar〃定義無符號字符型#defineuintunsignedint 〃定義無符號整型sbitrs=P3A0; 〃rs的位地址為P3.0sbitlcden=P3Al;//lcden的位地址為P3.1sbitfengming=P3A5;//fengming的位地址為P3.5//ucharcount,s1num;//charmiao,shi,fen;ucharcodetable[]=" 2007-7-30MON"; 〃定義第一行顯示的字符ucharcodetable1[]=" 00:00:00";〃定義第二行顯示的字符voiddelay(uintz) 〃延時子程序{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom)//向1602模塊寫數(shù)據(jù){rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_date(uchardate){rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=O;}voidinit() 〃1602模塊的初始化{ucharnum;fengming=O;lcden=0;write_com(0x38);〃八位數(shù)據(jù)傳輸write_com(0x0c);〃開顯示、關(guān)光標write_com(0x06);〃光標右移、地址加1write_com(0x01);〃清屏write_com(0x80);for(num=0;numv15;num++){write_date(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;numv12;num++){write_date(table1[num]);delay(5);}}voidmain(){init();while(1);}總程序DS12887:#includevreg52.h>#includevintrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3A5;ucharmiao,fen,shi,n,yue,ri,xing,ml,mh,fl,fh,sl,sh,yl,yh,rl,rh,flag,flag1,flaga,flag2,flag3,am,as,af,c,flagz;〃定義均為漢語拼音fl為分高位fh為分高位am定時的秒uintCount;longinttemp1;sbitwexu=P1A6;〃位選鎖存器控制sbitduxu=P1A5;〃段選鎖存器控制sbitbee_Speak=P3A5;〃揚聲器驅(qū)動引腳定義sbitkey1=P1A1;〃按鍵4個sbitkey2=P1A2;sbitkey3=P1A3;sbitkey4=P1A4;sbitcss=P1A7;//12887片選sbitass=P1A0;//12887鎖存器sbitdss=P3A7;//12887讀寫控制sbitrw=P3A6;//12887讀寫控制sbitp30=P3A0;//3.0-3.3后三位數(shù)碼管位選控制sbitp31=P3A1;sbitp33=P3A3;sbitp35=P3A5;〃揚聲器voidsj(longinti);TOC\o"1-5"\h\zuchar codeduma1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};〃數(shù)碼管段碼帶小數(shù)uchar codeduma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};〃數(shù)碼管段碼uchar codewema[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};〃數(shù)碼管位選voiddelay15us()//誤差Ous{unsignedchara;for(a=5;a>0;a--);34.}35.voiddelay5us()//誤差0us36.{37._nop_();//ifKeil,requireuseintrins.hTOC\o"1-5"\h\z}39.voiddelay3us() //誤差Ous{42._nop_(); //ifKeil,requireuseintrins.h{n=n;43.}87.flagz=0;44.voiddelay45us()//誤差0us88.}45.{89.}46.unsignedchara;90.voidsj(longinti)47.for(a=20;a>0;a--);91.{48.}92.uintone,two,three,four,five,six;49.voiddelay1(uintz)〃延時一個毫秒93.one=i%10;50.{94.two=(i/10)%10;51.uintx,y;95.three=(i/100)%10;52.for(x=z;x>0;x--)96.four=(i/1000)%10;53.for(y=110;y>0;y--);97.five=(i/10000)%10;54.}98.six=(i/100000)%10;55.voiddelay2(uintz)//延時一個毫秒99.wexu=1;56.{100.P2=wema[7];57.uintx;101.wexu=0;58.for(x=z;x>0;x--)102.duxu=1;59.{sj(temp1);103.P2=duma[one];60.delay1(2);104.duxu=0;61.}105.delay1(3);62.}106.duxu=1;63.voidwritebyte(ucharn)107.P2=duma[two];64.{108.duxu=0;65.uchari;109.wexu=1;66.for(i=0;iv8;i++)110.P2=wema[6];67.{111.wexu=0;68.DQ=0;112.delay1(3);69.delay15us();113.duxu=1;70.DQ=n&0x01;114.P2=duma[three];71.n>>=1;115.duxu=0;72.delay45us();116.wexu=1;73.DQ=1;117.P2=wema[5];74.}118.wexu=0;75.DQ=1;119.delay1(3);76.}120.duxu=1;77.voidfuhao(ucharm,ucharn)121.P2=duma1[four];78.{122.duxu=0;79.if(m&0x80)123.wexu=1;80.{124.P2=wema[4];81.n=(~n)+1;125.wexu=0;82.flagz=1;126.delay1(3);83.}127.duxu=1;84.else128.if(five==0){if(flagz==1){P2=duma[10];}elseP2=duma[11];}elseP2=duma[five];duxu=0;wexu=1;P2=wema[3];wexu=0;delay1(3);duxu=1;if(six==0){if(flagz==1&&five!=0){P2=duma[10];}elseP2=duma[11];}elseP2=duma[six];duxu=0;wexu=1;P2=wema⑵;wexu=0;delay1(3);if(flagz==1&&six!=0){duxu=1;P2=duma[10];duxu=0;wexu=1;P2=wema[1];wexu=0;delay1(3);}wexu=1;P2=wema[8];wexu=0;delay1(1);TOC\o"1-5"\h\z}voiddelay3(uintz){while(z--);}voidiniti(){uchari;i=1;DQ=1;delay3(8);DQ=0;delay3(90);DQ=1;delay3(8);i=DQ;while(i);delay3(85);DQ=1;}ucharreadbyte(){uchari,j;j=0;for(i=0;iv8;i++){j>>=1;DQ=1;delay3us();DQ=0;delay3us();DQ=1;delay15us();if(DQ)jl=0x80;delay45us();delay5us();207.TOC\o"1-5"\h\z}return(j);}voidwedu(){213.uchardath,datl;longinttemp;temp=0;templ=O;dath=0;datl=0;while(flaga){initi();delay1(1);writebyte(Oxcc);writebyte(0x44);delay2(50);initi();delay1(1);writebyte(Oxcc);writebyte(Oxbe);datl=readbyte();dath=readbyte();temp=dath;temp<<=8;temp=templdatl;fuhao(dath,temp);temp1=temp*63;//0.0625if(key4==0){while(!key4);flaga++;if(flaga>=2)flaga=0;TOC\o"1-5"\h\z}}}voiddelay(uintz)〃延時函數(shù){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_sj(uchardz,ucharsj)//12887寫函數(shù){css=0;ass=1;dss=1;rw=1;P0=dz;ass=0;rw=0;P0=sj;rw=1;ass=1;css=1;}ucharread_sj(uchardz1)//12887讀函數(shù){ucharm;css=0;dss=1;rw=1;ass=1;P0=dz1;ass=0;dss=0;P0=0xff;m=P0;dss=1;ass=1;css=1;returnm;}voiddispay(uintm,uintf,uints,uintx,uinty,uintr)//顯示函數(shù){mh=m/10;ml=m%10;fh=f/10;fl=f%10;sh=s/10;sl=s%10;yh=y/10;yl=y%10;rh=r/10;rl=r%10;duxu=1;P2=duma[fl];duxu=0;wexu=1;P2=wema[7];wexu=0;delay(3);duxu=1;P2=duma[fh];P2=duma[fh];duxu=0;wexu=l;P2=wema[6];wexu=0;delay(3);duxu=1;P2=duma[sl];duxu=0;wexu=1;P2=wema[5];wexu=0;delay(3);duxu=1;P2=duma[sh];duxu=0;wexu=1;P2=wema[4];wexu=0;delay(3);duxu=1;P2=duma[rl];duxu=0;wexu=1;P2=wema[3];wexu=0;delay(3);duxu=1;P2=duma[rh];duxu=0;wexu=1;P2=wema[2];wexu=0;delay(3);duxu=1;P2=duma[yl];duxu=0;wexu=1;P2=wema[1];wexu=0;delay(3);duxu=1;P2=duma[yh];duxu=0;wexu=1;P2=wema[0];wexu=0;delay(3);wexu=1;P2=wema[8];wexu=0;delay(1);354.p30=0;duxu=1;P2=duma[mh];duxu=0;delay(3);p30=1;p31=0;duxu=1;P2=duma[ml];duxu=0;delay(3);p31=1;p33=0;duxu=1;P2=duma[x];duxu=0;delay(3);p33=1;}voidkey()〃調(diào)時函數(shù){write_sj(0x0a,0x00);〃關(guān)閉晶振調(diào)試時不更新377.if(key1==0)378.{delay(5);379.if(key1==0)380.{381.while(!ke)382.flag++;383.if(flag>=7)384.{flag=0;}385.}386.}387.if(flag==1)388.{if(key2==0){delay(5);if(key2==0){while(!key2);m
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度坡屋面小青瓦施工質(zhì)量監(jiān)督與整改服務(wù)合同
- 二零二五年度新加坡留學(xué)就業(yè)輔導(dǎo)合同4篇
- 2025專業(yè)級防雷系統(tǒng)設(shè)計與施工監(jiān)管合同3篇
- 商場自動扶梯安裝與維護服務(wù)合同(2025年度)
- 二零二五版羅絲與楊洋的離婚協(xié)議及財產(chǎn)分割及子女撫養(yǎng)協(xié)議4篇
- 2025年度家具退貨及維修保養(yǎng)服務(wù)協(xié)議范本
- 2025版GB∕T30057(環(huán)保)固體廢物處理與資源化利用合同3篇
- 二零二五年度歷史文化遺址草坪保護與旅游合同3篇
- 二零二五年度醫(yī)療信息化系統(tǒng)建設(shè)與維護合同2篇
- 2025版新型綠色建筑勞務(wù)分包合同范本3篇
- 副總經(jīng)理招聘面試題與參考回答(某大型國企)2024年
- PDCA循環(huán)提高護士培訓(xùn)率
- 2024-2030年中國智慧水務(wù)行業(yè)應(yīng)用需求分析發(fā)展規(guī)劃研究報告
- 《獅子王》電影賞析
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測試題含解析
- 中醫(yī)護理人文
- 2024-2030年中國路亞用品市場銷售模式與競爭前景分析報告
- 貨物運輸安全培訓(xùn)課件
- 前端年終述職報告
- 2024小說推文行業(yè)白皮書
- 市人民醫(yī)院關(guān)于開展“改善就醫(yī)感受提升患者體驗主題活動”2023-2025年實施方案及資料匯編
評論
0/150
提交評論