




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 JINGCHU UNIVERSITY OF TECHNOLOGY 模擬電子線路基礎(chǔ)課程設(shè)計(jì)報(bào)告 多動能六位電子鐘 專 業(yè) 應(yīng)用電子 班 級 10級電子三班 學(xué)生姓名 楊 振 指導(dǎo)教師 鄒云峰、萬行花 提交日期 2011年12月23日 目 錄第一部分 設(shè)計(jì)任務(wù)1.1 設(shè)計(jì)題目及要求31.2 主體電路與各電路原理31.2.1 主體電路圖31.2.2 顯示電路原理41.2.3 鍵盤原理41.2.4 迅響電路及輸入、輸出電路原理51.2.5 單片機(jī)原理51.2.6 譯碼顯示單元電路71.2.7 校時(shí)電路7第二部分 設(shè)計(jì)方案2.1 總體設(shè)計(jì)方案說明8 2.2 功能使用說明92.3 模塊結(jié)構(gòu)與方框圖9
2、2.4 復(fù)位電路10 2.5 時(shí)鐘電路11第三部分 軟件設(shè)計(jì)與調(diào)試3.1 軟件任務(wù)與安裝調(diào)試123.1.1 軟件流程與任務(wù)123.1.2 安裝與調(diào)試143.1.3 元件清單14第四部分課程設(shè)計(jì)總結(jié) (心得體會)15第五部分 參考文獻(xiàn) 16第一部分 設(shè)計(jì)任務(wù)1.1 設(shè)計(jì)題目及要求AT89C2051多功能六位電子鐘設(shè)計(jì)制作一個(gè)多功能六位電子鐘。1、準(zhǔn)時(shí)計(jì)時(shí),一數(shù)字形式顯示時(shí)、分、秒的時(shí)間;2、小時(shí)的計(jì)時(shí)要求為“12翻1”分和秒的計(jì)時(shí)要求為60秒進(jìn)位;3、校正時(shí)間。1.2 主體電路邏輯圖1.2.1 主體電路圖 原理方框圖如圖(1):圖(1)六位電子鐘原理方框圖1.2.2 顯示電路原理
3、160; 顯示部分主要器件為3只兩位一體共陽極數(shù)碼管,驅(qū)動采用 PNP 型三極管驅(qū)動,各端口配有限流電阻,驅(qū)動方式為動態(tài)掃描,占用 P3.0P3.5 端口,段碼由P1.0P1.6輸出。冒號部分采用 4 個(gè) 3.0的紅色發(fā)光二極管,驅(qū)動方式為獨(dú)立端口P1.7驅(qū)動。共陽極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖:圖4-4-2 共陽極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖LED數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。1.靜態(tài)顯示驅(qū)動 靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個(gè)
4、數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O埠進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)位*器*進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O埠多,如驅(qū)動5個(gè)數(shù)碼管靜態(tài)顯示則需要5×840根I/O埠來驅(qū)動,要知道一個(gè)89S51單片機(jī)可用的I/O埠才32個(gè)呢。故實(shí)際應(yīng)用時(shí)必須增加*驅(qū)動器進(jìn)行驅(qū)動,增加了硬體電路的復(fù)雜性。2.動態(tài)顯示驅(qū)動: 數(shù)碼管動態(tài)顯示介面是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp "的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立
5、的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會顯示出字形,取決于單片機(jī)對位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會亮。透過分時(shí)輪流控制各個(gè)LED數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O埠,而且功耗更低。圖
6、4-4-1 LED數(shù)碼管正面?zhèn)€字段引腳1.2.3 鍵盤原理: 如下圖;按鍵 S1S3 采用復(fù)用的方式與顯示部分的 P3.5、P3.4、P3.2 口復(fù)用。其工作方式為,在相應(yīng)端口輸出高電平時(shí)讀取按鍵的狀態(tài)并由單片機(jī)消除抖動并賦予相應(yīng)的鍵值。1.2.4 迅響電路及輸入、輸出電路原理 如下圖示;迅響電路由有源蜂鳴器和 PNP 型三極管組成。其工作原理是當(dāng) PNP 型三極管導(dǎo)通后有源蜂鳴器立即發(fā)出定頻聲響。驅(qū)動方式為獨(dú)立端口驅(qū)動,占用P3.7端口。
7、160; 輸出電路是與迅響電路復(fù)合作用的,其電路結(jié)構(gòu)為有源蜂鳴器,5.1K定值電阻R6,排針J3并聯(lián)。當(dāng)有源蜂鳴器無迅響時(shí)J3輸出低電平,當(dāng)有源蜂鳴器發(fā)出聲響時(shí)J3輸出高電平,J3可接入數(shù)字電路等各種需要。驅(qū)動方式為迅響復(fù)合輸出,不占端口。 輸入電路是與迅響電路復(fù)合作用的,其電路結(jié)構(gòu)是在迅響電路的 PNP 型三極管的基極電路中接入排針J2。引腳排針可改變單片機(jī)I/O口的電平狀態(tài),從而達(dá)到輸入的目的。驅(qū)動方式為復(fù)合端口驅(qū)動,占用P3.7端口。1.2.5 單片機(jī)系統(tǒng):
8、160; 本產(chǎn)品采用了單片機(jī)AT89C2051為核心器件,并配合所有的外圍電路,具有上電復(fù)位的功能,無手動復(fù)位功能。P3口引腳 功能 P3.0 RXD(串行輸入端口) P3.1 TXD(串行輸出端口) P3.2 INT0(外中斷0) P3.3 INT1(外中斷1) P3.4 TO(定時(shí)器0外部輸入) P3.5 T1(定時(shí)器1外部輸入) AT89C2051是一帶有2K字節(jié)閃速可編程可擦除只讀存儲體(EEPROM)的低電壓,高性能8位CMOS微型計(jì)算機(jī)。如圖10.2所示。它采用ATMEL的高密非易失存儲技術(shù)制造并和工業(yè)標(biāo)準(zhǔn)MCS51指令集和引腳結(jié)構(gòu)兼容。通過在單塊芯片上組合
9、通用的CPL1和閃速存儲器,ATMEL AT89C2051是一強(qiáng)勁的微型計(jì)算機(jī),它對許多嵌入式控制應(yīng)用提供一高度靈活和成本低的解決辦法。 1.2.6 譯碼顯示單元電路的介紹方框圖如圖(2):圖(2)譯碼顯示電路譯碼電路的功能是將秒、分、時(shí)計(jì)數(shù)器的輸出代碼進(jìn)行翻譯,變成相應(yīng)的數(shù)字。用與驅(qū)動LED七段數(shù)碼管的譯碼器常用的有74LS48。74LS48是BCD-7段譯碼器/驅(qū)動器,輸出高電平有效,專用于驅(qū)動LED七段共陰極顯示數(shù)碼管。若將秒、分、時(shí)計(jì)數(shù)器的每位輸出分別送到相應(yīng)七段譯嗎管的輸入端,便可以進(jìn)行不同數(shù)字的顯示。在譯碼管輸出與數(shù)碼管之間串聯(lián)電阻R作為限流電阻。1.2.7校時(shí)電路原理校時(shí)電路是數(shù)
10、字鐘不可缺少的部分,每當(dāng)數(shù)字鐘與實(shí)際時(shí)間不符時(shí),需要根據(jù)標(biāo)準(zhǔn)時(shí)間進(jìn)行校時(shí)。K1、K2分別是時(shí)校正、分校正開關(guān)。不校正時(shí),K1、K2開關(guān)是閉和的。當(dāng)校正時(shí)位時(shí),需要把K1開關(guān)打開,然后用手撥動K3開關(guān),來回?fù)軇右淮危湍苁箷r(shí)位增加1,根據(jù)需要去撥動開關(guān)的次數(shù),校正完畢后把K1開關(guān)閉上。校正分位時(shí)和校正時(shí)位的方法一樣。其電路圖如下:第二部分 設(shè)計(jì)方案2.1 總體設(shè)計(jì)方案說明AT89C2051是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),片內(nèi)含2k bytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128bytes的隨機(jī)數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失
11、性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C2051單片機(jī)在電子類產(chǎn)品中有廣泛的應(yīng)用。數(shù)字電子鐘是用數(shù)字電路實(shí)現(xiàn)“時(shí)”、“分”、“秒”數(shù)字顯示的計(jì)時(shí)裝置,主要由振蕩器、分頻器、計(jì)數(shù)器、譯碼顯示器、校時(shí)電路等部分組成。而數(shù)字鐘想準(zhǔn)確的計(jì)時(shí)則是由振蕩器產(chǎn)生的時(shí)脈沖送到分頻器,分頻電路將時(shí)標(biāo)信號分成每秒一次的方波信號。秒脈沖發(fā)生器產(chǎn)生頻率穩(wěn)定很高的秒脈沖,秒脈沖被送到一個(gè)六十進(jìn)制秒計(jì)數(shù)器計(jì)數(shù),將計(jì)數(shù)結(jié)果送至秒個(gè)位和十位譯碼器,譯碼結(jié)果分別由兩只七段數(shù)碼管以十進(jìn)制數(shù)形式顯示來。當(dāng)秒六十進(jìn)制計(jì)數(shù)器累計(jì)到第59秒時(shí),若再來一個(gè)秒脈沖,秒計(jì)數(shù)器的進(jìn)位
12、輸出就產(chǎn)生進(jìn)位脈沖(分計(jì)數(shù)脈沖),同時(shí),秒計(jì)數(shù)器的十位和個(gè)位都復(fù)位到零。分計(jì)數(shù)脈沖又被送到分六十進(jìn)制計(jì)數(shù)器計(jì)數(shù),經(jīng)譯碼電路譯碼后數(shù)碼管顯示相應(yīng)的分?jǐn)?shù)。當(dāng)計(jì)滿59分59秒時(shí),若再來一個(gè)秒脈沖,則分計(jì)數(shù)器便向時(shí)計(jì)數(shù)器送出時(shí)計(jì)數(shù)脈沖,同時(shí),分、秒計(jì)數(shù)器均復(fù)位到零。時(shí)計(jì)數(shù)器是一個(gè)二十四進(jìn)制計(jì)數(shù)器,當(dāng)計(jì)數(shù)顯示23時(shí)59分59秒時(shí),若再來一個(gè)秒脈沖,則時(shí)、分、秒計(jì)數(shù)器都應(yīng)回到零,并顯示(00:00:00)表示已到達(dá)午夜零點(diǎn),第二天開始繼續(xù)計(jì)數(shù)。其主要的功能模塊如圖2-1所示。2.2 功能使用說明; 1、功能按鍵說明: S1為功能選擇按鍵,S2為功
13、能擴(kuò)展按鍵,S3為數(shù)值加一按鍵。 2、功能及操作說明: 操作時(shí),連續(xù)短時(shí)間(小于1秒)按動S1,即可在以上的6個(gè)功能中連續(xù)循環(huán)。中途如果長按(大于2秒)S1,則立即回到時(shí)鐘功能的狀態(tài)。 1)時(shí)鐘功能:上電后即顯示10:10:00 ,寓意十全十美。 2)校時(shí)功能:短按一次 S1,即當(dāng)前時(shí)間和冒號為閃爍狀態(tài),按動 S2 則小時(shí)位加 1,按動 S3則分鐘位加1,秒時(shí)不可調(diào)。 3)鬧鐘功能:短按二次S1,顯示狀態(tài)為22:10:00,冒號為長亮。按動S2剛小時(shí)位加1
14、,按動S3則分鐘位加1,秒時(shí)不可調(diào)。當(dāng)按動小時(shí)位超過23時(shí)則會顯示-:-:-,這個(gè)表示關(guān)閉鬧鐘功能。鬧鈴聲為蜂鳴器長鳴3秒鐘。 4)倒計(jì)時(shí)功能:短按三次S1,顯示狀態(tài)為 0,冒號為長滅。按動S2則從低位依此顯示高位,按動S3則相應(yīng)位加1,當(dāng)S2按到第6次時(shí)會在所設(shè)定的時(shí)間狀態(tài)下開始倒計(jì)時(shí),再次按動S2將再次進(jìn)入調(diào)整功能,并且停止倒計(jì)時(shí)。 5)秒表功能:短按四次 S1,顯示狀態(tài)為 00:00:00,冒號為長亮。按動 S2 則開始秒表計(jì)時(shí),再次按動S2則停止計(jì)時(shí),當(dāng)停止計(jì)時(shí)的時(shí)候按動S3則秒表清零。 6)計(jì)數(shù)器功能:短按五次S1,顯示狀態(tài)為00:00:00,冒號
15、為長滅,按動S2則計(jì)數(shù)器加1,按動S3則計(jì)數(shù)器清零。2.3 模塊結(jié)構(gòu)與方框圖如圖(5) 圖(5)軟件系統(tǒng)結(jié)構(gòu)方框圖2.4 復(fù)位電路原理AT89C2051單片機(jī)的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。復(fù)位引腳RST通過一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個(gè)機(jī)器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。上電復(fù)位電路是種簡單的復(fù)位電路,只要在RST復(fù)位引腳接一個(gè)電容到VCC,接一個(gè)電阻到地就可以了。上電復(fù)位是指在給系統(tǒng)上電時(shí),復(fù)位電路通過電容加到RST復(fù)位引腳一個(gè)短暫的高電平信號,這個(gè)復(fù)位信號隨著VCC對電容的充電過程而回落,
16、所以RST引腳復(fù)位的高電平維持時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)安全可靠的復(fù)位,RST引腳的高電平信號必須維持足夠長的時(shí)間。圖4-1 復(fù)位電路上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的。只要VCC的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動上電復(fù)位。2.5 時(shí)鐘電路時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊的一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式:一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。本文用的是內(nèi)部時(shí)鐘方式。AT89C2051單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,
17、該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。第三部分 軟件設(shè)計(jì)與安裝調(diào)試3.1 軟件任務(wù)與安裝調(diào)試3.1.1 軟件流程與任務(wù)軟件任務(wù)分析軟件任務(wù)分析和硬件電路設(shè)計(jì)結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計(jì)基本定型后,也就基本上決定下來了9。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測量,計(jì)算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)
18、度角色的軟件。這兩類軟件的設(shè)計(jì)方法各有特色,執(zhí)行軟件的設(shè)計(jì)偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。軟件任務(wù)分析時(shí),應(yīng)將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進(jìn)行定義時(shí),將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問題。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個(gè)廠長就比較難了。軟件任務(wù)分析的另一個(gè)內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個(gè)系統(tǒng)軟件可分為后臺程序(背景程序)和前臺程序。后臺程序指
19、主程序及其調(diào)用的子程序,這類程序?qū)?shí)時(shí)性要求不是太高,延誤幾十ms甚至幾百ms也沒關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行;而前臺程序安排一些實(shí)時(shí)性要求較高的內(nèi)容,如定時(shí)系統(tǒng)和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺,后臺程序?yàn)椤笆瓜到y(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。軟件流程圖圖5-3 程序設(shè)計(jì)流程圖程序里先定義兩個(gè)中斷定時(shí)器T0和T1,一個(gè)作為秒記數(shù)用,另一個(gè)做為調(diào)整時(shí)閃爍用。編程時(shí)先將P1和P3口數(shù)據(jù)清零,然后P1和P3口作動態(tài)掃描顯示,由于人的眼睛有延遲性,當(dāng)掃描頻率非常高時(shí)人就感覺數(shù)碼管一直亮著,而同時(shí)記數(shù)器
20、在遵循時(shí)間的變化方式執(zhí)行著秒到了60分加一,分到了60小時(shí)加一,小時(shí)到了24就歸零。P3.7作為時(shí)間調(diào)整按鈕當(dāng)長按按住2秒以上進(jìn)入校準(zhǔn)時(shí)間狀態(tài)及換檔和退出,快速點(diǎn)觸用于調(diào)節(jié)時(shí)間數(shù)值,歸零是復(fù)位按鈕。3.1.2 安裝與調(diào)試安裝、焊接元件到電路板上按照先低后高,先小后大,先臥式后立式的順序,正確插入元件,其高低、極性要符合規(guī)定。1.先從最低元件安裝。應(yīng)先安裝、焊接跳線機(jī)及電阻,用電阻多余的腳做跳線,電阻引腳不分正負(fù),焊接時(shí)間最好控制在2-3秒。2.安裝、焊接瓷片電容。瓷片電容部分正負(fù)極。3.安裝、焊接輕觸開關(guān)4.安裝、焊接三極管。三極管的外形基本一樣,注意分青,且方向要和電路板上的方向一致。5.安
21、裝、焊接12MHZ晶振。晶振沒有正負(fù)極。6.安裝、焊接電解電容,裝的時(shí)候要躺著安裝,立著會影響發(fā)光二極管的顯示不整齊。7.安裝、焊接20腳IC插座,從用一小缺口或小圓點(diǎn)標(biāo)記的地方以逆時(shí)針數(shù)依次為1-20腳,安裝時(shí)要注意缺口和電路上的缺口相一致。20只引腳都插到位后,先用手指按住,固定對角兩只引腳,防止插入的引腳掉出來,再把板放到桌面上把剩下的引腳焊好。焊好后不要急于插入單片機(jī)芯片,因?yàn)檫€有其他元件焊接,防止電烙鐵帶靜電擊壞單片機(jī)芯片。8.安裝、焊接蜂鳴器。9.安裝、焊接LED。LED和普通二極管一樣,有正負(fù)極之分,不能裝錯(cuò)。安裝、焊接數(shù)碼管。認(rèn)識數(shù)碼管內(nèi)部結(jié)構(gòu)。3.1.3 元件清單序號名稱規(guī)格
22、位號數(shù)量序號名稱規(guī)格位號數(shù)量1單片機(jī)AT89C2051U1113三極管9012Q1Q772三端集成穩(wěn)壓78L05U2114電阻220R3R9732位共陽數(shù)碼管紅色0.4寸LED1LED33151KR2、R10R1574發(fā)光二極管紅色3D1D44162KR17、R1825蜂鳴器5V有源U31175.1KR1616瓷片電容30PFC2、C321810KR1170.1uFC4、C5219按鍵6*6*5S1、S2、S3382位排針間距2.54J1J3320電池盒4節(jié)5號19集成電路插座20PU1121DC插座5.5*2.1110電解電容10uFC1122電源線雙色2P帶熱縮管111100uFC6123
23、電路板105*55112晶振12MHzY1124說明書A4雙面1第五部分 課程設(shè)計(jì)總結(jié)(心得體會)經(jīng)過大量查找資料和老師的不斷指點(diǎn),我將所設(shè)計(jì)的六位數(shù)碼管電子鐘焊接成功,雖然不是很穩(wěn)定,但在這個(gè)過程中,我了解了各個(gè)元器件的識別與測量,也了解了AT89C2051單片機(jī)及其引腳功能。同時(shí)明白了六位數(shù)碼管電子鐘的工作原理并實(shí)現(xiàn)了其功能。本程序設(shè)計(jì)時(shí),只用了一個(gè)定時(shí)器T0,其他的中斷全部關(guān)斷,定時(shí)器工作在兩個(gè)8位自動加載初始值狀態(tài)。簡短的定時(shí)中斷程序只負(fù)責(zé)時(shí)間的計(jì)數(shù)和進(jìn)位功能,這是保證走時(shí)精確。有三個(gè)輕觸式按鍵:功能選擇按鍵S1,功能擴(kuò)展按鍵S2,數(shù)值加一按鍵S3。此數(shù)字鐘采用了一只NPN型的三極管及
24、蜂鳴器為鬧時(shí)訊響電路。通過這次的畢業(yè)設(shè)計(jì),我對自己的動手能力有了信心。面臨著就業(yè),我將充分發(fā)揮我的主觀能動性和在學(xué)校學(xué)到的一切知識。為母校添磚加瓦,為自己的前程奮斗!這次畢業(yè)設(shè)計(jì)的順利進(jìn)行,我深刻明白了理論知識與社會實(shí)踐相結(jié)合的道理,從總得到了以前書本知識所不曾得到的知識。更加明白了如今信息時(shí)代電子技能知識的重要性。增強(qiáng)了我對實(shí)際工藝技術(shù)、電子技術(shù)和設(shè)備技術(shù)等方面的認(rèn)識,掌握了分析處理方法,調(diào)試、計(jì)算等基本技能的訓(xùn)練,并具備了一定程度的實(shí)際工作能力。第六部分 參考文獻(xiàn)程序主要代碼:#include<REG2051.H>code senen_seg10=0x81,0xe7,0x92,
25、0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0; bit key1_enter=0,key2_enter=0,key3_enter=0,countdown_mark=0,stopwatch_mark=0,count_mark=0,bell_mark=0; unsigned char program=0,program_variable=0,count_bit=0,count=0;unsigned char hour=10,minute=10,second=0;unsigned char delayed_hour=22,delayed_minute=10,delayed_s
26、econd=0; unsigned char count_hour=0,count_minute=0,count_second=0;unsigned char count_time=0,count_count=0;void delay(unsigned int t) unsigned int i,j; for(i=0;i<t;i+) for(j=0;j<10;j+); void time0_init(void)EA=0; TR0=0;TMOD=0x01;TH0=0xec;TL0=0x73;ET0=1;TR0=1;EA=1; static void timer0_isr(void)
27、interrupt TF0_VECTOR using 1 TR0=0;TH0=0xec;TL0=0x73;TR0=1;count_time+; if(count_time>=199) count_time=0; second+; if(second>=60) second=0; minute+; if(minute>=60) minute=0; hour+; if(hour>=24)hour=0; if(delayed_hour=hour && delayed_minute=minute && second<4) P3_7=0;el
28、se P3_7=1;if(countdown_mark=1) count_count+; if(count_count>=199 && (count_second!=0|count_minute!=0|count_hour!=0)count_count=0;count_second-;if(count_second>=60) count_second=59; count_minute-; if(count_minute>=60) count_minute=59; count_hour-; if(count_hour>=100) count_hour=99
29、; if(count_second=0&&count_minute=0&&count_hour=0&&count_count<=12000) P3_7=0;else P3_7=1;if(count_count>=15000) count_count=14000; if(stopwatch_mark=1) count_count+; if(count_count>=2)count_count=0;count_second+;if(count_second>=100) count_second=0; count_minute+
30、; if(count_minute>=60) count_minute=0; count_hour+; if(count_hour>=60) count_hour=0; unsigned char show_key (void)unsigned char x=0,y=0;switch (program)case 0: P1&=senen_segsecond%10; break;case 1: if(count_time>=90) P1&=senen_segsecond%10; break;case 2: if(delayed_hour=24) P1=0xfe;
31、 else P1&=senen_segdelayed_second%10; break;case 3: if(count_bit>=0) P1&=senen_segcount_second%10; else P1=0xff; break;case 4: P1&=senen_segcount_second%10; break;case 5: P1&=senen_segcount_second%10; break; P3_3=0; delay(10); if(P3_5=0) key1_enter=1;if(count<=254)count+; if(P3
32、_4=0) key2_enter=1; if(P3_2=0) key3_enter=1; P3_3=1; P1|=0xff;switch (program) case 0: P1&=senen_segsecond/10; break;case 1: if(count_time>=90) P1&=senen_segsecond/10; break;case 2: if(delayed_hour=24) P1=0xfe; else P1&=senen_segdelayed_second/10; break;case 3: if(count_bit>=1) P1&
33、amp;=senen_segcount_second/10;else P1=0xff; break;case 4: P1&=senen_segcount_second/10; break;case 5: P1&=senen_segcount_second/10; break; P3_1=0; delay(10); P3_1=1; P1|=0xff;switch (program) case 0: P1&=senen_segminute%10; break;case 1: if(count_time>=90) P1&=senen_segminute%10;
34、break;case 2: if(delayed_hour=24) P1=0xfe; else P1&=senen_segdelayed_minute%10; break;case 3: if(count_bit>=2) P1&=senen_segcount_minute%10;else P1=0xff;break;case 4: P1&=senen_segcount_minute%10; break;case 5: P1&=senen_segcount_minute%10; break; P3_2=0; delay(10); P3_2=1; P1|=0x
35、ff;switch (program)case 0: P1&=senen_segminute/10; break;case 1: if(count_time>=90) P1&=senen_segminute/10; break;case 2: if(delayed_hour=24) P1=0xfe; else P1&=senen_segdelayed_minute/10; break;case 3: if(count_bit>=3) P1&=senen_segcount_minute/10;else P1=0xff;break; case 4: P1
36、&=senen_segcount_minute/10; break;case 5: P1&=senen_segcount_minute/10; break; P3_5=0; delay(10); P3_5=1; P1|=0xff;switch (program)case 0: P1&=senen_seghour%10; break;case 1: if(count_time>=90) P1&=senen_seghour%10; break;case 2: if(delayed_hour=24) P1=0xfe; else P1&=senen_seg
37、delayed_hour%10; break;case 3: if(count_bit>=4) P1&=senen_segcount_hour%10;else P1=0xff;break;case 4: P1&=senen_segcount_hour%10; break;case 5: P1&=senen_segcount_hour%10; break; P3_0=0; delay(10); if(P3_4=1 && key2_enter=1) x=3; 3 key2_enter=0; P3_0=1; P1|=0xff;switch (progra
38、m) case 0: P1&=senen_seghour/10; break;case 1: if(count_time>=90) P1&=senen_seghour/10; break;case 2: if(delayed_hour=24) P1=0xfe; else P1&=senen_segdelayed_hour/10; break;case 3: if(count_bit>=5)P1&=senen_segcount_hour/10; else P1=0xff;break;case 4: P1&=senen_segcount_hour
39、/10; break;case 5: P1&=senen_segcount_hour/10; break; P3_4=0; delay(10); if(P3_5=1 && key1_enter=1) if(count>=127) x=1; else x=2; key1_enter=0;count=0; if(P3_2=1 && key3_enter=1) x=4; key3_enter=0; P3_4=1; P1|=0xff;if(program<=1 && count_time>=100) P1&=0xff;i
40、f(program<=1 && count_time<=100) P1&=0x7f;if(program=2) P1&=0x7f;if(program=3) P1&=0xff;if(program=4) P1&=0x7f;if(program=5) P1&=0xff;y=x;x=0;return y;void main()P1=0xff; P3=0xff;time0_init();while(1)switch(program)case 0: while(program=0) switch(show_key() case 0: break;case 1:program=0; break;case 2:program=1; break; break; case 1:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同管理制度職責(zé)
- 農(nóng)業(yè)科技園區(qū)規(guī)劃設(shè)計(jì)與運(yùn)營管理手冊
- 2025年毫州考從業(yè)資格證貨運(yùn)試題
- 家政公司家政服務(wù)合同
- 建筑鋼筋班組合同8篇
- 購銷合同格式
- 房屋代理出租合同
- 建繼續(xù)教育建設(shè)工程合同管理
- 2025年景德鎮(zhèn)貨運(yùn)從業(yè)資格證考試試題及答案
- 第07講 文言文翻譯 講義 中考語文復(fù)習(xí)
- 2024-2025學(xué)年八年級地理下冊第七章《南方地區(qū)》檢測卷(人教版)
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案
- 《ISO 56000-2025創(chuàng)新管理 基礎(chǔ)和術(shù)語》之1:“引言+范圍+術(shù)語和定義”專業(yè)深度解讀與應(yīng)用指導(dǎo)材料(雷澤佳編寫2025A0)-1-150
- DB37-T4817-2025 瀝青路面就地冷再生技術(shù)規(guī)范
- 2025年公共營養(yǎng)師三級理論試題及答案
- 提高設(shè)備基礎(chǔ)預(yù)埋螺栓一次安裝合格率
- 煤礦防治水安全質(zhì)量標(biāo)準(zhǔn)化評分表
- 2024年科技節(jié)小學(xué)科普知識競賽題及答案(共100題)
- 2025年度教育培訓(xùn)機(jī)構(gòu)學(xué)生綜合素質(zhì)評價(jià)協(xié)議3篇
- 氧氣管道吹掃、打壓方案
- 第28課 改革開放和社會主義現(xiàn)代化建設(shè)的巨大成就 教學(xué)設(shè)計(jì)(表格式)必修 中外歷史綱要(上)
評論
0/150
提交評論