




已閱讀5頁(yè),還剩25頁(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)介
目錄1課程設(shè)計(jì)的目的和意義21.1設(shè)計(jì)目的21.2設(shè)計(jì)意義22系統(tǒng)方案設(shè)計(jì)及確定33系統(tǒng)硬件設(shè)計(jì)43.1AT89S51最小系統(tǒng)設(shè)計(jì)43.1.1時(shí)鐘電路硬件設(shè)計(jì)43.1.2復(fù)位電路硬件設(shè)計(jì)43.2鍵盤電路硬件設(shè)計(jì)53.3顯示電路硬件設(shè)計(jì)63.4蜂鳴器電路硬件設(shè)計(jì)64系統(tǒng)軟件設(shè)計(jì)74.1系統(tǒng)主程序設(shè)計(jì)74.2定時(shí)器設(shè)計(jì)84.3秒表設(shè)計(jì)94.4鬧鐘設(shè)計(jì)94.5其他主要子程序設(shè)計(jì)105系統(tǒng)調(diào)試116總結(jié)12參考文獻(xiàn)13附錄14附錄一 程序清單14附錄二 系統(tǒng)硬件原理圖141課程設(shè)計(jì)的目的和意義1.1設(shè)計(jì)目的靈活運(yùn)用單片機(jī)的基礎(chǔ)知識(shí),依據(jù)課程設(shè)計(jì)內(nèi)容,能夠完成從硬件電路圖設(shè)計(jì),到PCB制版,再到軟件編程及系統(tǒng)調(diào)試實(shí)現(xiàn)系統(tǒng)功能,完成課程設(shè)計(jì),加深對(duì)單片機(jī)基礎(chǔ)知識(shí)的理解,并靈活運(yùn)用,將各門知識(shí)綜合應(yīng)用。能夠上網(wǎng)查詢器件資料,培養(yǎng)對(duì)新知識(shí)新技術(shù)的獨(dú)立的學(xué)習(xí)能力和應(yīng)用能力。獨(dú)立完成一個(gè)小的系統(tǒng)設(shè)計(jì),從硬件設(shè)計(jì)到軟件設(shè)計(jì),增強(qiáng)分析問(wèn)題、解決問(wèn)題的能力,為日后的畢業(yè)設(shè)計(jì)及科研工作奠定良好的基礎(chǔ)。1.2設(shè)計(jì)意義單片機(jī)課程設(shè)計(jì)過(guò)程中,我們通過(guò)查閱資料、硬件設(shè)計(jì)、程序設(shè)計(jì)、安裝調(diào)試等環(huán)節(jié),完成了一個(gè)涉及89S51單片機(jī)多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計(jì)與編程應(yīng)用。使我們不但能夠?qū)⒄n堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合起來(lái),而且能夠?qū)﹄娮与娐?、電子元器件、原理圖繪制等方面的知識(shí)進(jìn)一步加深認(rèn)識(shí),同時(shí)在軟件編程、排錯(cuò)調(diào)試、焊接技術(shù)、相關(guān)軟件及儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。使我們?cè)鲞M(jìn)對(duì)單片機(jī)的感性認(rèn)識(shí),加深對(duì)單片機(jī)理論方面的理解。使我們了解和掌握單片機(jī)應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)過(guò)程、方法及實(shí)現(xiàn),強(qiáng)化單片機(jī)應(yīng)用電路的設(shè)計(jì)與分析能力。提高我們?cè)趩纹瑱C(jī)應(yīng)用方面的實(shí)踐技能和科學(xué)作風(fēng);培育學(xué)生綜合運(yùn)用理論知識(shí)解決問(wèn)題的能力,實(shí)現(xiàn)理論結(jié)合實(shí)際,學(xué)以致用的原則。2系統(tǒng)方案設(shè)計(jì)及確定本次課程設(shè)計(jì),要求用單片機(jī)及6位LED數(shù)碼管顯示時(shí)、分、秒,以24時(shí)計(jì)時(shí)方式運(yùn)行,能整點(diǎn)提醒(短蜂鳴,次數(shù)代表整點(diǎn)時(shí)間),使用按鍵開(kāi)關(guān)可實(shí)現(xiàn)時(shí)、分調(diào)整,秒表(或鬧鐘)/時(shí)鐘功能轉(zhuǎn)換,以及實(shí)現(xiàn)省電(關(guān)閉顯示)功能。1時(shí)鐘功能 利用單片機(jī)片內(nèi)定時(shí)器(如T0)產(chǎn)生1s計(jì)時(shí),自行設(shè)定時(shí)鐘計(jì)數(shù)單元地址,包括秒單元、分單元、時(shí)單元,最大計(jì)數(shù)值為23時(shí)59分59秒。用6位LED數(shù)碼管顯示時(shí)、分、秒,以24時(shí)計(jì)時(shí)方式運(yùn)行; 使用按鍵開(kāi)關(guān)可實(shí)現(xiàn)時(shí)、分調(diào)整,可增加“熄滅符”用于時(shí)間調(diào)整時(shí)的閃爍功能; 能整點(diǎn)提醒(短蜂鳴,次數(shù)代表整點(diǎn)時(shí)間); 可通過(guò)按鍵使系統(tǒng)進(jìn)入省電狀態(tài)(數(shù)碼管不亮,時(shí)鐘不停)。2秒表功能 能通過(guò)按鍵實(shí)現(xiàn)秒表/時(shí)鐘功能之間的轉(zhuǎn)換; 利用單片機(jī)內(nèi)部定時(shí)器(如T1)實(shí)現(xiàn)秒表的計(jì)時(shí),自行設(shè)定秒表計(jì)數(shù)單元地址,包括10ms單元、秒單元、分單元, 通過(guò)6位LED數(shù)碼管顯示,最大計(jì)數(shù)值為99分59.99秒。 可通過(guò)按鍵實(shí)現(xiàn)秒表的暫停、清零、啟動(dòng)。 3鬧鐘功能 能通過(guò)按鍵實(shí)現(xiàn)鬧鐘/時(shí)鐘功能之間的轉(zhuǎn)換; 可通過(guò)按鍵設(shè)定鬧鐘時(shí)間,在定時(shí)鬧鈴時(shí)精確到分,可通過(guò)6位LED數(shù)碼管顯示鬧鐘設(shè)定時(shí)間。 可通過(guò)按鍵實(shí)現(xiàn)鬧鈴有效、無(wú)效,以及在設(shè)定鬧鐘后取消鬧時(shí)功能。在鬧鈴時(shí),可通過(guò)按鍵開(kāi)關(guān)使蜂鳴停止。4系統(tǒng)設(shè)計(jì)方案框圖如下:圖2-1系統(tǒng)設(shè)計(jì)方案框圖3系統(tǒng)硬件設(shè)計(jì)3.1AT89S51最小系統(tǒng)設(shè)計(jì)單片機(jī)最小系統(tǒng)單片機(jī),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng).對(duì)51系列單片機(jī)來(lái)說(shuō),最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路.下面給出一個(gè)51單片機(jī)的最小系統(tǒng)電路圖:圖3-1 51單片機(jī)最小系統(tǒng)原理圖3.1.1時(shí)鐘電路硬件設(shè)計(jì)時(shí)鐘電路是計(jì)算機(jī)最核心的部分,它控制著計(jì)算機(jī)的工作。AT 89 S51單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2,分別是單片機(jī)的19腳和18腳。在XTAL1和XTAL2兩端跨接石英晶體及兩個(gè)電容就可以構(gòu)成穩(wěn)定的自激振蕩器。石英晶振起振后要能在XTAL2線上輸出一個(gè)3V左右的正弦波,使片內(nèi)的OCS電路按石英晶振相同頻率自激震蕩。通常,OCS的輸出時(shí)鐘頻率fosc為0.5MHZ16MHZ,典型值為12MHZ電容器C1和C2通常取30pF左右,對(duì)震蕩頻率有微調(diào)作用。調(diào)節(jié)它們可以達(dá)到微調(diào)震蕩周期fosc的目的。時(shí)鐘電路如下:圖3-2 時(shí)鐘電路電路圖3.1.2復(fù)位電路硬件設(shè)計(jì)單片機(jī)的RST管腳為主機(jī)提供一個(gè)外部復(fù)位信號(hào)輸入端口。復(fù)位信號(hào)是高電平有效,高電平有效的持續(xù)時(shí)間應(yīng)為2個(gè)機(jī)器周期以上。單片機(jī)的復(fù)位方式有上電自動(dòng)復(fù)位和手工復(fù)位兩種。圖4-2所示是51系列單片機(jī)常用的上電復(fù)位電路,只要Vcc上升時(shí)間不超過(guò)1ms,它們都能很好地工作。復(fù)位以后,單片機(jī)內(nèi)各部件恢復(fù)到初始狀態(tài)。電阻電容器件的參考值:R1=200,R2=1K,C3=22F。RET按鍵可以選擇專門的復(fù)位按鍵,也可以選擇輕觸開(kāi)關(guān)。復(fù)位電路如下圖3-3 復(fù)位電路電路圖3.2鍵盤電路硬件設(shè)計(jì)單片機(jī)中常見(jiàn)的鍵盤有獨(dú)立式鍵盤和矩陣式鍵盤,獨(dú)立式鍵盤適用于實(shí)現(xiàn)功能較少的場(chǎng)合、矩陣式鍵盤適用于功能復(fù)雜的場(chǎng)合。本次課程設(shè)計(jì),采用獨(dú)立式鍵盤即可。鍵盤電路如下:圖3-4 鍵盤電路電路圖上拉電阻保證按鍵釋放時(shí),輸入檢測(cè)線上有穩(wěn)定的高電平。當(dāng)某一按鍵按下時(shí),對(duì)應(yīng)的檢測(cè)線就變成了低電平,與其他按鍵相連的檢測(cè)線仍為高電平,只需讀入I/O輸入線的狀態(tài),判別哪一條I/O輸入線為低電平,很容易識(shí)別哪個(gè)鍵被按下。鍵的閉合與否,輸出電壓上就是呈現(xiàn)高電平或低電平。高電平,表示鍵斷開(kāi),低電平則表示鍵閉合,通過(guò)對(duì)電平的高低狀態(tài)的檢測(cè),可確認(rèn)按鍵按下以及按鍵釋放與否。為了確保對(duì)一次按鍵動(dòng)作只確認(rèn)一次按鍵有效,必須消除抖動(dòng)的影響,去抖有硬件去抖和軟件去抖,本次設(shè)計(jì)采用軟件去抖。3.3顯示電路硬件設(shè)計(jì)本次課程設(shè)計(jì),采用LED數(shù)碼管作為顯示裝置。LED數(shù)碼管有共陰極、共陽(yáng)極兩種結(jié)構(gòu),本次采用共陽(yáng)極數(shù)碼管。共陽(yáng)極LED數(shù)碼管的發(fā)光二極管的陽(yáng)極連接在一起,公共陽(yáng)極接正電壓,當(dāng)某個(gè)發(fā)光二極管的陰極接低電平時(shí),發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示。8段共陽(yáng)極LED段碼如下:表3-1 8段共陽(yáng)極LED段碼表顯示字符012345678段碼C0HF9HA4HB0H99H92H82HF8H80H顯示字符9ABCDEF全滅全亮段碼90H88H83HC6HA1H86H8EHFFH00HLED數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式。靜態(tài)顯示方式,數(shù)碼管亮度高、軟件編程簡(jiǎn)單,但是需要占用大量的I/O口,一般在多位顯示時(shí)不采用此種方法。動(dòng)態(tài)顯示方式,數(shù)碼管亮度稍低、軟件編程復(fù)雜,但是占用的I/O口少,在顯示多位數(shù)字的時(shí)候適合采用此種方法。考慮到本次課程設(shè)計(jì)需要顯示六位數(shù)字,故采用動(dòng)態(tài)顯示方式。LED數(shù)碼管段選、位選驅(qū)動(dòng)電路均采用DM74LS244作為驅(qū)動(dòng)芯片。3.4蜂鳴器電路硬件設(shè)計(jì)蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器的工作原理是,接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲。本次課程設(shè)計(jì)中,由于單片機(jī)的I/O口驅(qū)動(dòng)能力不夠讓蜂鳴器發(fā)出聲音,所以我們通過(guò)三極管放大驅(qū)動(dòng)電流,從而可以讓蜂鳴器發(fā)出聲音。蜂鳴器電路如下:圖3-5 蜂鳴器電路電路圖4系統(tǒng)軟件設(shè)計(jì)4.1系統(tǒng)主程序設(shè)計(jì)程序中,采用按鍵1作為主功能切換鍵,按鍵2、按鍵3、按鍵4作為子功能控制鍵。在主程序中,開(kāi)始即進(jìn)入定時(shí)器子程序,顯示當(dāng)前時(shí)間,并同時(shí)對(duì)按鍵1進(jìn)行掃描。如果按鍵1第一次被按下,則進(jìn)入調(diào)整時(shí)間子程序,并同時(shí)對(duì)按鍵2 、按鍵3、按鍵4進(jìn)行掃描,此時(shí)按鍵2 、按鍵3、按鍵4分別作為調(diào)整時(shí)、分、秒按鈕使用;如果按鍵1第二次被按下,則進(jìn)入秒表子程序,并同時(shí)對(duì)按鍵2 、按鍵3、按鍵4進(jìn)行掃描,按鍵2 、按鍵3、按鍵4分作為秒表啟動(dòng)、暫停、停止并清理按鈕使用;如果按鍵1第三次被按下,則進(jìn)入鬧鐘子程序,并同時(shí)對(duì)按鍵2 、按鍵3、按鍵4進(jìn)行掃描,按鍵2 、按鍵3、按鍵4分作為鬧鐘的啟動(dòng)/關(guān)閉、調(diào)整時(shí)、調(diào)整分按鈕使用;如果按鍵1第四次被按下,則進(jìn)入節(jié)能子程序,此時(shí)將不對(duì)按鍵2 、按鍵3、按鍵4分進(jìn)行掃描;如果按鍵1第五次被按下,則重新回到定時(shí)器子程序,如此循環(huán)。主程序流程圖4.2定時(shí)器設(shè)計(jì)在定時(shí)器子程序當(dāng)中,采用定時(shí)器T0產(chǎn)生定時(shí)中斷。定時(shí)器T0工作于方式2,初值為TH0=0x9C,TL0=0x9C,時(shí)鐘電路采用12MHZ晶振,所以每0.1ms產(chǎn)生一次中斷,再在中斷中對(duì)時(shí)間進(jìn)位進(jìn)行判斷處理,使之產(chǎn)生較為精準(zhǔn)的定時(shí)。定時(shí)器子程序4.3秒表設(shè)計(jì)在秒表子程序當(dāng)中,采用定時(shí)器T1產(chǎn)生定時(shí)中斷。定時(shí)器T1同意工作于方式2,初值為TH0=0x9C,TL0=0x9C,時(shí)鐘電路采用12MHZ晶振,所以每0.1ms產(chǎn)生一次中斷,再在中斷中對(duì)時(shí)間進(jìn)位進(jìn)行判斷處理,使之產(chǎn)生較為精準(zhǔn)的定時(shí)。秒表子程序4.4鬧鐘設(shè)計(jì)在鬧鐘子程序里,按鍵2被按下奇數(shù)次時(shí),鬧鐘打開(kāi)并在第一位數(shù)碼管上顯示標(biāo)志位;按鍵2被按下偶數(shù)次時(shí),鬧鐘關(guān)閉并熄滅第一位數(shù)碼管上的標(biāo)志位。按下按鍵3,則定時(shí)時(shí)間的小時(shí)位加一;按下按鍵4,則定時(shí)時(shí)間的分鐘位加一。鬧鐘子程序4.5其他主要子程序設(shè)計(jì)在時(shí)鐘設(shè)置子程序中,按鍵2被按下,則當(dāng)前時(shí)間的小時(shí)位加一;按鍵3被按下,則當(dāng)前時(shí)間的分鐘位加一;按鍵4被按下,則當(dāng)前時(shí)間的秒位被清零。時(shí)鐘設(shè)置子程序當(dāng)進(jìn)入節(jié)能子程序時(shí),數(shù)碼管將全部被熄滅,此時(shí)按鍵2、按鍵3、按鍵4即使被按下也不采取任何操作。節(jié)能子程序其他說(shuō)明:當(dāng)時(shí)間的小時(shí)位進(jìn)一時(shí),蜂鳴器將響起,響的“嘀”次數(shù)等于當(dāng)前時(shí)間小時(shí)位的值。當(dāng)當(dāng)前時(shí)間等于鬧鐘定時(shí)時(shí)間時(shí),蜂鳴器將不斷響起“嘀”聲,按下按鍵1后,“嘀”聲停止。5系統(tǒng)調(diào)試本次課程設(shè)計(jì)采用偉福仿真器進(jìn)行程序的調(diào)試,下面介紹偉福仿真器的調(diào)試及使用。進(jìn)入WAVE軟件后,第一步要進(jìn)行仿真器設(shè)置,在仿真器選項(xiàng)卡中,仿真器為選擇“E6000/S”,仿真頭選擇“POD-H8X5X”,CPU選擇“89C51RX”; 在目標(biāo)文件選項(xiàng)卡中,將所有選項(xiàng)前均打鉤,;在通訊設(shè)置選項(xiàng)卡中,將“使用偉福軟件模擬器”的“”勾掉,然后選擇“COM1”口,點(diǎn)擊“測(cè)試串行口”,測(cè)試成功后,就完成了所有的仿真器設(shè)置。第二步,開(kāi)始創(chuàng)建項(xiàng)目工程,在C盤根目錄下創(chuàng)建“Project”文件夾,雙擊打開(kāi),再創(chuàng)建“program . c”文件。注意,這里“Project”文件夾為工程項(xiàng)目所存放的文件夾,文件夾名必須是英文,漢字不能用。 “program . c”文件為程序源文件,若是用匯編語(yǔ)言,則相應(yīng)的改為“program . asm”文件。這里文件夾名和原文件名可以是任意英文字符。點(diǎn)擊菜單欄“文件(F)”“新建項(xiàng)目”找到剛才創(chuàng)建的源文件(以C語(yǔ)言源文件為例),點(diǎn)擊“打開(kāi)”,然后鍵入工程項(xiàng)目文件名字(以project為例,項(xiàng)目文件名可以任意),并點(diǎn)擊“保存”保存。 雙擊左側(cè)源文件“program . c”,此時(shí)即可開(kāi)始編寫程序了。(WAVE6000集成開(kāi)發(fā)軟件是基于C語(yǔ)言內(nèi)核的,僅支持“ /* */ ”注釋方式,不支持“ / ”注釋方式)。最后介紹程序的編譯及執(zhí)行,點(diǎn)擊菜單欄“項(xiàng)目”“編譯”,無(wú)語(yǔ)法錯(cuò)誤,編譯通過(guò)。點(diǎn)擊菜單欄上“執(zhí)行”“全速執(zhí)行”,進(jìn)行硬件仿真調(diào)試。按停止按鈕則退出調(diào)試狀態(tài)。本次課程設(shè)計(jì),我主要是參考了郭天祥老師的一些例子程序,從而逐步掌握了有關(guān)單片機(jī)數(shù)碼管動(dòng)態(tài)顯示、按鍵的掃描及去抖、時(shí)鐘定時(shí)賦值等一些內(nèi)容。然后根據(jù)老師的原理圖,參照例子程序,利用C語(yǔ)言進(jìn)行編程。程序調(diào)試過(guò)程中難免出現(xiàn)各種各樣的問(wèn)題,通過(guò)請(qǐng)教老師、網(wǎng)絡(luò)查詢、同學(xué)之間相互幫助,都逐一得到了解決。6總結(jié)為期三周的課程設(shè)計(jì)就這樣結(jié)束了,通過(guò)這次課程設(shè)計(jì),我們不僅對(duì)單片機(jī)的學(xué)習(xí)有了更多的認(rèn)識(shí)和理解,而且又填補(bǔ)了很多以前的知識(shí)漏洞。本次課程設(shè)計(jì),收獲最多的當(dāng)然是單片機(jī)方面,但是同時(shí)我們又一次學(xué)習(xí)了C語(yǔ)言、Protel制圖等,熟悉掌握了WAVE6000的使用。課程設(shè)計(jì)是培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)我們實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程. 回顧起此次課程設(shè)計(jì),至今我仍感慨頗多。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,唯有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正提高我們自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的很多的不足,自己知識(shí)的很多漏洞,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,看到了自己基礎(chǔ)知識(shí)還是不夠扎實(shí),實(shí)踐經(jīng)驗(yàn)還是比較缺乏,理論聯(lián)系實(shí)際的能力還待急需提高。通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。在這個(gè)過(guò)程中,我真切的感到了,我又知道了很多,同時(shí)也掌握了很多以后在工作和生活中能真正用到的很多東西。但是我不會(huì)因此而驕傲,相反以后我將會(huì)更加虛心,因?yàn)槲抑肋@只是個(gè)簡(jiǎn)單的開(kāi)始,以后還有很多的路要走。在此,再次感謝帶領(lǐng)我們課程設(shè)計(jì)的王老師、杜老師、張老師和蔡老師,正是有了老師們的細(xì)心教導(dǎo)、耐心指導(dǎo)、苦心監(jiān)督,我們才能夠順利完成各項(xiàng)學(xué)習(xí)任務(wù)、收獲真知識(shí)、鍛煉真本領(lǐng)。參考文獻(xiàn)【1】單片機(jī)原理與接口技術(shù)M胡漢才.清華大學(xué)出版社【2】MCS-51系列單片機(jī)原理及應(yīng)用M. 王瑾、杜波等.中國(guó)電力出版社【3】新概念51單片機(jī)C語(yǔ)言教程M郭天祥.電子工業(yè)出版社【4】跟我學(xué)用單片機(jī)M. 肖洪兵. 北京航空航天大學(xué)出版社【5】單片機(jī)實(shí)驗(yàn)與實(shí)踐教程M. 夏繼強(qiáng). 北京航空航天大學(xué)出版社,【6】Protel DXP 電路設(shè)計(jì)技術(shù)M. 孫玉軍. 冶金工業(yè)出版社【7】單片機(jī)應(yīng)用設(shè)計(jì)200 例.下(第一版)M. 張洪潤(rùn). 北京航空航天大學(xué)出版社【8】C語(yǔ)言程序設(shè)計(jì)M.楊忠寶、董曉明. 北京大學(xué)出版社附錄附錄一 程序清單/*頭文件*/#include#define uint unsigned int#define uchar unsigned char/*定義按鍵*/sbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;/*定義蜂鳴器*/sbit bell=P17;/*定義數(shù)碼管位控*/sbit LED1=P25;sbit LED2=P24;sbit LED3=P23;sbit LED4=P22;sbit LED5=P21;sbit LED6=P20;/*定義變量*/uchar miao,fen,shi,shm,sec,min,nshi,nfen;uchar d1,d2,d3,d4,d5,d6,m1,m2,m3,m4,m5,m6,n1,n2,n3,n4;uint num,num1,num2,num3,ge,ss;/*共陰極段選碼(0-9)*/uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*延時(shí)函數(shù)*/void delay(uint x)uint i,j;for(i=80;i0;i-)for(j=x;j0;j-);/*時(shí)鐘顯示函數(shù)*/void display()d1=shi/10;/*高低位分離*/d2=shi%10;d3=fen/10;d4=fen%10;d5=miao/10;d6=miao%10;LED1=1;/*時(shí)高位*/P0=tabled1;delay(1);LED1=0;LED2=1;/*時(shí)低位*/P0=tabled2;delay(1);LED2=0;LED2=1;/*時(shí)低位小數(shù)點(diǎn)顯示*/P0=0x80;delay(1);LED2=0;LED3=1;/*分高位*/P0=tabled3;delay(1);LED3=0;LED4=1;/*分低位*/P0=tabled4;delay(1);LED4=0;LED4=1;/*分低位小數(shù)點(diǎn)顯示*/P0=0x80;delay(1);LED4=0;LED5=1;/*秒高位*/P0=tabled5;delay(1);LED5=0;LED6=1;/*秒低位*/P0=tabled6;delay(1);LED6=0;/*時(shí)鐘調(diào)整函數(shù)*/void tiaozheng()if(key2=0)/*時(shí)+*/delay(10);if(key2=0)while(!key2);shi+;delay(20);if(shi=24)shi=0;if(key3=0)/*分+*/delay(10);if(key3=0)while(!key3);fen+;delay(20);if(fen=60)fen=0;if(key4=0)/*秒清零*/delay(10);if(key4=0)miao=0;/*時(shí)鐘調(diào)整數(shù)碼管閃爍顯示函數(shù)*/void display1()d1=shi/10;d2=shi%10;d3=fen/10;d4=fen%10;d5=miao/10;d6=miao%10;if(ss=1)LED1=1;/*時(shí)高位*/P0=tabled1;delay(1);LED1=0;LED2=1;/*時(shí)低位*/P0=tabled2;delay(1);LED2=0;LED2=1;/*時(shí)低位小數(shù)點(diǎn)顯示*/P0=0x80;delay(1);LED2=0;LED3=1;/*分高位*/P0=tabled3;delay(1);LED3=0;LED4=1;/*分低位*/P0=tabled4;delay(1);LED4=0;LED4=1;/*分低位小數(shù)點(diǎn)顯示*/P0=0x80;delay(1);LED4=0;LED5=1;/*秒高位*/P0=tabled5;delay(1);LED5=0;LED6=1;/*秒低位*/P0=tabled6;delay(1);LED6=0;/*整點(diǎn)報(bào)時(shí)功能函數(shù)*/void baoshi()if(fen=59)&(miao=59)/*整點(diǎn)報(bào)時(shí)功能*/uchar bs;bs=shi;bs+;while(bs0)/*報(bào)時(shí)次數(shù)等于小時(shí)數(shù)*/bs-;bell=0;delay(100);bell=1;delay(100);/*秒表功能控制函數(shù)*/void miaobiao()if(key2=0)/*秒表開(kāi)始計(jì)時(shí)*/delay(10);if(key2=0)while(!key2);TR1=1;if(key3=0)/*秒表暫停*/delay(10);if(key3=0)while(!key3);TR1=0;if(key4=0)/*秒表清零*/delay(10);if(key4=0)while(!key4); TR1=0;shm=0;sec=0;min=0; /*秒表顯示函數(shù)*/void display2()m1=min/10;m2=min%10;m3=sec/10;m4=sec%10;m5=shm/10;m6=shm%10;LED1=1;/*分高位*/P0=tablem1;delay(1);LED1=0;LED2=1;/*分低位*/P0=tablem2;delay(1);LED2=0;LED2=1;/*分低位小數(shù)點(diǎn)顯示*/P0=0x80;delay(1);LED2=0;LED3=1;/*秒高位*/P0=tablem3;delay(1);LED3=0;LED4=1;/*秒低位*/P0=tablem4;delay(1);LED4=0;LED4=1;/*秒低位小數(shù)點(diǎn)顯示*/P0=0x80;delay(1);LED4=0; LED5=1;/*10ms高位*/P0=tablem5;delay(1);LED5=0;LED6=1;/*10ms低位*/P0=tablem6;delay(1);LED6=0;/*鬧鐘設(shè)置功能函數(shù)*/void naozhong()if(key2=0)/*設(shè)置鬧鐘的開(kāi)關(guān)*/delay(10);if(key2=0)while(!key2);num2+;if(num2=3)num2=1;/*鬧鐘打開(kāi)*/if(key3=0)/*定點(diǎn)小時(shí)+*/delay(10);if(key3=0)while(!key3);nshi+;if(nshi=24)nshi=0;if(key4=0)/*定點(diǎn)分鐘+*/delay(10);if(key4=0)while(!key4);nfen+;if(nfen=60)nfen=0;/*鬧鐘顯示函數(shù)*/void display3()n1=nshi/10;n2=nshi%10;n3=nfen/10;n4=nfen%10;if(num2=1)/*第一位全顯示表示鬧鐘打開(kāi)*/LED1=1;P0=0xff;delay(1);LED1=0;if(num2=2)/*第一位全滅表示鬧鐘關(guān)閉*/LED1=1;P0=0x00;delay(1);LED1=0;LED3=1;/*小時(shí)高位*/P0=tablen1;delay(1);LED3=0;LED4=1;/*小時(shí)低位*/P0=tablen2;delay(1);LED4=0;LED4=1;/*小時(shí)低位小數(shù)點(diǎn)顯示*/P0=0x80;delay(1);LED4=0;LED5=1;/*分鐘高位*/P0=tablen3;delay(1);LED5=0;LED6=1;/*分鐘低位*/P0=tablen4;delay(1);LED6=0;/*到點(diǎn)提醒功能函數(shù)*/void tixing()if(num2=1)&(nshi=shi)&(nfen=fen)/*鬧鐘*/while(num2=1)/*按鍵key1控制蜂鳴器停止,并關(guān)閉鬧鐘*/bell=0;delay(100);bell=1;delay(100);if(key1=0)delay(10);if(key1=0)while(!key1);
溫馨提示
- 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年湖南省長(zhǎng)沙市中考招生考試數(shù)學(xué)真題試卷(真題+答案)
- 預(yù)防肺炎主題班會(huì)課件
- 預(yù)防疾病安全課件
- 靜脈治療護(hù)士教育培訓(xùn)體系
- 《電子產(chǎn)品裝配與測(cè)試》課件-任務(wù)2 儀器的使用
- 預(yù)防兒童近視課件
- 預(yù)防傳染保健康課件
- 學(xué)校輔導(dǎo)員(班導(dǎo)師)管理及考評(píng)辦法
- 城市污水管網(wǎng)建設(shè)項(xiàng)目節(jié)能評(píng)估報(bào)告(參考模板)
- 2025年年云服務(wù)項(xiàng)目合作計(jì)劃書(shū)
- DB12T 1443-2025 社會(huì)單位消防安全管理導(dǎo)則
- 2025安全生產(chǎn)月活動(dòng)總結(jié)模板十(19P)
- 內(nèi)蒙古呼和浩特實(shí)驗(yàn)教育集團(tuán)2025屆八下英語(yǔ)期末考試試題含答案
- 《電子工業(yè)全光網(wǎng)絡(luò)工程技術(shù)規(guī)范》
- 山東女子學(xué)院《大學(xué)英語(yǔ)學(xué)前教育學(xué)院》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025至2030中國(guó)電子皮膚行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 2025年內(nèi)蒙古煤炭建設(shè)工程(集團(tuán))總公司招聘筆試參考題庫(kù)含答案解析
- 2025至2030年中國(guó)鐵氧體軟磁材料行業(yè)發(fā)展現(xiàn)狀分析及投資規(guī)模預(yù)測(cè)報(bào)告
- 有理數(shù)加減混合運(yùn)算練習(xí)題300道-可打印
- 2025吉林長(zhǎng)春市軌道交通集團(tuán)有限公司校園招聘693人筆試參考題庫(kù)附帶答案詳解析
- 戰(zhàn)士留疆考試題及答案大全
評(píng)論
0/150
提交評(píng)論