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

正文內容

基于單片機9999秒倒計時器設計(編輯修改稿)

2025-07-11 16:34 本頁面
 

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