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

正文內(nèi)容

單片機(jī)課程設(shè)計(jì)-基于單片機(jī)的數(shù)字秒表設(shè)計(jì)(編輯修改稿)

2024-10-08 19:34 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 12M,該數(shù)值與最終產(chǎn)生的目標(biāo)代碼無(wú)關(guān),僅用于軟件模擬調(diào)試時(shí)顯示程序執(zhí)行時(shí)間。正確設(shè)置該數(shù)值可使顯示時(shí)間與實(shí)際所用時(shí)間一致,一般將其設(shè)置成與你的硬件所用晶振頻率相同,如果沒(méi)必要了解程序執(zhí)行的時(shí)間,也可以不設(shè),這里設(shè)置為 12。 設(shè)置對(duì)話框中的 OutPut 頁(yè)面,如圖 所示,這里面也有多個(gè)選擇項(xiàng),其中 Creat Hex file 用于生成可執(zhí)行代碼文件(可以用 編程器 寫(xiě)入單片機(jī)芯片的 HEX 格式文件,文件的擴(kuò)展名為 .HEX),默認(rèn)情況下該項(xiàng)未被選中,如果要寫(xiě)片做硬件實(shí)驗(yàn),就必須選中該項(xiàng),這一點(diǎn)是初學(xué)者易疏忽的,在此特別提醒注意。選中 Debug information 將會(huì)產(chǎn)生調(diào)試信息,這些信息用于調(diào)試,如果需要對(duì)程序進(jìn)行調(diào)試,應(yīng)當(dāng)選中該項(xiàng)。 Browse information 是產(chǎn)生瀏覽信息,該信息可以用菜單 viewBrowse 來(lái)查看,這里取默認(rèn)值。按鈕 Select Folder for objects” 是用來(lái)選擇最終的目標(biāo)文件所在的文件夾,默認(rèn)是與工程文件在同一個(gè)文件夾中。 Name of Executable 用于指定最終生成的目標(biāo)文件的名字,默認(rèn)與工程的名字相同,這兩 項(xiàng)一般不需要更改。 工程設(shè)置對(duì)話框中的其它各頁(yè)面與 C51編譯選項(xiàng)、 A51 的匯編選項(xiàng)、 BL51 連接器的連接選項(xiàng)等用法有關(guān),這里均取默認(rèn)值,不作任何修改。以下僅對(duì)一些有關(guān)頁(yè)面中常用的選項(xiàng)作一個(gè)簡(jiǎn)單介紹。 圖 Listing 標(biāo)簽頁(yè)用于調(diào)整生成的列表文件選項(xiàng)。在匯編或編譯完成后將產(chǎn)生( *.lst)的列表文件,在連接完成后也將產(chǎn)生( *.m51)的列表文件,該頁(yè)用于對(duì)列表文件的內(nèi)容和形式進(jìn)行細(xì)致的調(diào)節(jié),其中比較常用的選項(xiàng)是 “C Compile Listing” 下的“Assamble Code” 項(xiàng),選中該項(xiàng)可以在列表文件中生成 C 語(yǔ)言源程序所對(duì)應(yīng)的匯編代碼。 圖 代碼生成控制 C51 標(biāo)簽頁(yè)用于對(duì) Keil 的 C51 編譯器的編譯過(guò)程進(jìn)行控制,其中比較常用的是“Code Optimization” 組,如圖 7 所示,該組中 Level 是優(yōu)化等級(jí), C51 在對(duì)源程序進(jìn)行編譯時(shí),可以對(duì)代碼多至 9 級(jí)優(yōu)化,默認(rèn)使用第 8級(jí),一般不必修改,如果在編譯中出現(xiàn)一些問(wèn)題,可以降低優(yōu)化級(jí)別試一試。 Emphasis 是選擇編譯優(yōu)先方式,第一項(xiàng)是代碼量?jī)?yōu)化(最終生成的代碼量?。?;第二項(xiàng)是速度優(yōu)先(最終生成的代碼速度快); 第三項(xiàng)是缺省。默認(rèn)的是速度優(yōu)先,可根據(jù)需要更改。設(shè)置完成后按確認(rèn)返回主界面,工程文件建立、設(shè)置完畢。 、連接 圖 有關(guān)編譯、連接、項(xiàng)目設(shè)置的工具條 在設(shè)置好工程后,即可進(jìn)行編譯、連接。選擇菜單 ProjectBuild target,對(duì)當(dāng)前工程進(jìn)行連接,如果當(dāng)前文件已修改 ,軟件會(huì)先對(duì)該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼;如果選擇 Rebuild All target files 將會(huì)對(duì)當(dāng)前工程中的所有文件重新進(jìn)行編譯然后再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的,而 Translate ? . 項(xiàng)則僅對(duì)該文件進(jìn)行編譯,不進(jìn)行連接。 以上操作也可以通過(guò)工具欄按鈕直接進(jìn)行。圖 8 是有關(guān)編譯、設(shè)置的工具欄按鈕,從左到右分別是:編譯、編譯連接、全部重建、停止編譯和對(duì)工程進(jìn) 行設(shè)置。 編譯過(guò)程中的信息將出現(xiàn)在輸出窗口中的 Build 頁(yè)中,如果源程序中有語(yǔ)法錯(cuò)誤,會(huì)有錯(cuò)誤報(bào)告出現(xiàn),雙擊該行,可 以定位到出錯(cuò)的位置,對(duì)源程序反復(fù)修改之后,最終會(huì)得到如圖 所示的結(jié)果,提示獲得了名為 的文件,該文件即可被編程器讀入并寫(xiě)到芯片中,同時(shí)還產(chǎn)生了一些其它相關(guān)的文件,可被用于 Keil 的仿真與調(diào)試,這時(shí)可以進(jìn)入下一步調(diào)試的工作。 圖 正確編譯、連接之后的結(jié)果 設(shè)計(jì)思 想 本設(shè)計(jì)采用了 C 語(yǔ)言編寫(xiě),由于 C語(yǔ)言編程靈活,可移植性強(qiáng)。 在一定程度上簡(jiǎn)化了編程過(guò)程。模塊化結(jié)構(gòu)程序的設(shè)計(jì),可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計(jì)。 主程序設(shè) 計(jì) 本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷 0 服務(wù)程序組成。其中主程序是整個(gè)程序的主體??梢詫?duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。系統(tǒng)(上電)復(fù)位后,進(jìn)入主程序,主程序流程圖如圖 8所示 。 當(dāng)外部中斷有請(qǐng)求則去執(zhí)行外部中斷服務(wù)程序。并在執(zhí)行完后返回主程序。 外部 中斷程序設(shè)計(jì) 中斷的概念 CPU 在處理某一事件 A時(shí),發(fā)生了另一事件 B 請(qǐng)求 CPU 迅速去處理(中斷發(fā)生); CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件 B(中斷響應(yīng)和中斷服務(wù));待 CPU 將事件 B處理完畢后,再回到原來(lái)事件 A被中斷的地方繼續(xù)處理事件 A(中斷返回),這一過(guò)程稱為中斷 。 K=1 Temp++ 圖 主程序 流程圖 開(kāi)始 程序初始化 Temp=0 K=2 Temp=temp K=0 Temp=0 顯示數(shù)據(jù) 定時(shí)中斷程序設(shè)計(jì) 定時(shí) /計(jì)數(shù)器的結(jié)構(gòu) 定時(shí) /計(jì)數(shù)器的實(shí)質(zhì)是加 1 計(jì)數(shù)器( 16 位),由高 8位和低 8位兩個(gè)寄存器組成。 TMOD是定 時(shí) /計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能; TCON 是控制寄存器,控制 T0、T1 的啟動(dòng)和停止及設(shè)置溢出標(biāo)志 。 定時(shí) /計(jì)數(shù)器的原理 加 1 計(jì)數(shù)器輸入的計(jì)數(shù)脈沖有兩個(gè)來(lái)源 ,一個(gè)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng) 12分頻后送來(lái);一個(gè)是 T0或 T1 引腳輸入的外部脈沖源。每來(lái)一個(gè)脈沖計(jì)數(shù)器加 1,當(dāng)加到計(jì)數(shù)器為全 1 時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使 TCON 中 TF0或 TF1 置 1,向 CPU發(fā)出中斷請(qǐng)求(定時(shí) /計(jì)數(shù)器中斷允許時(shí))。如果定時(shí) /計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表 示計(jì)數(shù)值已滿。 可見(jiàn),由溢出時(shí)計(jì)數(shù)器的值減去計(jì)數(shù)初值才是加 1 計(jì)數(shù)器的計(jì)數(shù)值。 圖 中斷 程序 子 流程圖 否 K=2 是 K++ INT0 中斷 K=0 圖 定時(shí)器 T0子程序流程圖 實(shí)驗(yàn)程序 AT89C52 顯示 ~ 匯編語(yǔ)言程序 。 要實(shí)現(xiàn) 四 位數(shù)碼管顯示 ~ 依次循環(huán)的秒表設(shè)計(jì),必須得將 AT89C52 芯片寫(xiě)入程序,只有將程序?qū)戇M(jìn) AT89C52芯片,才能實(shí)現(xiàn)其秒表的原理功能。 主函數(shù)設(shè)計(jì) void main() { init()。 //初始化子程序 while(1) { if(k==0) { init()。 //初始化子程序 wela=1。 //初始設(shè)置顯示 P2=0XFF。 wela=0。 P0=0xc0。 否 是 中斷返回 定時(shí)器 T0入口地址 調(diào)用數(shù)碼顯示子程序 Temp 加 1 置初值 定時(shí)器溢出中斷 } if(k==1) //第二次按鍵開(kāi)始計(jì)數(shù) { if(temp==9999) //當(dāng)計(jì)數(shù)超過(guò) 秒時(shí)清零 { temp=0。 } qian=temp/1000。 //計(jì)算數(shù)碼 管第一位 bai=temp%1000/100。 //計(jì)算數(shù)碼管第二位 shi=temp%1000%100/10。 //計(jì)算數(shù)碼管第三位 ge=temp%10。 //計(jì)算數(shù)碼管第四位 display(qian,bai,shi,ge)。 //顯示時(shí)間 } Else //第二次按鍵時(shí)停止 { qian=temp/1000。 bai=temp%1000/100。 shi
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1