欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      單片機(jī)課程實(shí)驗(yàn)報(bào)告

      時(shí)間:2019-05-12 12:11:07下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《單片機(jī)課程實(shí)驗(yàn)報(bào)告》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《單片機(jī)課程實(shí)驗(yàn)報(bào)告》。

      第一篇:單片機(jī)課程實(shí)驗(yàn)報(bào)告

      《單片機(jī)原理及應(yīng)用》課程實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱:步進(jìn)電機(jī)綜合控制實(shí)驗(yàn)

      一、摘要:本實(shí)驗(yàn)利用 8051 單片機(jī)達(dá)到控制步進(jìn)電機(jī)的啟動(dòng)、停止、正轉(zhuǎn)、反轉(zhuǎn)、點(diǎn)動(dòng)、轉(zhuǎn)過指定角度、狀態(tài)顯示和數(shù)據(jù)指示的目的,使步進(jìn)電機(jī)控制更加 靈活。步進(jìn)電機(jī)驅(qū)動(dòng)芯片采用 ULN2003,ULN2003 具有大電流、高電壓,外電路 簡單等優(yōu)點(diǎn)。利用 ZLG7290 模塊驅(qū)動(dòng) LED 數(shù)碼管顯示速度設(shè)定值。通過這個(gè)單片機(jī)控制系統(tǒng)的設(shè)計(jì)來掌握步進(jìn)電機(jī)的工作原理和驅(qū)動(dòng)過程以及 LED 顯示原理 和 ZLG7290 模塊的使用方法,用 LED 數(shù)碼管顯示實(shí)驗(yàn)要求的狀態(tài)結(jié)果,設(shè)計(jì)電路的硬件接線圖和實(shí)現(xiàn)上述要求的程序。關(guān)鍵詞:51 單片機(jī) 步進(jìn)電機(jī) ZLG7290 ULN2003

      二、設(shè)計(jì)內(nèi)容與要求:

      1、任務(wù)介紹:實(shí)現(xiàn)步進(jìn)電機(jī)按規(guī)定的速度正轉(zhuǎn)、反轉(zhuǎn),轉(zhuǎn)過指定的角度,要有點(diǎn)動(dòng) 功能。所有命令通過鍵盤輸入,步進(jìn)電機(jī)在運(yùn)行過程中要有狀態(tài)和數(shù)據(jù)指示。

      2、每套設(shè)計(jì)文檔應(yīng)包括: 系統(tǒng)原理說明、程序框圖、電路原理圖和程序清單。

      三、實(shí)驗(yàn)器件介紹及原理: 本實(shí)驗(yàn)采用單片機(jī)來控制步進(jìn)電機(jī),實(shí)現(xiàn)了軟件與硬件相結(jié)合的控制方法。在單片機(jī)環(huán)境下,ULN2003 驅(qū)動(dòng)芯片驅(qū)動(dòng)步進(jìn)電機(jī),用 ZLG7290 芯片作用下 用 的按鍵控制步進(jìn)電機(jī)的運(yùn)行,從而達(dá)到實(shí)驗(yàn)要求。其控制框圖(圖一)為 : ZLG7290 ULN2003A 按鍵控制 驅(qū)動(dòng)芯片 驅(qū)動(dòng)芯片 單片機(jī) 80C51 共陰極數(shù)碼管 步進(jìn)電機(jī) 圖一:控制框圖

      1、系統(tǒng)硬件介紹 1.1 步進(jìn)電機(jī) 1.1.1 相關(guān)的技術(shù)指標(biāo): a、相數(shù):指電機(jī)內(nèi)部的線圈組數(shù),目前常用的有二相、三相、四相、五相步進(jìn)電 機(jī),本實(shí)驗(yàn)用的是四相步進(jìn)電機(jī)。電機(jī)相數(shù)不同,其步距角也不同。b、步距角:表示控制系統(tǒng)每發(fā)一個(gè)步進(jìn)脈沖信號,電機(jī)所轉(zhuǎn)動(dòng)的角度。本實(shí)驗(yàn)程 序運(yùn)行前要先測量步進(jìn)電機(jī)的步距角。c、拍數(shù):完成一個(gè)磁場周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài),或指電機(jī)轉(zhuǎn)過一個(gè)步 距角所需脈沖數(shù)。本實(shí)驗(yàn)用四相八拍運(yùn)行方式,為 A-AB-B-BC-C-CD-D-DA-A 1.1.2 工作原理: 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖 信號,它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以 固定的角度一步一步運(yùn)行的,可以通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的 目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù) 載變化的影響,即給電機(jī)加一個(gè)脈沖信號,電機(jī)則轉(zhuǎn)過一個(gè)步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn),使得在速度、位置等控制領(lǐng)域用步進(jìn) 電機(jī)來控制變的非常的簡單。1.1.3步進(jìn)電機(jī)的驅(qū)動(dòng): 步進(jìn)電機(jī)的驅(qū)動(dòng)可以選用專用的電機(jī)驅(qū)動(dòng)模塊,比如L298、FT5754等,這類驅(qū)動(dòng)模 塊接口簡單,操作方便,它們既可以驅(qū)動(dòng)步進(jìn)電機(jī),同時(shí)也可以驅(qū)動(dòng)直流電機(jī)。但本實(shí)驗(yàn)使 用ULN2003a驅(qū)動(dòng)器,下面介紹該芯片。圖二:步進(jìn)電機(jī)及其驅(qū)動(dòng)電路 1.2 ULN2003A 芯片 ULN 是集成達(dá)林頓管 IC,內(nèi)部還集成了一個(gè)消線圈反電動(dòng)勢的二極管,可用來驅(qū)動(dòng)繼 電器。它是雙列 16 腳封裝,NPN 晶體管矩陣,最大驅(qū)動(dòng)電壓=50V,電流=500mA,輸入電壓=5V, 適用于 TTL COMS,由達(dá)林頓管組成驅(qū)動(dòng)電路。ULN 是集成達(dá)林頓管 IC,內(nèi)部還集成了一個(gè) 消線圈反電動(dòng)勢的二極管,它的輸出端允許通過電流為 200mA,飽和壓降 VCE 約 1V 左右,耐壓 BVCEO 約為 36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開路輸 出,輸出電流大,故可直接驅(qū)動(dòng)繼電器或固體繼電器,也可直接驅(qū)動(dòng)低壓燈泡。通常單片機(jī) 驅(qū)動(dòng) ULN2003 時(shí),上拉 2K 的電阻較為合適,同時(shí),COM 引腳應(yīng)該懸空或接電源。ULN2003 是一個(gè)非門電路,包含 7 個(gè)單元,但獨(dú)每個(gè)單元驅(qū)動(dòng)電流最大可達(dá) 350mA.資料的最后有引 用電路,9 腳可以懸空。比如 1 腳輸入,16 腳輸出,負(fù)載接在 VCC 與 16 腳之間,不用 9 腳。圖三:ULN2003A 原理圖 1.2.1 ULN2003 的作用: ULN2003 是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控 制電路中??芍苯域?qū)動(dòng)繼電器等負(fù)載。輸入 5VTTL 電平,輸出可達(dá) 500mA/50V。ULN2003 是高耐壓、大電流達(dá)林頓陳列,由七個(gè)硅 NPN 達(dá)林頓管組成。ULN2003 的每 一對達(dá)林頓都串聯(lián)一個(gè) 2.7K 的基極電阻,在 5V 的工作電壓下它能與 TTL 和 CMOS 電路 直 接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器。ULN2003 是高壓大電流達(dá)林頓晶體管陣列 系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要 求高速大功率驅(qū)動(dòng)的系統(tǒng)。1.2.3 ULN2003A 功能及引腳圖: 功能:ULN2003 是高耐壓、大電流、內(nèi)部由七個(gè)硅 NPN 達(dá)林頓管組成的驅(qū)動(dòng)芯 片。經(jīng)常在以下電路中使用,作為顯示驅(qū)動(dòng)、繼電器驅(qū)動(dòng)、照明燈驅(qū)動(dòng)、電磁閥驅(qū)動(dòng)、伺 服電機(jī)、步進(jìn)電機(jī)驅(qū)動(dòng)等電路中。ULN2003 的每一對達(dá)林頓都串聯(lián)一個(gè) 2.7K 的基極電阻, 在 5V 的工作電壓下它能與 TTL 和 CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏 輯緩沖器來處理的數(shù)據(jù)。ULN2003 工作電壓高,工作電流大,灌電流可達(dá) 500mA,并且能 夠在關(guān)態(tài)時(shí)承受 50V 的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。ULN2003 的封裝采用 DIP—16 或 SOP—16。ULN2003 可以驅(qū)動(dòng) 7 個(gè)繼電器,具有高電壓輸出特性,并帶有共陰 極的續(xù)流二極管使器件可用于開關(guān)型感性負(fù)載。每對達(dá)林頓管的額定集電極電流是 500mA,達(dá)林頓對管還可并聯(lián)使用以達(dá)到更高的輸出電流能力。顯示電路主要包括大型 LED 數(shù)碼管 BSI20-1(共陽極,數(shù)字凈高 12 cm)和高電壓大電流 驅(qū)動(dòng)器 ULN2003,大型 LED 數(shù)碼管的每段是由多個(gè) LED 發(fā)光二極管串并聯(lián)而成的,因此 導(dǎo)通電流大、導(dǎo)通壓降高。ULN2003 是高壓大電流達(dá)林頓晶體管陣列電路,他具有 7 個(gè)獨(dú) 立的反相驅(qū)動(dòng)器,每個(gè)驅(qū)動(dòng)器的輸出灌電流可達(dá) 500 mA,導(dǎo)通時(shí)輸出電壓約 1 V,截止時(shí) 輸出電壓可達(dá) 50 V。ULN2003 的 1~7 腳為信號輸入腳,依次對應(yīng)的輸出端為 16~10 腳,8 腳為接地端。當(dāng)驅(qū)動(dòng)電源電壓為+12 V 時(shí),若要求數(shù)碼管每段導(dǎo)通電流為 40 mA,則每段的 限流電阻為 50。則一塊 ULN2003 恰好驅(qū)動(dòng)一個(gè) LED 數(shù)碼管的 7 段。大數(shù)碼管采用共陽極 接法,低電平有效。鎖存器輸出的電平經(jīng) NPN 三極管 9014 反相后,再由 ULN2003 放大后 推動(dòng)大數(shù)碼管顯示 圖四:ULN2003A 引腳圖 1.3 ZLG7290 芯片 1.3.1 ZLG7290 作用及其功能介紹 ZLG7290 能夠直接驅(qū)動(dòng) 8 位共陰式數(shù)碼管(或 64 只獨(dú)立的 LED),同時(shí)還可 以掃描管理多達(dá) 64 只按鍵。其中有 8 只按鍵還可以作為功能鍵使用,就像電腦鍵盤 上的 Ctrl、Shift、Alt 鍵一樣。另外 ZLG7290B 內(nèi)部還設(shè)置有連擊計(jì)數(shù)器,能夠使 某鍵按下后不松手而連續(xù)有效。采用 I2C 總線方式,與微控制器的接口僅需兩根信 號線??煽貟呙栉粩?shù),可控任一數(shù)碼管閃爍。引腳說明如下圖: 圖五:ZLG7290 引腳圖 1.3.2 ZLG7290 使用說明 ZLG7290B 是基于 I2C 總線接口的芯片。主控單片機(jī) ADUC831 作為主器件時(shí),內(nèi)部沒有 I2C 總線功能,因此需用 SPI 總線的引腳來模擬 I2C 總線。具體連接如下: ZLG7290B ADUC831 GND DGND SDA MOSI SCL SCLOCK /INT INT0 VCC DVDD 但是,這種連接不是唯一的,只是在所寫的軟件里需要這樣連接。其實(shí)中斷可以根據(jù) 自己所選的中斷而定。地(GND)和電源(VCC)也可以另外從電源上接過來。所用電 源為 5V。編譯軟件使用的是 WSD,這個(gè)軟件主要是用于 AD 系列芯片的。只要下載擴(kuò) 展名為 HEX 的文件即可。1.3.3 ZLG7290 工作原理 ZLG7290 的核心是一塊 ZLG7290B 芯片,它采用 I2C 接口,能直接驅(qū)動(dòng) 8 位共 陰式數(shù)碼管,同時(shí)可掃描管理多達(dá) 64 只按鍵,實(shí)現(xiàn)人機(jī)對話的功能資源十分豐富。除具有自動(dòng)消除抖動(dòng)功能外,它還具有段閃爍、段點(diǎn)亮、段熄滅、功能鍵、連擊鍵計(jì) 數(shù)等強(qiáng)大功能,并可提供 10 種數(shù)字和 21 種字母的譯碼顯示功能,用戶可以直接向顯 示緩存寫入顯示數(shù)據(jù),而且無需外接元件即可直接驅(qū)動(dòng)數(shù)碼管,還可擴(kuò)展驅(qū)動(dòng)電壓和 電流。此外,ZLG7290B 的電路簡單,使用也很方便。用戶按下某個(gè)鍵時(shí),ZLG7290 的 INT 引腳會產(chǎn)生一個(gè)低電平的中斷請求信號,讀 取鍵值后,中斷信號就會自動(dòng)撤銷。正常情況下,微控制器只需要判斷 INT 引腳就可 以得到鍵盤輸入的信息。微控制器可通過兩種方式得到用戶的鍵盤輸入信息。其一是 中斷方式,該方式的優(yōu)點(diǎn)是抗干擾能力強(qiáng),缺點(diǎn)是要占用微控制器的一個(gè)外部中斷源。其二是查詢方式,即通過不斷查詢 INT 引腳來判斷是否有鍵按下,該方式可以節(jié)省微 控制器的一根 I/O 口線,但是代價(jià)是 I2C 總線處于頻繁的活動(dòng)狀態(tài),消耗電流多并 且不利于抗干擾。1.3.4 ZLG7290 驅(qū)動(dòng)數(shù)碼管及按鍵開關(guān)連接線路圖 圖六:ZLG7290 電源部分接線圖 圖七:ZLG7290 驅(qū)動(dòng)數(shù)碼管電路圖 圖八:ZLG7290 驅(qū)動(dòng)按鍵開關(guān)電路圖 在本實(shí)驗(yàn)運(yùn)用了十個(gè)按鍵其中:S1 按鍵控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)方向,S2 控制步進(jìn)電機(jī)的 啟動(dòng),S3 控制步進(jìn)電機(jī)的關(guān)斷,S4 控制步進(jìn)電機(jī)的單步運(yùn)行鍵,S5 為步數(shù)加鍵,S6 為步 數(shù)減鍵,S7 為速度加鍵,S8 為速度減鍵,S9 為連續(xù)運(yùn)行與指定步數(shù)運(yùn)行切換鍵。1.4 總電路圖: 電路圖中包含最小系統(tǒng)、驅(qū)動(dòng)電路和顯示電路

      第二篇:單片機(jī)實(shí)驗(yàn)報(bào)告[范文模版]

      實(shí) 實(shí) 驗(yàn) 驗(yàn) 報(bào) 報(bào) 告

      實(shí)驗(yàn)課程:

      單片機(jī)原理及應(yīng)用

      級:

      自動(dòng)化 2 班

      學(xué)

      號:

      名:

      師:

      成績:

      實(shí) 驗(yàn) 日 期 :

      ****年**月**日

      實(shí)驗(yàn)名稱:

      實(shí)驗(yàn) 1-—計(jì)數(shù)顯示器

      一、實(shí)驗(yàn)?zāi)康? 學(xué)習(xí)Proteus 軟件得使用,掌握單片機(jī)原理圖得繪圖方法。

      二、實(shí)驗(yàn)內(nèi)容:

      ?1、繪制“計(jì)數(shù)顯示器”電路原理圖;2、利用提供得hex 文件驗(yàn)證此電路得運(yùn)行效果。

      三、實(shí)驗(yàn)要求:

      提交得實(shí)驗(yàn)報(bào)告中應(yīng)包括:1、繪圖方法簡述,要求說明元件與電源得選取、擺放及屬性編輯,總線與標(biāo)簽得畫法等內(nèi)容;2、電路原理圖;3、仿真運(yùn)行效果展示,要求就仿真文件加載方法及 3~4幅運(yùn)行截圖進(jìn)行簡要說明;4、實(shí)驗(yàn)小結(jié),說明遇到得主要問題或?qū)嶒?yàn) 1 體會等.參考電路原理圖如下:

      元件類別 電路符號 元件名稱 Microprocessor ICs “U1“ 80C51 Miscellaneous “X1”/12MHz CRYSTAL Capacitors “C1”~“C2”/1nF CAP Capacitors “C3”/22μF CAP—ELEC Resistors Packs “RP1“/7—100Ω RESPACK—7 Resistors “R1"/100Ω RES Optoelectronics “LED1”~“LED2” 7SEG--CAT-GRN Switches & Relays “BUT” BUTTON 1、、及 編程思路及 C51 源程序:

      2、電路原理圖:

      3、仿真運(yùn)行效果展示:

      4、實(shí)驗(yàn)小結(jié) :

      熟悉Proteus 軟件,了解軟件得結(jié)構(gòu)組成與功能;學(xué)習(xí)ISIS 模塊得使用方法,學(xué)會設(shè)置圖紙、選元件、線畫總線、修改屬性等基本操作;學(xué)會可執(zhí)行文件 加載及程序仿法;理解Proteus在單片機(jī)開發(fā)中得作用,完成單片機(jī)電路原 理圖得繪制. 實(shí)驗(yàn)名稱:

      實(shí)驗(yàn) 2——LED 指示燈循環(huán)控制

      一、實(shí)驗(yàn)?zāi)康?熟悉μVision3 編譯軟件、掌握 C51編程與調(diào)試方法。

      二、

      實(shí)驗(yàn)內(nèi)容 1、按照教材 P243 得圖 A、34,繪制實(shí)驗(yàn)二電路原理圖; 2、編寫 C51 程序,實(shí)現(xiàn) 8 個(gè) LED 燈依次點(diǎn)亮得功能: P0、0→P0、1→ P0、2→P0、3→ ┅ →P0、7→P0、6→P0、5→ ┅ →P0、0 得順序,無限循環(huán),間隔約50ms; 3、觀察仿真結(jié)果,完成實(shí)驗(yàn)報(bào)告。

      三、

      實(shí)驗(yàn)要求 1、采用兩種加載并運(yùn)行可執(zhí)行文件得方法,即proteus獨(dú)立運(yùn)行與prote

      us + Keil 聯(lián)合運(yùn)行,體會其中得差異與意義;2、練習(xí)采用單步、斷點(diǎn)以及監(jiān)視窗等手段進(jìn)行程序調(diào)試得方法;3、觀察仿真結(jié)果,完成實(shí)驗(yàn)報(bào)告:繪制得電路原理圖、編程思路分析及 C51源程序、調(diào)試過程簡述,仿真運(yùn)行效果以及實(shí)驗(yàn)小結(jié)。、電路原理圖:

      及 2、編程思路及 C51 源程序:、仿真運(yùn)行效果:、實(shí)驗(yàn)小結(jié) :

      通過本次實(shí)驗(yàn)我熟悉 uVision3 編譯軟件了解軟件得結(jié)構(gòu)組成與功能學(xué)習(xí)C51 語言得程序設(shè)計(jì)方法)學(xué)會在 uVision3中進(jìn)行 C51 程序錄入、編譯、與 調(diào)試?yán)斫?Proteus 與 Keil 聯(lián)合得仿真原理實(shí)現(xiàn) LED 指示燈循環(huán)控制功能。

      更好得將 C 語言與 C51 語言聯(lián)系在了一起)學(xué)到得知識能準(zhǔn)確得利用了出來。

      實(shí)驗(yàn)名稱:

      實(shí)驗(yàn)3——指示燈與數(shù)碼管得中斷控制

      一、實(shí) 驗(yàn)?zāi)康?掌握外部中斷得工作原理,學(xué)會中斷程序設(shè)計(jì).二、實(shí)驗(yàn)內(nèi)容 1、按照教材帕圖 A、53,繪制實(shí)驗(yàn)四電路原理圖;2、要求采用外部中斷原理完成本次實(shí)驗(yàn),其中按鍵 K1、K2 均設(shè)置為下降沿觸發(fā)方式,自然優(yōu)先級; 3、編寫 C51 程序?qū)崿F(xiàn)如下功能:開機(jī)后 D1滅燈,LED1黑屏,隨后單擊 K1→D1狀態(tài)反轉(zhuǎn),單擊 K2 →LED1 從 0 開始循環(huán)顯示0~F 字符。

      4、觀察仿真結(jié)果,完成實(shí)驗(yàn)報(bào)告。

      三、

      實(shí)驗(yàn)要求 提交得實(shí)驗(yàn)報(bào)告中應(yīng)包括:電路原理圖,外部中斷工作原理闡述(以 K1 為例說明中斷響應(yīng)過程),C51 源程序(含流程圖與注釋語句),運(yùn)行效果(含運(yùn)行截圖

      與說明),實(shí)驗(yàn)小結(jié). 1、電路原理圖 :

      2、外部中斷工作原理闡述:

      持續(xù)按下 K1 則 D1 將“亮→滅→亮→滅→?→亮→滅如此循環(huán),表明實(shí)現(xiàn)了 K1 對應(yīng)于 D1 狀態(tài)反轉(zhuǎn)這個(gè)功能;持續(xù)按下持續(xù)按 K2 則數(shù)碼顯示管依次顯 示 1-F,實(shí)現(xiàn)了 K2 對應(yīng)于 0~F 間得數(shù)碼管加一計(jì)數(shù)顯示.

      3、、及 編程思路及 C51 源 源 程序:、仿真運(yùn)行效果:

      5、實(shí)驗(yàn)小結(jié):

      通過實(shí)驗(yàn)對 Protues 有了更多得了解,同時(shí)了解到中斷系統(tǒng)在實(shí)際中得更好 應(yīng)用。經(jīng)過編程操作起來更加熟練能很快得完成繪圖,編程時(shí)也得心應(yīng)手,能熟練得運(yùn)用軟件找出自己所編程中得語法問題及其她問題,并以改正。

      實(shí)驗(yàn)名稱:

      實(shí)驗(yàn)4—-電子秒表顯示器

      一、實(shí) 實(shí) 驗(yàn)?zāi)康?掌握定時(shí)/計(jì)數(shù)器得中斷法工作原理,熟悉 C51 編程與調(diào)試方法

      二、實(shí)驗(yàn)要求:

      1、實(shí)驗(yàn)電路原理圖如教材 P260 A、65 圖所示.程序開始時(shí)顯示“00”;當(dāng)1s 產(chǎn)生時(shí),秒計(jì)數(shù)加1;秒計(jì)數(shù)到 59 后,自動(dòng)從“00”開始。

      2、采用12MHz晶振頻率,T0 定時(shí)方式 1、50ms 定時(shí)中斷法編程(1s 需要經(jīng)過 20 軟循環(huán))(流程圖與參考程序模版如下所示).//定時(shí)中斷方式實(shí)現(xiàn)得電子秒表

      15()件文頭?(定義無符號字符型變量 t—-中斷次數(shù)計(jì)數(shù)器,并賦初值0(定義無符號字符型變量 second—-秒計(jì)數(shù)器,并賦初值 0(定義位于 ROM 區(qū)得無符號字符型數(shù)組table-—顯示字模)timer0()

      (中斷函數(shù)關(guān)鍵詞){ ?()0T 閉關(guān)?(初值重裝載 0x3cb0)

      ()1增器數(shù)計(jì)數(shù)次斷中? {)02==t(fi??

      ?

      // 秒1于當(dāng)相,次 02斷中若?

      ;0=t???????? //中斷次數(shù)計(jì)數(shù)器清零 ?

      ;++dnoces?? ? // 零清器數(shù)計(jì)秒?

      }()零清,06 到達(dá)值器數(shù)計(jì)秒若??()值示顯得 dnoces 量變出輸別分口 2P與0P?()0T動(dòng)啟??} main(){

      ?

      ;]01/dnoces[elbat=0P?? // 值示顯出輸別分口 2P 與 0P?

      ;]01%dnoces[elbat=2P?(定義T0 定時(shí)方式 1—-TMOD)05()0LT與0HT——載加0bc3x0值初出溢 sm?()AE,0TE——化始初斷中?(啟動(dòng) T0)

      (死循環(huán))3、編程思路及C1 51 源程序: :

      4、仿真運(yùn)行效果:

      5、實(shí)驗(yàn)小結(jié) :

      本次實(shí)驗(yàn)進(jìn)行得比較順利,根據(jù)指導(dǎo)材料中提供得流程圖完成了源程序得編 寫,成功生成了、hex文件,經(jīng)過仿真運(yùn)行達(dá)到了預(yù)期得實(shí)驗(yàn)結(jié)果.通過本次得 實(shí)驗(yàn),我更加深入得了解到單片機(jī)定時(shí)/計(jì)數(shù)功能實(shí)現(xiàn)得機(jī)理,通過與單片機(jī)中 斷功能得結(jié)合,可以完成更多得預(yù)期功能。但就是進(jìn)過討論我也發(fā)現(xiàn),程序還就是存 在很大得缺陷,想要實(shí)現(xiàn)更加準(zhǔn)確實(shí)現(xiàn)計(jì)時(shí)功能還需綜合利用各種知識完善程 序。

      第三篇:單片機(jī)實(shí)驗(yàn)報(bào)告

      《單片機(jī)原理及應(yīng)用》

      實(shí) 驗(yàn) 報(bào) 告

      2017—2018學(xué)年第一學(xué)期

      班級: 152 專業(yè): 電子科學(xué)與技術(shù) 姓名: 子路 學(xué)號: 教師:

      實(shí)驗(yàn)一:Keil C51

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、熟悉Keil C51單片機(jī)應(yīng)用開發(fā)系統(tǒng)

      2、熟悉Keil C51的調(diào)試技巧

      二、實(shí)驗(yàn)內(nèi)容

      1、安裝好了Keil軟件以后,我們打開它。打開以后界面如下:

      2、我們先新建一個(gè)工程文件,點(diǎn)擊“Project->New Project?”菜單,如下圖:

      3、選擇工程文件要存放的路徑 ,輸入工程文件名 LED, 最后單擊保存.4、在彈出的對話框中選擇 CPU 廠商及型號

      5、選擇好 Atmel 公司的 AT89S52 后 , 單擊確定

      6、在接著出現(xiàn)的對話框中選擇“是”。

      7、新建一個(gè) C51 文件 , 單擊左上角的 New File 如下圖所示:

      8、保存新建的文件,單擊SAVE如下圖:

      9、在出現(xiàn)的對話框中輸入保存文件名MAIN.C(注意后綴名必須為.C),再單擊“保存”,如下圖:

      10、保存好后把此文件加入到工程中方法如下 : 用鼠標(biāo)在 Source Group1 上單擊右鍵 , 然后再單擊 Add Files to Group ‘Source Group 1' 如下圖:

      11、選擇要加入的文件 , 找到 MAIN.C 后 , 單擊 Add, 然后單擊 Close

      12、在編輯框里輸入如下代碼:

      13、到此我們完成了工程項(xiàng)目的建立以及文件加入工程 , 現(xiàn)在我們開始編譯工程如下圖所示 : 我們先單擊編譯, 如果在錯(cuò)誤與警告處看到 0 Error(s)表示編譯通過:

      14、生成.hex 燒寫文件,先單擊Options for Target,如圖:

      15、在下圖中,我們單擊 Output, 選中 Create HEX F。再單擊“確定”

      16、打開文件夾‘實(shí)驗(yàn)1’,查看是否生成了HEX文件。如果沒有生成,在執(zhí)行

      一遍步驟10到步驟12,直到生成。

      三、實(shí)驗(yàn)工具(軟件、硬件等)

      1、Keil

      2、計(jì)算機(jī)

      實(shí)驗(yàn)二:Proteus軟件學(xué)習(xí)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、了解Proteus的基本功能

      2、熟悉Proteus的設(shè)計(jì)環(huán)境Preoteus ISIS及第三方編譯工具Keil

      3、掌握Proteus中實(shí)現(xiàn)單片機(jī)系統(tǒng)設(shè)計(jì)與仿真的步驟與方法

      二、實(shí)驗(yàn)內(nèi)容

      設(shè)計(jì)與仿真的開發(fā)過程

      Proteus強(qiáng)大的單方機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使之成為單片機(jī)系統(tǒng)應(yīng)用開發(fā)和改進(jìn)手段之一。

      開發(fā)的整個(gè)過程都是在計(jì)算機(jī)上完成的,其過程一般分為三步: 1)Proteus 電路設(shè)計(jì):在ISIS平臺上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣現(xiàn)則檢查等。

      2)Proteus 源程序設(shè)計(jì)和生成目標(biāo)代碼文件:在ISIS平臺上或借助第三方編譯工具進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)、編輯、匯編編譯、代碼級調(diào)試,最后生成目標(biāo)代碼文件(*hex)。

      3)Proteus仿真:在ISIS平臺上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中,由此實(shí)現(xiàn)系統(tǒng)實(shí)時(shí)交互與協(xié)同傷真。

      三、實(shí)驗(yàn)工具(軟件、硬件等)

      1、載有Proteus的計(jì)算機(jī)一臺

      實(shí)驗(yàn)三:LED流水燈

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、用Keil軟件編寫程序并利用開發(fā)板仿真

      2、學(xué)習(xí)LED燈工作原理

      二、實(shí)驗(yàn)內(nèi)容

      延時(shí)實(shí)現(xiàn)LED流水燈效果P2口八個(gè)燈作跑馬燈。采用了寄存器存中間數(shù)。

      三、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺 2.開發(fā)板一套

      四、實(shí)驗(yàn)結(jié)果及分析

      實(shí)驗(yàn)四:靜態(tài)數(shù)碼管

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、用Keil軟件編寫程序并利用開發(fā)板仿真

      2、學(xué)習(xí)靜態(tài)顯示管工作原理

      二、實(shí)驗(yàn)內(nèi)容

      靜態(tài)數(shù)碼管流動(dòng)顯示0~9

      二、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺 2.開發(fā)板一套

      四、實(shí)驗(yàn)結(jié)果及分析

      實(shí)驗(yàn)五:按鍵移位動(dòng)態(tài)顯示

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、用Keil軟件編寫程序并利用開發(fā)板仿真

      2、學(xué)習(xí)靜態(tài)顯示管工作原理

      二、實(shí)驗(yàn)內(nèi)容

      靜態(tài)顯示管,按鍵不同顯示不同

      三、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺 2.開發(fā)板一套

      四、實(shí)驗(yàn)結(jié)果及分析

      實(shí)驗(yàn)六:中斷INT0+INT1

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、用Keil軟件編寫程序并利用開發(fā)板仿真

      2、學(xué)習(xí)中斷INT0和INT1的工作原理

      二、實(shí)驗(yàn)內(nèi)容

      試驗(yàn)數(shù)碼管上顯示外部中斷計(jì)數(shù),用單片機(jī)腳直接控制數(shù)碼管和外部中斷使用

      三、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺 2.開發(fā)板一套

      四、實(shí)驗(yàn)結(jié)果及分析

      第四篇:單片機(jī)實(shí)驗(yàn)報(bào)告

      目錄

      第一章單片機(jī)簡介....................................................2 第二章

      實(shí)驗(yàn)要求..................................................3 第三章實(shí)驗(yàn)設(shè)備......................................................3 第四章實(shí)驗(yàn)安排......................................................4 第五章實(shí)驗(yàn)內(nèi)容......................................................4

      LED燈實(shí)驗(yàn).......................................................4 步進(jìn)馬達(dá)試驗(yàn)....................................................5 獨(dú)立按鍵控制LED實(shí)驗(yàn)............................................7 矩陣鍵盤實(shí)驗(yàn)....................................................9 靜態(tài)數(shù)碼管實(shí)驗(yàn).................................................12 動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn).................................................14 NE555脈沖發(fā)生器實(shí)驗(yàn)(定時(shí)/計(jì)數(shù)器).............................16 RS232串口通信實(shí)驗(yàn)(接收與發(fā)送)..................................21 第六章收獲體會.....................................................25

      單片機(jī)實(shí)驗(yàn)報(bào)告

      第一章單片機(jī)簡介

      單片機(jī)也被稱為微控制器(Microcontroller),是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機(jī),結(jié)果就會有天壤之別!只因?yàn)閱纹瑱C(jī)的通過你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!

      單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。

      1.SCM即單片微型計(jì)算機(jī)(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)?!皠?chuàng)新模式”獲得成功,奠定了SCM與通用計(jì)算機(jī)完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒。

      2.MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時(shí),對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領(lǐng)域都與對象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。

      Philips公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢,將MCS-51從單片微型計(jì)算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時(shí),不要忘記Intel和Philips的歷史功績。

      3.單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求

      單片機(jī)實(shí)驗(yàn)報(bào)告

      應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設(shè)計(jì)、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會有較大的發(fā)展。因此,對單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。

      MCS51系列微控制器應(yīng)用廣泛,在家電、汽車甚至航空等領(lǐng)域都有其活躍的身影。然而,普通51系列微控制器內(nèi)部資源有限,像我用Proteus構(gòu)建微控制器虛擬實(shí)驗(yàn)室選用的AT89C52只有三個(gè)定時(shí)器、一個(gè)全雙工的串行口和中斷控制,并且其數(shù)據(jù)處理能力有限,不適合對大量數(shù)據(jù)進(jìn)行復(fù)雜分析和運(yùn)算。

      因此,在不重新選型(可選用SoC)的前提下,為實(shí)現(xiàn)我們所需要的功能,就需要進(jìn)行外圍擴(kuò)展。針對微控制器的特點(diǎn),我們首先考慮串行擴(kuò)展,因?yàn)槲⒖刂破鞯腎/O引腳有限,并行擴(kuò)展一則外圍芯片面積比較大,二則對抑制EMI不利。

      第二章 實(shí)驗(yàn)要求

      1.學(xué)習(xí)Keil C51集成開發(fā)工具的操作及調(diào)試程序的方法,包括:仿真調(diào)試與脫機(jī)運(yùn)行間的切換方法

      2.熟悉TD-51單片機(jī)系統(tǒng)板及實(shí)驗(yàn)系統(tǒng)的結(jié)構(gòu)及使用

      3.進(jìn)行MCS51單片機(jī)指令系統(tǒng)軟件編程設(shè)計(jì)與硬件接口功能設(shè)

      4. 學(xué)習(xí)并掌握Keil C51軟件聯(lián)機(jī)進(jìn)行單片機(jī)接口電路的設(shè)計(jì)與編程調(diào)試

      5.完成指定MCS51單片機(jī)綜合設(shè)計(jì)題

      第三章實(shí)驗(yàn)設(shè)備

      1.HC600S-51單片機(jī)開發(fā)板 2.Keil C51 3.普中自動(dòng)下載軟件

      第四章 實(shí)驗(yàn)安排

      1.LED燈實(shí)驗(yàn)

      單片機(jī)實(shí)驗(yàn)報(bào)告

      2.步進(jìn)馬達(dá)試驗(yàn)

      3.獨(dú)立按鍵控制LED實(shí)驗(yàn) 4.矩陣鍵盤實(shí)驗(yàn) 5.靜態(tài)數(shù)碼管實(shí)驗(yàn) 6.動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)

      7.NE555脈沖發(fā)生器實(shí)驗(yàn)(定時(shí)/計(jì)數(shù)器)8.RS232串口通信實(shí)驗(yàn)(接收與發(fā)送)

      第五章 實(shí)驗(yàn)內(nèi)容

      一、LED燈實(shí)驗(yàn)

      1.基本要求

      利用位移循環(huán)指令實(shí)現(xiàn)LED燈的閃爍 2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。3.接線圖

      4.電路原理圖

      單片機(jī)實(shí)驗(yàn)報(bào)告

      5.程序

      #include #define uint unsigned int void d(uint x){uint n;for(;x>0;x--){for(n=0;n<123;n++){;} }}

      main(){unsigned int i;while(1)

      {for(i=0,P0=1;i<4;i++){d(500);P0=(P0<<2);}}}

      二、步進(jìn)馬達(dá)試驗(yàn)

      1.基本要求

      編程實(shí)現(xiàn)馬達(dá)的正反轉(zhuǎn),調(diào)速等功能 2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。3.接線圖(圖一)

      單片機(jī)實(shí)驗(yàn)報(bào)告

      圖一 圖二

      4.電路原理圖

      上圖圖二 5.程序

      #include “reg52.h” #define speed 2 sbit PH1 = P1^0;

      //定義管腳 sbit PH2 = P1^1;sbit I01 = P1^2;sbit I11 = P1^3;sbit I02 = P1^4;sbit I12 = P1^5;

      void delay(int time);

      void Go(){ //A

      PH1 = 0;//PH1為0 則A線圈為反向電流

      I01 = 0;I11 = 0;

      //以最大電流輸出

      PH2 = 0;//PH2為0 則B線圈為反向電流

      I02 = 1;I12 = 1;

      //輸出0 delay(speed);//圈為反向電流

      I01 = 1;//輸出0 I11 = 1;

      PH2 = 1;//PH2為1 則B線圈為正向電流

      I02 = 0;//以最大電流輸出

      I12 = 0;

      delay(speed);//B PH1 = 1;

      //PH1為1 則A線圈為

      正向電流

      I01 = 0;

      //以最大電流輸出

      I11 = 0;

      PH2 = 1;//PH2為1 則B線圈為正

      向電流

      I02 = 1;//輸出0 I12 = 1;

      delay(speed);

      PH1 = 1;

      //PH1為1 則A線圈為正向電流

      I01 = 1;I11 = 1;

      PH2 = 0;

      //PH2為0 則B線圈為反向電流

      I02 = 0;I12 = 0;delay(speed);}

      void delay(int time){

      int i,j;

      for(j=0;j <= time;j++)

      for(i =0;i <= 120;i++);}

      void main(){

      while(1)

      {

      Go();//步進(jìn)電機(jī)運(yùn)行

      } }

      單片機(jī)實(shí)驗(yàn)報(bào)告

      三、獨(dú)立按鍵控制LED實(shí)驗(yàn)

      1.基本要求

      通過編程控制8個(gè)獨(dú)立按鍵分別控制8個(gè)LED燈的開關(guān) 2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。3.接線圖(圖一)

      圖一 圖二

      4.電路原理圖 上圖圖二 5.程序

      #include #include #define GPIO_KEY P1 //獨(dú)立鍵盤用

      P1口

      #define uchar unsigned char #define uint unsigned int

      void Delayms(unsigned int c);

      //延時(shí)10ms uchar Key_Scan();void main(void){

      unsigned char ledValue, keyNum;

      ledValue = 0x01;

      while(1)

      {

      keyNum = Key_Scan();//掃描鍵

      switch(keyNum)

      {

      case(0xFE):

      //返回按

      鍵K1的數(shù)據(jù)

      ledValue = 0x01;

      break;

      單片機(jī)實(shí)驗(yàn)報(bào)告

      case(0xFD):

      ledValue = 0x02;

      break;case(0xFB):

      ledValue = 0x04;

      break;case(0xF7):

      ledValue = 0x08;

      break;case(0xEF):

      ledValue = 0x10;

      break;case(0xDF):

      ledValue = 0x20;

      break;case(0xBF):

      ledValue = 0x40;

      break;case(0x7F):

      ledValue = 0x80;

      //返回按鍵K2的數(shù)據(jù)

      //返回按鍵K3的數(shù)據(jù)

      //返回按鍵K4的數(shù)據(jù)

      //返回按鍵K5的數(shù)據(jù)

      //返回按鍵K6的數(shù)據(jù)

      //返回按鍵K7的數(shù)據(jù)

      //返回按鍵K8的數(shù)據(jù)

      break;default:

      break;

      }

      GPIO_LED = ledValue;//點(diǎn)亮LED燈

      }

      }

      uchar Key_Scan(void)//鍵盤掃描函數(shù) { uchar i,n=0xff;

      if(P1==0xff)goto Scan_r;//無鍵按

      下,返回

      goto Scan_r;Scan_1:

      while(P1!=0xff);//等待鍵釋放

      Delayms(10);Scan_r:

      return n;}

      void Delayms(uint x){

      uint n;

      for(;x>0;x--)

      {

      for(n=0;n<123;n++)

      {;}

      } }

      四、矩陣鍵盤實(shí)驗(yàn)

      1.基本要求

      編程由16個(gè)矩陣按鍵控制數(shù)碼管顯示相應(yīng)的數(shù)值 2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。

      3.接線圖

      單片機(jī)實(shí)驗(yàn)報(bào)告

      見下圖圖一

      圖一 圖二

      4.電路原理圖

      見上圖圖二 5.程序

      #include #define uchar unsigned char #define uint unsigned int #define uint unsigned int #define GPIO_LED P0

      uchar ScanKey(void);void Delayms(uint x);main(){ unsigned char ledValue;uchar i;ledValue = 0x01;loop: i = ScanKey();

      switch(i)

      { case 0xee:

      ledValue = ~0x3F;

      break;

      case 0xde:

      ledValue = ~0x06;

      break;

      case 0xbe:

      ledValue = ~0x5B;

      break;

      case 0x7e:

      ledValue = ~0x4F;

      break;

      case 0xed:

      ledValue = ~0x66;

      break;

      case 0xdd:

      ledValue = ~0x6D;

      break;

      單片機(jī)實(shí)驗(yàn)報(bào)告

      case 0xbd:

      ledValue = ~0x7D;

      break;

      case 0x7d:

      ledValue = ~0x07;

      break;

      case 0xeb:

      ledValue = ~0x7F;

      break;

      case 0xdb:

      ledValue = ~0x6F;

      break;

      case 0xbb:

      ledValue = ~0x77;

      break;

      case 0x7b:

      ledValue = ~0x7C;

      break;

      case 0xe7:

      ledValue = ~0x39;

      break;

      case 0xd7:

      ledValue = ~0x5E;

      break;

      case 0xb7:

      ledValue = ~0x79;

      break;

      case 0x77:

      ledValue = ~0x71;

      break;

      }

      GPIO_LED = ledValue;i=0;goto loop;}

      void Delayms(uint x){uint n;for(;x > 0;x--)

      { for(n=0;n<123;n++)

      {;}

      } }

      uchar ScanKey(void)//鍵盤掃描函數(shù) { uchar i,n=0xff;

      P1=0xf0;

      if(P1==0xf0)goto Scan_r;//無鍵按下,返回

      for(i=0,P1=0xfe;i<4;i++)

      { if((P1&0xf0)!=0xf0)

      { Delayms(10);

      if((P1&0xf0)!=0xf0)

      { n=

      P1;

      goto

      Scan_1;}

      }

      P1=(P1<<1)+1;

      //掃描下

      一行

      } goto Scan_r;Scan_1:

      單片機(jī)實(shí)驗(yàn)報(bào)告

      P1=0xf0;while((P1&0xf0)!=0xf0);//等待鍵

      釋放

      Delayms(10);

      Scan_r:

      P1=0xff;return n;} }

      五、靜態(tài)數(shù)碼管實(shí)驗(yàn)

      1.基本要求

      編程使數(shù)碼管顯示字符0-F 2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。3.接線框圖(圖一)

      圖一

      單片機(jī)實(shí)驗(yàn)報(bào)告

      圖二

      4.電路原理圖

      見上圖圖二 5.程序

      #include #define uchar unsigned char #define uint unsigned int void Delayms(uint x);uchar code LED7Code[]=

      {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D, ~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};main(){

      unsigned int LedNumVal;//定義變量 while(1)

      {

      // 將字模送到P0口顯示

      LedNumVal++;

      P0 = LED7Code[LedNumVal%16];

      Delayms(1000);

      //調(diào)用延時(shí)程序

      }

      }

      單片機(jī)實(shí)驗(yàn)報(bào)告

      void Delayms(uint x){uint n;for(;x > 0;x--)

      { for(n=0;n<123;n++)

      {;}

      } }

      六、動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)

      1.基本要求

      編程實(shí)現(xiàn)8個(gè)數(shù)碼管的動(dòng)態(tài)掃描。通過P22、P23、P24控制3-8譯碼器來對數(shù)碼管進(jìn)行位選,通過P0口經(jīng)過573的驅(qū)動(dòng)控制數(shù)碼管的段選,通過P13控制573的使能端,為低電平時(shí)573才會有輸出。2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。3.接線圖(圖一)

      圖一 圖二

      單片機(jī)實(shí)驗(yàn)報(bào)告

      圖三

      4.電路原理圖

      見上圖圖

      二、圖三 5.程序

      #define uint unsigned int void Dsplay();void Delayms(uint x);uchar mDS[6];uchar code cDsCode[]=

      {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};

      void main(){ uchar i;

      for(i=0;i<6;i++)mDS[i]=i+1;

      loop:

      Dsplay();

      goto loop;}

      void Dsplay()//動(dòng)態(tài)掃描顯示

      {uchar i;

      for(i=0,P2=0x01;i<6;i++)

      { P1=cDsCode[mDS[i]];//輸出段

      Delayms(1000);

      P2=P2<<1;

      //選通下一位

      }

      P2=0x00;

      //關(guān)閉位選通 }

      void Delayms(uint x){uint n;for(;x > 0;x--)

      { for(n=0;n<123;n++)

      {;}

      } }

      七、NE555脈沖發(fā)生器實(shí)驗(yàn)(定時(shí)/計(jì)數(shù)器)

      1.基本要求

      2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。3.接線圖

      4.電路原理圖

      5.程序

      #include #include“l(fā)cd.h” #define uchar unsigned char #define uint unsigned int #define ulong unsigned long uchar code EN_CHAR1[16]={“

      CYMOMETER

      ”};uchar code EN_CHAR2[16]={“FREQ:

      HZ”};

      單片機(jī)實(shí)驗(yàn)報(bào)告

      void TIMER_Configuration();//初始化定時(shí)器 ulong Freq;

      //用來存放要顯示的頻率值 ulong TimeCount;//用于計(jì)算1S鐘的

      void main(){ uchar i, freqValue[6];

      LcdInit();TIMER_Configuration();for(i=0;i<16;i++){

      LcdWriteData(EN_CHAR1[i]);}

      LcdWriteCom(0xc0);//第二行顯示

      for(i=0;i<16;i++){

      LcdWriteData(EN_CHAR2[i]);}

      while(1){

      if(TR0==0)

      //當(dāng)計(jì)數(shù)器停下的時(shí)候,表明計(jì)數(shù)完畢

      {

      Freq = Freq + TL1;

      //讀取TL的值

      Freq = Freq +(TH1 * 256);//讀取TH的值

      LcdWriteCom(0xc8);

      //--求頻率的個(gè)十百千萬十萬位--//

      freqValue[0]='0'+Freq%1000000/100000;

      freqValue[1]='0'+Freq%100000/10000;

      freqValue[2]='0'+Freq%10000/1000;

      freqValue[3]='0'+Freq%1000/100;

      freqValue[4]='0'+Freq%100/10;

      freqValue[5]='0'+Freq%10;

      for(i=0;i<5;i++)//從最高位開始查找不為0的數(shù)開始顯示(最低位為0顯示0)

      {

      if(freqValue[i]==0x30)

      {

      freqValue[i]=0x20;//若為0則賦值空格鍵

      }

      else

      單片機(jī)實(shí)驗(yàn)報(bào)告

      {

      break;

      }

      }

      for(i=0;i<6;i++)

      {

      LcdWriteData(freqValue[i]);

      }

      Freq=0;//將計(jì)算的頻率清零

      TH1=0;//將計(jì)數(shù)器的值清零

      TL1=0;

      TR0=1;//開啟定時(shí)器

      TR1=1;//開啟計(jì)數(shù)器

      } } }

      void TIMER_Configuration(){ TMOD=0x51;TH0=0x3C;TL0=0xB0;ET0=1;ET1=1;EA=1;TR0=1;TR1=1;} void Timer0()interrupt 1 { TimeCount++;if(TimeCount==20)//計(jì)時(shí)到1S {

      TR0=0;

      TR1=0;

      TimeCount=0;

      }

      //--12MHZ設(shè)置定時(shí)50ms的初值--// TH0=0x3C;TL0=0xB0;} void Timer1()interrupt 3 {

      單片機(jī)實(shí)驗(yàn)報(bào)告

      //--進(jìn)入一次中斷,表明計(jì)數(shù)到了65536--// Freq=Freq+65536;

      }

      #include“l(fā)cd.h”

      void Lcd1602_Delay1ms(uint c)

      //誤差 0us {

      uchar a,b;for(;c>0;c--){

      for(b=199;b>0;b--)

      {

      for(a=1;a>0;a--);

      }

      }

      } #ifndef LCD1602_4PINS //當(dāng)沒有定義這個(gè)LCD1602_4PINS時(shí) void LcdWriteCom(uchar com)

      //寫入命令 { LCD1602_E = 0;

      //使能

      LCD1602_RS = 0;

      //選擇發(fā)送命令

      LCD1602_RW = 0;

      //選擇寫入

      LCD1602_DATAPINS = com;

      //放入命令

      Lcd1602_Delay1ms(1);//等待數(shù)據(jù)穩(wěn)定

      LCD1602_E = 1;

      //寫入時(shí)序

      Lcd1602_Delay1ms(5);

      //保持時(shí)間

      LCD1602_E = 0;} #else

      void LcdWriteCom(uchar com)

      //寫入命令 { LCD1602_E = 0;//使能清零

      LCD1602_RS = 0;//選擇寫入命令

      LCD1602_RW = 0;//選擇寫入

      LCD1602_DATAPINS = com;// Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時(shí)序

      Lcd1602_Delay1ms(5);LCD1602_E = 0;Lcd1602_Delay1ms(1);

      單片機(jī)實(shí)驗(yàn)報(bào)告

      LCD1602_DATAPINS = com << 4;//發(fā)送低四位

      Lcd1602_Delay1ms(1);

      LCD1602_E = 1;//寫入時(shí)序

      Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif #ifndef LCD1602_4PINS

      void LcdWriteData(uchar dat)

      //寫入數(shù)據(jù) { LCD1602_E = 0;//使能清零

      LCD1602_RS = 1;//選擇輸入數(shù)據(jù)

      LCD1602_RW = 0;//選擇寫入

      LCD1602_DATAPINS = dat;//寫入數(shù)據(jù)

      Lcd1602_Delay1ms(1);

      LCD1602_E = 1;

      //寫入時(shí)序

      Lcd1602_Delay1ms(5);

      //保持時(shí)間

      LCD1602_E = 0;} #else void LcdWriteData(uchar dat)

      //寫入數(shù)據(jù) { LCD1602_E = 0;//使能清零

      LCD1602_RS = 1;

      //選擇寫入數(shù)據(jù)

      LCD1602_RW = 0;

      //選擇寫入

      LCD1602_DATAPINS = dat;

      Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時(shí)序

      Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat << 4;//寫入低四位

      Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時(shí)序

      Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif #ifndef LCD1602_4PINS void LcdInit()

      //LCD初始化子程序 { LcdWriteCom(0x38);//開顯示

      單片機(jī)實(shí)驗(yàn)報(bào)告

      LcdWriteCom(0x0c);//開顯示不顯示光標(biāo)

      LcdWriteCom(0x06);//寫一個(gè)指針加1 LcdWriteCom(0x01);//清屏

      LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #else void LcdInit()

      //LCD初始化子程序 { LcdWriteCom(0x32);//將8位總線轉(zhuǎn)為4位總線

      LcdWriteCom(0x28);//在四位線下的初始化

      LcdWriteCom(0x0c);//開顯示不顯示光標(biāo)

      LcdWriteCom(0x06);//寫一個(gè)指針加1 LcdWriteCom(0x01);//清屏

      LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #endif

      八、RS232串口通信實(shí)驗(yàn)(接收與發(fā)送)

      1.基本要求

      a.通過實(shí)驗(yàn)了解串口的基本原理及使用,理解并掌握對串口進(jìn)行初始化; b.使用串口調(diào)試助手(Baud 9600、數(shù)據(jù)位

      8、停止位

      1、效驗(yàn)位無)做為上位機(jī)來做收發(fā)試驗(yàn);

      c.利用串口調(diào)試助手中字符串輸入進(jìn)行數(shù)據(jù)發(fā)送,接受窗口顯示收到的數(shù)據(jù)。2.實(shí)驗(yàn)內(nèi)容

      在Keil C51中進(jìn)行程序的編寫設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開發(fā)板接通電源,按下開關(guān),錄入。打開普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線,將元器件歸位后離開。3.接線圖

      單片機(jī)實(shí)驗(yàn)報(bào)告

      4.電路原理圖

      5.程序

      #include #include“l(fā)cd.h” unsigned char ChCode[14] = “Received data:”;void UsartConfiguration();void main(){ unsigned char i, receiveData;LcdInit();for(i=0;i<14;i++){

      LcdWriteData(ChCode[i]);} UsartConfiguration();while(1){

      if(RI == 1)

      //查看是否接收到數(shù)據(jù)

      {

      receiveData = SBUF;//讀取數(shù)據(jù)

      單片機(jī)實(shí)驗(yàn)報(bào)告

      RI = 0;

      //清除標(biāo)志位

      LcdWriteCom(0xC0);

      LcdWriteData('0' +(receiveData / 100));

      // 百位

      LcdWriteData('0' +(receiveData % 100 / 10));// 十位

      LcdWriteData('0' +(receiveData % 10));

      // 個(gè)位

      } } } void UsartConfiguration(){ SCON=0X50;

      //設(shè)置為工作方式1 TMOD=0X20;//設(shè)置計(jì)數(shù)器工作方式2 PCON=0X80;

      //波特率加倍

      TH1=0XF3;

      //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的TL1=0XF3;TR1=1;

      //打開計(jì)數(shù)器 }

      #include“l(fā)cd.h”

      void Lcd1602_Delay1ms(uint c)

      //誤差 0us {

      uchar a,b;for(;c>0;c--){

      for(b=199;b>0;b--)

      {

      for(a=1;a>0;a--);

      }

      }

      } #ifndef LCD1602_4PINS //當(dāng)沒有定義這個(gè)LCD1602_4PINS時(shí) void LcdWriteCom(uchar com)

      //寫入命令 { LCD1602_E = 0;

      //使能

      LCD1602_RS = 0;

      //選擇發(fā)送命令

      LCD1602_RW = 0;

      //選擇寫入

      LCD1602_DATAPINS = com;

      //放入命令

      Lcd1602_Delay1ms(1);//等待數(shù)據(jù)穩(wěn)定

      LCD1602_E = 1;

      //寫入時(shí)序

      單片機(jī)實(shí)驗(yàn)報(bào)告

      Lcd1602_Delay1ms(5);

      //保持時(shí)間

      LCD1602_E = 0;} #else

      void LcdWriteCom(uchar com)

      //寫入命令 { LCD1602_E = 0;//使能清零

      LCD1602_RS = 0;//選擇寫入命令

      LCD1602_RW = 0;//選擇寫入

      LCD1602_DATAPINS = com;Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時(shí)序

      Lcd1602_Delay1ms(5);LCD1602_E = 0;Lcd1602_Delay1ms(1);LCD1602_DATAPINS = com << 4;//發(fā)送低四位

      Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時(shí)序

      Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif

      #ifndef LCD1602_4PINS

      void LcdWriteData(uchar dat)

      //寫入數(shù)據(jù) { LCD1602_E = 0;//使能清零

      LCD1602_RS = 1;//選擇輸入數(shù)據(jù)

      LCD1602_RW = 0;//選擇寫入

      LCD1602_DATAPINS = dat;//寫入數(shù)據(jù)

      Lcd1602_Delay1ms(1);LCD1602_E = 1;

      //寫入時(shí)序

      Lcd1602_Delay1ms(5);

      //保持時(shí)間

      LCD1602_E = 0;} #else void LcdWriteData(uchar dat)

      //寫入數(shù)據(jù) { LCD1602_E = 0;

      //使能清零

      LCD1602_RS = 1;

      //選擇寫入數(shù)據(jù)

      LCD1602_RW = 0;//選擇寫入

      LCD1602_DATAPINS = dat;

      Lcd1602_Delay1ms(1);LCD1602_E = 1;

      //寫入時(shí)序

      Lcd1602_Delay1ms(5);

      單片機(jī)實(shí)驗(yàn)報(bào)告

      LCD1602_E = 0;LCD1602_DATAPINS = dat << 4;//寫入低四位

      Lcd1602_Delay1ms(1);LCD1602_E = 1;

      //寫入時(shí)序

      Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif

      #ifndef LCD1602_4PINS void LcdInit()

      //LCD初始化子程序 { LcdWriteCom(0x38);//開顯示

      LcdWriteCom(0x0c);//開顯示不顯示光標(biāo)

      LcdWriteCom(0x06);//寫一個(gè)指針加1 LcdWriteCom(0x01);//清屏

      LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #else void LcdInit()

      //LCD初始化子程序 { LcdWriteCom(0x32);//將8位總線轉(zhuǎn)為4位總線

      LcdWriteCom(0x28);//在四位線下的初始化

      LcdWriteCom(0x0c);//開顯示不顯示光標(biāo)

      LcdWriteCom(0x06);//寫一個(gè)指針加1 LcdWriteCom(0x01);//清屏

      LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #endif

      單片機(jī)實(shí)驗(yàn)報(bào)告

      第六章 收獲體會

      本次微控制器綜合設(shè)計(jì)基本上使用了所選微控制器的所有資源,進(jìn)一步熟悉和加深了對中斷、定時(shí)器和串行通信的理解和使用。我覺得軟件實(shí)驗(yàn)就是讓我們初學(xué)者熟悉keil的使用,然后復(fù)習(xí)下匯編的思想和掌握程序的流程,所以軟件實(shí)驗(yàn)可以很快的完成,并且慢慢熟悉調(diào)試的強(qiáng)大功能。硬件設(shè)計(jì)中,仿真讓我很有感觸,感覺蠻好玩的,可以摒棄麻煩的實(shí)驗(yàn)硬件自己在寢室玩而且不受硬件狀態(tài)的限制,即便出錯(cuò)了也不會損壞。當(dāng)然更重要的是這種好習(xí)慣,仿真完后再去在實(shí)驗(yàn)板上驗(yàn)證會比直接要來的確切而且便捷,至少不要老是去插拔線。在做實(shí)驗(yàn)中在同學(xué)指導(dǎo)下我試用C語言來編寫程序,確實(shí)發(fā)現(xiàn)比匯編語言容易編寫也容易理解,以前的實(shí)驗(yàn)還是有參考資料的習(xí)慣,現(xiàn)在什么都開始自己寫感覺還是很有成就感的,當(dāng)然這是基于程序本身就那么幾行很容易編寫,也不是說參考不好。總而言之,這學(xué)期的單片機(jī)實(shí)驗(yàn)還是收獲頗豐的。相信在以后的實(shí)驗(yàn)學(xué)習(xí)實(shí)踐工作中都會有個(gè)潛移默化的作用的。

      第五篇:單片機(jī)實(shí)驗(yàn)報(bào)告

      單片機(jī)實(shí)驗(yàn)報(bào)告

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.熟練使用Keil、Protues兩款軟件 2.通過上機(jī)操作,增強(qiáng)個(gè)人動(dòng)手實(shí)踐能力 3.加深對理論知識的理解

      4.培養(yǎng)運(yùn)用匯編語言進(jìn)行初步編寫程序的能力

      二、實(shí)驗(yàn)內(nèi)容

      1.將片外RAM3050-306FH中數(shù)據(jù)轉(zhuǎn)移至片內(nèi)70-8FH中。

      要求:可以從Keil或Protues上看到RAM的數(shù)據(jù)轉(zhuǎn)移結(jié)果。2.設(shè)計(jì)一個(gè)外部中斷觸發(fā)流水燈系統(tǒng):當(dāng)外部中斷來臨時(shí),啟動(dòng)流水燈,即令P2口的LED輪流循環(huán)點(diǎn)亮。

      要求:開發(fā)板或Prrotues演示

      3.將片內(nèi)存儲器80H中存放的BCD碼轉(zhuǎn)換為ASCII碼,要求使用表格查詢技術(shù)。

      要求:在Keil或Protues上看到數(shù)據(jù)轉(zhuǎn)換結(jié)果。

      4.各使用中斷方式和查詢方式設(shè)計(jì)一個(gè)方波發(fā)生器,頻率為50HZ。

      要求:Protues使軟件間示波器顯示方波。

      三、實(shí)驗(yàn)程序

      1.將片外RAM3050-306FH中數(shù)據(jù)轉(zhuǎn)移至片內(nèi)70-8FH中

      ORG 0000H AJMP MAIN 上電,轉(zhuǎn)向主程序

      ORG 0030H 主程序入口

      MAIN: MOV DPTR,#3050H 數(shù)據(jù)指針指向地址3050H MOV A,#04H 將立即數(shù)04H送A寄存器

      MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 數(shù)據(jù)指針DPTR自加一

      DJNZ R0,NEXT 判斷是否跳轉(zhuǎn)到NEXT或繼續(xù)向下執(zhí)行

      MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1

      SJMP $ 等待

      END 2.設(shè)計(jì)一個(gè)外部中斷觸發(fā)流水燈系統(tǒng):當(dāng)外部中斷來臨時(shí),啟動(dòng)流水燈,即令P2口的LED輪流循環(huán)點(diǎn)亮 ORG 0000H SJMP MAIN 上電,轉(zhuǎn)向主程序

      ORG 0003H 外部中斷0向量入口

      AJMP INSER ORG 0030H 主程序入口

      MAIN: SETB EX0 SETB IT0

      SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或繼續(xù)向下執(zhí)行

      RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP

      允許外部中斷0中斷 選擇邊沿觸發(fā)方式 開中斷 等待中斷 設(shè)置循環(huán)次數(shù) 賦初值,設(shè)置高電平亮 將初值送往P2口 延時(shí) 左移一位

      判斷循環(huán)次數(shù),是否跳轉(zhuǎn)到中斷返回 延時(shí)程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.將片內(nèi)存儲器80H中存放的BCD碼轉(zhuǎn)換為ASCII碼,要求使用表格查詢技術(shù) ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 將立即數(shù)50H轉(zhuǎn)送內(nèi)存單元80H MOV A,80H 將內(nèi)存單元80H中的內(nèi)容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器內(nèi)容加指針偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中斷方式產(chǎn)生50HZ方波

      ORG 0000H

      AJMP MAIN

      ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 設(shè)置定時(shí)器工作模式為模式1 MOV TH1,#0D8H 裝入T1計(jì)數(shù)初值

      MOV TL1,#0F0H

      SETB ET1 開中斷

      SETB EA CPU開中斷

      SETB TR1 啟動(dòng)定時(shí)器T1 HERE: SJMP HERE 等待中斷 ORG 001BH T1中斷向量地址

      CLR TF1 將TF1清零

      CPL P2.0 P2.0取反輸出

      MOV TH1,#0D8H 重裝初值

      MOV TH0,#0F0H

      RETI;中斷返回

      END 4.2 查詢方式產(chǎn)生50HZ方波

      ORG 0000H

      AJMP MAIN

      ORG 0030H 主程序入口

      MAIN: MOV TMOD,#10H 設(shè)置定時(shí)器的工作模式為模式1 SETB TR1 啟動(dòng)定時(shí)器T1 LOOP: MOV TH1,#0D8H 裝入T1計(jì)數(shù)初值

      MOV TH0,#0F0H JNB TF1,$ T1沒有溢出則等待

      CLR TF1

      產(chǎn)生溢出,清標(biāo)志位

      CPL P2.0 P2.0取反輸出

      SJMP LOOP 循環(huán)

      END

      四、實(shí)驗(yàn)結(jié)果截圖

      1.2

      3.4.1

      4.2

      下載單片機(jī)課程實(shí)驗(yàn)報(bào)告word格式文檔
      下載單片機(jī)課程實(shí)驗(yàn)報(bào)告.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        單片機(jī)實(shí)驗(yàn)報(bào)告

        實(shí)驗(yàn)四、中斷交通燈實(shí)驗(yàn) 林立強(qiáng)1000850116 一、實(shí)驗(yàn)?zāi)康?1、了解MCS-51單片機(jī)的組成、中斷原理,中斷處理過程、外部中斷的中斷方式。 2、掌握中斷響應(yīng)及處理的編程方法。 二......

        單片機(jī)實(shí)驗(yàn)報(bào)告

        51單片機(jī)控制流水燈 目錄 (1)51精簡開發(fā)板簡介 (2)實(shí)驗(yàn)?zāi)康?(3)實(shí)驗(yàn)內(nèi)容 (4)元件 (5)原理圖 (6)實(shí)驗(yàn)步驟 (7)主要功能介紹(8)實(shí)驗(yàn)錯(cuò)誤及分析 (9)調(diào)試及程序 (10)系統(tǒng)測試 (11)實(shí)驗(yàn)心得 一、51精簡......

        單片機(jī)實(shí)驗(yàn)報(bào)告大全

        單片機(jī)原理與應(yīng)用實(shí)學(xué)校:合肥工業(yè)大學(xué) 班級:計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)號: 姓名:驗(yàn)報(bào)告 第一章MC51 單片機(jī)原理及應(yīng)用軟件實(shí)驗(yàn) 實(shí)驗(yàn)1:系統(tǒng)認(rèn)識實(shí)驗(yàn) 1. 實(shí)驗(yàn)?zāi)康?(1)了解ZY15MCU12BC2單片......

        單片機(jī)實(shí)驗(yàn)報(bào)告

        單片機(jī)實(shí)驗(yàn)一 實(shí)驗(yàn)報(bào)告 課程名稱: 姓名: 系別: 專業(yè): 年級: 學(xué)號: 指導(dǎo)教師: 單片機(jī)原理及應(yīng)用實(shí)驗(yàn) 陳璐 信息系 電氣工程及其自動(dòng)化 2012級 120712041 李莉 2015 年6 月 25 日......

        單片機(jī)實(shí)驗(yàn)報(bào)告

        實(shí)驗(yàn)一 uVision2 集成開發(fā)環(huán)境的使用 一、 實(shí)驗(yàn)?zāi)康暮鸵蠖?、?shí)驗(yàn)設(shè)備與儀器三、實(shí)驗(yàn)內(nèi)容四、實(shí)驗(yàn)原理、方法與步驟 五、實(shí)驗(yàn)小結(jié):1.簡述生成應(yīng)用程序的過程。2.記錄程序調(diào)試......

        單片機(jī)實(shí)驗(yàn)報(bào)告4

        單片機(jī)實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)一) 一、實(shí)驗(yàn)?zāi)康模?1. 掌握stm8的時(shí)鐘切換。 2. 熟悉匯編語言的指令系統(tǒng)。 3. 加深對stm8功能的理解,掌握去其使用方法。 二、實(shí)驗(yàn)儀器: stm8s105c6單片機(jī)......

        單片機(jī)實(shí)驗(yàn)報(bào)告[推薦五篇]

        單片機(jī)實(shí)驗(yàn)報(bào)告 流水燈實(shí)驗(yàn)一 一:實(shí)驗(yàn)?zāi)康?1、掌握51單片機(jī)如何控制信號輸出。 2、掌握Keil C集成開發(fā)環(huán)境的使用。3、掌握51開發(fā)平臺的使用。 二、實(shí)驗(yàn)內(nèi)容 在開發(fā)板上實(shí)現(xiàn)8......

        單片機(jī)實(shí)驗(yàn)報(bào)告[五篇模版]

        實(shí)驗(yàn)一 一、 實(shí)驗(yàn)題目:試編寫一段程序,其功能為將21H單元的內(nèi)容8位分別依次存放到從22H開始的8單元中。 二、 keil代碼: org 0000h jmp start org 0100h start: mov 21h,#8;......