版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式課程設(shè)計(jì)報(bào)告PAGEPAGE28摘要隨著科學(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鍵盤顯示板的電路設(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ū)嵏嗟钠渌δ?。比如日歷顯示功能,秒表功能,鬧鐘功能,溫度或濕度的測(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ì)出新型時(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/32位ARM7TDMI-SCPU的微控制器,并帶有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)中。鍵盤顯示板是用按鍵控制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(SPI0)功能P0.5為GPIO的功能。P0.6引腳設(shè)置為MSOI(SPI0)功能還要把LPC2103上P0.16引腳與蜂鳴器連接。鍵盤顯示板與蜂鳴器各接上電源線和地線。運(yùn)行程序時(shí),數(shù)據(jù)輸入,利用74LS164譯碼器給數(shù)碼管。在LPC2103開(kāi)發(fā)系統(tǒng)中,均采用了8位數(shù)碼管動(dòng)態(tài)掃描顯示。它將所數(shù)碼管的8個(gè)段線相應(yīng)地并接在一起,并接到LPC2103的P0.4口,由P0.4口控制字段輸出。各位數(shù)碼管的共陰極由LPC2103的P0.6口控制Q20-Q27來(lái)實(shí)現(xiàn)8位數(shù)碼管的位輸出控制。如圖2.1這樣,對(duì)于一組數(shù)碼管動(dòng)態(tài)掃描顯示需要由兩組信號(hào)來(lái)控制:一組是字段輸出口輸出的形代碼,用來(lái)控制顯示的字形,稱為段碼;另一組是位輸出口輸出的控制信號(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í)刻,只有一位顯示,其它各位熄滅,但于數(shù)碼管具有余輝特性和人眼有視覺(jué)暫留現(xiàn)象,只要每位數(shù)碼管顯示間隔足夠短,給人眼的視覺(jué)印象就會(huì)是連續(xù)穩(wěn)定地顯示。圖2.12數(shù)碼管電路圖這個(gè)時(shí)鐘有如下的功能如下一是顯示時(shí)間,則當(dāng)開(kāi)始運(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ì)停止。如果想要從新開(kāi)始計(jì)時(shí),只要按下按鍵KEY8,就可以使秒表復(fù)位。如果你再按下按鍵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鍵盤顯示板部件清單圖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ì)該蜂鳴器是一個(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位ARM7TDMI-S微控制器,超小LQFP48封裝;8KB的片內(nèi)靜態(tài)RAM和32KB的片內(nèi)Flash程序存儲(chǔ)器。128位寬度接口/加速器可實(shí)現(xiàn)高達(dá)70MHz工作頻率;通過(guò)片內(nèi)boot裝載程序?qū)崿F(xiàn)在系統(tǒng)/在應(yīng)用編程(ISP/IAP)。單個(gè)Flash扇區(qū)或整片擦除時(shí)100ms,256字節(jié)編程時(shí)間為1ms;嵌入式ICERT通過(guò)片內(nèi)RealMonitor軟件提供實(shí)時(shí)調(diào)試;10位A/D轉(zhuǎn)換器提供8路模擬輸入(每個(gè)通道的轉(zhuǎn)換時(shí)間低至2.44us),以及特定的結(jié)果寄存器來(lái)最大限度地減少中斷開(kā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(16C550協(xié)議標(biāo)準(zhǔn))、2個(gè)高速12C總線(400Kbit/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操。作頻率,其具有10MHz~25MHz的輸入頻率;片內(nèi)集成振蕩器與外部晶體的操作頻率范圍為1~25MHz;低功耗模式包括空閑模式、帶RTC的睡眠模式和掉電模式;可通過(guò)個(gè)別使能/禁止外圍功能和外圍時(shí)鐘分頻來(lái)優(yōu)化額外功耗;通過(guò)外部中斷或RTC將處理器從掉電模式中喚醒。二引腳的功能如表3.19PINSEL0引腳名稱00011011復(fù)位值9:8P0.4GPIOP0.4SCK0(SPI0)CAP0.1(定時(shí)器0)保留0011:10P0.5GPIOP0.5MISO0(SPI0)MAT0.1(定時(shí)器0)保留0013:12P0.6GPIOP0.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)秒表,四是定時(shí)鬧鈴。把系統(tǒng)分為了主程序、中斷服務(wù)程序、發(fā)送程序、延時(shí)程序、等幾個(gè)部分,再逐個(gè)編寫,單獨(dú)調(diào)試通過(guò)。程序如下:#include"config.h"#defineLED1<<17uint8T0Flag=0;uint8stop=1;//秒表uint8director=1;//加減方向uint8h=0,m=0;//定時(shí)uint32msecond=0;uint32hour=1,minute=4,second=45;uint32minute1=0,second1=0;uint32year=11,month=1,date=10,date1=0;//數(shù)碼管顯示的數(shù)據(jù)uint8selectable[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//送位碼uint8digitable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//送段碼uint32data[8];uint32Key=1<<5;/**********************************************************************函數(shù)名稱:Timer0_InitExt()**功能描述:TIMER0初始化**入口參數(shù):無(wú)**出口參數(shù):無(wú)******************************************************************/voiddelay(intdly){uint32j,k;for(j=dly;j>0;j--)for(k=50;k>0;k--);}voidTime0_InitExt(){T0TC=0;//設(shè)置計(jì)時(shí)器初始值為0T0PR=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_irqIRQ_Time0()**功能描述:定時(shí)器timer0中斷服務(wù)程序,這個(gè)中斷的作用就是為了計(jì)時(shí)**入口參數(shù):無(wú)**出口參數(shù):無(wú)*******************************************************************/void__irqIRQ_Timer0(void){T0Flag=1;//定時(shí)器中斷處理,即中斷標(biāo)志T0IR=0x01;//清除中斷標(biāo)志VICVectAddr=0x00;//通知VIC中斷處理結(jié)束,清零表示為下一次中斷做準(zhǔn)備}/**********************************************************************函數(shù)名稱:voidIRQ_Init()**功能描述:設(shè)置定時(shí)器TIMR0中斷IRQ**入口參數(shù):無(wú)**出口參數(shù):無(wú)*******************************************************************/voidIRQ_Init(){VICIntSelect=0x00;//所有中斷分配為IRQ中斷VICVectCntl0=0x20|0x04;//設(shè)置定時(shí)器中斷分配為向量IRQ通道0,即其具有最高優(yōu)先級(jí)VICVectAddr0=(uint32)IRQ_Timer0;//向量IRQ通道0的中斷服務(wù)程序地址為IRQ_Timer0,當(dāng)產(chǎn)生中斷時(shí)//就到地址為IRQ_Timer0這個(gè)地點(diǎn)執(zhí)行程序,即執(zhí)行函數(shù)IRQ_Timer0VICIntEnable=(1<<4);//定時(shí)器中斷使能}/**********************************************************************函數(shù)名稱:voidCONVBIT()**功能描述://給全局變量數(shù)組data[8]賦值**入口參數(shù):無(wú)**出口參數(shù):無(wú)*******************************************************************/voidCONVBIT0(void){data[0]=second%10;//個(gè)位data[1]=second/10;//十位data[2]=11;//百位data[3]=minute%10;//千位data[4]=minute/10;//萬(wàn)位data[5]=11;//十萬(wàn)位data[6]=hour%10;//百萬(wàn)位data[7]=hour/10;//千萬(wàn)位}voidCONVBIT1(void){data[0]=date%10;//個(gè)位data[1]=date/10;//十位data[2]=11;//百位data[3]=month%10;//千位data[4]=month/10;//萬(wàn)位data[5]=11;//十萬(wàn)位data[6]=year%10;//百萬(wàn)位data[7]=year/10;//千萬(wàn)位}voidCONVBIT2(void){data[0]=msecond%10;//個(gè)位data[1]=msecond/10;//十位data[2]=11;//百位data[3]=second1%10;//千位data[4]=second1/10;//萬(wàn)位data[5]=11;//十萬(wàn)位data[6]=minute1%10;//百萬(wàn)位data[7]=minute1/10;//千萬(wàn)位}voidCONVBIT3(void){data[0]=0;//個(gè)位data[1]=0;//十位data[2]=11;//百位data[3]=m%10;//千位data[4]=m/10;//萬(wàn)位data[5]=11;//十萬(wàn)位data[6]=h%10;//百萬(wàn)位data[7]=h/10;//千萬(wàn)位}/**********************************************************************函數(shù)名稱:voidMSPI_Init()**功能描述:初始化SPI接口,并設(shè)置為主機(jī)**入口參數(shù):無(wú)**出口參數(shù):無(wú)*******************************************************************/voidMSPI_Init(){SPI_SPCCR=0x52;SPI_SPCR=(0<<3)|//CPHA=0,數(shù)據(jù)在SCK的第一個(gè)跳變沿(時(shí)鐘沿)采樣。傳輸從SSEL信號(hào)激活時(shí)開(kāi)始,//并在SSEL信號(hào)無(wú)效時(shí)結(jié)束(1<<4)|//CPOL=1,時(shí)鐘為低電平有效(1<<5)|//設(shè)置為主機(jī)(0<<6)|//LSBF=0時(shí),SPI數(shù)據(jù)據(jù)MSB(即最高位(位7))在先(1<<7);//SPI中斷使能}/**********************************************************************函數(shù)名稱:voidMSendData(uint8data)**功能描述:向SPI總線發(fā)送數(shù)據(jù),即發(fā)送位碼和段碼**入口參數(shù):data表示需要發(fā)送的數(shù)據(jù)**出口參數(shù):*******************************************************************/voidMSendData(uint8data){SPI_SPDR=data;//發(fā)送數(shù)據(jù)while((SPI_SPSR&0x80)==0);//等待SPIF置位(當(dāng)SPSR狀態(tài)寄存器的第七位(功能為SPIF)置位,//表示一次SPI數(shù)據(jù)傳輸完畢,即等待數(shù)據(jù)發(fā)送完畢}/**********************************************************************函數(shù)名稱:intmain(void)**功能描述:實(shí)現(xiàn)數(shù)據(jù)的顯示**入口參數(shù):無(wú)**出口參數(shù):無(wú)********************************************************************/intmain(void){//addusersourcecodeuint32i=0,function=0;//定義i初始值為0,i表示的是所顯示的數(shù)據(jù)在數(shù)碼管的第幾位,顯示一位后,執(zhí)行i++;使i加1//這樣就顯示下一位數(shù),直到第八位,也就是i等于8時(shí),給i賦值為0,這樣就可循環(huán)顯示數(shù)據(jù)uint32W=0,ms=0;uint8Tk=0x09;uint8h1=0,m1=0;PINSEL0=(0x01<<8)|//設(shè)置p0.4引腳為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í)器重新開(kāi)始計(jì)時(shí)while(W==4)//當(dāng)計(jì)時(shí)器的值經(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[],elseif(function==1)CONVBIT1();elseif(function==2)CONVBIT2();elseif(function==3)CONVBIT3();if(stop==0)msecond++;if(msecond>=100){msecond=0;second1++;}if(second1>=60){second1=0;minute1++;}/////////////////////////////////////////////////////////////////////switch(month){case1:case3:case5:case7:case8:case10:case12:date1=31;break;case2:date1=28;break;case4:case6:case9:case11: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;month++;} if(month>12){month=1;year++;}}}W++;//W自加2.5毫秒/////////////////////////////////////////if((IO0PIN&Key)!=0){//按鍵處理初始化uint8Tk=0x09;if(Tk==i){switch(Tk){case1:function=(function+1)%4;break;case2:if(function==0){if(director==1)minute++;else{if(minute>0)minute--;elseminute=59;}}if(function==3){m=(m+1)%60;}break;case3:if(function==0){if(director==1)hour++;else{if(hour>0)hour--;elsehour=23;}}if(function==3){h=(h+1)%23;}break;case4:if(function==1){if(director==1)date++;else{if(date>1)date--;elsedate=date1;}}if(function==3){h1=h;m1=m;}break;case5:if(function==1){if(director==1)month++;else{if(month>1)month--;elsemonth=12;}}break;case6:director=(director+1)%2;break;case7:if(function==2)stop=(stop+1)%2;break;case0:if(function==2){msecond=0;second1=0;minute1=0;}}Tk=0x09;}}elseif((IO0PIN&Key)==0){delay(100);if((IO0PIN&Key)==0)Tk=i;}////////////////////////////////////////////if(hour==h1&minute==m1&second==0)IOCLR|=LED;elseIOSET|=LED;/////////////////////////////////////////////////////////////if(data[i]==11)MSendData(0x40);elseMSendData(digitable[data[i]]);//發(fā)送段碼MSendData(selectable[i]);//發(fā)送位碼i++;//i自加,即顯示第i(即數(shù)碼管上的第i位數(shù)字)位數(shù)字if(i>7)//如果第八位數(shù)字顯示完畢,則再重新顯示第一位數(shù)字,如此循環(huán)i=0;//重新在數(shù)碼管上顯示第1位數(shù)字//////////////////////////////////////////////////////////////////}}return0;}第五章調(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的開(kāi)發(fā)板,所以在硬件上不需要太多的去調(diào)試。在利用開(kāi)發(fā)板硬件資源的基礎(chǔ)上,由于這次的多功能鬧鐘設(shè)計(jì)使用的模塊較多,基本上各個(gè)模塊的調(diào)試是分開(kāi)進(jìn)行的。主要包括初始化的程序調(diào)試、按鍵子程序調(diào)試、LED顯示調(diào)試這幾部分子程序的調(diào)試。將這三部分調(diào)試成功,那么整個(gè)設(shè)計(jì)的軟件部分也就基本完成了。在該課程設(shè)計(jì)中,采用的集成開(kāi)發(fā)環(huán)境是ADS1.2,在軟件設(shè)計(jì)過(guò)程中,有時(shí)候不小心插入了一個(gè)中文的符號(hào)(如分號(hào)),就會(huì)使軟件編譯不通過(guò),開(kāi)始在這個(gè)錯(cuò)誤上浪費(fèi)不少時(shí)間,但后來(lái)注意到了這個(gè)情況,避免了類似的錯(cuò)誤的發(fā)生。四位的數(shù)碼管采用的是動(dòng)態(tài)顯示模式,刷新頻率為50Hz,另外,由于開(kāi)發(fā)板的硬件采用的是移位寄存器送筆段碼,所以在軟件設(shè)計(jì)方面要用到將8位筆段碼不斷循環(huán)右移,增加了設(shè)計(jì)的難度。起初我認(rèn)為一切程序都編寫得差不多的時(shí)候,燒進(jìn)芯片的程序使數(shù)碼管顯示一片模糊,基本上顯示的都是8,后來(lái)從程序的開(kāi)始查起,終于找到原因,原來(lái)動(dòng)態(tài)顯示程序中,每次只能是一位的數(shù)碼管點(diǎn)亮,但在程序設(shè)計(jì)中,在點(diǎn)亮下一位數(shù)碼管時(shí),忘記了將上一次點(diǎn)亮的位給關(guān)掉,導(dǎo)致四位數(shù)碼管時(shí)同時(shí)被點(diǎn)亮的,最后,在點(diǎn)亮數(shù)碼管前首先將四位數(shù)碼管全部關(guān)閉,再以50Hz的頻率進(jìn)行點(diǎn)亮刷新,顯示方回到正常狀態(tài)。最后就是在這兩個(gè)模塊的基礎(chǔ)上來(lái)對(duì)整體的程序進(jìn)行相關(guān)的調(diào)試和完善。例如在原先設(shè)置有當(dāng)進(jìn)入時(shí)間設(shè)置或者鬧鐘掛起時(shí)有LED點(diǎn)亮進(jìn)行提示,設(shè)置時(shí)間時(shí)相關(guān)的設(shè)置超過(guò)相應(yīng)的極限值,這些在最后的調(diào)試過(guò)程中得到完善,使其工作在正常的狀態(tài),調(diào)試過(guò)程也就這樣基本得到完成。5.2總結(jié)通過(guò)本電子時(shí)鐘的設(shè)計(jì),我學(xué)到了很多東西。首先,在設(shè)計(jì)電子表的過(guò)程中,我們把系統(tǒng)分為了主程序、中斷服務(wù)程序、顯示程序、延時(shí)程序、等幾個(gè)部分,再逐個(gè)編寫,單獨(dú)調(diào)試通過(guò),再連接在一起。大大的減小了工作量,這主要體現(xiàn)在調(diào)試工作中。其次,在多功能電子鐘實(shí)際設(shè)計(jì)過(guò)程中,所有的模塊都是通過(guò)不同進(jìn)制的計(jì)數(shù)器來(lái)實(shí)現(xiàn)其主要功能的,各模塊之間是通過(guò)進(jìn)位信號(hào)連接在一起的。前一級(jí)的進(jìn)位信號(hào)作為下一級(jí)的計(jì)數(shù)clk信號(hào),通過(guò)層次關(guān)系使設(shè)計(jì)思路清晰一開(kāi)始由于程序的設(shè)計(jì)考慮置位調(diào)整。沒(méi)有好的思路,走了不少?gòu)澛?。后?lái)(有人)想到了在程序里設(shè)置總控制端,于是解決了問(wèn)題。和同學(xué)的合作使我的程序更加優(yōu)化。在此次課程設(shè)計(jì)中,更加感到了團(tuán)結(jié)協(xié)作的重要性,當(dāng)一個(gè)人陷入困境人助十分重要的。大家共同商量還可以發(fā)現(xiàn)許多個(gè)人無(wú)法發(fā)現(xiàn)的題。附錄:實(shí)物圖如下圖1顯示燈亮(鬧鐘響)圖2顯示年月日?qǐng)D3顯示秒表圖4顯示時(shí)間謝辭首先,在這里感謝學(xué)校給我們安排了這次課設(shè),使我們有一個(gè)可以自己動(dòng)手的機(jī)會(huì),通過(guò)動(dòng)手,進(jìn)一步熟悉自己所學(xué)的理論知識(shí),體會(huì)自己動(dòng)手得出結(jié)果的那種感覺(jué)。再次,在這要感謝我們的指導(dǎo)老師,老師在我們的實(shí)踐過(guò)程中不提自己的辛苦,耐心講所有的標(biāo)題,幫助我們解決一些程序和調(diào)試,在這表示感謝!感謝這次課程設(shè)計(jì)中給我?guī)椭耐瑢W(xué),是你們的幫助,我才順利的完成了課程設(shè)計(jì)任務(wù)。謝謝你們的幫助!基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開(kāi)發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開(kāi)發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開(kāi)發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開(kāi)發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開(kāi)發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量?jī)x的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無(wú)功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開(kāi)發(fā)基于Cygnal單片機(jī)的μC/OS-Ⅱ的研究基于單片機(jī)的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的
溫馨提示
- 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年茶樓與茶葉原料供應(yīng)商長(zhǎng)期合作協(xié)議4篇
- 二零二四年度員工停薪留職及競(jìng)業(yè)限制合同下載3篇
- 外墻pk磚施工方案
- 董事對(duì)第三人責(zé)任研究
- 二零二五年度儲(chǔ)罐租賃與物聯(lián)網(wǎng)技術(shù)應(yīng)用合同4篇
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)及答案集錦
- 二零二五年度GPS導(dǎo)航數(shù)據(jù)處理與應(yīng)用合同3篇
- 達(dá)雷妥尤單抗治療多發(fā)性骨髓瘤時(shí)輸注相關(guān)反應(yīng)的影響因素及干預(yù)措施的效果分析
- 2025版學(xué)校安保人員消防安全管理服務(wù)合同3篇
- 二零二五年度鋼筋加工與安裝勞務(wù)分包合同樣本3篇
- 安徽省淮南四中2025屆高二上數(shù)學(xué)期末統(tǒng)考模擬試題含解析
- 保險(xiǎn)專題課件教學(xué)課件
- 牛津上海版小學(xué)英語(yǔ)一年級(jí)上冊(cè)同步練習(xí)試題(全冊(cè))
- 室上性心動(dòng)過(guò)速-醫(yī)學(xué)課件
- 建設(shè)工程法規(guī)及相關(guān)知識(shí)試題附答案
- 中小學(xué)心理健康教育課程標(biāo)準(zhǔn)
- 四年級(jí)上冊(cè)脫式計(jì)算400題及答案
- 新課標(biāo)人教版小學(xué)數(shù)學(xué)六年級(jí)下冊(cè)集體備課教學(xué)案全冊(cè)表格式
- 人教精通版三年級(jí)英語(yǔ)上冊(cè)各單元知識(shí)點(diǎn)匯總
- 教案:第三章 公共管理職能(《公共管理學(xué)》課程)
- 諾和關(guān)懷俱樂(lè)部對(duì)外介紹
評(píng)論
0/150
提交評(píng)論