freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)9999秒倒計(jì)時(shí)器設(shè)計(jì)(編輯修改稿)

2025-07-11 16:34 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 首先,初值設(shè)置。對(duì)計(jì)數(shù)值 count 賦初值 0,對(duì)定時(shí)器 0 的高八位 TH0 和低八位 TL0 設(shè)置初值,然后開中斷。其次,根據(jù)中斷子程序及初值,50ms 產(chǎn)生一次中斷,計(jì)數(shù)器則加 1,當(dāng)計(jì)數(shù)器 count 加到 20 的時(shí)候,倒計(jì)時(shí)器減 1,并且 count 清 0 依次循環(huán)程序。判斷值是否為 0,如果不為 0,繼續(xù)倒計(jì)時(shí);如果為 0,則關(guān)中斷程序 stoptimer0(),倒計(jì)時(shí)結(jié)束。倒計(jì)時(shí)模塊設(shè)計(jì)流程圖如圖 44 所示。 15 圖 44 倒計(jì)時(shí)流程圖 16 軟件仿真 圖 51 仿真電路圖 17 圖 52 PCB 圖 調(diào)試 系統(tǒng)調(diào)試工具 Keil uVision3 Keil uVision3 仿真器是一款利用其 IDE 集成開發(fā)環(huán)境作為仿真環(huán)境的廉價(jià)仿真器,是利用 SST 公司具有 IAP 功能的單片機(jī) SST89C58 制作而成,主要是利用了 SST89C58 的 IAP 功能,所謂 IAP 功能是 In application program 的英文縮寫,是在應(yīng)用編程的意思,通俗一點(diǎn)講就是:它可以通過串口將用戶的程序下載到單片機(jī)中,可以通過串口對(duì) 單片機(jī)進(jìn)行編程。它之所以具有這種功能,實(shí)際上它有兩塊程序 flash 區(qū),其中一塊 flash 中運(yùn)行的程序可以更改另外的一塊程序 flash 區(qū)中的程序,正是利用這一特性才用它作成了仿真器,我們把仿真器的監(jiān)控程序事先燒入 SST89C58, 18 監(jiān)控程序通過 SST89C58 的串口和 PC 通訊,當(dāng)使用 KEIL UVISION3 的 IDE 環(huán)境仿真時(shí),用戶的程序通過串口被監(jiān)控程序?qū)懭? flash 程序區(qū)中,當(dāng)用戶設(shè)置斷點(diǎn)等操作仿真程序時(shí), flash 程序中的用戶程序也在相應(yīng)的更改,從而實(shí)現(xiàn)了仿真功能 。 調(diào)試的主要方法 ①啟動(dòng) Keil uVision3。 ②新建一個(gè)工程。 Project 菜單 —— 〉 New project ,選擇好我們要保存的文件夾后,鍵入 djs 保存。接著彈出 CPU 類型選擇框,選擇最常用的 Atmel—— 〉 AT89C51,按確定。 ③在工程中加入文件。新建一個(gè)文件,文件菜單 File—— 〉 New,我們?cè)冱c(diǎn)擊 save the active document 按鈕,(另存為)彈出對(duì)話框后,我們文件名框中鍵入 (注意文件后綴名是 .c)保存,這個(gè)時(shí)候 C 語言文件創(chuàng)建完 畢。 ④現(xiàn)在可以把文件加入到工程中去。點(diǎn)擊 Target1 前面的 +號(hào),右鍵單擊 Source Group1—— 〉選擇 Add Files to Group’ Source Group 1’ ,在彈出的對(duì)話框中選擇一創(chuàng)建好的 文件,選擇添加 Add,然后關(guān)閉此對(duì)話框。 ⑤此時(shí)工程建成,可以寫入程序了。在寫入程序的時(shí)候,通過軟件設(shè)計(jì)模塊,先寫好主程序的框架,然后在需要調(diào)用子程序的時(shí)候,一個(gè)子程序一個(gè)子程序進(jìn)行編寫、調(diào)試。 ⑥當(dāng)程序完成之后,點(diǎn)擊 Rebuild all target files 按鈕 (重新編譯所有目標(biāo)文件 )進(jìn)行程序調(diào)試、查錯(cuò),在程序下面的提示框 Output window 中點(diǎn)擊出錯(cuò)的提示,進(jìn)行程序改錯(cuò),當(dāng)程序沒有錯(cuò)誤的時(shí)候,出現(xiàn)如下圖 53 的對(duì)話框。 圖 53 正確編譯時(shí)對(duì)話框 ⑦點(diǎn)擊 Build target 按鈕 ,此時(shí)選擇 Options for Target 按鈕 ,出現(xiàn)如圖 54所示。 選擇 Dubug 按鈕,選擇 Use(Keil Monitor51 Driver),點(diǎn)擊確定。 19 圖 54 Options for Target 窗口 ⑧點(diǎn)擊 Start/Stop Debug Session 按鈕,進(jìn)入調(diào)試狀態(tài)。第一次將會(huì)出現(xiàn)下圖 55提示窗口,則需要點(diǎn)擊 Settings,在下面彈出窗口如圖 56中,設(shè)置相應(yīng)端口號(hào)。在設(shè)置端口號(hào)的時(shí)候,先通過右鍵電腦 —— 〉屬性,查看端口號(hào)后修改正確的端口號(hào),然后點(diǎn)擊 OK 確定,然后再點(diǎn)擊 TryAgain,繼續(xù)進(jìn)行程序下載。 圖 55 提示選擇窗口 20 圖 16 ⑨ 點(diǎn)擊 Run 按鈕 ,在試驗(yàn)版上即可以看到程序效果(顯示默認(rèn)初值 9999 并開始以秒為單位倒計(jì)時(shí)),接下來在實(shí)驗(yàn)板 上進(jìn)行操作。先按下 KC 鍵,等待設(shè)置初值;然后任意按下 K0~K9 設(shè)置初值,完成后按下 KF 鍵開始倒計(jì)時(shí)。 ⑩ 當(dāng)演示完成后,按 RESET 開關(guān)鍵復(fù)位,然后點(diǎn)擊 。 在系統(tǒng)調(diào)試的過程中,出現(xiàn)了很多問題,特別是在編寫程序的時(shí)候。因?yàn)橹灰绦蛘Z句沒有語法錯(cuò)誤,軟件就不能檢測(cè)出錯(cuò)誤的地方,必須一個(gè)模塊一個(gè)模塊仔細(xì)編寫。本次設(shè)計(jì)同時(shí)也讓我學(xué)會(huì)了 Keil uVision3 的基本用法,但是本設(shè)計(jì)是用的 C 語言編程,所以了解的大部分用法都是與 C 語言有關(guān)的,以后需要繼續(xù)學(xué)習(xí)。 及致謝 通過對(duì) MCS51 單片機(jī)原理和接口技術(shù)的初步了解,結(jié)合自己的專業(yè)知識(shí)和對(duì) C 語言的基本認(rèn)識(shí),在導(dǎo)師的幫助指導(dǎo)下完成了基于單片機(jī)控制的 9999 秒倒計(jì)時(shí)系統(tǒng)的設(shè)計(jì)和這篇論文,本論文完成了以下幾個(gè)方面的工作: ①介 紹了本次倒計(jì)時(shí)系統(tǒng)的設(shè)計(jì)目的、設(shè)計(jì)方案和開發(fā)意義。 ②對(duì) MCS51 單片機(jī)的部分基本原理和接口技術(shù)進(jìn)行了闡述,其中大部分都是本次設(shè)計(jì)需要用到,比如中斷原理、定時(shí)器等; 21 ③首先介紹了本次倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)的硬件電路設(shè)計(jì),包括中央處理模塊、 LED 數(shù)碼顯示器模塊、鎖存器模塊、矩陣鍵盤模塊的設(shè)計(jì);其次是軟件程序設(shè) 計(jì),包括主程序設(shè)計(jì)和各個(gè)模塊的子程序設(shè)計(jì);最后是 Keil uVision3 軟件系統(tǒng)調(diào)試的步驟和方法,以完成系統(tǒng)設(shè)計(jì)。 系統(tǒng)功能:一切就緒后,通過 KC 鍵等待初值設(shè)置,其次通過矩陣鍵盤設(shè)定任何小于 9999 的初值,然后通過 KF 鍵開始倒計(jì)時(shí),同時(shí)設(shè)置有復(fù)位鍵,以達(dá)到可以重新設(shè)置初值的目的。 通過本次設(shè)計(jì),使我在對(duì)單片機(jī)一無所知的情況下了解了單片機(jī)的部分原理和一些簡(jiǎn)單的設(shè)計(jì),同時(shí),也增強(qiáng)了對(duì)單片機(jī)的興趣。但是由于本次設(shè)計(jì)我對(duì)單片機(jī)是從頭開始學(xué),對(duì)知識(shí)了解的局限性,使得這個(gè)倒計(jì)時(shí)系統(tǒng)在功能上不完善,對(duì)開發(fā) 有一定的影響,懇請(qǐng)各位老師原諒! 時(shí)光飛逝 ,畢業(yè)設(shè)計(jì)完成了,在這個(gè)過程中我學(xué)到了很多東西。首先我要感謝我的導(dǎo)師 XXX 老師,他在我完成論文的過程中,給予了我很大的幫助。 他在日常繁忙的工作中,多次詢問我的論文進(jìn)程,并為我指點(diǎn)迷津。我非常感謝 XXX老師的指導(dǎo)。 感謝大學(xué)四年所有的授課老師,是他們讓我了解專業(yè)知識(shí),并讓我學(xué)會(huì)如何學(xué)習(xí)專業(yè)知識(shí),這是一筆寶貴的財(cái)富,我將受用終身。感謝他們的無私奉獻(xiàn)! 感謝我的家人,是他們給我的鼓勵(lì)和支持,是我前進(jìn)的動(dòng)力,讓我不斷進(jìn)取、完成學(xué)業(yè)。 最后,我要感謝所有關(guān)心、幫助過我的朋友 們!祝愿他們?cè)谖磥淼娜兆永?,生活愉快,工作順利? 參考文獻(xiàn)( references): [1]譚浩強(qiáng) ,C程序設(shè)計(jì)(第三版),清華大學(xué)出版社, [2]郭天祥 ,新概念 51單片機(jī) C語言教程 電子工業(yè)出版社 ,2021 [3]張洪潤(rùn),廖勇明,王德超 ,模擬電路與數(shù)字電路 北京:清華大學(xué)出版社, 2021 [4]王化祥 ,感器原理及應(yīng)用(第三版)天津大學(xué)出版社, 2021 附 錄 程序 include 22 define LEDData P0 //定時(shí)數(shù)碼管的段值從 P0 口輸出 unsigned char code LEDCode[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7}。 //數(shù)碼管 09 的編碼 unsigned char minit,second,count,count1。 //分,秒,計(jì)數(shù)器 unsigned char set_minit=99,set_second=99。 sbit add1=P1^3。 //每按一次加時(shí)間 sbit dec1=P1^4。 //每按一次減時(shí)間 sbit add2=P3^3。 //每按一次加時(shí)間 sbit dec2=P3^4。 //每按一次減時(shí)間 sbit secondpoint=P0^5。 //秒閃動(dòng)點(diǎn) //數(shù)碼管的位選控制腳,共有 11 位數(shù)碼管 sbit led1=P2^3。 sbit led2=P2^4。 sbit led3=P2^5。 sbit led4=P2^6。 da bit playon=0。 //比賽進(jìn)行標(biāo)志位,為 1 時(shí)表示比賽開始,計(jì)時(shí)開啟 bit timeover=0。 //比賽結(jié)束標(biāo)志位,為 1 時(shí)表示時(shí)間已經(jīng)完 bit halfsecond=0。 //半秒標(biāo)志位 //====================延時(shí) ================== void Delay5ms(void) { unsigned int i。 for(i=100。i0。i)。 } void display(void) { //顯示時(shí)間分 23 LEDData=LEDCode[minit/10]。 //顯示第一位 9 led1=0。 Delay5ms()。 led1=1。 LEDData=LEDCode[minit%10]。 //顯示第二位 9 led2=0。 Delay5ms()。 led2=1。 //秒點(diǎn)閃動(dòng) if(halfsecond==1) secondpoint=1。 else secondpoint=0。 led2=0。 Delay5ms()。 led2=1。 secondpoint=0。 //顯示時(shí)間秒 LEDData=LEDCode[second/10]。 //顯示第三位 9 led3=0。 Delay5ms()。 led3=1。 LEDData=LEDCode[second%10]。 //顯示第四位 9 led4=0。 Delay5ms()。 led4=1。 } //=========================按鍵檢測(cè)程序 24 ============================================== void keyscan(void) { if(playon==0) //在比賽未開始的狀態(tài)下 { if(add1==0) //當(dāng) add1 按鍵按下時(shí) { display()。 //調(diào)用顯示,同時(shí)作為延時(shí)消抖 if(add1==0)。 //延時(shí)消抖后,依然檢查到按鍵按下 { if(minit99) //當(dāng)分鐘小于 9 時(shí),分鐘加 1 minit++。 else minit=99。 //否則,分鐘仍然為 9,最在調(diào)整為 9 分鐘 } do //當(dāng)按鍵未松開時(shí),一直調(diào)用顯示,防止數(shù)碼管閃動(dòng), display()。 while(add1==0)。 } if(dec1==0) //當(dāng) dec1 鍵按下時(shí), dec1 的原理與 add 一樣, { display()。 if(dec1==0)。 { if(minit0) minit。 else
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1