數(shù)字電子鐘課程設(shè)計(jì)報(bào)告-3_第1頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告-3_第2頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告-3_第3頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告-3_第4頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告-3_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)字電子鐘單片機(jī)原理與應(yīng)用(大作業(yè))姓名:XXX班級(jí):自動(dòng)化11102班學(xué)號(hào):摘要本論文基于單片機(jī)原理技術(shù)介紹了一款于STC89C52芯片作為核心控制器的單片機(jī)數(shù)字電子鐘的設(shè)計(jì)與制作,包括硬件電路原理的實(shí)現(xiàn)方案設(shè)計(jì)、軟件程序編輯的實(shí)現(xiàn)、數(shù)字電子鐘正常工作的流程、原理圖仿真實(shí)現(xiàn)、硬件實(shí)物的安裝制作與硬件實(shí)物的調(diào)試過(guò)程。該單片機(jī)數(shù)字電子鐘采用LED數(shù)碼管能夠準(zhǔn)確顯示時(shí)間(顯示格式為:時(shí)時(shí),分分,秒秒),可隨時(shí)進(jìn)行時(shí)間調(diào)整,時(shí)間可采用12小時(shí)制顯示或24小時(shí)制顯示,采用12小時(shí)顯示時(shí)可在標(biāo)志位數(shù)碼管上顯示A(表示上午)或B(表示下午),可暫停時(shí)間的變動(dòng),暫停時(shí)一位數(shù)碼管上顯示字母T,可按自己的要求設(shè)置擴(kuò)展的小鍵盤個(gè)數(shù)。關(guān)鍵詞:?jiǎn)纹瑱C(jī);數(shù)字電子鐘;數(shù)碼管;STC89C52目錄1. 設(shè)計(jì)任務(wù)與要求 41.1 設(shè)計(jì)任務(wù) 41.2 設(shè)計(jì)要求 42. 方案設(shè)計(jì)與論證 42.1 單片機(jī)芯片選擇方案 52.2 數(shù)碼管顯示選擇方案 52.3 數(shù)碼管驅(qū)動(dòng)選擇方案 63. 硬件單元電路設(shè)計(jì)與參數(shù)計(jì)算 63.1 電源電路 63.2 按鍵電路 63.3 時(shí)鐘電路 63.4 驅(qū)動(dòng)電路 73.5 LED顯示電路 83.6 單片機(jī)電路 84. 軟件設(shè)計(jì)與流程圖 84.1 數(shù)字電子時(shí)鐘主程序流程圖 84.2 中斷服務(wù)程序流程圖 94.3 顯示子程序流程圖 115. 總原電路及元器件清單 125.1 總原理圖 125.2 PCB制板圖 135.3 整體電路仿真圖 145.4 元件清單 15心得體會(huì) 16參考文獻(xiàn) 17致謝 18程序清單 19設(shè)計(jì)任務(wù)與要求設(shè)計(jì)任務(wù)用單片機(jī)設(shè)計(jì)一個(gè)數(shù)字電子鐘,采用LED數(shù)碼管來(lái)顯示時(shí)間。設(shè)計(jì)要求顯示格式為:XX:XX:XX,即:時(shí):分:秒。時(shí)間可采用12小時(shí)制顯示或24小時(shí)制顯示,采用12小時(shí)顯示時(shí)必須在另外一個(gè)數(shù)碼管上顯示A(表示上午)或B(表示下午)。設(shè)置一個(gè)按鍵用于時(shí)間顯示方式的切換。系統(tǒng)上電后從上電時(shí)初始化顯示:12-00-00開始計(jì)時(shí)。能進(jìn)行時(shí)間的調(diào)整,可暫停時(shí)間的變動(dòng),暫停時(shí)一位數(shù)碼管上顯示字母T可按自己的要求設(shè)置擴(kuò)展的小鍵盤個(gè)數(shù)。方案設(shè)計(jì)與論證圖1-1系統(tǒng)整體框圖整個(gè)系統(tǒng)用單片機(jī)作為中央控制器,由單片機(jī)執(zhí)行采集芯片內(nèi)部時(shí)鐘信號(hào),時(shí)鐘信號(hào)通過(guò)單片機(jī)I/O口傳給單片機(jī),單片機(jī)模塊控制驅(qū)動(dòng)模塊驅(qū)動(dòng)顯示模塊,通過(guò)顯示模塊來(lái)實(shí)現(xiàn)信號(hào)的輸出、LED的顯示及相關(guān)的控制功能。系統(tǒng)設(shè)有按鍵模塊用于對(duì)時(shí)間進(jìn)行調(diào)整及擴(kuò)展多個(gè)小鍵盤,系統(tǒng)整體框圖如圖1-1所示。單片機(jī)芯片選擇方案方案一:STC89S52是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器。主要性能有:與MCS-51單片機(jī)產(chǎn)品兼容、全靜態(tài)操作:0Hz~33Hz、三級(jí)加密程序存儲(chǔ)器、32個(gè)可編程I/O口線、三個(gè)16位定時(shí)器/計(jì)數(shù)器、八個(gè)中斷源、全雙工UART串行通道、掉電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符、易編程。方案二:STC89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)。主要性能有:兼容MCS51指令系統(tǒng)、32個(gè)雙向I/O口、256x8bit內(nèi)部RAM、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷、時(shí)鐘頻率0-24MHz、2個(gè)串行中斷、可編程UART串行通道、2個(gè)外部中斷源、6個(gè)中斷源、2個(gè)讀寫中斷口線、3級(jí)加密位、低功耗空閑和掉電模式、軟件設(shè)置睡眠和喚醒功能。從單片機(jī)芯片主要性能角度出發(fā),本數(shù)字電子鐘單片機(jī)芯片選擇設(shè)計(jì)采用方案一。數(shù)碼管顯示選擇方案方案一:靜態(tài)顯示。靜態(tài)顯示,即當(dāng)顯示器顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或截止。該方式每一位都需要一個(gè)8位輸出口控制。靜態(tài)顯示時(shí)較小電流能獲得較高的亮度,且字符不閃爍。但因當(dāng)所需顯示的位數(shù)較多時(shí),靜態(tài)顯示所需的I/O口數(shù)較大,造成資源的浪費(fèi)。方案二:動(dòng)態(tài)顯示。動(dòng)態(tài)顯示,即各位數(shù)碼管輪流點(diǎn)亮,對(duì)于顯示器各位數(shù)碼管,每隔一段延時(shí)時(shí)間循環(huán)點(diǎn)亮一次。利用人的視覺暫留功能可以看到整個(gè)顯示,但須保證掃描速度足夠快,人的視覺暫留功能才可察覺不到字符閃爍。顯示器的亮度與導(dǎo)通電流、點(diǎn)亮?xí)r間及間隔時(shí)間的比例有關(guān)。調(diào)整參數(shù)可以實(shí)現(xiàn)較高穩(wěn)定度的顯示。動(dòng)態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省單片機(jī)芯片I/O口和降低能耗角度出發(fā),本數(shù)字電子鐘數(shù)碼管顯示選擇設(shè)計(jì)采用方案二。數(shù)碼管驅(qū)動(dòng)選擇方案方案一:上拉電阻驅(qū)動(dòng)方式。數(shù)碼管段碼與接有上拉電阻的單片機(jī)芯片I/O口相連,通過(guò)編程,單片機(jī)芯片即控制段碼電平的高低。該方式經(jīng)費(fèi)低,但實(shí)物制作較復(fù)雜。方案二:74LS245芯片驅(qū)動(dòng)方式。數(shù)碼管段碼與74LS245芯片B口相連,74LS245芯片A口與單片機(jī)芯片I/O口,通過(guò)編程,單片機(jī)芯片即可控制段碼電平的高低。該方式實(shí)物制作簡(jiǎn)單,增強(qiáng)驅(qū)動(dòng)數(shù)碼管段碼能力。從實(shí)物制作簡(jiǎn)易程度與驅(qū)動(dòng)數(shù)碼管段碼能力角度出發(fā),本數(shù)字電子鐘數(shù)碼管驅(qū)動(dòng)選擇設(shè)計(jì)采用方案二。硬件單元電路設(shè)計(jì)與參數(shù)計(jì)算電源電路本數(shù)字電子鐘設(shè)計(jì)所需電源電壓為直流、電壓值大小5V的電壓源。從硬件實(shí)物設(shè)計(jì)簡(jiǎn)易程度與經(jīng)費(fèi)方面考慮,用兩節(jié)電壓值大小2.5V干電池與電路電壓源引腳相連接即可達(dá)到硬件設(shè)計(jì)要求。即本數(shù)字電子鐘設(shè)計(jì)用兩節(jié)電壓值大小2.5V干電池做硬件電路電壓源。按鍵電路本數(shù)字電子鐘設(shè)計(jì)所需按鍵用于進(jìn)行顯示時(shí)間的調(diào)整與設(shè)置擴(kuò)展的小鍵盤。單片機(jī)芯片4個(gè)I/O口可與按鍵直接相連,通過(guò)編程,單片機(jī)芯片即可控制按鍵接口電平的高低,即按鍵的開與關(guān),以達(dá)到用按鍵進(jìn)行顯示時(shí)間的調(diào)整與設(shè)置擴(kuò)展的小鍵盤的設(shè)計(jì)要求。時(shí)鐘電路單片機(jī)芯片可使用內(nèi)部時(shí)鐘電路和外部時(shí)鐘電路兩種方式產(chǎn)生電路所需的時(shí)鐘脈沖,內(nèi)部時(shí)鐘電路實(shí)現(xiàn)可用石英晶體和微調(diào)電容外接即可達(dá)到,外部時(shí)鐘電路實(shí)現(xiàn)需要一個(gè)外部脈沖源引入脈沖信號(hào)以保證個(gè)單片機(jī)之間時(shí)鐘信號(hào)的同步。從硬件實(shí)現(xiàn)難易角度考慮,內(nèi)部時(shí)鐘電路的實(shí)現(xiàn)比外部時(shí)鐘電路的實(shí)現(xiàn)更簡(jiǎn)易。既本數(shù)字電子鐘設(shè)計(jì)所需的時(shí)鐘源采用內(nèi)部時(shí)鐘電路實(shí)現(xiàn)。所用定時(shí)方式為工作方式1,石英晶振為12M,即最小定時(shí)時(shí)間為1us,最大定時(shí)時(shí)間約為65.5ms,其電路圖如下圖2-1所示。圖2-1時(shí)鐘電路圖驅(qū)動(dòng)電路從實(shí)物制作簡(jiǎn)易程度與驅(qū)動(dòng)數(shù)碼管段碼能力角度出發(fā),本數(shù)字電子鐘設(shè)計(jì)采用數(shù)碼管段碼與74LS245芯片B口相連,74LS245芯片A口與單片機(jī)芯片I/O口,通過(guò)編程,單片機(jī)芯片即可控制段碼電平的高低的方式實(shí)現(xiàn)數(shù)碼管段碼控制,74LS245芯片圖如下圖3-1所示。圖3-174LS245芯片圖LED顯示電路數(shù)字電子鐘設(shè)計(jì)的顯示模塊用8個(gè)一位數(shù)碼管實(shí)現(xiàn),也可用兩個(gè)四位一體數(shù)碼管實(shí)現(xiàn)。兩種實(shí)現(xiàn)方式實(shí)現(xiàn)效果一樣。從實(shí)物制作的難易程度出,本數(shù)字電子鐘設(shè)計(jì)采用兩個(gè)四位一體數(shù)碼管實(shí)現(xiàn)。即數(shù)碼管引腳與單片機(jī)芯片和74LS245對(duì)應(yīng)引腳相連接。單片機(jī)電路本數(shù)字電子鐘設(shè)計(jì)采用STC89C52單片機(jī)芯片作為中央控制器,實(shí)現(xiàn)信號(hào)的輸出、LED的顯示及相關(guān)的控制功能。軟件設(shè)計(jì)與流程圖數(shù)字電子時(shí)鐘主程序流程圖主程序流程圖如下圖圖4-1所示。圖4-1數(shù)字電子時(shí)鐘主程序流程圖中斷服務(wù)程序流程圖中斷服務(wù)程序流程圖如下圖圖4-2所示。圖4-2中斷服務(wù)程序流程圖顯示子程序流程圖顯示子程序流程圖如下圖圖4-3所示。圖4-3顯示子程序流程圖總原電路及元器件清單總原理圖最小系統(tǒng)控制原理圖如下圖圖5-1所示,數(shù)碼管原理圖如下圖圖5-2所示。圖5-1最小系統(tǒng)控制原理圖圖5-2數(shù)碼管原理圖PCB制板圖數(shù)碼管PCB圖如下圖圖5-3所示,最小系統(tǒng)控制PCB圖如下圖圖5-4所示。圖5-3數(shù)碼管PCB圖圖5-4最小系統(tǒng)PCB圖整體電路仿真圖整體電路仿真圖如下圖圖5-5所示。圖5-5整體電路仿真圖元件清單名稱數(shù)量型號(hào)芯片1片AT89S52四位一體數(shù)碼管2個(gè)共陰極按鍵5個(gè)晶振1個(gè)12M電容2個(gè)30p74LS2451片電阻2個(gè)220歐電阻1個(gè)1.5k發(fā)光二極管1個(gè)LED名稱數(shù)量型號(hào)心得體會(huì)本單片機(jī)數(shù)字電子鐘系統(tǒng)的功能基本符合顯示格式為:XX:XX:XX,即時(shí):分:秒。時(shí)間可采用12小時(shí)制顯示或24小時(shí)制顯示,采用12小時(shí)顯示時(shí)必須在另外一個(gè)數(shù)碼管上顯示A(表示上午)或B(表示下午)。設(shè)置一個(gè)按鍵用于時(shí)間顯示方式的切換。系統(tǒng)上電后從上電時(shí)初始化顯示:12-00-00開始計(jì)時(shí),能進(jìn)行時(shí)間的調(diào)整,可暫停時(shí)間的變動(dòng),暫停時(shí)一位數(shù)碼管上顯示字母T,可按自己的要求設(shè)置擴(kuò)展的小鍵盤個(gè)數(shù)設(shè)計(jì)任務(wù)的要求,經(jīng)過(guò)測(cè)試數(shù)據(jù)顯示,系統(tǒng)的可靠性已經(jīng)基本能夠達(dá)到實(shí)際電子鐘的設(shè)計(jì)要求,同時(shí)本單片機(jī)數(shù)字電子鐘系統(tǒng)具有擴(kuò)展性。課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)實(shí)際問(wèn)題、提出實(shí)際問(wèn)題、分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際學(xué)習(xí)能力、動(dòng)手能力的具體訓(xùn)練和考察過(guò)程。在此次數(shù)字鐘設(shè)計(jì)過(guò)程中,在學(xué)習(xí)新知識(shí)的同時(shí),把在課程中學(xué)到的理論知識(shí)運(yùn)用到實(shí)際作品設(shè)計(jì)、操作中,更進(jìn)一步地熟悉了單片機(jī)芯片的結(jié)構(gòu)及掌握了其工作原理和具體的使用方法與相關(guān)元器件的參數(shù)計(jì)算方法、使用方法,了解了電路的開發(fā)和制作及課程設(shè)計(jì)報(bào)告的編寫。加深了對(duì)相關(guān)理論知識(shí)及專業(yè)知識(shí)的掌握度,增強(qiáng)自身的動(dòng)手能力,鍛煉及提高了理解問(wèn)題、分析問(wèn)題、解決問(wèn)題的能力,更深刻的體會(huì)到了理論聯(lián)系實(shí)際的重要性,進(jìn)一步掌握畫圖軟件的使用和提高相應(yīng)的畫圖操作水平及技巧。參考文獻(xiàn)[1]沈精虎.Protel99SE基礎(chǔ)教程[J].[2]李廣弟,朱月秀,冷祖祁.單片機(jī)的硬件結(jié)構(gòu)[J].頁(yè)碼148。[3]譚丙煜.怎樣撰寫科學(xué)論文[M].2版.沈陽(yáng):遼寧人民出版社,1982:5-6.(本條為中文圖書著錄格式)[4]陳正義.單片機(jī)控制實(shí)習(xí)[D].頁(yè)碼148。致謝從課題的開始到最終的完成,本課程設(shè)計(jì)及報(bào)告論文是在指導(dǎo)老師的精心指導(dǎo)和同學(xué)的熱心幫助下順利完成的。本課程設(shè)計(jì)能順利地完成,與父母多年來(lái)一如既往的支持和關(guān)懷是分不開的,在此,向任勞任怨、含辛茹苦的父母致以衷心的感謝!此外衷心感謝在本次課程設(shè)計(jì)中指點(diǎn)和幫助我的指導(dǎo)老師與同學(xué)!感謝學(xué)院為我們提供了良好課程設(shè)計(jì)儀器設(shè)備及學(xué)習(xí)環(huán)境。程序清單#include<reg51.h>#include<intrins.h>unsignedchardatadis_digit;unsignedcharkey_s,key_v;unsignedcharcodedis_code[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};//0,1,2,34,5,6,7,8,9,off //共陰數(shù)碼管unsignedchardatadis_buf[8];unsignedchardatadis_index;unsignedcharhour,min,sec;unsignedcharsec100;unsignedcharflag,flag1,flag2; //falg用于時(shí)間停止和啟動(dòng)標(biāo)志,falg1為12小時(shí)和24小時(shí)的切換標(biāo)志,falg2為12小時(shí)的上午和下午的切換標(biāo)志sbitK1=P1^0; //用于時(shí)的調(diào)整sbitK2=P1^1; //用于分的調(diào)整sbitK3=P1^2; //用于秒的調(diào)整sbitK4=P1^3; //用于時(shí)間調(diào)整的開關(guān),按下一次暫停時(shí)間,再按一次時(shí)則開始計(jì)時(shí)sbitK5=P1^4; //用于24小時(shí)制和12小時(shí)制的切換bitscan_key();voidproc_key();voidinc_sec();voidinc_min();voidinc_hour();voidinc_hour1();voiddelayms(unsignedcharms);voidmain(void){P0=0xff;P2=0xff;TMOD=0x11;//定時(shí)器0,1工作模式1,16位定時(shí)方式TH1=0xd8; //使用12MHz的晶振,定時(shí)時(shí)間為:10msTL1=0xf0;TH0=0xf8; //定時(shí)時(shí)間為2ms,用于數(shù)碼管的動(dòng)態(tài)掃描TL0=0x30;hour=12;min=00;sec=00;sec100=0;flag=0;flag1=0;dis_buf[0]=dis_code[hour/10];//時(shí)十位dis_buf[1]=dis_code[hour%10];//時(shí)個(gè)位dis_buf[2]=dis_code[min/10];//分十位dis_buf[3]=dis_code[min%10];//分個(gè)位dis_buf[4]=dis_code[sec/10];//秒十位dis_buf[5]=dis_code[sec%10];//秒個(gè)位 dis_buf[6]=0x00; //關(guān)閉該位數(shù)碼管dis_buf[7]=0x7f; //顯示B表示下午dis_digit=0xfe;dis_index=0;TCON=0x01; //T1:TF1TR1T0:TF0TR0定時(shí)中斷:IE1IT1IE0IT0//外部中斷0的觸發(fā)方式為下降沿觸發(fā)IE=0x8a;//使能timer0,1中斷,控制IE寄存器的格式:EA--ESET1EX1ET0EX0 //10001010TR0=1; //開定時(shí)器0TR1=1; //開定時(shí)器1key_v=0x1f; //定義為K1,K2,K3,K4,K5相應(yīng)的按鍵,當(dāng)沒有按下時(shí)則為,K1,K2,K3,K4,K5,都為高電平,0x1fwhile(1){if(scan_key()) //先掃描一次是否有按鍵按下{delayms(10); //延時(shí)if(scan_key()) //再次掃描一次是否有按鍵按下{key_v=key_s; //將key_s的值傳給key_vproc_key();}}}}bitscan_key(){key_s=0x00; //設(shè)置key_s先為0key_s|=K5;key_s<<=1;key_s|=K4;key_s<<=1;key_s|=K3;key_s<<=1;key_s|=K2; //K2->P1.1,若K2按下則為0,當(dāng)K2按下時(shí)key_s與K2或的結(jié)果會(huì)使得key_s為0x00,未按下時(shí)K2則為1,key_s與K2或的結(jié)果會(huì)使得key_s為0x01key_s<<=1; //將key_s左移一位,key_s|=K1; //K1->P1.0,若K1按下則為0,當(dāng)K1按下時(shí)key_s與K1或的結(jié)果會(huì)使得key_s為0x00或是0x02,沒有按下時(shí)則得到的結(jié)果為0x01或是0x03return(key_s^key_v); //進(jìn)行邏輯異或運(yùn)算,相同為0,不同為1. 已經(jīng)定義了變量:key_v=0x1f;如果兩個(gè)按鍵都沒有按下則是得到0x03,異或的結(jié)果是為0}voidproc_key(){if(K4==0) //K4是否按下 {flag++;//關(guān)閉定時(shí)器 TR1=0; //關(guān)閉定時(shí)器1 dis_buf[6]=0x76; //顯示H,用于表示設(shè)定時(shí)間的標(biāo)志 } if(K5==0) {flag1++; //flag1的初始值是0,falg1為12小時(shí)和24小時(shí)的切換標(biāo)志 if(flag1==1) //24小時(shí)制 {if(dis_buf[7]==0x7f) //判斷是不是下午 {hour=hour+12; dis_buf[7]=0x00; } dis_buf[7]=0x00; //關(guān)閉顯示 if(hour>23) {hour=0; } if(hour>9) dis_buf[0]=dis_code[hour/10];//時(shí)十位 else dis_buf[0]=0x00;//當(dāng)小時(shí)的十位為0時(shí)不顯示 dis_buf[1]=dis_code[hour%10];//時(shí)個(gè)位 } if(flag1==2) //12小時(shí)制 {flag1=0;if(hour>12||hour==0) //判斷是不是下午,并用于處理24小時(shí)制的大于13和等于0的處理 { if(hour>12) hour=hour-12; if(hour==0) hour=12; dis_buf[7]=0x7f;//顯示下午B } else dis_buf[7]=0x77; //顯示A表示上午 if(hour>9) dis_buf[0]=dis_code[hour/10];//時(shí)十位 else dis_buf[0]=0x00;//當(dāng)小時(shí)的十位為0時(shí)不顯示 dis_buf[1]=dis_code[hour%10];//時(shí)個(gè)位 } } if((key_v&0x01)==0)//K1,當(dāng)只有K1按下時(shí),則key_s為0x02,沒有按下時(shí)key_s則為0x03 {if(flag1==0) inc_hour(); if(flag1==1) inc_hour1(); } elseif((key_v&0x02)==0)//K2,當(dāng)只有K2按下時(shí),則key_s為0x01,沒有按下時(shí)key_s則為0x03 {min++; if(min>59) {min=0; } dis_buf[2]=dis_code[min/10];//分十位 dis_buf[3]=dis_code[min%10];//分個(gè)位 } elseif((key_v&0x04)==0)//K3是否按下 {sec++; if(sec>59) {sec=0; } dis_buf[4]=dis_code[sec/10];//秒十位 dis_buf[5]=dis_code[sec%10];//秒個(gè)位 } if(flag==2) {flag=0; TR1=1; dis_buf[6]=0x00; if(flag1==0) {if(flag2) dis_buf[7]=0x77; //顯示A表示上午 else dis_buf[7]=0x7f; //顯示B表示下午 } }}voidtimer0()interrupt1//定時(shí)器0中斷服務(wù)程序,用于數(shù)碼管的動(dòng)態(tài)掃描//dis_index顯示索引,用于標(biāo)識(shí)當(dāng)前顯示的數(shù)碼管和緩沖區(qū)的偏移量//dis_digit位選通值,傳送到P0口用于選通當(dāng)前數(shù)碼管的數(shù)值,如等于0xfe時(shí),//選通P2.0口數(shù)碼管//dis_buf顯于緩沖區(qū)基地址{TH0=0xf8; //定時(shí)時(shí)間為2msTL0=0x30;P2=0xff;//先關(guān)閉所有數(shù)碼管P0=dis_buf[dis_index];//顯示代碼傳送到P0口P2=dis_digit;//dis_digit=_crol_(dis_digit,1);//位選通值左移,下次中斷時(shí)選通下一位數(shù)碼管dis_index++;//dis_index&=0x07;//8個(gè)數(shù)碼管全部掃描完一遍之后,再回到第一個(gè)開始下一次掃描,限定了只掃描8位,當(dāng)為超過(guò)8位時(shí)則開始清零.} //0x07=00000111dis_index在一個(gè)個(gè)加一時(shí),則為加到8次。//定時(shí)器1的定時(shí)時(shí)間為10msvoidtimer1()interrupt3{TH1=0xd8;TL1=0xf0;sec100++;if(sec100>=100)//定時(shí)1秒的時(shí)間{sec100=0;inc_sec();}}voidinc_sec(){sec++;if

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論