




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要隨著科學(xué)技術(shù)的不斷發(fā)展,電子時(shí)鐘已經(jīng)成為一種普遍的工藝了。日常生活中到處可見(jiàn)。電子時(shí)鐘的設(shè)計(jì)有很多種,普遍的電子時(shí)鐘是基于單片機(jī)用匯編語(yǔ)言做成的擴(kuò)展。ARM功能也一樣且更精確。本文是詳細(xì)介紹基于ARM上做成的電子時(shí)鐘。這個(gè)電子時(shí)鐘的硬件是用LPC2103板, 8個(gè)按鍵和8個(gè)數(shù)碼管組成的鍵盤顯示板,還有LED燈當(dāng)成鬧鈴使用。此時(shí)鐘還可以當(dāng)成秒表使用。這是一個(gè)基于ARM實(shí)現(xiàn)多功能的電子時(shí)鐘。關(guān)鍵詞:ARM;數(shù)碼顯示管;按鍵;LED燈;目 錄前言 3第一章 概述 41.1 電子時(shí)鐘概述 4第二章工作原理 52.1系統(tǒng)框圖 52.2時(shí)鐘的工作原理與功能 5第三章硬件電路設(shè)計(jì) 63.1鍵盤顯示板的電
2、路設(shè)計(jì) 63.12數(shù)碼管的電路設(shè)計(jì) 83.12鍵盤電路設(shè)計(jì) 83.14蜂鳴器電路的設(shè)計(jì) 83.15LPC2103的電路設(shè)計(jì) 9第四章軟件設(shè)計(jì) 114.1軟件設(shè)計(jì) 11第五章調(diào)試過(guò)程 185.1調(diào)試過(guò)程 185.2 總結(jié) 18附錄 18參考文獻(xiàn) 20謝辭 20前言時(shí)鐘是人們生活中必不可少的一種工具,更是更是在人類生產(chǎn),生活,學(xué)習(xí)等多個(gè)領(lǐng)域得到廣泛的應(yīng)用。然而隨著時(shí)間的推移,尤其是在現(xiàn)在科技的發(fā)達(dá),生活水平高,什么都講究效率的年代。人們不僅對(duì)時(shí)鐘的精度要求高,而且對(duì)時(shí)鐘的功能的要求也越來(lái)越多。時(shí)鐘已不僅僅是一種用來(lái)顯示時(shí)間的工具,而是在很多實(shí)際應(yīng)用中它還需要能夠?qū)嵏嗟钠渌δ?。比如日歷顯示功能,
3、秒表功能,鬧鐘功能,溫度或濕度的測(cè)量電壓測(cè)量等。時(shí)鐘數(shù)字化給人們的生活帶來(lái)了極大的方便,而且也大大地?cái)U(kuò)展了鐘表原先的保濕功能。諸如定時(shí)自動(dòng)報(bào)警,按時(shí)自動(dòng)鬧鈴,定時(shí)廣播,各種定時(shí)電氣的自動(dòng)啟用等。這些功能都是一鐘表數(shù)字化為基礎(chǔ)的??梢哉f(shuō)設(shè)計(jì)多功能數(shù)字時(shí)鐘的意義已不不只在于數(shù)字時(shí)鐘本身,更大的意義在于多功能數(shù)字時(shí)鐘在許多實(shí)時(shí)控制系統(tǒng)中的應(yīng)用。在很多實(shí)際應(yīng)用中,只要對(duì)數(shù)字時(shí)鐘的程序和硬件電路加以一定的修改,便可以得到實(shí)施控制的實(shí)用系統(tǒng),從而應(yīng)用到實(shí)際工作與生產(chǎn)中去。因此,研究數(shù)字時(shí)鐘及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。怎樣讓時(shí)鐘更好的為我們服務(wù)?怎樣讓時(shí)鐘更符合實(shí)際應(yīng)用的需求?這就要求人們不斷設(shè)計(jì)出新
4、型時(shí)鐘,不斷設(shè)計(jì)出適合實(shí)際應(yīng)用的多功能時(shí)鐘。本設(shè)計(jì)方案正是根據(jù)以上所述并結(jié)合日常生活中對(duì)時(shí)鐘功能需求的分析,運(yùn)用ARM編寫技術(shù),設(shè)計(jì)出一個(gè)適合日常生活需要的多功能數(shù)字時(shí)鐘。此多功能數(shù)字時(shí)鐘除了傳統(tǒng)的顯示時(shí)間功能之外還有日歷功能以及秒表及定時(shí)鬧鐘功能。第一章概述1.1 電子時(shí)鐘概述加入世貿(mào)組織以后,中國(guó)會(huì)面臨激烈的競(jìng)爭(zhēng)。這種競(jìng)爭(zhēng)將是一場(chǎng)技實(shí)力、管理水平和人才素質(zhì)的較量,風(fēng)險(xiǎn)和機(jī)遇共存。于是我們?cè)趯W(xué)習(xí)ARM基礎(chǔ)上,要會(huì)做成多功能的時(shí)鐘。電子時(shí)鐘是要用硬件和軟件組成?,F(xiàn)在設(shè)計(jì)的電子時(shí)鐘的硬件由LPC2103,鍵盤顯示板和蜂鳴器組成,軟件由基于ARM編寫程序。LPC2103是一個(gè)基于支持實(shí)時(shí)仿真的16
5、/32位ARM7 TDMI-S CPU的微控制器,并帶有32kB的嵌入高速Flash存儲(chǔ)器,128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。較小的封裝和極低的功耗使LPC2103適用于訪問(wèn)控制器和POS機(jī)等小型應(yīng)用系統(tǒng)中;由于內(nèi)置了寬范圍的串行通信接口(2個(gè)UART、SPI、SSP和2個(gè)I2C)和8KB的片內(nèi)SRAM,LPC2103也適合用在通信網(wǎng)關(guān)和協(xié)議轉(zhuǎn)換器中。32/16位定時(shí)器、增強(qiáng)型10位ADC、定時(shí)器輸出匹配PWM特性、多達(dá)13個(gè)邊沿、電平觸發(fā)的外部中斷、32條高速GPIO,使得LPC2103微控制器特別適用于工業(yè)控制和醫(yī)療系統(tǒng)中。鍵盤顯示板是用按鍵控制
6、LED數(shù)碼管的顯示。不同的按鍵及不同的按鍵次數(shù)已表明不同的功能使數(shù)碼管顯示不同功能。鍵盤顯示板有5個(gè)排針,分別是要來(lái)接電源,地,輸入數(shù)據(jù)引腳,檢測(cè)按鍵引腳,輸入位碼和段碼的引腳。蜂鳴器是輸入低電平就鳴叫的。鍵盤顯示板和蜂鳴器都是用LPC2103的CPU控制數(shù)據(jù)的。第二章工作原理2.1系統(tǒng)框圖 系統(tǒng)是以LPC2103為核心,由按鍵向2103輸入信號(hào),向LED顯示板和蜂鳴器發(fā)送信號(hào)。系統(tǒng)的基本工作的框圖如圖2.1.圖2.1系統(tǒng)框圖2.2時(shí)鐘的工作原理與功能用接在電腦上的串口線與電源線接到LPC2103上,并用導(dǎo)線把LPC2103上的P0.4,P0.5,P0。6與鍵盤顯示板連接。P0.4引腳為SCK
7、(SPI0)功能P0.5為GPIO的功能。P0.6引腳設(shè)置為MSOI(SPI0)功能 還要把LPC2103上P0.16引腳與蜂鳴器連接。鍵盤顯示板與蜂鳴器各接上電源線和地線。運(yùn)行程序時(shí),數(shù)據(jù)輸入,利用74LS164譯碼器給數(shù)碼管。在LPC2103開發(fā)系統(tǒng)中,均采用了 8 位數(shù)碼管動(dòng)態(tài)掃描顯示。它將所數(shù)碼管的 8 個(gè)段線相應(yīng)地并接在一起,并接到LPC2103的P0.4 口,由P0.4口控制字段輸出。各位數(shù)碼管的共陰極由LPC2103的 P0.6 口控制Q20Q27 來(lái)實(shí)現(xiàn) 8 位數(shù)碼管的位輸出控制。如圖2.1這樣,對(duì)于一組數(shù)碼管動(dòng)態(tài)掃描顯示需要由兩組信號(hào)來(lái)控制:一組是字段輸出口輸出的形代碼,用來(lái)
8、控制顯示的字形,稱為段碼;另一組是位輸出口輸出的控制信號(hào),用來(lái)選第幾位數(shù)碼管工作,稱為位碼。 由于各位數(shù)碼管的段線并聯(lián),段碼的輸出對(duì)各位數(shù)碼管來(lái)說(shuō)都是相同的。因此,在同一刻如果各位數(shù)碼管的位選線都處于選通狀態(tài)的話,8 位數(shù)碼管將顯示相同的字符。若要各數(shù)碼管能夠顯示出與本位相應(yīng)的字符,就必須采用掃描顯示方式。即在某一時(shí)刻,只讓某位的位選線處于導(dǎo)通狀態(tài),而其它各位的位選線處于關(guān)閉狀態(tài)。同時(shí),段線上輸出相應(yīng)位顯示字符的字型碼。這樣在同一時(shí)刻,只有選通的那一位顯示出字符,而其它各位則是熄的,如此循環(huán)下去,就可以使各位數(shù)碼管顯示出將要顯示的字符。 雖然這些字符是在不同時(shí)刻出現(xiàn)的,而且同一時(shí)刻,只有一位顯
9、示,其它各位熄滅,但于數(shù)碼管具有余輝特性和人眼有視覺(jué)暫留現(xiàn)象,只要每位數(shù)碼管顯示間隔足夠短,給人眼的視覺(jué)印象就會(huì)是連續(xù)穩(wěn)定地顯示。圖2.12數(shù)碼管電路圖這個(gè)時(shí)鐘有如下的功能如下一是顯示時(shí)間,則當(dāng)開始運(yùn)行時(shí)就會(huì)是顯示定時(shí)的時(shí)間。如果想改變時(shí)間了就按下按鍵KEY2,則是分鐘加或減1.如果按下按鍵KEY3,則是小時(shí)加或減1。當(dāng)你在按下按鍵KEY1時(shí)則是顯示日歷,如果按下按鍵KEY4,則是天數(shù)加或減1.如果按下按鍵KEY5,則是月數(shù)加或減1。如果你再按下按鍵KEY1則是實(shí)現(xiàn)秒表,按下按鍵KEY7,則是啟動(dòng)秒表,如果再按下按鍵KEY7就會(huì)停止。如果想要從新開始計(jì)時(shí),只要按下按鍵KEY8,就可以使秒表復(fù)位
10、。如果你再按下按鍵KEY1,你就可以定時(shí),時(shí)間到了蜂鳴器就會(huì)響。當(dāng)然,你想加或減了,就有你自己決定了。為了方便,我們把按鍵KEY6設(shè)計(jì)成方向鍵。它默認(rèn)為是加1的,當(dāng)你想減1時(shí),你只要在按一下按鍵KEY6即可。第三章硬件電路設(shè)計(jì)3.1鍵盤顯示板的電路設(shè)計(jì) 鍵盤顯示板是由電阻,電容,74LS164,排針,按鍵,數(shù)碼管,板組成的。如圖3.1所示是鍵盤顯示板的原理圖。如圖3.12是組成鍵盤顯示板的器件。圖3.13是實(shí)圖。圖3.1鍵盤顯示板原理圖名稱封裝數(shù)量按鍵SPST-28排針HDR1X51電容CAPR2.5-51電容CC2012-08051電阻AXLAL9數(shù)碼管874HC1642圖3.12鍵盤顯示板
11、部件清單圖3.133.12數(shù)碼管的電路設(shè)計(jì) 數(shù)碼管又叫LED數(shù)碼管。LED是發(fā)光二極管的縮寫。一個(gè)LED數(shù)碼管是由8個(gè)發(fā)光二極管構(gòu)成的。每一個(gè)發(fā)光二極管的陽(yáng)極都接一個(gè)電阻到外部引腳上。用陰極做公共端,連接在一起接地。如圖3.14。器件表格如3.15圖3.14圖3.16名稱數(shù)量備注發(fā)光二極管64組成8個(gè)8段數(shù)碼管表3,15數(shù)碼管的器件3.13鍵盤電路設(shè)計(jì)鍵盤顯示板上總共使用了8個(gè)獨(dú)立按鍵。獨(dú)立按鍵是每個(gè)按鍵都有一個(gè)信號(hào)線與機(jī)電路相連,所有按鍵有一個(gè)公共地或公共正端,每個(gè)鍵相互獨(dú)立互不影響。按鍵相互獨(dú)立的接通一條輸入數(shù)據(jù)線,每個(gè)鍵的工作不會(huì)影響其它的I/0口,如圖3.153.14蜂鳴器電路的設(shè)計(jì)該
12、蜂鳴器是一個(gè)無(wú)源蜂鳴器,要使用PWM驅(qū)動(dòng)。它是由一個(gè)1K的電阻,PNP三極管和蜂鳴器組成了蜂鳴器電路。如圖3.16,實(shí)圖3.17,圖3.18器件表。圖3.16蜂鳴器電路圖 圖3.17 蜂鳴器實(shí)圖名稱數(shù)量備注排針1引腳連接三極管1NPN型PLC21031主板鳴蜂器1當(dāng)成鬧鐘精密電阻1K*1(%1)10K*1(%1)萬(wàn)用表部分TL431部分圖3.18蜂鳴器部件3.15LPC2103的電路設(shè)計(jì)一:LPC2103 特性 16/32 位 ARM7 TDMI-S微控制器,超小 LQFP48 封裝; 8KB 的片內(nèi)靜態(tài) RAM 和 32KB 的片內(nèi) Flash 程序存儲(chǔ)器。128 位寬度接口/加速器可實(shí)現(xiàn)高
13、達(dá) 70 MHz 工作頻率; 通過(guò)片內(nèi) boot 裝載程序?qū)崿F(xiàn)在系統(tǒng)/在應(yīng)用編程(ISP/IAP)。單個(gè)Flash 扇區(qū)或整片擦除時(shí)100ms,256字節(jié)編程時(shí)間為1ms; 嵌入式 ICE RT 通過(guò)片內(nèi) RealMonitor軟件提供實(shí)時(shí)調(diào)試; 10位A/D轉(zhuǎn)換器提供8路模擬輸入(每個(gè)通道的轉(zhuǎn)換時(shí)間低至 2.44us),以及特定的結(jié)果寄存器來(lái)最大限度地減少中斷開銷; 2個(gè)32位定時(shí)器/外部事件計(jì)數(shù)器(帶7路捕獲和7路比較通道); 16位定時(shí)器/外部事件計(jì)數(shù)器(帶 3 路捕獲和 7 路比較通道); 低功耗實(shí)時(shí)時(shí)鐘(RTC)具有獨(dú)立的電源和特定32KHz時(shí)鐘輸入; 多個(gè)串行接口,包括2個(gè)UART
14、(16C550協(xié)議標(biāo)準(zhǔn))、2個(gè)高速12C總線(400 Kbit/s)、SPI和具有緩沖作用和數(shù)據(jù)長(zhǎng)度可變功能的 SSP; 向量中斷控制器(VIC),可配置優(yōu)先級(jí)和向量地址; 多達(dá) 32 個(gè)通用 I/O口(可承受 5V電壓); 多達(dá) 13 個(gè)邊沿、電平觸發(fā)的外部中斷管腳; 通過(guò)一個(gè)可編程的片內(nèi) PLL(100us 的設(shè)置時(shí)間)可實(shí)現(xiàn)最大為 70MHz 的CPU操。作頻率,其具有 10MHz25MHz 的輸入頻率; 片內(nèi)集成振蕩器與外部晶體的操作頻率范圍為 125MHz; 低功耗模式包括空閑模式、帶 RTC的睡眠模式和掉電模式; 可通過(guò)個(gè)別使能/禁止外圍功能和外圍時(shí)鐘分頻來(lái)優(yōu)化額外功耗; 通過(guò)外部
15、中斷或 RTC 將處理器從掉電模式中喚醒。二引腳的功能如表3.19PINSEL0引腳名稱00 01 10 11 復(fù)位值9:8P0.4GPIO P0.4SCK0(SPI0)CAP0.1(定時(shí)器0)保留 00 11:10P0.5GPIO P0.5MISO0(SPI0)MAT0.1(定時(shí)器0)保留 00 13:12P0.6GPIO P0.6MOSI0(SPI0)CAP0.2(定時(shí)器0) 保留 00 圖表3.19LPC2103的引腳功能圖3.20芯片及其引腳說(shuō)明第四章軟件設(shè)計(jì)4.1軟件設(shè)計(jì)系統(tǒng)通過(guò)ADS1.2軟件平臺(tái)把十六進(jìn)制轉(zhuǎn)換二進(jìn)制主要是實(shí)現(xiàn)四個(gè)功能,一是顯示時(shí)間,二是顯示日歷,三是實(shí)現(xiàn)秒表,四是
16、定時(shí)鬧鈴。把系統(tǒng)分為了主程序、中斷服務(wù)程序、發(fā)送程序、延時(shí)程序、等幾個(gè)部分,再逐個(gè)編寫,單獨(dú)調(diào)試通過(guò)。程序如下:#include "config.h"#define LED 1<<17uint8 T0Flag = 0;uint8 stop = 1;/秒表uint8 director=1;/加減方向uint8 h=0,m=0;/定時(shí)uint32 msecond=0;uint32 hour=1,minute=4,second=45;uint32 minute1=0,second1=0;uint32 year=11,month=1,date=10,date1=0;/數(shù)
17、碼管顯示的數(shù)據(jù) uint8 selectable8 = 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/送位碼uint8 digitable10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /送段碼uint32 data8;uint32 Key = 1 << 5;/* 函數(shù)名稱:Timer0_InitExt()* 功能描述:TIMER0 初始化* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void delay(int dly) uint32 j,k; for(j = dly; j > 0; j
18、-) for(k = 50;k > 0; k -);void Time0_InitExt() T0TC = 0; /設(shè)置計(jì)時(shí)器初始值為0 T0PR = 0; /預(yù)分頻器不分頻 T0MCR = 0x03; /當(dāng)T0MR0與TC值發(fā)生匹配時(shí),將使TC復(fù)位,并產(chǎn)生中斷標(biāo)志 T0MR0 = Fpclk/400; /設(shè)置定時(shí)器的時(shí)間為2.5毫秒 T0TCR = 0x01; /啟動(dòng)定時(shí)器/* 函數(shù)名稱:void _irq IRQ_Time0()* 功能描述:定時(shí)器timer0中斷服務(wù)程序,這個(gè)中斷的作用就是為了計(jì)時(shí)* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void _irq IRQ_Timer0(void
19、) T0Flag = 1; /定時(shí)器中斷處理,即中斷標(biāo)志 T0IR = 0x01; /清除中斷標(biāo)志 VICVectAddr = 0x00; /通知VIC中斷處理結(jié)束,清零表示為下一次中斷做準(zhǔn)備/* 函數(shù)名稱:void IRQ_Init()* 功能描述:設(shè)置定時(shí)器TIMR0中斷IRQ* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void IRQ_Init() VICIntSelect = 0x00; /所有中斷分配為IRQ中斷 VICVectCntl0 = 0x20 | 0x04; /設(shè)置定時(shí)器中斷分配為向量IRQ通道0,即其具有最高優(yōu)先級(jí) VICVectAddr0 = (uint32)IRQ_Timer
20、0; /向量IRQ通道0的中斷服務(wù)程序地址為IRQ_Timer0,當(dāng)產(chǎn)生中斷時(shí) /就到地址為IRQ_Timer0這個(gè)地點(diǎn)執(zhí)行程序,即執(zhí)行函數(shù)IRQ_Timer0 VICIntEnable = (1 << 4); /定時(shí)器中斷使能/* 函數(shù)名稱:void CONVBIT()* 功能描述:/給全局變量數(shù)組data8賦值* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void CONVBIT0(void) data0 = second % 10; /個(gè)位 data1 = second / 10; /十位 data2 = 11; /百位 data3 = minute % 10; /千位 data4 =
21、 minute / 10; /萬(wàn)位 data5 = 11; /十萬(wàn)位 data6 = hour % 10; /百萬(wàn)位 data7 = hour / 10; /千萬(wàn)位void CONVBIT1(void) data0 = date % 10; /個(gè)位 data1 = date / 10; /十位 data2 = 11; /百位 data3 = month % 10; /千位 data4 = month / 10; /萬(wàn)位 data5 = 11; /十萬(wàn)位 data6 = year % 10; /百萬(wàn)位 data7 = year / 10; /千萬(wàn)位void CONVBIT2(void) data
22、0 = msecond % 10; /個(gè)位 data1 = msecond / 10; /十位 data2 = 11; /百位 data3 = second1 % 10; /千位 data4 = second1 / 10; /萬(wàn)位 data5 = 11; /十萬(wàn)位 data6 = minute1 % 10; /百萬(wàn)位 data7 = minute1 / 10; /千萬(wàn)位void CONVBIT3(void) data0 =0; /個(gè)位 data1 =0; /十位 data2 = 11; /百位 data3 = m % 10; /千位 data4 = m / 10; /萬(wàn)位 data5 = 11
23、; /十萬(wàn)位 data6 = h%10; /百萬(wàn)位 data7 = h/10; /千萬(wàn)位/* 函數(shù)名稱:void MSPI_Init()* 功能描述:初始化SPI接口,并設(shè)置為主機(jī)* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void MSPI_Init() SPI_SPCCR = 0x52; SPI_SPCR = (0 << 3) | /CPHA = 0,數(shù)據(jù)在SCK的第一個(gè)跳變沿(時(shí)鐘沿)采樣。傳輸從SSEL信號(hào)激活時(shí)開始, /并在SSEL信號(hào)無(wú)效時(shí)結(jié)束 (1 << 4) | /CPOL = 1,時(shí)鐘為低電平有效 (1 << 5) | /設(shè)置為主機(jī) (0 <
24、< 6) | /LSBF = 0時(shí),SPI數(shù)據(jù)據(jù)MSB(即最高位(位7))在先 (1 << 7); /SPI中斷使能/* 函數(shù)名稱:void MSendData(uint8 data)* 功能描述:向SPI總線發(fā)送數(shù)據(jù),即發(fā)送位碼和段碼* 入口參數(shù):data表示需要發(fā)送的數(shù)據(jù)* 出口參數(shù):*/void MSendData(uint8 data) SPI_SPDR = data; /發(fā)送數(shù)據(jù) while(SPI_SPSR & 0x80) = 0); /等待SPIF置位(當(dāng)SPSR狀態(tài)寄存器的第七位(功能為SPIF)置位, /表示一次SPI數(shù)據(jù)傳輸完畢,即等待數(shù)據(jù)發(fā)送完畢
25、/* 函數(shù)名稱:int main (void)* 功能描述:實(shí)現(xiàn)數(shù)據(jù)的顯示* 入口參數(shù):無(wú) * 出口參數(shù):無(wú)*/int main (void) / add user source code uint32 i = 0,function=0; /定義i初始值為0,i表示的是所顯示的數(shù)據(jù)在數(shù)碼管的第幾位,顯示一位后,執(zhí)行i+;使i加1/這樣就顯示下一位數(shù),直到第八位,也就是i等于8時(shí),給i賦值為0,這樣就可循環(huán)顯示數(shù)據(jù) uint32 W = 0,ms=0; uint8 Tk = 0x09; uint8 h1=0,m1=0; PINSEL0 = (0x01 << 8) | /設(shè)置p0.4引
26、腳為SCK(SPI0)功能 p0.5s->Gpio (0x01 << 12); /將p0.6引腳設(shè)置為MSOI(SPI0)功能 PINSEL1 =0x00; IODIR |=LED; IOSET |=LED; MSPI_Init(); /功能是初始化SPI接口,并設(shè)置為主機(jī) Time0_InitExt(); /定時(shí)器timer0中斷服務(wù)程序,這個(gè)中斷的作用就是為了計(jì)時(shí) IRQEnable(); /IRQ中斷使能 IRQ_Init(); while(1) if(T0Flag) /如果產(chǎn)生中斷 T0Flag = 0; /使計(jì)時(shí)器重新開始計(jì)時(shí) while(W = 4) /當(dāng)計(jì)時(shí)器的
27、值經(jīng)過(guò)了4*2.5毫秒時(shí),將 W 清零,即重新計(jì)時(shí)(指W重新計(jì)時(shí)), W = 0; ms+; if(function=0) CONVBIT0(); /并將數(shù)組CS中的數(shù)據(jù)賦值給數(shù)組data, else if(function=1) CONVBIT1(); else if(function=2) CONVBIT2(); else if(function=3) CONVBIT3(); if(stop=0) msecond+; if(msecond>=100) msecond=0;second1+; if(second1>=60) second1=0;minute1+; / switch
28、(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12:date1=31; break; case 2:date1=28; break; case 4: case 6: case 9: case 11:date1;/ if(ms>=100) ms=0; second+; if(second>=60) second=0;minute+; if(minute>=60) minute=0;hour+; if(hour>=24) hour=0;date+; if(date>date1) date=1
29、;month+; if(month>12) month=1;year+; W +; / W 自加2.5毫秒 / if(IO0PIN & Key) != 0) /按鍵處理初始化 uint8 Tk = 0x09; if(Tk = i) switch(Tk) case 1:function=(function+1)%4; break; case 2:if(function=0) if(director=1) minute+; else if(minute>0) minute-; else minute=59; if(function=3)m=(m+1)%60; break; ca
30、se 3:if(function=0) if(director=1) hour+; else if(hour>0) hour-; else hour=23; if(function=3) h=(h+1)%23; break; case 4:if(function=1) if(director=1)date+; else if(date>1) date-; else date=date1; if(function=3) h1=h;m1=m; break; case 5:if(function=1) if(director=1) month+; else if(month>1)
31、month-; else month=12; break; case 6:director=(director+1)%2; break; case 7:if(function=2) stop=(stop+1)%2; break; case0:if(function=2)msecond=0;second1=0;minute1=0; Tk = 0x09; else if(IO0PIN & Key) = 0) delay(100); if(IO0PIN & Key) = 0) Tk = i; / if(hour=h1 & minute=m1 & second=0) I
32、OCLR |=LED; else IOSET |=LED; / if(datai=11) MSendData(0x40); else MSendData(digitabledatai); /發(fā)送段碼 MSendData(selectablei); /發(fā)送位碼 i +; / i 自加 ,即顯示第 i (即數(shù)碼管上的第 i 位數(shù)字) 位數(shù)字 if(i > 7) /如果第八位數(shù)字顯示完畢,則再重新顯示第一位數(shù)字,如此循環(huán) i = 0; /重新在數(shù)碼管上顯示第 1 位數(shù)字 / return 0;第五章調(diào)試過(guò)程5.1調(diào)試過(guò)程調(diào)試是一個(gè)很重要的過(guò)程,也是一個(gè)很艱巨的任務(wù),經(jīng)常遇到很多意想不的錯(cuò)誤。比如說(shuō),1:對(duì)中斷還不夠熟悉。2:對(duì)LED數(shù)碼管認(rèn)識(shí)不夠等。由于這次的設(shè)計(jì)使用的是LPC2103的開發(fā)板,所以在硬件上不需要太多的去調(diào)試。在利用開發(fā)板硬件資源的基礎(chǔ)上,由于這次的多功能鬧鐘設(shè)計(jì)使用的模塊較多,基本上各個(gè)模塊的調(diào)試是分開進(jìn)行的。主要包括初始化的程序調(diào)試、按鍵子程序調(diào)試、LED顯示調(diào)試這幾部分子程序的調(diào)試。將這三部分調(diào)試成功,那么整個(gè)設(shè)計(jì)的軟件部分也就基本完
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年出口產(chǎn)品代理合同范本
- 2025年資產(chǎn)調(diào)配借貸合同
- 2025年建筑工程用物資遠(yuǎn)程配送合同
- 2025年企業(yè)員工購(gòu)房按揭貸款合同
- 2025年環(huán)保工程服務(wù)合同
- 2025年全球飲品出口合同標(biāo)準(zhǔn)
- 2025年企業(yè)單位派遣員工合同
- 2025年產(chǎn)品策劃商業(yè)機(jī)密保密協(xié)議書轉(zhuǎn)讓合同模板
- 汽車貨運(yùn)物流委托運(yùn)輸合同6篇
- 2025型空調(diào)設(shè)備合同標(biāo)準(zhǔn)樣本
- 2024年廣東省《輔警招聘考試必刷500題》考試題庫(kù)及答案【易錯(cuò)題】
- 中考數(shù)學(xué)總復(fù)習(xí)第一章第3課時(shí)二次根式課件
- 天然氣脫硫完整版本
- 2025年中國(guó)電子煙行業(yè)發(fā)展前景與投資戰(zhàn)略規(guī)劃分析報(bào)告
- 貨物學(xué)基礎(chǔ) 課件 項(xiàng)目一 任務(wù)一 貨物的基本概念
- 2025正規(guī)民政局離婚協(xié)議書
- 無(wú)人機(jī)法律法規(guī)與安全飛行 第2版空域管理
- 初中生物骨干教師研修培訓(xùn)課件對(duì)當(dāng)前我市初中生物課堂教學(xué)的再認(rèn)識(shí)
- 我的小學(xué)生活
- 團(tuán)會(huì):紀(jì)念一二九運(yùn)動(dòng)
- 《商務(wù)溝通-策略、方法與案例》課件 第三章 書面溝通
評(píng)論
0/150
提交評(píng)論