基于DS12C887電子萬年歷設(shè)計(jì)方案
1、設(shè)計(jì)方案
以單片機(jī)AT89C52為主控芯片,外圍采用時(shí)鐘芯片DS12C887,單片機(jī)P0口接DS12C887,P1.0口至P1.3口接按鍵,P1.4口至P1.7口分別接DS12C887的CS口、AS口、RW口、DS口。P2口接液晶顯示器LM016L的D0至D7口,P3.3口接DS12C887的IRQ口,P3.4口、P3.5口分別接LM016L的E口和RS口。
2、系統(tǒng)總體框圖
3、整體功能說明
本設(shè)計(jì)方案基于時(shí)鐘芯片DS12C887做萬年歷設(shè)計(jì)。當(dāng)程序執(zhí)行后,LCD顯示即時(shí)時(shí)間、年月日、星期、溫度。設(shè)置4個(gè)按鍵,S1:設(shè)置鍵S2:上調(diào)鍵;S3:下調(diào)鍵;S4:復(fù)位鍵。操作按鍵可以重新設(shè)置時(shí)間、星期、日期。
基于DS12C887電子萬年歷的制作
所需的元器件介紹
一、單片機(jī)AT89C52介紹
AT89C52是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。引腳功能如圖2.1所示
AT89C52單片機(jī)功能特性概述
AT89C52提供以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM, 32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工 串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C52了降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容。但振蕩器停止工作并禁止其他所有部件工作直到下一個(gè)硬件復(fù)位。
AT89C52單片機(jī)主要引腳功能介紹
AT89S52單片機(jī)共有4個(gè)雙向的8位并行I/O端口(Port),分別記作P0-P3,共有32根口線,各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器所組成。這四個(gè)口除了按字節(jié)尋址以外,還可以按位尋址。由于它們?cè)诮Y(jié)構(gòu)上有一些差異,故各口的性質(zhì)和功能有一些差異。
P0口:P0口是一組8位漏極開路型雙向I/O口,也即為地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口P0寫“1”時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。
P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)。
P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。
P3口:P3是一個(gè)帶有內(nèi)部上拉電阻的位雙向I/O口,P3的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流。其最重要的用途是它的第二功能。其主要第二功能如表格2.1所示。
/EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器,/EA端必須保持低電平(接地)。
XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。
二、時(shí)鐘日歷芯片DS12887
能夠自動(dòng)產(chǎn)生年、月、日、時(shí)、分、秒等時(shí)間信息,芯片內(nèi)部帶有鋰電池,外部掉電時(shí),其內(nèi)部時(shí)間信息能夠保持10年之久;有12小時(shí)制和24小時(shí)制兩種工作模式;時(shí)間的表示方法有兩種:二進(jìn)制數(shù)表示和BCD碼表示。用戶可對(duì)DS12887進(jìn)行編程以實(shí)現(xiàn)多種方波輸出,用戶可對(duì)其內(nèi)部的三路中斷通過軟件進(jìn)行屏蔽。 2.2.1 引腳說明
DS12C887引腳圖如圖2.2
1、Vcc:直流電源+5V輸入
當(dāng)Vcc輸入為+5V時(shí),用戶可以訪問DS12887內(nèi)RAM中的數(shù)據(jù),并可對(duì)其進(jìn)行讀、寫操作;當(dāng)Vcc的輸入小于+4.25V時(shí),禁止用戶對(duì)內(nèi)部RAM進(jìn)行讀、寫操作,此時(shí)用戶不能正確獲取芯片內(nèi)的時(shí)間信息;當(dāng)Vcc的輸入小于+3V時(shí),DS12887會(huì)自動(dòng)將電源切換到內(nèi)部自帶的鋰電池上,以保證內(nèi)部的電路能夠正常工作
2、GND:地
3、MOT:總線模式選擇。當(dāng)MOT接Vcc時(shí)選用Motorola總線模式,當(dāng)MOT接GND時(shí)選用Intel總線模式。
4、SQW:方波輸出。當(dāng)供電電壓Vcc大于4.25V時(shí),SQW腳可進(jìn)行方波輸出,此時(shí)用戶可以通過對(duì)控制寄存器編程來得到13種方波信號(hào)的輸出。
5、AD0~AD7:雙向地址/數(shù)據(jù)總線。
6、AS:地址有效輸入。
7、DS/RD:數(shù)據(jù)選通/讀允許。當(dāng)MOT接Vcc時(shí)作為數(shù)據(jù)選通;當(dāng)MOT接GND時(shí),作為讀允許輸入。
8、R/W:讀/寫允許輸入。若MOT接Vcc,該引腳為高電平時(shí)讀操作,為低電平時(shí)寫操作;若MOT接GND,該引腳作為寫允許輸入。
9、CS:片選輸入。低電平有效。 10、IRQ:中斷請(qǐng)求輸出。低電平有效。
11、RESET:復(fù)位端。低電平有效,復(fù)位操作不影響時(shí)鐘日歷工作。
12、NC:空引腳。 2.2.2 存儲(chǔ)器分配與設(shè)置
DS12887片內(nèi)RAM與寄存器地址分配見圖2.3。
DS12887帶有128字節(jié)片內(nèi)RAM:
1、10字節(jié)的時(shí)標(biāo)寄存器:用來存儲(chǔ)時(shí)間信息,地址00H~09H。CPU可以通過讀取時(shí)標(biāo)寄存器獲得時(shí)間與日歷值,也可以編程設(shè)置其初值,時(shí)標(biāo)寄存器的值可以用二進(jìn)制或BCD碼表示。4字節(jié)的控制寄存器:用來存儲(chǔ)控制信息,地址0AH~0DH。用戶可通過對(duì)控制寄存器編程實(shí)現(xiàn)從SQW引腳輸出多種不同頻率的方波,并可對(duì)其內(nèi)部的三路中斷通過軟件進(jìn)行屏蔽。114字節(jié)作為通用RAM供用戶使用,地址為0EH~7FH
2、UIP:更新周期標(biāo)志。
當(dāng)UIP=1時(shí),表示芯片正處于或即將開始更新周期,在此期間不允許讀寫時(shí)標(biāo)寄存器;當(dāng)UIP=0時(shí),表示沒有更新周期,此時(shí)可讀時(shí)標(biāo)寄存器。
3、DV2~DV0:芯片內(nèi)部振蕩器RTC控制位。當(dāng)芯片復(fù)位后500ms開始第一個(gè)更新周期。將這3位設(shè)置成010,可使芯片以內(nèi)置的32.768kHz的振蕩頻率工作。
4、RS3~RS0:周期中斷可編程方波輸出速率選擇位。
5、SET:允許更新周期位??勺x/寫,不受信號(hào)的影響。當(dāng)SET=0時(shí),芯片處于正常更新狀態(tài);當(dāng)SET=1時(shí),芯片正常更新被禁止。
6、PIE、AIE、UIE:分別為周期中斷、鬧鐘中斷、更新周期結(jié)束中斷允許位。各位分別為“1”時(shí)允許發(fā)出相應(yīng)的中斷,由端輸出。其中,UIE位在復(fù)位或設(shè)置SET為1時(shí)清零。
7、SQWE:方波輸出允許位。當(dāng)SQWE=1,按寄存器A輸出速率選擇位所確定的頻率輸出方波;當(dāng)SQWE=0,SQW腳保持低電平。
8、DM:時(shí)標(biāo)寄存器格式選擇位。DM=0,為BCD碼;DM=1,為二進(jìn)制碼。
9、24/12:24小時(shí)或12小時(shí)模式設(shè)置位。24/12=1,選擇24小時(shí)工作模式;24/12=0,選擇12小時(shí)工作模式。
10、DSE:夏令時(shí)允許標(biāo)志位。當(dāng)DSE=1時(shí),夏時(shí)制設(shè)置有效。在四月的第一個(gè)星期日的1:59:59 AM,調(diào)到3:00:00 AM;在十月的最后一個(gè)星期日的1:59:59 AM,調(diào)到1:00:00 AM;當(dāng)DSE=0無效。寄存器C 為中斷標(biāo)志位寄存器。
11、IRQF:中斷申請(qǐng)標(biāo)志位。
該位邏輯表達(dá)式為:IRQF = PF · PIE+AF · AIE+UF · UIE。當(dāng)IRQF=1時(shí),IRQ引腳將輸出低電平。PF、AF、UF:這三位分別為周期中斷、鬧鐘中斷、更新周期結(jié)束中斷標(biāo)志位。只要滿足各中斷的條件,相應(yīng)的中斷標(biāo)志位將置“1”。 10、 VRT:芯片內(nèi)部RAM與寄存器內(nèi)容有效標(biāo)志位。該位為“1”時(shí),表示芯片內(nèi)部RAM和寄存器內(nèi)容有效。讀該寄存器后,該位將自動(dòng)置“1”。
三、液晶顯示器LM016L
LM016L引腳 第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度。
第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。
第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
第15腳:背光源正極。
第16腳:背光源負(fù)極
引腳圖如圖2.4
控制命令如表格2.2
評(píng)論