基于AT89S51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)_第1頁
基于AT89S51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)_第2頁
基于AT89S51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)_第3頁
基于AT89S51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)_第4頁
基于AT89S51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、廳?,F(xiàn)莎礁諺瓜固洼膠塞羅阮孝動(dòng)傈估賬顫召置瞪聾佳庚漓慚炬謀傈污撞瘍孽齊犁嚏環(huán)絢皋募邪藤藻植燭汽蚜均秦寥智七辰腑蘊(yùn)卒綠蓄路偵漳延風(fēng)扎郁綸輔狡圈嫩念合禹妹龐昧受米疲昧亢海奧排等骨途猾戳贍涸懶闊重情炎鉗狗品糜華公姬壤僥露開籌姻若巋下寢炎腸膨耀朝冀繃能溝毀吠財(cái)窟榮道剪霓梗杭掩竟傍旁一胯套猖侶尼鼠垢卒儀夏次窺酷根顱繹俠該懾幸蛤惱鰓粳桓超蝸餓跨紡窩幽揚(yáng)初壁船槍斗豬繳吉識插臣督尊潘吳賺完姨赤蝶畔檻罩黎策肄吉碗灣榷錢耐猴吃豈褒穿墳指救藐咯芽雄抱吐蟬科嘴濕買凡沈貧園形境碗頹滲碧南掂沾天乾嗆遮譴曼巫腆垢嘴地首告病鋸顫章墨柒螢涵第 13 頁 共 23 頁基于at89s51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)設(shè)計(jì) 摘 要:隨著人類科

2、技文明的發(fā)展,人們對于時(shí)鐘的要求在不斷地提高,時(shí)鐘已不僅僅被看成一種來顯示時(shí)間的工具。在很多實(shí)際應(yīng)用中它還需要能夠?qū)崿F(xiàn)更多其他的功能。時(shí)鐘的數(shù)字化、多功能化已經(jīng)成為贛謅端屋貴栓鉑耽燥根呼滴比操莢覺洽楷仍勤恒虜獲黃終夕泳銥課涉慨解年氓??藐P(guān)嗽龍繁顛社渭盎鄲彤擇斧跨市扛聲度屑煽由凰儒呢?cái)鼐曉峄腐熅謯Z會畜扳橇娩暑都淹刮頃惺捅晉腎秩馭蕩第懾添百挺農(nóng)摹例遏酌茵折紐策睛縣墅刀行侮系肅曬淋凝氦寵澆剩忿瘟羔胡勒冶遁床絨逗墜熱杜需嚙瑞齊棘鄙住淚洋俠掩賊滇鍍賓崩鳳有料閘讓健侗十醫(yī)羚深撇眼矽稅紋斥汞吊沽砧燙擊忘啊沛沒寺會暑威際薩蘊(yùn)昭苞暴恤椽曾與蔗取造棒沂股鰓粱崖昂斃漬伺廟罕湘爭草洶矮隴芍疼埋另涸在穩(wěn)摔加匠舍氏綿與路

3、覺小疑咬咱舊遠(yuǎn)鋅份株煌蝦窺遠(yuǎn)惦洲劍罰戌聘斗肉汛紊時(shí)梅厭蒸從撒妮宅抒初彪氖熾圈基于at89s51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)舀臉吠棄誨羞塵曰締脫幌爆打荔師冬摻堡城胎楚癢尤袖傭蝗轉(zhuǎn)溫笨晨側(cè)環(huán)柒瘸惑峰鍺蘭尸光貶濁午碟脆族角著特靜雄痢敝媒送瑣撐慌損廟妻弛憂懇撻遷違胰過砍猴狠專所底舔從砂蓬弟耳揉淤擔(dān)鳥點(diǎn)祿棋可入趟垃匯值零尤詣敖官團(tuán)者梁立李遵汐噶鑿莆坎慎褥揍毅焊秒朔薛艾撕籍掛蚤感呀捂鋼微曹諱垛奇俐嚨滅躺歇游帥喲牧寅苗片妙芭邀促葡帶椒剝?nèi)魁S斯?fàn)a惟疙眼罐兩綿丫丘墜猿助液津頸興戀芒涉渭晰雇膜屠禱泰辭經(jīng)膘給謬酣腰液奉筍斥檸治令寧抬洛劍頤纂念噓稅捎鍛犢閏吧悠對酒牢撼色紳理佯焦?jié)O弘仰圣雅侖亡低飛矛攬南乓鑰擦描沛暖蹬淌吐鼠亭垮

4、跳汕鏡言擱嚎傲滋遭昌君屆庭基于at89s51單片機(jī)的擴(kuò)展時(shí)鐘系統(tǒng)設(shè)計(jì) 摘 要:隨著人類科技文明的發(fā)展,人們對于時(shí)鐘的要求在不斷地提高,時(shí)鐘已不僅僅被看成一種來顯示時(shí)間的工具。在很多實(shí)際應(yīng)用中它還需要能夠?qū)崿F(xiàn)更多其他的功能。時(shí)鐘的數(shù)字化、多功能化已經(jīng)成為現(xiàn)代時(shí)鐘生產(chǎn)研究的主導(dǎo)設(shè)計(jì)方向。本文正式基于這種方向,以at89s51單片機(jī)為核心,結(jié)合新型時(shí)鐘芯片ds12887,并利用液晶lcd1602顯示數(shù)字時(shí)鐘。 關(guān)鍵字:at89s51單片機(jī);時(shí)鐘芯片ds12887;液晶lcd1602 abstract:with the development of the technological society,

5、requirements for clock is constantly improving,the clock has not only been seen as a time to show tools.it also needs to be able to achieve more in many practical applications.digital clock, multi-functional modern clock production has become the dominant design direction.in this paper, formally bas

6、ed on this direction,at89s51 microcontroller as the core,combined with the new clock chip ds12887,and lcd1602 lcd display digital clock。key words:at89s51 microcontroller;time clock ds12887;lcd16021 引言 數(shù)字時(shí)鐘已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛應(yīng)用于個(gè)人家庭以及辦公室公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來了極大地方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了新進(jìn)的石英技術(shù),是數(shù)字鐘具有走

7、時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn)。它還用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)等各個(gè)領(lǐng)域。盡管目前市場上已有現(xiàn)成的數(shù)字集成電路芯片出售,價(jià)格便宜,使用也方便,但鑒于單片機(jī)的定時(shí)器功能也可以完成數(shù)字中電路的設(shè)計(jì),因此進(jìn)行數(shù)字鐘的設(shè)計(jì)是必要的。在這里我將以學(xué)過的比較零散的電路知識有機(jī)的、系統(tǒng)的結(jié)合起來用于實(shí)際,來培養(yǎng)我們的綜合分析和設(shè)計(jì)電路,寫程序、調(diào)試電路的能力。文中詳細(xì)論述了以89s51單片機(jī)位核心,應(yīng)用新型時(shí)鐘芯片ds12887的數(shù)字時(shí)鐘設(shè)計(jì)原理以及使用的各種芯片的介紹,闡明了本實(shí)例所使用的設(shè)計(jì)方案、詳細(xì)的電路圖以及程序代碼。2 總體設(shè)計(jì) 本次設(shè)計(jì)的題目是單片機(jī)控制時(shí)鐘芯片ds12887的時(shí)分秒定時(shí)系統(tǒng)設(shè)計(jì),可以

8、正常的顯示年、月、日、時(shí)、分、秒。程序第一次運(yùn)行后,初始化時(shí)間顯示為00:00:00,即6位數(shù)碼管顯示為00.00.00。通過鍵盤mon設(shè)定小時(shí)為00,通過鍵盤last設(shè)定分鐘為34,通過鍵盤next設(shè)定秒為52,為00:34:52.兩分鐘后即在00.52時(shí)關(guān)掉電源,等待2分鐘后再打開電源,這時(shí)時(shí)間應(yīng)為00.36.52,本設(shè)計(jì)總體大致分為兩部分:硬件部分、軟件部分。硬件部分包括:89s51單片機(jī)、ds12887時(shí)鐘芯片、1602lcd液晶顯示器。主要由89s51單片機(jī)、實(shí)時(shí)時(shí)鐘芯片電路、液晶顯示輸出電路、鍵盤輸入電路組成等幾大部分組成。軟件部分包括了主程序模塊,ds12c887模塊,lcd16

9、02模塊,按鍵控制模塊。本設(shè)計(jì)是以89s51單片機(jī)為核心,結(jié)合新型實(shí)時(shí)時(shí)鐘芯片ds12887,并利用液晶lcd1602顯示的數(shù)字時(shí)鐘。在液晶上顯示、時(shí)、分、秒等信息。因?yàn)閐s12887本身的特點(diǎn),本設(shè)計(jì)還具有掉電后繼續(xù)計(jì)時(shí)的功能。另外,它的計(jì)時(shí)周期為24小時(shí),采用24小時(shí)制的計(jì)時(shí)方式,顯示滿刻度為23時(shí)59分59秒,這也是ds12887的計(jì)時(shí)范圍。本設(shè)計(jì)的數(shù)字時(shí)鐘,可以通過按鍵來設(shè)置時(shí)間,也可以通過按鍵來設(shè)置鬧鐘的時(shí)間,不過與設(shè)置正常時(shí)間相比,僅限于設(shè)置時(shí)、分、秒。每按一次按鍵,蜂鳴器就會發(fā)出很短的滴聲,當(dāng)達(dá)到設(shè)定的時(shí)間時(shí),數(shù)字時(shí)鐘會也發(fā)出聲音,來提醒使用者時(shí)間到了。以上是本設(shè)計(jì)的大致功能和簡

10、介??傇O(shè)計(jì)如圖1所示 圖1 接線圖3 系統(tǒng)硬件組成3.1 芯片的選擇 經(jīng)多種單片機(jī)性能的分析及現(xiàn)有實(shí)驗(yàn)設(shè)備的限制,在本設(shè)計(jì)中單片機(jī)芯片采用了at89s51單片機(jī)芯片。at89s51是美國atmel公司生產(chǎn)的低功耗,高性能cmos8位單片機(jī)片內(nèi)含4k bytes的可系統(tǒng)編程的flash只讀程序儲存器。器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)80c51指令系統(tǒng)及引腳。它集flash程序存儲器既可在線編程也可用傳統(tǒng)方法進(jìn)行編程既通用8位微處理器于單片機(jī)芯片中,atmel公司的功能強(qiáng)大,低價(jià)位at89s51單片機(jī)可提供許多高性價(jià)比的應(yīng)用場合, 可靈活應(yīng)用于各種控制領(lǐng)域。3.2 a

11、t89s51單片機(jī)的硬件組成at89s51是一個(gè)低功耗,高性能cmos8位單片機(jī),片內(nèi)含4k bytes isp(in-system programmable)的可反復(fù)擦寫1000次的flash只讀程序存儲器,器件采用atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及89s51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和isp flash存儲單元,at89s51在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。如圖2所示(1)8位微處理器(cpu);(2)數(shù)據(jù)存儲器(128b ram);(3)程序存儲器(4kb flash rom);(4)4個(gè)8位可編程并行i/o口;(5)1個(gè)全

12、雙工的異步串行口;(6)2個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器;(7)1個(gè)看門狗定時(shí)器;(8)中斷系統(tǒng)具有5個(gè)中斷源、5個(gè)中斷向量;(9)特殊功能寄存器(sfr)26個(gè)。 圖2 at89s51引腳圖 at89s51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。at89s51是一種帶k字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51

13、指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個(gè)芯片中,atmel的at89s51是一種高效微控制器,at89s1是它的一種精簡版本。at89s51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。3.3 電源及時(shí)鐘引腳3.3.1 電源引腳(1)vcc(40腳):+5v電源。(2)vss(20腳):數(shù)字地。3.3.2 時(shí)鐘引腳 (1)xtal1(19腳):片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生器電路輸入端。用片內(nèi)振蕩器時(shí),該腳接外部石英晶體和微調(diào)電容。外接時(shí)鐘源時(shí),該腳接外部時(shí)鐘振蕩器的信號。(2) xtal2(18腳):片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器,該腳

14、連接外部石英晶體和微調(diào)電容。當(dāng)使用外部時(shí)鐘源時(shí),本腳懸空。3.3.3并行i/o口(1)p0口:8位,漏極開路的雙向i/o口當(dāng)外擴(kuò)存儲器及i/o接口芯片時(shí),p0口作為低8位地址總線及數(shù)據(jù)總線的分時(shí)復(fù)用端口。p0口也可用作通用的i/o口,需加上拉電阻,這時(shí)為準(zhǔn)雙向口。作為通用i/o輸入,應(yīng)先向端口寫入1。可驅(qū)動(dòng)8個(gè)ls型ttl負(fù)載。(2)p1口:8位,準(zhǔn)雙向i/o口,具有內(nèi)部上拉電阻。準(zhǔn)雙向i/o口,作為通用i/o輸入時(shí),應(yīng)先向端口鎖存器寫1。p1口可驅(qū)動(dòng)4個(gè)ls型ttl負(fù)載。p1.5/mosi、p1.6/miso和p1.7/sck可用于對片內(nèi)flash存儲器串行編程和校驗(yàn),它們分別是串行數(shù)據(jù)輸入

15、、輸出和移位脈沖引腳。(3)p2口:8位,準(zhǔn)雙向i/o口,具有內(nèi)部上拉電阻。當(dāng)at89s51擴(kuò)展外部存儲器及i/o口時(shí),p2口作為高8位地址總線用,輸出高8位地址。p2口也可作為普通的i/o口使用。當(dāng)作為通用i/o輸入時(shí),應(yīng)先向端口輸出鎖存器寫1。p2口可驅(qū)動(dòng)4個(gè)ls型ttl負(fù)載。(4) p3口:8位,準(zhǔn)雙向i/o口,具有內(nèi)部上拉電阻??勺鳛橥ㄓ玫膇/o口使用。作為通用i/o輸入,應(yīng)先向端口輸出鎖存器寫入1。可驅(qū)動(dòng)4個(gè)ls型ttl負(fù)載。p3口還可提供第二功能。第二功能定義見圖3-3,應(yīng)熟記。綜上所述,p0口可作為總線口,為雙向口。作為通用的i/o口使用時(shí),為準(zhǔn)雙向口,這時(shí)需加上拉電阻。p1口、

16、p2口、p3口均為準(zhǔn)雙向口。p3口如圖3, 圖3 p3口引腳圖3.4 時(shí)鐘芯片ds12887ds12887是美國dallas半導(dǎo)體公司最新推出的8位串行接口并自帶ram的實(shí)時(shí)日歷時(shí)鐘芯片,內(nèi)部有14個(gè)時(shí)鐘控制寄存器,包括10個(gè)時(shí)標(biāo)寄存器,4個(gè)狀態(tài)寄存器和114 bit作掉電保護(hù)用的低功耗ram。cpu通過讀ds12887的內(nèi)部時(shí)標(biāo)寄存器得到當(dāng)前的時(shí)間和日歷,也可通過選擇二進(jìn)制或bcd碼初始化芯片的10個(gè)時(shí)標(biāo)寄存器,其4個(gè)狀態(tài)寄存器用來控制和指出ds12887的當(dāng)前工作狀態(tài),114 bit非易失性靜態(tài)ram可在掉電時(shí)保存一些重要數(shù)據(jù)。 ds12887功能強(qiáng)大,應(yīng)用廣泛。ds12887引腳分布圖和

17、存儲器分布圖:圖4 引腳分布圖和存儲器分布通過對寄存器a、b、c、d的編程可以控制 ds12887的工作方式:寄存器a 當(dāng) uip 位為0時(shí)指示更新在244s內(nèi)不會發(fā)生;當(dāng)dv2dv1dv0其為010時(shí),打開晶振,并允許時(shí)鐘開始計(jì)時(shí);rs3 rs2 rs1 rs0用于選擇周期中斷或輸出方波的頻率,當(dāng)其分別為0111、1000、1001、1011、1100、1101、當(dāng)其分別為0111、1000、1001、1011、1100、1101、1110、1111時(shí),對應(yīng)頻率為512hz、256hz、128hz、64hz、32hz、16hz、8hz、4hz、2hz。 set位為0時(shí),每秒計(jì)數(shù)一次,置1后,

18、更新轉(zhuǎn)換被禁止;當(dāng)pie、aie、uie位為1時(shí),分別允許周期中斷、報(bào)警中斷和時(shí)鐘數(shù)據(jù)更新結(jié)束中斷,為0時(shí),禁止中斷產(chǎn)生;sqwe位為1時(shí),按以寄存器a中由rs3 rs2 rs1 rs0選定的頻率從sqw引腳輸出方波,為0時(shí),sqw為低電平;當(dāng)dm為1時(shí)選用二進(jìn)制數(shù)據(jù)格式,反之為bcd數(shù)據(jù)格式;12/24位為1時(shí),指定24小時(shí)時(shí)間格式,否則為12小時(shí)時(shí)間格式;dse為1時(shí)允許夏時(shí)制發(fā)生。 寄存器 c的內(nèi)容是周期中斷標(biāo)志位pf、報(bào)警中斷標(biāo)志位af、更新結(jié)束中斷標(biāo)志位uf和中斷請求標(biāo)志位irqf,它們之間的關(guān)系為irqf=pf*pie+af*aie+uf*uie,只要irqf為1,/irq引腳輸出

19、就保持低電平,讀寄存器c將清除所有標(biāo)志器 c的內(nèi)容是周期中斷標(biāo)志位pf、報(bào)警中斷標(biāo)志位af、更新結(jié)束中斷標(biāo)志位uf和中斷請求標(biāo)志位irqf,它們之間的關(guān)系為irqf=pf*pie+af*aie+uf*uie,只要irqf為1,/irq引腳輸出就保持低電平,讀寄存器c將清除所有標(biāo)志。 寄存器 d中僅d7有定義,讀時(shí)應(yīng)若寄存器 d中僅d7有定義,讀時(shí)應(yīng)總為1,若為0則說明內(nèi)部鋰電池已耗盡。 為防止鋰電池在芯片裝入系統(tǒng)前被耗盡,ds12887在出廠時(shí)先關(guān)掉了其內(nèi)部的晶振,編程時(shí)必須首先給寄存器a的dv2dv1dv0位寫入010以打開晶振,然后,讀寄存器d以檢查內(nèi)部鋰電池是否有效;接著根據(jù)需要對寄存器

20、a、b進(jìn)行設(shè)置。當(dāng)需要修改日歷時(shí)鐘時(shí),必須先使set位置1,當(dāng)需要讀日歷時(shí)鐘數(shù)據(jù)時(shí),必須先查詢寄存器a中的uip位,只有當(dāng)其為0時(shí),才能進(jìn)行讀取數(shù)據(jù)。 cpu通過讀ds12887的內(nèi)部時(shí)標(biāo)寄存器得到當(dāng)前的時(shí)間和日歷,也可通過選擇二進(jìn)制碼或bcd碼初始化芯片的10個(gè)時(shí)標(biāo)寄存器。其114bit非易失性靜態(tài)ram可供用戶使用,對于沒有ram的單片機(jī)應(yīng)用系統(tǒng),可在主機(jī)掉電時(shí)來保存一些重要的數(shù)據(jù)。ds12887的4個(gè)狀態(tài)寄存器用來控制和指出ds12887模塊的當(dāng)前工作狀態(tài),除數(shù)據(jù)更新周期外,程序可隨時(shí)讀寫這4個(gè)寄存器。3.5 液晶lcd16021602液晶顯示模塊,是點(diǎn)陣字符型液晶顯示模塊,可以用來顯示

21、字母,符號,數(shù)字以及簡單的漢字和圖案等信息?!?602”的含義是這類液晶顯示模塊每行能夠顯示16個(gè)字符,一共可以顯示兩行。該液晶顯示模塊,分為帶背光和不帶背光兩類,兩者在應(yīng)用過程中功能基本類似,只是帶背光的模塊更厚一些,通常的背光顏色以黃綠色和藍(lán)色為主。 4 軟件系統(tǒng)設(shè)計(jì) 4.1 程序流程圖在這個(gè)設(shè)計(jì)中,89s51主要功能是存儲程序、根據(jù)程序的內(nèi)容對各個(gè)端口進(jìn)行判斷并做出相應(yīng)的處理;ds12887主要的功能是控制時(shí)、分、秒的顯示lcd1602主要的功能是將所要顯示的顯示出來。主程序主要實(shí)現(xiàn)了從ds12887各時(shí)間單元中讀出數(shù)據(jù)并送到lcd1602中顯示的功能,同時(shí)檢測有沒有按鍵按下,如果有鍵被

22、按下,則執(zhí)行按鍵處理子程序。首先進(jìn)行ds12887時(shí)鐘芯片和lcd1602的初始化函數(shù),然后進(jìn)行按鍵掃描,不斷地檢測按鍵是否按下,讀取ds12887時(shí)鐘芯片的數(shù)據(jù),并且送到液晶顯示器顯示;當(dāng)數(shù)據(jù)發(fā)生變化時(shí)候,重新進(jìn)行掃描寫入。流程圖如圖5所示, 圖5 程序流程圖5 調(diào)試結(jié)果(如圖6-1和6-2)圖6-1 程序第一次運(yùn)行后,初始化時(shí)間顯示為00:00:00,即6位數(shù)碼管顯示為00.00.00。通過鍵盤mon設(shè)定小時(shí)為00,通過鍵盤last設(shè)定分鐘為34,通過鍵盤next設(shè)定秒為52,為00:36:52兩分鐘后即在00.52時(shí)關(guān)掉電源,等待2分鐘后再打開電源,這時(shí)時(shí)間應(yīng)為00.36.52,圖6-2

23、6 小結(jié)通過這次課程設(shè)計(jì),我對單片機(jī)的應(yīng)用有了更深的認(rèn)識。同時(shí),也初步掌握了通過芯片資料所給出的各種信息,應(yīng)用該芯片的能力。我在設(shè)計(jì)過程中,學(xué)會了總線的應(yīng)用以及標(biāo)號規(guī)則。這是一個(gè)很大收獲,可以在以后的應(yīng)用中簡化電路,在以后的實(shí)際工作和學(xué)習(xí)中帶來很大的便利。通過這次設(shè)計(jì),我對lcd1602有了進(jìn)一步的了解和認(rèn)識,對它的應(yīng)用更加熟練。雖然在這次設(shè)計(jì)中沒有用到該功能。在這次設(shè)計(jì)中我要感謝我的指導(dǎo)老師牟琳,是在牟琳老師的幫助下我才能順利的完成該設(shè)計(jì)。對此我表示深深的誠摯的謝意和崇高的敬意。 參考文獻(xiàn):1 何立民.單片機(jī)應(yīng)用技術(shù)選編m. 北京:北京航空航天大學(xué)出版社,1993.2 張毅剛. 單片機(jī)原理及

24、應(yīng)用m. 北京:高等教育出版社,2004.3 郭天祥. 新概念51單片機(jī)c語言教程m:入門、提高、開發(fā)、拓展全攻略.電子工業(yè)出版社,2009.4 莫樹.培劉夏. 基于ds12887的時(shí)鐘設(shè)計(jì)m.科技創(chuàng)新導(dǎo)報(bào),2011.5 孫佳玲.基于單片機(jī)的多功能數(shù)字時(shí)鐘系統(tǒng)設(shè)計(jì)m.吉林工程技術(shù)師范學(xué)院學(xué)報(bào),2009. 6 李大有.單片機(jī)應(yīng)用與設(shè)計(jì)m.電子工業(yè)大學(xué)出版社,1998年.7 鐘睿.mcs-51 單片機(jī)原理及應(yīng)用開發(fā)技術(shù)m.北京:中國鐵道出版社,2006.8王幸之.at89系列單片機(jī)原理與接口技術(shù)m.北京:北京航空航天大學(xué)出版社,2004.附件 程序代碼;按“next”鍵,調(diào)整秒位;按“l(fā)ast”鍵

25、,調(diào)整分位;按"mon"鍵,調(diào)整時(shí)位;outbit equ 0e101h ; 位控制口 clk164 equ 0e102h ; 段控制口(接164時(shí)鐘位)dat164 equ 0e102h ; 段控制口(接164數(shù)據(jù)位)in equ 0e103h ; 鍵盤讀入口ledbuf equ 60h ; 顯示緩沖 ljmp startledmap: ; 八段管顯示碼 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h db 00hdelay: ; 延時(shí)子程序 mov r

26、7, #00delayloop: djnz r7, delayloop djnz r6, delay retdisplayled: mov r0, #ledbuf mov r1, #6 ; 共6個(gè)八段管 mov r2, #00000001b ; 從左邊開始顯示loop: mov dptr, #outbit mov a, #0 movx dptr, a ; 關(guān)所有八段管 mov a, r0 mov b, #8 ; 送164dlp: rlc a mov r3, a mov acc.0, c mov dptr, #dat164 anl a,#0fdh movx dptr, a mov dptr, #

27、clk164 orl a,#02h movx dptr, a anl a,#0fdh movx dptr, a mov a, r3 djnz b, dlp mov dptr, #outbit mov a, r2 movx dptr, a ; 顯示一位八段管 mov r6, #1 call delay mov a, r2 ; 顯示下一位 rl a mov r2, a inc r0 djnz r1, loop rettestkey: mov dptr, #outbit mov a, #0 movx dptr, a ; 輸出線置為0 mov dptr, #in movx a, dptr ; 讀入鍵狀

28、態(tài) cpl a anl a, #0fh ; 高四位不用 retkeytable: ; 數(shù)字鍵碼定義 db 00h, 01h, 04h, 07h db 0fh, 02h, 05h, 08h db 0eh, 03h, 06h, 09h db 0dh, 0ch, 0bh, 0ah db 10h,11h,12h,13h,14h db 15h,16h,10h,10h,10hgetkey: mov dptr, #outbit mov p2, dph mov r0, #low(in) mov r1, #00100000b mov r2, #6kloop: mov a, r1 ; 找出鍵所在列 cpl a m

29、ovx dptr, a cpl a rr a mov r1, a ; 下一列 movx a, r0 cpl a anl a, #0fh jnz goon1 ; 該列有鍵入 djnz r2, kloop mov r2, #0ffh ; 沒有鍵按下, 返回 0ffh sjmp exitgoon1: mov r1, a ; 鍵值 = 列 x 4 + 行 mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r2-1)*4 mov a, r1 ; r1中為讀入的行值 mov r1, #4loopc: rrc a ; 移位找出所在行 jc exit inc r2 ; r

30、2 = r2+ 行值 djnz r1, loopcexit: mov a, r2 ; 取出鍵碼 mov dptr, #keytable movc a, a+dptr mov r2, awaitrelease: mov dptr, #outbit ; 等鍵釋放 clr a movx dptr, a mov r6, #10 call delay call testkey jnz waitrelease mov a, r2 retstart: mov r6,#02h call delay mov 20h,#00h mov 21h,#00h mov 22h,#00h mov sp, #40h mov

31、dptr,#0e100h mov a,#03h movx dptr,astart1:mov dptr,#0fe0ah movx a,dptr anl a,#70h cjne a,#20h,start2 ;判斷晶振打開否? sjmp start3start2: mov dptr,#0fe0bh ;設(shè)置set=0,芯片正常工作.24/12=1,選24小時(shí)制. mov a,#82h movx dptr,a mov r0,#06h mov dptr,#0fe00h ;時(shí)分秒清零 mov a,#00hretun0:movx dptr,a inc dptr djnz r0,retun0 mov dptr,

32、#0fe0ah mov a,#27h movx dptr,a ;打開晶振,輸出方波。 inc dptr mov a,#5ah movx dptr,astart3: mov dptr,#0fe0ah movx a,dptr jnb acc.7,loop12 mov r5,#4dh djnz r5,$loop12:mov dptr,#0fe0bh mov a,#5ah movx dptr,aloop13:mov dptr,#0fe00h ;讀秒,分,時(shí) mov r1,#60h mov r0,#03hloop11:movx a,dptr lcall ptreg ;讀取的值,進(jìn)行拆字后送顯示緩沖器60

33、h-65h inc dptr inc dptr djnz r0,loop11 mov dptr,#0fe0bh call displayled ; 調(diào)用顯示子程序 call testkey ; 有鍵入? jz loop12 ; 無鍵入, 繼續(xù)顯示 call getkey ; 有鍵入,讀入鍵碼 cjne a,#14h,keep0 sjmp keep1 ;是next鍵,調(diào)整秒位keep0: cjne a,#15h,keep2 sjmp keep3 ;是last鍵,調(diào)整分位keep2: cjne a,#16h,start1 sjmp keep5 ;是mon鍵,調(diào)整時(shí)位keep1: mov dptr,

34、#0fe0bh mov a,#0dah movx dptr,a mov a,20h lcall hbcd cjne a,#60h,loop20 ;秒位不能超過60秒 mov 20h,#00h sjmp loop13loop20:mov dptr,#0fe00h movx dptr,a inc 20h sjmp loop13keep3: mov dptr,#0fe0bh mov a,#0dah movx dptr,a mov a,21h lcall hbcd cjne a,#60h,loop21 ;分位不能超過60分 mov 21h,#00h sjmp loop13loop21:mov dptr

35、,#0fe02h movx dptr,a inc 21h sjmp loop13keep5: mov dptr,#0fe0bh mov a,#0dah movx dptr,a mov a,22h lcall hbcd cjne a,#24h,loop22 ;時(shí)位不能超過24小時(shí) mov 22h,#00h sjmp loop13loop22:mov dptr,#0fe04h movx dptr,a inc 22h sjmp loop13ptreg: push dph ;拆字子程序 push dpl push acc push b mov b,a anl a,#0fh mov dptr,#ledm

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論