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

正文內(nèi)容

本科畢業(yè)設(shè)計-交通燈定時控制系統(tǒng)(文件)

2024-12-27 21:00 上一頁面

下一頁面
 

【正文】 語言.除了前面學過的匯編語言外,還有三種: BASIC、PL/M 和 C。但對 MCS51系列, PL/M 不支持復雜的算術(shù)運算和浮點變量,也沒有豐富的庫函數(shù)。目前,單片機上 C 語言程序未經(jīng)人工優(yōu)化的代碼長度,已縮短到用人工方便地對時間要求比較嚴格的匯編語言模塊和關(guān)鍵代碼進行優(yōu)化。一個 C源程序至少包含 — 個 (main).也可以是一個主函數(shù)和若干其它函數(shù)。 函數(shù)調(diào)用相當于調(diào)用子程序的 CALL 語句,要求有函數(shù)名和實參數(shù)表。 桂林電子工業(yè)學院畢業(yè)設(shè)計(論文)報告用紙 第 21 頁 共 46 頁 21 C51 中函數(shù)分為兩大類:庫函數(shù)和用戶定義函數(shù)。 用戶函數(shù)是用自己定義,自己調(diào)用的一類函數(shù)。 例如,在前文中介紹過,在選擇 12MHz 晶振時,執(zhí)行一個簡單加法指令的時間為一個指令周期,需要 1/12M(秒) =1(微秒),所以程序中作 1M次加法循環(huán)所需要的時間就是 1秒鐘。 //定義延時循環(huán)變量 for(i=20。j)。當為高電平時,發(fā)光二極管兩端壓差為零,二極管不導通,燈不亮;當為低電平時,發(fā)光二極管兩端壓差為 5V,二極管導通,燈亮。這里有個計數(shù)和定時之間的概念轉(zhuǎn)化,時間表示為秒針的計數(shù)值,即秒針每一次走動的時間正好是 1s。 計數(shù)器的容量是 16位,也就是最大的計數(shù)值達到 65536,因此計數(shù)計到 65536 就會產(chǎn)生溢出。 這兩個特殊功能寄存器就是 TMOD 和 TCON,又稱 為定時器的控制字。 ②選擇何種工作方式。 表 31 TMOD 的控制字 GATE C/T M1 M0 GATE C/T M1 M0 這里,以 TMOD 的低 4 位來說明各位的定義和功能。 選擇何種功能,由 C/T的控制字 決定。 ●工作方式 0: M0=0, M1=0。 ● 工作方式 2: M0=1, M1=0,自動重裝初值的 8 位定時器 /計數(shù)器。通常這種工作方式用于波特率發(fā)生器,用于這種用途時,定時器就是為了提供一個時間基準。其中, TL0 可以構(gòu)成 8 位的定時器 或計數(shù)器 的工作方式,而 TH0 則只能作為定時器來用。 TCON 中的低 4位用于外部中斷的控制,在后文中將加以介紹,此處只對高 4 位的 T0、 T1 控制字及其控制原理進行介紹。TR0 是由軟件置位或清零的。該標志位可以通過軟件查詢,也可以用軟件清零和置位。 定時器數(shù)值的設(shè)置應該注意的事項 理論上說,定時器的最小計數(shù)、定時間隔時間是由晶振的頻率決定的,最大的時間間隔可以是無窮大。 工作方式 1: 16位定時 /計數(shù)方式,因此,最多可以計劃到 2的 16 次冪,也就是 65536次。先用定時 /計數(shù)器 0做一個 50ms 的定時器,定時時間到了以后并不是立即開關(guān)發(fā)光二極管。 定時 1ms的程序代碼 Void t0(void)interrupt 1 using 0 { TH0=(655361000)/256。 什么是中斷,我們從一個生活中的例子引入。 可以引起中斷的事件稱之為中斷源。所以在使用單片機的中斷時,需要了解中斷的嵌套和優(yōu)先級處理。當然之前首先要保存主程序下一條將執(zhí)行的指令的地址,以便處理完中斷后回到原來的地方繼續(xù)往下執(zhí)行程序。 ● 中斷返回,執(zhí)行完中斷服務(wù)程序后,從中斷短點處返回主程序,繼續(xù)執(zhí)行主程序。利用中斷方式進行的 I/O 口操作,在宏觀上可以看成 CPU和外設(shè)的并行工作。當外設(shè)發(fā)生故障時,可以利用中斷系統(tǒng)請求 CPU 及時處理這些故障。外部的中斷信號通過這兩個引腳輸入到單片機。 TCON 中的低4位用于外部中斷的控制,高 4 位是 T0、 T1 控制字,在前問的定時器中已經(jīng)介紹過。 IE0: INT0 中斷請求標志位。用途和 IE0 相同。 TF1:定時器 T1的溢出中斷標記。 ES:串行口中斷允許。 EX0:外中斷 0中斷允許。 外中斷 1: 0013H。 單片機的優(yōu)先級的設(shè)定只有兩級,我們可以用指令對優(yōu)先級進行設(shè)置,如表 35所示。 首先介紹中斷響應的條件。 桂林電子工業(yè)學院畢業(yè)設(shè)計(論文)報告用紙 第 27 頁 共 46 頁 27 但是在下列 3種情況下, CPU 將不響應中斷的請求: ● 單片機正在處理一個同級或更高級別的中斷請求。如果正訪問 IP、 IE 則可能會開關(guān)中斷或改變中斷的優(yōu)先級,而中斷返回指令則說明本次中斷還沒有處理完,所以都要等本指令處理結(jié)束,再執(zhí)行一條指令才可以響應中斷。中斷程序完成后,一定要執(zhí)行一條 RETI 指令,執(zhí)行 這條指令后,單片機將會把堆棧中保存著的地址取出,程序就會從主程序的中斷處繼續(xù)往下執(zhí)行。 51系統(tǒng)中有 4 個寄存器組,具體的位置取決于 PSW(程序狀態(tài)字)的兩位 RS0、 RS1 的設(shè)置。 ①定義共陰極字型編碼表 桂林電子工業(yè)學院畢業(yè)設(shè)計(論文)報告用紙 第 28 頁 共 46 頁 28 即確定發(fā)光數(shù)碼管的字型對應在單片機中的變量和參數(shù); Unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00} ②顯示 得到字型和字位口的地址后,向不同的字位送數(shù)據(jù),進行數(shù)據(jù)的顯示。dispb。結(jié)果 分別用兩個 4位的數(shù)碼管顯示(即東南西北四個路口各兩個,這里為了硬件電路設(shè)計方便、美觀所以就采用了兩個四位的數(shù)碼管)。在 C51 中,寄存器組的選擇就取決于 using 后的變量的指定,變量為一個 0~3的整數(shù)。 中斷服務(wù)函數(shù)完整的語法如下: 返回值 函數(shù)名稱( [參數(shù) ]) [模式 ][重入 ]interrupt n[using n] 其中, interrupt n 對應的是中斷源的編號,而 [using n]決定了使用寄存器的組號。單片機響應中斷時,首先把當前指令的下一條指令的地址送入堆棧,保護斷點 。單片機的雙字節(jié)或四季節(jié)的指令處理完畢后,才能響應中斷。如果中斷的標志位是 1,就說明有中斷請求了。 表 35 中斷優(yōu)先級 EA X X PS PT1 PX1 PT0 PX0 單片 機系統(tǒng)的中斷過程 這就要牽涉到 51 的中斷過程,這里分為兩部分分別進行介紹。 串 口: 0023H。 外中斷 0: 0003H。 EX1:外中斷 1中斷允許。 桂林電子工業(yè)學院畢業(yè)設(shè)計(論文)報告用紙 第 26 頁 共 46 頁 26 ②中斷允許寄存器 IE 在 51 中斷系統(tǒng)中,中斷的允許或禁止是由片內(nèi)可進行位尋址的 8 位中斷允許寄存器 IE來控制的,其各位如表 34所示。當 CPU響應中斷后,再由硬件將 TF0清 0。 IT1: INT1 觸發(fā)控制位,可由軟件進行置位和復位,用途 和 IT0 相同。 表 33 TCON 中的控制字 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 ● 外部中斷請求源 IT0: INT0 觸發(fā)方式控制位,可由軟件進行置位和復位。 51 單片機中斷系統(tǒng)的結(jié)構(gòu)由于中斷有關(guān)的特殊功能寄存器、中斷入口、順序查詢邏輯電路等組成,包括 5個中斷請求源, 4個用于中斷控制的寄存器 IE、 IP、 TCON 和 SCON 來控制中斷申請、中斷的開關(guān)和各種中斷源的優(yōu)先級確定。操作人員可以利用鍵盤等實現(xiàn)中斷,完成人工介入。實時處理是控制系統(tǒng)對單片機提出的要求,各個設(shè)備可以隨時向 CPU 發(fā)出中斷申請,而 CPU 也必須作出快速響應和及時處理。中斷有如下重要的作用。 ● 尋找中斷入口,根據(jù) 5個不同的中斷源所產(chǎn)生的中斷,查找 5個不同的入口地址。 第三,也是最為復雜的一個部分,就是中斷的響應過程。 第二,需要了解中斷的嵌套與優(yōu)先級處理。這就是生活中的“中斷”的現(xiàn)象,就是正常的工作過程被外部的事件打斷了。 //設(shè)置定時器低 8位初值 51 單片機的中斷系統(tǒng) 中斷系統(tǒng)的概念 有關(guān)中斷的概念可以在一般的教材中找到:中斷屬于一種對事件的實時處理過程。并清掉軟件計數(shù)器中的值。 如果想實現(xiàn)一個 1s的定時,該 12MHz 晶振頻率下,最長的定時也就是 65536us。首先還是看一看定時器的一次最大計數(shù)范圍吧。 TR1: T1 的運行控制位。 TF0: T0 的溢出和中斷申請標志位。 表 32 TCON 控制寄存器 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TR0: T0 的運行控制位。 接下來,介紹定時器 /計數(shù)器的控制寄存器 TCON。 ● 工作方式 3: M0=1, M1=1。在工作方式 2,只有低 8 位參與計數(shù),而高 8位不參與計數(shù),用作預置數(shù)的桂林電子工業(yè)學院畢業(yè)設(shè)計(論文)報告用紙 第 23 頁 共 46 頁 23 存放,計數(shù)范圍 256。 ● 工作方式 1: M0=0, M1=1。當然,一個定時 /計數(shù)器同一時刻要么作定時用,要么作計數(shù)用,不能同時用。 GATE=1 時,在此種情況下定時器 /計數(shù)器的開關(guān)不僅要由 TR0來控制,而且還要受到 INT1 引腳的控制,只有 TR1 為 1,且 INT1 引腳也是高電平,定時器才能開始工作。 TMOD 的低 4 位是用于控制 T0的字段,高四位用于控制 T1。 TMOD 是一個 8位的特殊功能寄存器,對應的地址為 89H,不可位尋址。 如何使用 MCS51單片機的定時器呢? 使用單片機的定時器 /計數(shù)器主要和編程有關(guān)。定時器是由單片機的 晶振經(jīng)過 12 分頻后獲得的一個脈沖源。這兩個計數(shù)器分別是兩個 8 位的 RAM 單元組成的,即每個計數(shù)器都是 16 位的計數(shù)器,最大的計數(shù)量是 65536。在本電路中,用定時器來實現(xiàn)燈的閃爍功能。i) for(j=248。但是,這不失為一種簡單的解決方案。 利用 C51 程序編寫延時程序 為了循序漸進地學習單片機的功能,這里我們 即 使用 了 單片機中的定時器, 也 直接采用軟件的 延時 程序定時控制發(fā)光二極管的亮滅。 庫函數(shù)是 C51 在庫文件中已定義的函數(shù),其函數(shù)說明在相關(guān)的頭文件中。函數(shù)定義和函數(shù)調(diào)用不分先后,但若調(diào)用在定義之前,必須在調(diào)用前先進行函數(shù)說明。 C51 程序的一般格式如下: 類型 函 數(shù)名(參數(shù)表 ) 參數(shù)說明: { 數(shù)據(jù)說明部分: 執(zhí)行語句部分: } 在程序中,函數(shù)有三種形態(tài):函數(shù)定義、函數(shù)調(diào)用和函數(shù)說明。 C51 程序開發(fā)過程如圖 10所示: 圖 10 C51 程序開發(fā)過程 C51 程序結(jié)構(gòu) 與一般 C語言相似, C51 程序的基本單位是函數(shù)。 與匯編語言相比, C 語言程序在開發(fā)速度、軟件質(zhì)量、結(jié)構(gòu)嚴謹、程序可靠性等方面有明顯優(yōu)勢。但是 BASIC 采用浮點運算,導致程序復雜且執(zhí)行時間長,即使 BASIC 編譯器也未能解決這個問題。目前,支持硬斷點的單片機仿真器已能很好地進行 c語言程序調(diào)試,為單片機編程使用 c語言提供了便利條件。動態(tài)顯示法是目前各種單片計算機采用的流行方法。 動態(tài)掃描用分時的方法輪流控制各個顯示器的 COM 端,使各個顯示器輪流點亮。要顯示新的數(shù)據(jù)時,單片機再發(fā)送新的字形碼。 靜態(tài)顯示就是顯示驅(qū)動電路具有輸出鎖存功能,單片機將所要顯示的數(shù)據(jù)送出后就不再控制 LED,直到下一次顯示時再傳送一次新的顯示數(shù)據(jù)。通常將控制發(fā)光二極管的 8 位字節(jié)數(shù)據(jù)稱為段選碼。如果有多位數(shù)字要顯示時,可以用掃描的方式顯示,以節(jié)省控制腳位。七段顯示器可以顯示包括小數(shù)點的 0 到 9 數(shù)字與部分的英文字母。如圖中 (b)所示。 1. LED 顯示器結(jié) 構(gòu)與原理 LED 顯示塊是由發(fā)光二極管顯示字段的顯示器件,在單片機應用系統(tǒng)中通常使用的是七段 LED。近年來也開始配置簡易形式的 CRT接口,可以較方使池進行圖形顯示。在小電流發(fā)光二極管中,極限電流一般小于 5MA。 ● 光參數(shù) 發(fā)光二極管的光參數(shù)主要有發(fā)光峰值波長、半峰寬度和發(fā)光強度。 ③ 反向漏電流 Ir。 ① 正向電壓 Vf。 圖 8 信號燈控制和時間顯示電路 一般二極管的點亮電流為 5mA 至 10mA,在 5V 驅(qū)動時,廠家多采用 470 歐的限流電阻,在電路中采用了 1K的電阻,電流也就 3~ 5mA。此外,工作電流要滿足該二極管的工作電流。這種復位電路的工作原理是:通電時,電容兩端相當于是短路,于是 RST 引腳上為高電平,然后電源通過電阻對電容充電, RST 端電壓慢慢下降,降到一定程序,即為低電平,單片機開始正常工作。 復位電路的實現(xiàn)可以有很多種方法,但是從功能上一般分為兩種: 一種是電源復位,即外部的復位電 路在系統(tǒng)通上電源之后直接使單片機工作,單片機的起停通過電源控制;另一種方法是在復位電路中
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1