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

正文內(nèi)容

基于51單片機(jī)交通燈控制器設(shè)計(jì)-在線瀏覽

2024-12-25 13:36本頁(yè)面
  

【正文】 T 1P CC P UA C CB 寄 存 器P S W. . .串 行 口并 行I/O口特 殊 功 能寄 存 器S F RP 0 P 1 P 2 P 3串 行 通 信X T A L 1X T A L 2R E S E TE AA L EP S E NV C CV S S程 序 計(jì) 數(shù) 器中 斷系 統(tǒng)中 斷 輸 入 圖 8051 的內(nèi)部功能模塊 圖 STC89C51RC 包含 512 字節(jié) RAM 、 32 條 I/O 口線、 3 個(gè) 16 位定時(shí) /計(jì)數(shù)器、8 輸入 4 優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)、 1 個(gè)串行 I/O 口(可用于多機(jī)通信、 I/O 擴(kuò)展或全雙工 UART)以及片內(nèi)振蕩器和時(shí)鐘電路??蓪?shí)現(xiàn)兩個(gè)由軟件選擇的節(jié)電模式、空閑模式和掉電模式。掉電模式保存 RAM 的內(nèi)容,但是凍結(jié)振蕩器,導(dǎo)致所有其它的片內(nèi)功能停止工作。運(yùn)行可從時(shí)鐘停止處恢復(fù)。 7. ISP(在系統(tǒng)可編程) /IAP(在應(yīng)用可編程),無(wú)需專用編程器/仿真器 ,可通過(guò)串口( P3. O/)直接下載用戶程序, 8K 程序 3 秒即可完成一片 功能 9.看門狗 10.內(nèi)部集成 MAX810 專用復(fù)位電路( D 版本才有),外部晶體 20M 以下時(shí),可省外部復(fù)位電路 3 個(gè) 16 位定時(shí)器/計(jì)數(shù)器,其中定時(shí)器 0 還可以 當(dāng)成 2 個(gè) 8 位定時(shí)器使用 4 路,下降沿中斷或低電平觸發(fā)中斷, Power Down 模式可由外部中斷低電平觸發(fā)中斷方式喚醒 ( UART) ,還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè) UART : 0 – 75℃ / 40 +85℃ : LQFP44, PDIP40, PLCC44, PQFP44 結(jié)構(gòu)概覽 STC89C51RC 的結(jié)構(gòu)如下圖 所示。 表 STC89C51RC 管腳功能說(shuō)明 VCC(40腳 ) +5V電源輸入 VSS(20腳 ) 接地 P0口 (39~ 32腳 ) P0口是一個(gè) 8位漏極開路雙向 I/O端口。作為一個(gè)輸出端 口,每個(gè)引腳作為 8個(gè) TTL輸入。 P1口 (1~ 8腳 ) P1口是一個(gè) 8位雙向 I/O端口的內(nèi)部上拉端口,此外, 和 /計(jì)數(shù)器 2的外部計(jì)數(shù)輸入( )和定時(shí)器 /計(jì)數(shù)器 2觸發(fā)輸入( ) T2(外部計(jì)數(shù)投入定時(shí)器 /計(jì)數(shù)器 2), 時(shí)鐘輸出 T2EX (定時(shí)器 /計(jì)數(shù)器 2捕捉 /重載觸發(fā)和方向控制 ) P2口 (21~ 28腳 ) P2口是一個(gè) 8位雙向 I/O端口的內(nèi)部上拉端口 P2口 也可以配置為復(fù)用地址總線,訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器 ,輸出地址的高 8位 P3口 (10~ 17腳 ) P3口是具有雙重功能的 8位接口 RXD(串行輸入端口 ) TXD(串行輸出端口 ) INT0(外部中斷 0,低電平有效 ) INT1(外部中斷 1,低電平有效 ) T0(定時(shí)器 0外部輸入 ) T1(定時(shí)器 1外部輸入 ) WR(外部數(shù)據(jù)存儲(chǔ)器寫選通 ,低電平有效 ) RD(外部數(shù)據(jù)存儲(chǔ)器讀選通 ,低電平有效 ) RST(9腳 ) 復(fù)位 /備用電源引線。使其不丟失 XTAL1(19腳 ) XTAL2(18腳 ) 外部晶體連線,片外石英晶體連與此二端與片內(nèi)電路構(gòu)成振蕩器,產(chǎn)生片內(nèi) CPU的工作時(shí)鐘。當(dāng) EA=1時(shí),訪問(wèn)片內(nèi) ROM;若 EA=0,訪問(wèn)片外 ROM ALE(30腳 ) 地址鎖存。 PSEN(29腳 ) 片外 ROM選通信號(hào),常用作片外 ROM的讀控制信號(hào),低電平有效 特性 STC89C51RC 系統(tǒng)的特性參數(shù)如表 所示。用它可以替代在單片機(jī)應(yīng)用項(xiàng)目的開發(fā)過(guò)程中常用的工具 —— 程序燒寫器。使用目前常用的 Keil uVision2 可以進(jìn)行源程序的開發(fā),使用軟件的在線模擬調(diào)試進(jìn)行程序的仿真調(diào)試,基于 51 單片機(jī)交通燈控制器設(shè)計(jì) 11 然后進(jìn)行程序的編譯,生成程序 的 HEX 文件。圖 是原理連接圖。 ( 2)要求能夠?qū)崟r(shí)顯示兩位的計(jì)時(shí)數(shù)字。 確定所選用的器件 由于 STC89C51RC 單片機(jī)的集成化較高,因此,所用器件主要是以STC89C51RC 為主,控制信號(hào)可以通過(guò)已有的 P0、 P P2 口進(jìn)行實(shí)時(shí)輸出,除了以上器件以外,還需要 電阻,電容,發(fā)光二極管, MAX232 等若干。 12 第 二 章 畢業(yè)設(shè)計(jì)的準(zhǔn)備工作 表 元器件清單 名稱 參數(shù) 數(shù)量 電容 104 4 電容 30P 2 電解電容 10uF 3 發(fā)光二極管 9 排阻 1K 1 排阻 1 電阻 1K, 1/4W 7 電阻 10K, 1/4W 1 電阻 470, 1/4W 2 排開關(guān) DIP8 1 按鍵開關(guān) 1 晶振 6MHz 1 AT89C51RC 1 MAX232 1 RS232 接口 1 USB 接口 1 LED 紅 1 LED 黃 2 LED 綠 2 7段數(shù)碼顯示管 2 排針 若干 導(dǎo)線 若干 多功能實(shí)驗(yàn)電路板 一塊 工作原理 在確定任務(wù)要求,及所用原件以后,就要弄清楚整個(gè)系統(tǒng)的工作過(guò)程以及其工作原理,了解整個(gè)系統(tǒng)是如何控制交通燈的信號(hào)。 其次,交通燈的控制是基于秒級(jí)的控制,所以我所要設(shè)計(jì)的是一個(gè)基于秒級(jí)的時(shí)序控制系統(tǒng)。 基于 51 單片機(jī)交通燈控制器設(shè)計(jì) 13 表 交通燈狀態(tài)圖 路燈 狀態(tài) 南北方向 東西方向 紅 黃 綠 紅 黃 綠 S1 ● ○ ○ ○ ○ ● S2 ○ ● ○ ○ ● ○ S3 ○ ○ ● ● ○ ○ 通過(guò)表 我們可以看到,在此設(shè)計(jì)中,只有三個(gè)控制量,即紅、黃、綠。 P P2 口做倒數(shù)計(jì)時(shí)的輸出端口。 圖 程序 流程圖 開始 設(shè)置初始 狀態(tài) 狀態(tài) 值 判斷 散轉(zhuǎn) S1 狀態(tài),應(yīng)完成的功能 S2 狀態(tài),應(yīng)完成的功能 S3 狀態(tài),應(yīng)完成的功能 14 第 三 章 軟件系統(tǒng)設(shè)計(jì)介紹 第三章 軟件 系統(tǒng) 設(shè)計(jì)介紹 背景介紹 在 基于 51 單片機(jī)交通燈控制器 的軟件 設(shè)計(jì) 當(dāng)中,我采用 C 語(yǔ)言作為開發(fā)語(yǔ)言。目前最先進(jìn)、功能最強(qiáng)大的 C51 編譯器是 Keil C51。對(duì)用慣了匯編語(yǔ)言的人來(lái)說(shuō),高級(jí)語(yǔ)言可控性不好,不 如匯編語(yǔ)言那樣能夠隨心所欲。使用 C 語(yǔ)言就可以很好地解決這些問(wèn)題。由于模塊化,用 C 語(yǔ)言編寫的程序有很好的可移植性,功能化的代碼能夠很方便地從一個(gè)工程移植到另一個(gè)工程,從而減少了開發(fā)時(shí)間。 很多系統(tǒng)特別是實(shí)時(shí)時(shí) 鐘系統(tǒng)都是用 C 語(yǔ)言和匯編語(yǔ)言聯(lián)合編寫的。除此之外,包括硬件接口的操作都應(yīng)該用 C 語(yǔ)言來(lái)編寫 。 對(duì)于大多數(shù) 51 系列單片機(jī),使用 C 語(yǔ)言這樣的高級(jí)語(yǔ)言與使用匯編語(yǔ)言相比具有如下優(yōu)點(diǎn) : 基于 51 單片機(jī)交通燈控制器設(shè)計(jì) 15 (1)不需要了解處理器的指令集,也不必了解存儲(chǔ)器結(jié)構(gòu)。 (3)指定操作的變量選擇組合提高了程序的可讀性。 (5)與使用匯編語(yǔ)言編程相比,程序的開發(fā)和調(diào)試時(shí)間大大縮短。 (7)通過(guò) C 語(yǔ)言可實(shí)現(xiàn)模塊化編程技術(shù),從而可將己編制好的程序加入到新程序中。 C 語(yǔ)言 程序運(yùn)行時(shí)與匯編語(yǔ)言的不同之處: (1)進(jìn)入 C 程序后,首先將 RAM 地址為 007FH 的 128 個(gè)單元清零,然后置 SP為 07H(SP 根據(jù)變量多少而不同 )。 (2)對(duì)于 C 程序設(shè)定的變量, C51 編譯器自行安排寄存器或存儲(chǔ)器作參數(shù)傳遞區(qū),通常在 R0~R7(一組或兩組,根據(jù)參數(shù)多少而定 )。 (3)如果不特別制定變量的存儲(chǔ)類型,變量通常被安排在內(nèi)部 RAM 區(qū)。在有些場(chǎng)合無(wú)法用 C 語(yǔ)言編寫,而只能用匯編語(yǔ)言來(lái)編寫程序。 在把匯編程序加入到 C 程序中之前,必須使匯編程序和 C 程序一樣具有明確的邊界、參數(shù)、返回值和局部變量。如果要在它們之間傳遞函數(shù),則必須保證匯編程序用來(lái)傳遞函數(shù)的存儲(chǔ)區(qū)和 C 函數(shù)使用的存儲(chǔ)區(qū)是一樣的。函數(shù)名的轉(zhuǎn)換規(guī)律如表 所示。 表 函數(shù)名的轉(zhuǎn)換規(guī)律 主函數(shù)中的聲明 匯編符號(hào)名 說(shuō)明 Void funs(void) FUNC 無(wú)參數(shù)傳遞或不含寄存器的函數(shù)名不作改變轉(zhuǎn)入目標(biāo)文件中,名字只是簡(jiǎn)單地轉(zhuǎn)為大寫形式 Void funs(char) _FUNC 帶寄存器參數(shù)的函數(shù)名,前面加“ _”前綴,它表明這類函數(shù)包含寄存器內(nèi)的參數(shù)傳遞 Void funs(void) reentrant _?FUNC 對(duì)于重入函數(shù),前面加“ _?”前綴,它表明該函數(shù)包含棧內(nèi)的參數(shù)傳遞 表 段名的轉(zhuǎn)換規(guī)律 存儲(chǔ)區(qū) 命名轉(zhuǎn)換 CODE ?PR?CO XDATA ?XD DDATA ?DT BIT ?BI PDATA ?PD 3. Keil C51 與匯編的接口 (1)模塊內(nèi)接口 有時(shí)候,需要使用匯編語(yǔ)言來(lái)編寫程序,比如對(duì)硬件進(jìn)行操作或在一些對(duì)時(shí)鐘要求很嚴(yán)格的場(chǎng)合,但又不希望用匯編語(yǔ)言來(lái)編寫全部程序或調(diào)用匯編語(yǔ)言編寫的函數(shù),那么可以通過(guò)預(yù)編譯指令“ asm”,在 C 代碼中插入?yún)R編代碼。 (2)模塊間接口 基于 51 單片機(jī)交通燈控制器設(shè)計(jì) 17 C 模塊與匯編模塊的接口較簡(jiǎn)單,分別用 C51 與 A51 對(duì)源文件進(jìn)行編譯,然后用 L51 連接 obj 文件即可。 C51 對(duì)標(biāo)準(zhǔn) C 語(yǔ)言的擴(kuò)展 C51 語(yǔ)言的特色主要體現(xiàn)在以下幾方面 : (1)1 雖然繼承了標(biāo)準(zhǔn) C 語(yǔ)言的絕大部分的特性,而且基本語(yǔ)法相同,但其本身又在特定的硬件結(jié)構(gòu)上有所擴(kuò)展,如關(guān)鍵字 sbit, data, idata, pdata,xdata,code 等。可以通過(guò)多看編譯生成的 .m51 文件來(lái)了解自己程序中資源的利用情況。盡量少用浮點(diǎn)運(yùn)算,可以用 unsigned 無(wú)符號(hào)型數(shù)據(jù)的就不要用有符號(hào)型數(shù)據(jù),盡量避免多字節(jié)的乘除運(yùn)算,多使用移位運(yùn)算等。 ? bit 位變量值為 0或 1。 ? sfr 特殊功能寄存器, sfr 字節(jié)地址為 0~ 255 ? sfr16 同上,只是 sfr 字地址為 0~ 65535 其余數(shù)據(jù)類型如 char,enum,short,int,long,float 等與標(biāo)準(zhǔn)語(yǔ)言 C 相同 。 表 數(shù)據(jù)類型 數(shù)據(jù)類型 位數(shù) 字節(jié)數(shù) 數(shù)值范圍 bit 1 0~ 1 char 8 1 128~ +127 unsigned char 8 1 0~ 255 18 第 三 章 軟件系統(tǒng)設(shè)計(jì)介紹 enum 16 2 32768~ +32767 short 16 2 32768~ +32767 unsigned short 16 2 0~ 65535 int 16 2 32768~ +32767 unsigned int 16 2 0~ 65535 long 32 4 2147483648~+2147483647 unsigned long 32 4 0~ 4294967295 float 32 4 177。 +38 sbit 1 0~ 1 sfr 8 1 0~ 255 sfr 16 16 2 0~ 65535 bit,sbit,sfr 和 sfr16 數(shù)據(jù)類型專門用于 8051 硬件和 C51 編譯器,并不是標(biāo)準(zhǔn) C語(yǔ)言的一部分,不能通過(guò)指針進(jìn)行訪問(wèn)。 當(dāng)結(jié)果為不同的數(shù)據(jù)類型時(shí), C51 編譯器自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型。 2. 存儲(chǔ)類型及存儲(chǔ)區(qū) C51 編譯 器支持 8051 及其擴(kuò)展系列,并提供對(duì) 8051 所有存儲(chǔ)區(qū)的訪問(wèn)。 8051 CPU 內(nèi)部的數(shù)據(jù)存儲(chǔ)區(qū)是可讀寫的, 8051 派生系列最多可有 256 字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū),其中低 128 字節(jié)可直接尋址,高 128 字節(jié) (從 0x80 到 0xff)只能間接尋址,從 20H 開始的 16 字節(jié)可位尋址。外部數(shù)據(jù)區(qū)也是可讀寫的,訪問(wèn)外部數(shù)據(jù)區(qū)比訪問(wèn)內(nèi)部數(shù)據(jù)區(qū)慢,因?yàn)橥獠繑?shù)據(jù)區(qū)是通過(guò)數(shù)據(jù)指針加載地址來(lái)間接訪問(wèn)的。程序 CODE 存儲(chǔ)區(qū)是只讀的,不能寫。 每個(gè)變量可以明確地分配到指定的存儲(chǔ)空間,對(duì)內(nèi)部數(shù)據(jù)存儲(chǔ)器的訪問(wèn)比對(duì)外部數(shù)據(jù)存儲(chǔ)器的訪問(wèn)快許多,因此應(yīng)當(dāng)將頻繁使用的變量放在內(nèi)部數(shù)據(jù)存儲(chǔ)器中,而把較少使用的變量放在外部數(shù)據(jù)存儲(chǔ)器中。 變量的聲明中還包括了對(duì)存儲(chǔ)器類型的指定,即指定變量存放的位置。 使用指令 MovX Rn,需要兩個(gè)指令周期 CODE 程序存儲(chǔ)區(qū)使用 DPTR 尋址 ? DATA 區(qū) DATA 區(qū)的尋址是最快的,所以應(yīng)該把經(jīng)常使用的變量放在 DATA區(qū) 。 DATA 區(qū)聲明中的存儲(chǔ)類型標(biāo)識(shí)符為 da
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1