MCS51單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1實(shí)驗(yàn)講義.doc_第1頁(yè)
MCS51單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1實(shí)驗(yàn)講義.doc_第2頁(yè)
MCS51單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1實(shí)驗(yàn)講義.doc_第3頁(yè)
MCS51單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1實(shí)驗(yàn)講義.doc_第4頁(yè)
MCS51單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1實(shí)驗(yàn)講義.doc_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

電子系統(tǒng)綜合設(shè)計(jì)課程教材電子設(shè)計(jì)競(jìng)賽培訓(xùn)講義MCS51單片機(jī)系統(tǒng)設(shè)計(jì)教程基于“MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”的實(shí)驗(yàn)教學(xué)周立青等 匯編(內(nèi)部匯編資料,內(nèi)容正在修正完善,請(qǐng)勿在網(wǎng)上傳播)武漢大學(xué)電子信息學(xué)院實(shí)驗(yàn)中心武漢大學(xué)電工電子實(shí)驗(yàn)教學(xué)基地目錄目錄2第一章 MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1資源介紹41.1 “MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”基本配置及功能介紹41.2 “MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”最小系統(tǒng)電路61.3 “MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”套件配置7第二章 SST單片機(jī)系統(tǒng)仿真調(diào)試和下載92.1 SST單片機(jī)功能簡(jiǎn)介92.2 ICE 仿真與ISP 編程燒寫(xiě)功能102.3 通過(guò)BOOT LOADER 將SST Boot-Strap Loader替換為SoftICE112.4 用Keil新建工程并在SoftICE監(jiān)控程序下仿真142.5 SoftICE監(jiān)控程序替換回SST Boot-Strap Loader 監(jiān)控程序202.6 通過(guò)SUPERRO編輯器將SoftICE監(jiān)控程序下載入SST單片機(jī)212.7 通過(guò)SST EasyIAP下載程序252.8 STC單片機(jī)的燒寫(xiě);27第三章 單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1實(shí)驗(yàn)設(shè)計(jì)313.1實(shí)驗(yàn)一、獨(dú)立I/O實(shí)驗(yàn)313.2實(shí)驗(yàn)二、按鍵中斷實(shí)驗(yàn)333.3實(shí)驗(yàn)三、RAM實(shí)驗(yàn)343.4實(shí)驗(yàn)四、段式LED實(shí)驗(yàn)363.5實(shí)驗(yàn)五、矩陣鍵盤(pán)實(shí)驗(yàn)38第四章 綜合實(shí)驗(yàn)要求424.1 實(shí)驗(yàn)一、數(shù)字鐘系統(tǒng)424.2 實(shí)驗(yàn)二、數(shù)字溫度計(jì)424.3 數(shù)字電壓表設(shè)計(jì)424.4 數(shù)字化語(yǔ)音存儲(chǔ)與回放系統(tǒng)424.5 數(shù)字頻率計(jì)設(shè)計(jì)434.6 A題波形發(fā)生器44第五章 單片機(jī)C51講義455.1 C語(yǔ)言概述455.2 C51語(yǔ)言465.3 C51中的存儲(chǔ)系統(tǒng)505.4 C51中的數(shù)據(jù)結(jié)構(gòu)525.5 C51中的硬件接口系統(tǒng)585.6 C51中的中斷系統(tǒng)615.7 C51中程序架構(gòu)設(shè)計(jì)方法625.8 關(guān)于優(yōu)化635.9 仿真機(jī)的使用645.10 程序的調(diào)試與測(cè)試655.11 其它65第一章 MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1資源介紹“MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”P(pán)CB尺寸圖“MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”是武漢大學(xué)電子創(chuàng)新平臺(tái)中的單片機(jī)學(xué)習(xí)和開(kāi)發(fā)平臺(tái),目前主要應(yīng)用于電子設(shè)計(jì)競(jìng)賽培訓(xùn)和大學(xué)生創(chuàng)新設(shè)計(jì)。它兼容DIP40封裝的51系列單片機(jī),板上配備SST公司的sst89E516RD高性能單片機(jī),可利用串口進(jìn)行在線下載、硬件仿真和斷點(diǎn)調(diào)試,從而使學(xué)生在不需要仿真器的情況下可進(jìn)行獨(dú)立的軟硬件調(diào)試。系統(tǒng)采用基于總線結(jié)構(gòu)的設(shè)計(jì),板上既具有普通的IO實(shí)驗(yàn),更多的采用總線方式擴(kuò)展板上資源,使學(xué)生對(duì)基于處理器的系統(tǒng)設(shè)計(jì)概念有著更深入的理解,是大學(xué)生進(jìn)行單片機(jī)學(xué)習(xí)、創(chuàng)新設(shè)計(jì)和電子設(shè)計(jì)競(jìng)賽的基礎(chǔ)工具。1.1 “MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”基本配置及功能介紹“MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”功能框圖1、 USB及適配器電源接口,可使用USB延長(zhǎng)線供電;2、 DC7.5-9V獨(dú)立供電接口,最大電流1A;3、 自鎖開(kāi)關(guān)及電源指示燈,操作更加方便;4、 獨(dú)立IO口控制的8路發(fā)光二極管LED流水燈,可實(shí)現(xiàn)發(fā)光二極管各種實(shí)驗(yàn)(跑馬燈、指示燈等);5、 總線擴(kuò)展8位高亮數(shù)碼管(數(shù)字和字母顯示,可以和液晶同時(shí)使用);6、 LCD1602(可顯示兩行字符)/中文LCD12864(可顯示任意漢字及圖形)液晶顯示模塊接口,可接各種兼容液晶模塊;7、 主芯片緊鎖座設(shè)計(jì),方便芯片取放;8、 1路串口RS-232通信,實(shí)現(xiàn)和PC或其他設(shè)備232通信(可兼容交叉和串行數(shù)據(jù)線的跳線選擇);9、 1路蜂鳴器,實(shí)現(xiàn)報(bào)警和演奏音樂(lè);10、 4路獨(dú)立按鍵,獨(dú)立按鍵調(diào)試;11、 4X4矩陣鍵盤(pán),總線接口,用于學(xué)習(xí)矩陣鍵盤(pán)原理和使用方法;12、 板載32KRAM62256,用于外部數(shù)據(jù)存儲(chǔ);13、 非易失存儲(chǔ)器EEPROM AT24C02,掉電不丟失數(shù)據(jù)(IIC總線數(shù)據(jù)存儲(chǔ)元件原理實(shí)驗(yàn));14、 溫度傳感器模塊18B20接口,可測(cè)量外界溫度(精密溫度檢測(cè),配有測(cè)試當(dāng)前溫度程序);15、 一體化紅外接收芯片HS0038,可以做紅外線解碼實(shí)驗(yàn),紅外線遙控器等;16、 1路按鍵復(fù)位;17、 3組擴(kuò)展接口,接口功能劃分合理,1、2號(hào)擴(kuò)展口包含了數(shù)據(jù)總線和譯碼后的片選信號(hào)線,3號(hào)總線包含全地址空間,方便用戶進(jìn)行自由擴(kuò)展,可以外接AD、DA等資源。18、 擴(kuò)展接口元器件采用軍品直插封裝,方便測(cè)試和維修。19、 光盤(pán)中含本實(shí)驗(yàn)板所有原理圖、使用教程、程序下載教程、各種實(shí)用軟件、實(shí)用工具及實(shí)驗(yàn)例程。1.2 “MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”最小系統(tǒng)電路“MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”實(shí)物圖1.2.1 電源供電“MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”主芯片工作電壓為5V,在5V電源的輸入端自帶防反接電路,防止錯(cuò)誤接反電源損壞系統(tǒng)板。整個(gè)系統(tǒng)可采用兩種供電模式:l USB供電。計(jì)算機(jī)的USB接口可提供5V,1A的直流電流,系統(tǒng)可采用板載的USB接口直接提供5V電源,。電源接口電路原理圖l 7.5V穩(wěn)壓電源供電。系統(tǒng)也可以采用單獨(dú)供電模式,單獨(dú)供電采用7.5-9V電源輸入,經(jīng)LM1117位系統(tǒng)提供穩(wěn)定的5V電壓注意:系統(tǒng)工作是同時(shí)只能連接一種電源輸入。1.3 “MCS51單片機(jī)系統(tǒng)學(xué)習(xí)板V1.1”套件配置標(biāo)準(zhǔn)配置清單序號(hào)配置數(shù)量1MCS51單片機(jī)學(xué)習(xí)開(kāi)發(fā)板12可單步仿真單片機(jī)sst89E516RD13溫度傳感器18B2014紅外集成接收頭1838151602液晶顯示器/128*64液晶屏16USB雙扁頭線17RS232串口通信線187.5V1A直流電源19產(chǎn)品配套資料光盤(pán)1第二章 SST單片機(jī)系統(tǒng)仿真調(diào)試和下載2.1 SST單片機(jī)功能簡(jiǎn)介SST的MCU除了具備和一般單片機(jī)一樣,可以通過(guò)專(zhuān)用編程器將程序代碼燒寫(xiě)到片內(nèi)ROM中,然后裝入系統(tǒng)運(yùn)行程序以外,還具備另外兩種特殊的下載和仿真功能。1) 程序下載功能。SST單片機(jī)可以不需要編程器,直接通過(guò)串行通信口,將程序下載到單片機(jī)ROM中,且下載的程序在單片機(jī)斷電后仍會(huì)保存,不會(huì)丟失。程序下載后,直接復(fù)位或者重新上電單片機(jī)就可以工作。2) 在線仿真功能。SST單片機(jī)還具有在線仿真功能,同樣通過(guò)單片機(jī)的串口,通過(guò)在keil軟件中設(shè)置可以實(shí)現(xiàn)在線仿真,具有單步執(zhí)行、全速執(zhí)行、設(shè)置端點(diǎn)等調(diào)試功能。SST單片機(jī)的以上兩種功能的實(shí)現(xiàn)方法是通過(guò)其內(nèi)部的監(jiān)控程序?qū)崿F(xiàn)的,SST廠家提供了兩種監(jiān)控程序BOOT LOADER和SoftICE,其中單片機(jī)的監(jiān)控程序如果是BOOT LOADER,則對(duì)應(yīng)以上兩種功能中的第一項(xiàng),即程序下載功能。此時(shí),只可以通過(guò)串口下載程序,不能進(jìn)行在線仿真。如果單片機(jī)的監(jiān)控程序如果是SoftICE,則對(duì)應(yīng)以上兩種功能中的第二項(xiàng),即在線仿真功能。此時(shí),只可以通過(guò)串口在線仿真,不能進(jìn)行下載程序。即一種監(jiān)控程序?qū)?yīng)一種功能,實(shí)現(xiàn)方法是將對(duì)應(yīng)功能的監(jiān)控程序下載到單片機(jī)中即可,具體下載監(jiān)控程序以及在兩種監(jiān)控程序之間切換的操作請(qǐng)參考“2.3通過(guò)BOOT LOADER 將SST Boot-Strap Loader替換為SoftICE”、“2.5SoftICE監(jiān)控程序替換回SST Boot-Strap Loader 監(jiān)控程序”、“2.6通過(guò)SUPERRO編輯器將SoftICE監(jiān)控程序下載入SST單片機(jī)”等章節(jié)出廠時(shí)廠家已將BOOT LOADER監(jiān)控程序?qū)懭胄酒校虼藷o(wú)需編程器就可通過(guò)SST BOOT-STRAP LOADER軟件工具將用戶程序下載到SST的MCU中。對(duì)于兩種監(jiān)控程序,SST公司提供了相應(yīng)的方法,用戶可以自己將其中的監(jiān)控程序進(jìn)行替換,從而在兩種不同的功能上進(jìn)行轉(zhuǎn)換。更加詳細(xì)芯片資料請(qǐng)參考datasheet:SST89E516RD.pdf或者89E516RD中文.pdf2.2 ICE 仿真與ISP 編程燒寫(xiě)功能SoftICE的英文是Software In Circuit Emulator的簡(jiǎn)稱,其翻譯成中文就是在線的軟件仿真器的意思,它是SST公司為方便SST用戶在使用SST單片機(jī)(包括SST89C5xSST89x564RD/554RC/516RD2/5XRD2 )調(diào)試程序所開(kāi)發(fā)的開(kāi)發(fā)工具,這個(gè)SST的仿真器功能可以代替大部分的專(zhuān)用仿真器的功能,使單片機(jī)工程師在開(kāi)發(fā)單片機(jī)時(shí)省卻了價(jià)格昂貴的仿真器和編程器,使得51單片機(jī)的開(kāi)發(fā)更加容易和普及并且SST的單片機(jī)價(jià)格便宜,出廠時(shí)就包含了在線下載和在線仿真的功能。最新的SST軟件和文件請(qǐng)?jiān)L問(wèn)SST網(wǎng)頁(yè)。最新的KEIL軟件和文件請(qǐng)?jiān)L問(wèn)KEIL網(wǎng)頁(yè)。SoftICE 的特點(diǎn):SST的MCU SoftICE通過(guò)PC的一個(gè)COM口與KEIL uVision2 Debugger 通訊,它可以實(shí)時(shí)地調(diào)試目標(biāo)程序,因此提供使用SST單片機(jī)的工程師簡(jiǎn)單有效和容易使用在板上調(diào)試程序,盡管小而緊湊,SoftICE卻提供高級(jí)仿真器的大部分功能與KEIL uVision2Debugger 一起使用。SoftICE提供以下特性: 源代碼調(diào)試支持匯編語(yǔ)言和C51 高級(jí)語(yǔ)言 單步執(zhí)行STEP 和STEP OVER 斷點(diǎn)調(diào)試做多到10 個(gè)固定和1 個(gè)臨時(shí)斷點(diǎn) 全速運(yùn)行 顯示修改變量 讀/寫(xiě)數(shù)據(jù)存儲(chǔ)器 讀/寫(xiě)代碼存儲(chǔ)器 讀/寫(xiě)SFR 特殊功能寄存器 讀/寫(xiě)P0-P3 端口 下載INTEL HEX 文件 對(duì) 8051 程序存儲(chǔ)區(qū)的反匯編 在線匯編 SST MCU 產(chǎn)品特有的IAP 功能In Application ProgrammingSST51 開(kāi)發(fā)系統(tǒng)除了支持ICE 仿真功能外,還支持Atmel ISP 編程燒寫(xiě)的功能。2.3 通過(guò)BOOT LOADER 將SST Boot-Strap Loader替換為SoftICE執(zhí)行SSTEasyIAP11F.exe(單片機(jī)在線仿真工具sst51單片機(jī)在線仿真SoftICE_564SSTEasyIAP11F.exe),軟件運(yùn)行SST Boot-Strap Loader 在內(nèi)部模式下檢測(cè)到對(duì)應(yīng)器件的型號(hào)后,SoftICE固件通過(guò)按SoftICE菜單下Download SoftICE選項(xiàng)下載,便將SoftICE固件下載到MCU。在BLOCK1的SST Boot-Strap Loader 會(huì)被SoftICE固件代替(下載SoftICE成功后,不能重復(fù)再次下載SoftICE,必須下載BOOT LOADER監(jiān)控程序后,才能重新下載SoftICE)。詳細(xì)操作步驟如下:1. 打開(kāi)SSTEasyIAP11F.exe程序,選擇串口;2. 選擇芯片型號(hào)和內(nèi)部程序存儲(chǔ)器;3. 選擇PC串口,MCU晶振和波特率;COM1為當(dāng)前連接單片機(jī)的串口。晶振頻率指當(dāng)前系統(tǒng)板上接的晶振頻率。確定后點(diǎn)擊“Detect MCU”檢測(cè)單片機(jī)。4. 先選擇確定在復(fù)位MCU;5. 通訊成功后窗口右上角顯示芯片信息和版本信息;6. 點(diǎn)擊Download SoftICE選項(xiàng),將MCU中的BOOT LOADER監(jiān)控程序替換為Soft ICE監(jiān)控程序;7. 選擇確認(rèn)更換;8. 程序替換成功;2.4 用Keil新建工程并在SoftICE監(jiān)控程序下仿真1. 打開(kāi)Keil C51程序,新建一個(gè)工程;一般建議新建工程的名稱與文件夾名稱相同,部分版本在編譯時(shí)可能會(huì)提示“Target not created”。2. 保存在自己新建的文件夾中;3. 點(diǎn)擊保存出現(xiàn)CPU選擇對(duì)話框,選擇SST系列的89X516RD2;4. 出現(xiàn)是否添加標(biāo)準(zhǔn)51初始代碼對(duì)話框,選“否”;5. 工程建立之后新建源程序文件,點(diǎn)擊”File”菜單下“New”選項(xiàng);6. 保存在工程文件夾內(nèi),C程序文件后綴為”.C”,匯編程序文件后綴為“。ASM”;7. 在文本編輯區(qū)編寫(xiě)源程序并保存;在Source Group上右擊選擇“Add Files To Group”選項(xiàng)添加源文件至工程;8. 選擇編寫(xiě)好的源程序文件,點(diǎn)擊Add添加所選文件;9. 點(diǎn)擊編譯按鈕,編譯工程;10. 進(jìn)入目標(biāo)板調(diào)試選項(xiàng)設(shè)置,點(diǎn)擊“Project”菜單下“Options for Target”選項(xiàng);11. 選擇為硬件仿真功能;12. 點(diǎn)擊Setting進(jìn)入通訊參數(shù)設(shè)定菜單,去掉所有Cache選項(xiàng)。至此設(shè)置完畢,進(jìn)入仿真調(diào)試階段;13. 點(diǎn)擊DEBUG下的“Start/Stop Debug Session”選項(xiàng)進(jìn)入DEBUG界面;14. 進(jìn)入后可以看到信息欄中由顯示連接成功信息。在此仿真界面可以進(jìn)行單步、全速、斷點(diǎn)等調(diào)試方式。進(jìn)入DEBUG界面后用戶可以在線進(jìn)行單步、連續(xù)、執(zhí)行到、斷點(diǎn)等功能的調(diào)試;2.5 SoftICE監(jiān)控程序替換回SST Boot-Strap Loader 監(jiān)控程序1. 由SoftICE監(jiān)控程序轉(zhuǎn)換回SST Boot-Strap Loader監(jiān)控程序:在keil 輸入以下命令。圖中“Convert_to_BSLx564.txt”文件保存在“SoftICE_564”路徑下。執(zhí)行完上圖命令后,若出現(xiàn)如下界面表示轉(zhuǎn)換成功,BSL監(jiān)控程序下載入了單片機(jī):2.6 通過(guò)SUPERRO編輯器將SoftICE監(jiān)控程序下載入SST單片機(jī)下面介紹通過(guò)編程器將SoftICE監(jiān)控程序下載到SST的MCU芯片中的方法:SST89E516ED單片機(jī)有兩塊程序存儲(chǔ)區(qū)Block0(64Kb)和Block1(8Kb),監(jiān)控存儲(chǔ)在8Kb的Block1中,單片機(jī)上電從Block1開(kāi)始執(zhí)行,當(dāng)沒(méi)有接收到相應(yīng)的串口命令時(shí),再?gòu)闹鞒绦騾^(qū)Block0開(kāi)始執(zhí)行指令;具體操作步驟如下:1. 打開(kāi)編輯器SUPERPRO程序,圖標(biāo)為;2. 進(jìn)入SUPERPRO程序界面,單擊“選擇器件選項(xiàng)”;3. 進(jìn)入器件選擇對(duì)話框,在器件類(lèi)型處選擇”MCU/MPU”在查找處輸入要器件名稱,找到之后選擇“確定”;4. 單擊“裝入文件”選項(xiàng);5. 進(jìn)入下載文件選擇對(duì)話框,選擇要下載的SoftICE監(jiān)控程序,文件格式一般為“.hex”或“.bin”格式;6. 因?yàn)镾ST單片機(jī)的監(jiān)控程序存儲(chǔ)在Block1中,Block1的地址為10000h,故數(shù)據(jù)緩沖區(qū)起始地址改為“10000”,下載一般執(zhí)行程序則直接默認(rèn);7. 左邊是下載文件的操作選項(xiàng),具體步驟為:Erase=Program=Verify;執(zhí)行完上述三個(gè)步驟后,SoftICE監(jiān)控程序已被下載入SST的MCU中了,可以使用Keil軟件進(jìn)行在線硬件仿真調(diào)試了。2.7 通過(guò)SST EasyIAP下載程序SST單片機(jī)中最初始的是BSL監(jiān)控程序,可以通過(guò)SST BOOT-STRAP LOADER軟件工具將用戶程序下載入單片機(jī)中,具體操作步驟如下:1. 打開(kāi)SST BOOT-STRAP LOADER軟件工具,并按之前的步驟與單片機(jī)通訊連接成功。在界面的右下方IAP Function菜單中有下載選項(xiàng),選擇“Download”選項(xiàng)下載程序。2. 進(jìn)入了下載文件選擇界面;3. 在文件查找對(duì)話框中找到要下載的用戶程序,一般為.Hex或.bin格式文件;4. 選擇好用戶程序后,單擊步驟二中的OK選項(xiàng)開(kāi)始下載,界面最下面的狀態(tài)欄顯示下載進(jìn)度,當(dāng)顯示為Done時(shí)表示程序下載已經(jīng)完成,單片機(jī)上電執(zhí)行用戶程序了。2.8 STC單片機(jī)的燒寫(xiě);下面介紹另一款STC單片機(jī)的燒寫(xiě)方法:1. 打開(kāi)STC單片機(jī)的編輯器STC-ISP,進(jìn)入STC-ISP的工作界面。2. 2.在ISP的界面左上方已經(jīng)有按照步驟排列的子單元,3. 按照界面上的步驟一步步執(zhí)行下載操作,步驟1的單元如下圖,在MCU Type下拉框中選擇目標(biāo)單片機(jī)型號(hào),AP Memory為程序存儲(chǔ)地址;4. 進(jìn)入步驟2選擇下載文件,點(diǎn)擊右下方的OpenFile選項(xiàng)查找要下載的用戶程序;5. 找到要下載的用戶程序,多為.hex或.bin格式文件;6. 步驟3為串口設(shè)置,選擇通過(guò)哪個(gè)COM口下載,Max Buad為波特率設(shè)置;7. 步驟4為下載設(shè)置,一般默認(rèn)即可;8. 步驟5為下載操作,先點(diǎn)擊”Download/下載”選項(xiàng),再M(fèi)CU重新上電復(fù)位,則開(kāi)始執(zhí)行下載操作;9. 步驟5單元下面為狀態(tài)欄,可以觀察MCU的下載過(guò)程,下圖為下載成功信息顯示;此時(shí)用戶程序已下載入STC的MCU中了,拔掉串口線,上電復(fù)位用戶程序即可執(zhí)行。第三章 單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1實(shí)驗(yàn)設(shè)計(jì)基于“單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)V1.1”可開(kāi)展單片機(jī)系統(tǒng)及相關(guān)擴(kuò)展系統(tǒng)的實(shí)驗(yàn)。主要包括以下部分:基礎(chǔ)實(shí)驗(yàn)實(shí)驗(yàn)一、IO口實(shí)驗(yàn)實(shí)驗(yàn)二、按鍵中斷實(shí)驗(yàn)實(shí)驗(yàn)三、RAM實(shí)驗(yàn)實(shí)驗(yàn)四、段式LED實(shí)驗(yàn)實(shí)驗(yàn)五、矩陣按鍵實(shí)驗(yàn)綜合實(shí)驗(yàn)實(shí)驗(yàn)一、語(yǔ)音采集與回放實(shí)驗(yàn)二、數(shù)字萬(wàn)用表設(shè)計(jì)實(shí)驗(yàn)三、水溫控制系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)四、簡(jiǎn)易數(shù)據(jù)傳輸系統(tǒng)3.1實(shí)驗(yàn)一、獨(dú)立I/O實(shí)驗(yàn)3.1.1 LED跑馬燈實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 熟悉單片機(jī)的基本結(jié)構(gòu)和單片機(jī)系統(tǒng)學(xué)習(xí)平臺(tái)的資源配置2. 熟悉使用在線仿真技術(shù)進(jìn)行單片機(jī)系統(tǒng)開(kāi)發(fā)的一般方法3. 學(xué)會(huì)用示波器觀測(cè)現(xiàn)象,初步體會(huì)用儀器進(jìn)行調(diào)試的思想4. 掌握基本輸入輸出口的設(shè)計(jì)方法,LED燈的特性和使用方法二、實(shí)驗(yàn)內(nèi)容1. 用匯編語(yǔ)言實(shí)現(xiàn)以下功能:(1) 編程點(diǎn)亮8個(gè)LED,測(cè)試接口電路無(wú)問(wèn)題(2) 編程將8個(gè)LED按從LED1-LED8 的順序依次點(diǎn)亮,點(diǎn)亮一個(gè)LED后延時(shí)一段時(shí)間,延時(shí)時(shí)間考慮人眼能夠分辨出,把它熄滅后,再繼續(xù)點(diǎn)亮下一個(gè)了LED,形成LED跑馬燈。要求當(dāng)LED跑到邊緣之后返回,而不是再?gòu)牡谝粋€(gè)LED開(kāi)始。2. 當(dāng)實(shí)現(xiàn)LED跑馬燈的功能后,用示波器探頭依次探測(cè)8個(gè)獨(dú)立I/O口的現(xiàn)象。這時(shí)在每一個(gè)I/O口上應(yīng)當(dāng)能檢測(cè)到一定頻率的方波信號(hào)。 四、實(shí)驗(yàn)原理 1. LED原理:兩個(gè)半導(dǎo)體P型和N型半導(dǎo)體加中間由一個(gè)有源層組成,當(dāng)兩端加上正負(fù)電壓時(shí)電子開(kāi)始移動(dòng)和空穴(帶正電的離子)結(jié)合產(chǎn)生輻射光。一般LED在正常發(fā)光的情況下,消耗電流在mA級(jí)別,為保證其正常發(fā)光,同時(shí)也不會(huì)過(guò)流,一般在LED回路中串聯(lián)一個(gè)300歐-1K歐的電阻。2. LED硬件連接圖,如下3.1.2 蜂鳴器實(shí)驗(yàn)1、 實(shí)驗(yàn)?zāi)康?. 了解蜂鳴器原理和類(lèi)型2. 掌握單片機(jī)指令周期的計(jì)算方法2、 實(shí)驗(yàn)內(nèi)容利用單片機(jī)讓蜂鳴器發(fā)出一個(gè)固定頻率(300 3400Hz)的響聲3、 實(shí)驗(yàn)原理1、 蜂鳴器:蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓(有源蜂鳴器)或交流電壓(無(wú)源蜂鳴器)供電,有源蜂鳴器內(nèi)部已經(jīng)帶有振蕩源,因此只要提供直流電壓就可以發(fā)音,發(fā)音的頻率由內(nèi)部振蕩源決定,頻率固定,不能更改,無(wú)源蜂鳴器內(nèi)部沒(méi)有振蕩源,因此必須提供交流電壓使其發(fā)音,發(fā)音的頻率與交流電壓的頻率一直,按照音樂(lè)節(jié)奏調(diào)整發(fā)音的頻率可以實(shí)現(xiàn)簡(jiǎn)單的音樂(lè)播放。廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車(chē)電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類(lèi)型。2、 聽(tīng)覺(jué)范圍:人耳一般對(duì)3003400Hz范圍內(nèi)的聲音比較敏感,調(diào)整單片機(jī)管腳波形輸出,使得產(chǎn)生頻率在該范圍內(nèi)才可以聽(tīng)到聲音。如果頻率過(guò)高或過(guò)低都很難聽(tīng)到聲音。3、 硬件連接:4、 實(shí)驗(yàn)步驟編程:控制單片機(jī)管腳,產(chǎn)生一個(gè)電平之后延時(shí)一段時(shí)間1/2T0,對(duì)該管腳電平取反,如此反復(fù),就能夠產(chǎn)生一個(gè)頻率的方波,方波周期為T(mén)0,頻率f0=1/T0,當(dāng)f0在3003400Hz之間時(shí),可以聽(tīng)到蜂鳴器的發(fā)音。3.2實(shí)驗(yàn)二、按鍵中斷實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、了解中斷的基本概念2、了解按鍵軟件消抖的方法3、了解定時(shí)器的基本概念二、實(shí)驗(yàn)設(shè)備單片機(jī)實(shí)驗(yàn)板v1_1三、實(shí)驗(yàn)內(nèi)容1、通過(guò)按鍵中斷實(shí)現(xiàn)對(duì)LED的控制:每按鍵一次LED燈右移一位2、通過(guò)定時(shí)器中斷產(chǎn)生一個(gè)標(biāo)準(zhǔn)8KHz的方波 四、實(shí)驗(yàn)原理1、按鍵中斷:實(shí)驗(yàn)板獨(dú)立式鍵盤(pán)每個(gè)按鍵都有一個(gè)信號(hào)線與單片機(jī)電路相連。當(dāng)其中中斷按鍵按下的時(shí)候,會(huì)產(chǎn)生一個(gè)中斷信號(hào),該信號(hào)使得CPU跳轉(zhuǎn)到中斷點(diǎn)執(zhí)行中斷服務(wù)程序。執(zhí)行完中斷程序之后,CPU回到主程序原先斷點(diǎn),繼續(xù)往下執(zhí)行。2、按鍵消抖:查詢單片機(jī)管腳,發(fā)現(xiàn)有信號(hào)線出現(xiàn)低電平表示可能出現(xiàn)鍵按下的情況。按鍵按下過(guò)程中存在前后延抖動(dòng),延時(shí)20ms之后查詢發(fā)現(xiàn)管腳狀態(tài)和之前讀取一致,判定按鍵按下,根據(jù)讀取數(shù)值判斷按鍵編號(hào)并進(jìn)行對(duì)應(yīng)操作。3、定時(shí)器中斷:定時(shí)器開(kāi)啟之后,計(jì)數(shù)器開(kāi)始計(jì)數(shù)。當(dāng)計(jì)數(shù)器達(dá)到程序員設(shè)定值后,進(jìn)入中斷。在中斷服務(wù)程序中,程序員可自由發(fā)揮。五、實(shí)驗(yàn)步驟1、硬件連接 2、實(shí)現(xiàn)功能 壹:S17或者S18按下,LED0-LED3亮,再次按下LED0-LED3滅。 貳:利用定時(shí)器實(shí)現(xiàn)LED的閃爍頻率定為1HZ。 叁:S17 或者 S18按下,LED4亮,定時(shí)器計(jì)數(shù),1秒后,LED4滅 3、軟件流程圖4、 記錄實(shí)驗(yàn)結(jié)果3.3實(shí)驗(yàn)三、RAM實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康?、 了解RAM讀寫(xiě)原理2、 了解地址信號(hào)的產(chǎn)生原理3、 了解51單片機(jī)的控制總線信號(hào)ALE和nOE、nWE的產(chǎn)生原理二、 實(shí)驗(yàn)設(shè)備單片機(jī)實(shí)驗(yàn)板v1_1三、 實(shí)驗(yàn)內(nèi)容1、讀寫(xiě)RAM數(shù)據(jù)并將讀寫(xiě)錯(cuò)誤數(shù)顯示在段式液晶上面四、 實(shí)驗(yàn)原理1、 地址信號(hào)的產(chǎn)生:51單片機(jī)的P0口是數(shù)據(jù)和地址復(fù)用線,可以利用一片74LS373進(jìn)行地址鎖存控制,將P0口產(chǎn)生出一組地址信號(hào)和數(shù)據(jù)信號(hào)在時(shí)間上分開(kāi)(見(jiàn)實(shí)驗(yàn)板框圖)。2、 讀寫(xiě)過(guò)程:51單片機(jī)的P3口是多功能復(fù)用口,其中P36復(fù)用為nWR,P37復(fù)用為nRD,外部RAM的接口時(shí)序和這兩個(gè)新號(hào)的生成時(shí)序相符合,可以直接進(jìn)行RAM數(shù)據(jù)的讀寫(xiě)。3、 片外RAM傳送指令:MOVX A,Ri;MOVX A,DPTR;MOVX Ri,A;MOVX DPTR,A;這四條指令(單字節(jié)雙周期指令)執(zhí)行時(shí),尤其要注意他們伴隨著51單片機(jī)讀寫(xiě)控制信號(hào)線nOE或nWE的“額外”置低。其中,第一條和第三條指令只能尋址256bit,而第二條和第四條指令可以尋址64Kb(此次實(shí)驗(yàn)中使用)。其讀寫(xiě)時(shí)序和執(zhí)行過(guò)程如下:將RAM的地址(存放在寄存器Ri或DPTR中)由地址總線P0(此時(shí)身份是地址線低8位)與P2(地址線高8位A8A15)口輸出,即時(shí)序圖中的S5P1到S6P2階段。并在S4P2到S5P2階段,發(fā)ALE信號(hào)將低8位地址鎖存。第二個(gè)機(jī)器周期S1P2到S2P2內(nèi)取消ALE與程序選通信號(hào)PSEN(即取消取指操作),P0身份轉(zhuǎn)變?yōu)閿?shù)據(jù)總線。與此同時(shí)發(fā)讀或?qū)懶盘?hào),通過(guò)P0口將RAM的數(shù)據(jù)傳送到累加器A中或?qū)⒗奂悠鰽數(shù)據(jù)傳送到RAM中。即:時(shí)序圖的S6P2到S4P1階段。由于鎖存的地址為外部數(shù)據(jù)存儲(chǔ)單元的地址,所以在第二個(gè)機(jī)器周期S4取消取指令的操作,不再發(fā)程序選通信號(hào)PSEN。五、 實(shí)驗(yàn)步驟1、 硬件連接:2、 62256地址分配:62256的地址總線有15位(A0A14),因此它的地址空間大小是215(32Kb)。62256的片選信號(hào)由51單片機(jī)地址線的最高位A15給出,且低電平有效,因此它的最低地址是0000H,最高地址是7FFFH。3、 軟件設(shè)計(jì):在RAM地址的1000H10ffH空間中寫(xiě)入0255數(shù)據(jù),讀出RAM的1000H10ffH空間數(shù)據(jù),記錄錯(cuò)誤數(shù)據(jù)個(gè)數(shù),將數(shù)據(jù)錯(cuò)誤個(gè)數(shù)顯示在段式液晶上面。4、 記錄和觀察實(shí)驗(yàn)現(xiàn)象。3.4實(shí)驗(yàn)四、段式LED實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康?. 段式LED工作原理2. 動(dòng)態(tài)掃描顯示原理二、 實(shí)驗(yàn)設(shè)備單片機(jī)實(shí)驗(yàn)板v1_1三、 實(shí)驗(yàn)內(nèi)容1、在LED上面動(dòng)態(tài)顯示循環(huán)的數(shù)字8,到達(dá)邊緣之后重新回到遠(yuǎn)點(diǎn),依次循環(huán)四、 實(shí)驗(yàn)原理1. 段式LED原理:一個(gè)段式液晶是由八段LED組成,如上圖所示,根據(jù)組成的led種類(lèi)不同,常用的段式液晶有共陰極和共陽(yáng)極兩種類(lèi)型,實(shí)驗(yàn)板上配置的為共陰極段式液晶。根據(jù)abcdefgh的電平狀況,點(diǎn)亮或者熄滅對(duì)應(yīng)的LED,就可以看到對(duì)應(yīng)的數(shù)字或者字符,譬如abcdef設(shè)為高,將gh設(shè)為低就可以形成數(shù)字0了。2. 動(dòng)態(tài)掃描原理:利用人眼的視覺(jué)殘留現(xiàn)象,依次點(diǎn)亮每個(gè)八段碼單元,只要掃描速度超過(guò)人眼可以識(shí)別的頻率,就可以看到穩(wěn)定的信息輸出。3. 電路連接:CS3與nWE同時(shí)置低時(shí)選中片選信號(hào)CS_LED_SEL;CS2與nWE同時(shí)置低時(shí)選中段選信號(hào)CS_LED_SEG;片選信號(hào)CS_LED_SEL選通鎖存器U13,通過(guò)P0口把某個(gè)SEL選中,即選中某個(gè)數(shù)碼管。段選信號(hào)CS_LED_SEG選通鎖存器U12,通過(guò)P0口的值對(duì)選中的數(shù)碼管的A到DP賦值,以實(shí)現(xiàn)顯示功能。五、 實(shí)驗(yàn)步驟1、硬件連接:2、軟件設(shè)計(jì):依次點(diǎn)亮八段碼,設(shè)置較快的掃描頻率,在段式液晶上面形成穩(wěn)定的輸出。將掃描頻率設(shè)置較低,使人眼可以分辨各個(gè)八段碼點(diǎn)亮和熄滅的狀態(tài),形成數(shù)字8從左向右循環(huán)的現(xiàn)象。3、觀察并記錄實(shí)驗(yàn)現(xiàn)象。3.5實(shí)驗(yàn)五、矩陣鍵盤(pán)實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康?. 掌握矩陣式鍵盤(pán)的原理2. 掌握74HC245,74HC573的使用3. 理解單片機(jī)總線讀寫(xiě)和片選信號(hào)的產(chǎn)生4. 掌握矩陣鍵盤(pán)的編程方法二、 實(shí)驗(yàn)設(shè)備單片機(jī)實(shí)驗(yàn)板v1_1三、 實(shí)驗(yàn)內(nèi)容1. 采用行掃描法編程獲取矩陣式鍵盤(pán)的鍵值,并予以顯示2. 學(xué)習(xí)矩陣鍵盤(pán)的構(gòu)建方式四、 實(shí)驗(yàn)原理1. 電路原理圖1. 4*4鍵盤(pán):KEY_H為4根行線,KEY_V為4根列線,均接了10k歐姆上拉電阻2. 行線和列線行線:使用74HC573鎖存P0口數(shù)據(jù),為單向輸出口列線:使用74HC245鎖存P0口數(shù)據(jù)或鍵盤(pán)數(shù)據(jù),數(shù)據(jù)讀寫(xiě)方向由DIR確定3. 片選信號(hào)1. 當(dāng)A15為高,A8-A10為低時(shí)CS0為低電平,CS0地址可設(shè)為0xf8ff,選中CS0時(shí),單片機(jī)讀信號(hào)使nOE為低,74HC245DIR為低電平,從74HC245讀數(shù)據(jù)。2. 選中CS0時(shí),單片機(jī)寫(xiě)信號(hào)使nWE為低,CS_KEY為高電平,74HC573鎖存P0口上的數(shù)據(jù),即單片機(jī)向74HC573寫(xiě)數(shù)據(jù)。2. 原理圖分析單片機(jī)通過(guò)寫(xiě)數(shù)據(jù)到行線,從列線讀數(shù)據(jù)來(lái)判斷是否有按鍵和鍵值。1. 判斷是否有按鍵按下:將行線作為輸出,列線作為輸入。CPU首先向行接口輸出一個(gè)為“全0”數(shù)據(jù),再?gòu)牧薪涌谧x入數(shù)據(jù),并判其是否為“全1”。若是“全1”就表示鍵盤(pán)中沒(méi)有鍵被按下,否則表示有鍵被按下,且列碼中“0”的位置就是所按按鍵的列號(hào)。2. 獲得用戶按下的按鍵所對(duì)應(yīng)的鍵值:為了獲得用戶按下的按鍵所對(duì)應(yīng)的鍵值,可先向行接口輸出一個(gè)第0行為“0” ,其它行均為“1”的行碼,然后讀入列碼并判其是否為“全1” ,若不是“全1”就表示在第0行中有鍵被按下,且讀入的列碼中出現(xiàn)“0”的位置代表該按鍵所處的列編號(hào),輸出行碼中“0”的位置代表該按鍵所處的行編號(hào),據(jù)鍵值公式可獲取相應(yīng)的鍵值;若讀入的列碼為“全1” ,就再對(duì)下一行進(jìn)行類(lèi)似的處理,如此逐行分析處理,直至所有行處理完畢。3. 消抖動(dòng):“抖動(dòng)”是指兩個(gè)機(jī)械電氣觸點(diǎn)在閉合或斷開(kāi)的瞬間時(shí)所產(chǎn)生的顫動(dòng),由于抖動(dòng)的時(shí)間不超過(guò)20毫秒,所以通常都是使用“延時(shí)”的方法來(lái)去抖動(dòng),即一旦檢測(cè)到按鍵有“狀態(tài)改變”,就延時(shí)20毫秒,而后再去檢測(cè)該現(xiàn)象是否仍然存在,若存在就表示確實(shí)有鍵按下或松開(kāi),否則表示檢測(cè)的是一種干擾信號(hào)。五、 矩陣鍵盤(pán)編程方法1. 程序流程:2. 軟件設(shè)計(jì):編寫(xiě)按鍵處理程序,并將得到的按鍵按照015的數(shù)字進(jìn)行編碼;編寫(xiě)對(duì)應(yīng)的案件處理程序,將按鍵值顯示在段式液晶上面。3. 示例代碼:見(jiàn)例程C51Pro,Lab5第四章 綜合實(shí)驗(yàn)要求 實(shí)驗(yàn)一、數(shù)字鐘系統(tǒng) 實(shí)驗(yàn)二、數(shù)字溫度計(jì)設(shè)計(jì) 實(shí)驗(yàn)三、數(shù)字電壓表設(shè)計(jì) 實(shí)驗(yàn)四、語(yǔ)音采集與回放 實(shí)驗(yàn)五、數(shù)字頻率計(jì) 實(shí)驗(yàn)六、DDS信號(hào)源 4.1 實(shí)驗(yàn)一、數(shù)字鐘系統(tǒng)一、基礎(chǔ)要求 1. 設(shè)計(jì)一個(gè)精確的1秒定時(shí)器; 2. 根據(jù)1秒定時(shí)器,設(shè)計(jì)一個(gè)帶小時(shí)、分鐘、秒的時(shí)鐘,并將小時(shí)、分鐘、秒顯示在LED上; 3. 設(shè)計(jì)小時(shí)、分鐘、秒的修改按鍵,可分別調(diào)整小時(shí)、分鐘、秒(按鍵設(shè)計(jì)參考電子表); 二、擴(kuò)展要求 1. 增加小時(shí)、分鐘、秒的鍵盤(pán)直接修改功能; 2. 設(shè)計(jì)鬧鐘功能,最多支持5個(gè)鬧鐘,可分別查看和修改鬧鐘時(shí)間,可分別設(shè)置鬧鐘開(kāi)關(guān)。 3. 增加萬(wàn)年歷功能。 4.2 實(shí)驗(yàn)二、數(shù)字溫度計(jì)一、基礎(chǔ)要求 1. 設(shè)計(jì)實(shí)現(xiàn)數(shù)字溫度計(jì)18B20的接口時(shí)序;2. 讀取18B20數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)化為BCD碼顯示在LED上,顯示精度為兩位小數(shù);3. 實(shí)現(xiàn)對(duì)溫度的修正;4.3 數(shù)字電壓表設(shè)計(jì)一、基礎(chǔ)要求 1. 設(shè)計(jì)實(shí)現(xiàn)AD0809接口電路,實(shí)現(xiàn)模擬電壓量0-5V轉(zhuǎn)化為數(shù)字量;2. 編程實(shí)現(xiàn)AD0809的數(shù)據(jù)讀??;3. 設(shè)定固定的刷新速率,將讀取數(shù)據(jù)顯示在LED上,顯示精度兩位小數(shù);4. 實(shí)現(xiàn)電壓采集值的分段函數(shù)修正。二、擴(kuò)展要求 1. 擴(kuò)展電壓表的測(cè)量范圍,實(shí)現(xiàn)0-1V,0-10的測(cè)量; 4.4 數(shù)字化語(yǔ)音存儲(chǔ)與回放系統(tǒng)設(shè)計(jì)并制作一個(gè)數(shù)字化語(yǔ)音存儲(chǔ)與回放系統(tǒng),其示意圖如下:1基本要求(1)放大器1的增益為46dB,放大器2的增益為40dB,增益均可調(diào);(2)帶通濾波器:通帶為300Hz3.4kHz ;(3)ADC:采樣頻率fs= 8kHz,字長(zhǎng)= 8位;(4)語(yǔ)音存儲(chǔ)時(shí)間10秒;(5)DAC:變換頻率fc= 8kHz,字長(zhǎng)= 8位;(6)回放語(yǔ)音質(zhì)量良好。2發(fā)揮部分在保證語(yǔ)音質(zhì)量的前提下:(1)減少系統(tǒng)噪聲電平,增加自動(dòng)音量控制功能;(2)語(yǔ)音存儲(chǔ)時(shí)間增加至20秒以上;(3)提高存儲(chǔ)器的利用率(在原有存儲(chǔ)容量不變的前提下,提高語(yǔ)音存儲(chǔ)時(shí)間);(4)其它(例如:校正等)。4.5 數(shù)字頻率計(jì)設(shè)計(jì)一、任務(wù)設(shè)計(jì)并制作一臺(tái)數(shù)字顯示的簡(jiǎn)易頻率計(jì)。二、要求1基本要求(1)頻率測(cè)量a測(cè)量范圍 信號(hào):方波、正弦波;幅度:0.5V5V;頻率:1Hz1MHzb測(cè)量誤差0.1%(2)周期測(cè)量a測(cè)量范圍 信號(hào):方波、正弦波;幅度:0.5V5V;頻率:1Hz1MHzb測(cè)量誤差0.1%(3)脈沖寬度測(cè)量 a測(cè)量范圍 信號(hào):脈沖波;幅度:0.5V5V;脈沖寬度100sb測(cè)量誤差1%(4)顯示器 十進(jìn)制數(shù)字顯示,顯示刷新時(shí)間110秒連續(xù)可調(diào),對(duì)上述三種測(cè)量功能分別用不同顏色的發(fā)光二極管指示。(5)具有自校功能,時(shí)標(biāo)信號(hào)頻率為1MHz。(6)自行設(shè)計(jì)并制作滿足本設(shè)計(jì)任務(wù)要求的穩(wěn)壓電源。2發(fā)揮部分(1)擴(kuò)展頻率測(cè)量范圍為0.1Hz10MHz(信號(hào)幅度0.5V5V),測(cè)量誤差降低為0.01%(最大閘門(mén)時(shí)間10s)。(2)測(cè)量并顯示周期脈沖信號(hào)(幅度0.5V5V、頻率1Hz1kHz)的占空比,占空比變化范圍為10%90%,測(cè)量誤差1% 。(3)在1Hz1MHz范圍內(nèi)及測(cè)量誤差1%的條件下,進(jìn)行小信號(hào)的頻率測(cè)量,提出并實(shí)現(xiàn)抗干擾的措施。4.6 A題波形發(fā)生器 設(shè)計(jì)制作一個(gè)波形發(fā)生器,該波形發(fā)生器能產(chǎn)生正弦波、方波、三角波和由用戶編輯的特定形狀波形。示意圖如下:1基本要求(1)具有產(chǎn)生正弦波、方波、三角波三種周期性波形的功能。(2)用鍵盤(pán)輸入編輯生成上述三種波形(同周期)的線性組合波形,以及由基波及其諧波(5次以下)線性組合的波形。(3)具有波形存儲(chǔ)功能。(4)輸出波形的頻率范圍為100Hz20kHz(非正弦波頻率按10次諧波計(jì)算);重復(fù)頻率可調(diào),頻率步進(jìn)間隔100Hz。(5)輸出波形幅度范圍05V(峰-峰值),可按步進(jìn)0.1V(峰-峰值)調(diào)整。(6)具有顯示輸出波形的類(lèi)型、重復(fù)頻率(周期)和幅度的功能。2發(fā)揮部分(1)輸出波形頻率范圍擴(kuò)展至100Hz200kHz。(2)用鍵盤(pán)或其他輸入裝置產(chǎn)生任意波形。(3)增加穩(wěn)幅輸出功能,當(dāng)負(fù)載變化時(shí),輸出電壓幅度變化不大于3%(負(fù)載電阻變化范圍:100)。(4)具有掉電存儲(chǔ)功能,可存儲(chǔ)掉電前用戶編輯的波形和設(shè)置。(5)可產(chǎn)生單次或多次(1000次以下)特定波形(如產(chǎn)生1個(gè)半周期三角波輸出)。 (6)其它(如增加頻譜分析、失真度分析、頻率擴(kuò)展200kHz、掃頻輸出等功能)。第五章 單片機(jī)C51講義(注:本文由張清恒編輯,本文中相應(yīng)的代碼片斷運(yùn)行及測(cè)試結(jié)果以Keil 51的V6版編譯器為準(zhǔn))5.1 C語(yǔ)言概述1單片機(jī)及程序設(shè)計(jì)語(yǔ)言 (1) 單片機(jī)在系統(tǒng)設(shè)計(jì)中的位置聲、光、電、機(jī)械部件等傳感器及模數(shù)轉(zhuǎn)換電路(AD)各類(lèi)傳感器及信號(hào)調(diào)理電路單片機(jī)、DSP、可編程邏輯器件等傳感器及模數(shù)轉(zhuǎn)換電路(AD)各類(lèi)傳感器及信號(hào)調(diào)理電路模擬電路部分?jǐn)?shù)字電路部分總線接口圖一 單片機(jī)在系統(tǒng)設(shè)計(jì)中的位置(2) 程序設(shè)計(jì)語(yǔ)言A機(jī)器指令集 面對(duì)具體的處理器:?jiǎn)纹瑱C(jī)、ARM處理器(精簡(jiǎn)指令RISC體系)、通用處理器(復(fù)雜指令CISC體系)。B匯編語(yǔ)言 使用助記符代替機(jī)器指令,需要轉(zhuǎn)換成機(jī)器指令后才能被識(shí)別運(yùn)行。C面向結(jié)構(gòu)的高級(jí)語(yǔ)言C、PASCAL、Fortran、COBOL、BASIC2C高級(jí)語(yǔ)言的編譯過(guò)程C語(yǔ)言作為高級(jí)語(yǔ)言,其使用更高級(jí)的行為描述方法來(lái)定義操作。一般編譯型的高級(jí)語(yǔ)言,其先經(jīng)預(yù)編譯,然后再編譯轉(zhuǎn)換成匯編語(yǔ)言,然后加入相應(yīng)的庫(kù)函數(shù)實(shí)體并經(jīng)過(guò)鏈接形成最終機(jī)器代碼。預(yù)編譯所做的工作 為做宏替換、有效代碼的選擇等工作。其示意圖如圖二所示。C語(yǔ)言程序1 (源代碼)匯編語(yǔ)言代碼1 (中間代碼)機(jī)器語(yǔ)言代碼(最終代碼)編譯鏈接C語(yǔ)言程序2 (源代碼)匯編語(yǔ)言代碼2 (中間代碼)編譯C語(yǔ)言程序n (源代碼)匯編語(yǔ)言代碼n (中間代碼)編譯Math等函數(shù)庫(kù) (最終代碼)圖二 C語(yǔ)言源程序到達(dá)最終代碼的過(guò)程注意,一、由于不同硬件的機(jī)器指令集不一樣,故編譯與鏈接的針對(duì)不同目標(biāo)機(jī)器的最終代碼不一樣;二、編譯的過(guò)程更多的時(shí)候不是在目標(biāo)機(jī)器上進(jìn)行的,故編譯器本身有一個(gè)運(yùn)行環(huán)境(一般為DOS、Windows環(huán)境)。故需要使用適合于目標(biāo)機(jī)器平臺(tái)的能夠在指定的某一平臺(tái)上運(yùn)行的編譯器與鏈接器進(jìn)行相應(yīng)的編譯與鏈接工作。5.2 C51語(yǔ)言1 C51語(yǔ)言與C語(yǔ)言的關(guān)系C51語(yǔ)言由C發(fā)展而來(lái),其基本上繼承了C語(yǔ)言的特性。其區(qū)別在于:A C語(yǔ)言程序建立在操作系統(tǒng)的基礎(chǔ)上,有操作系統(tǒng)為程序操作許多基本的操作,如字符顯示、鍵盤(pán)讀取、文件操作,用戶程序并不直接操作控制硬件;而C51語(yǔ)言直接面向硬件,必須自己實(shí)現(xiàn)對(duì)硬件的控制。B C語(yǔ)言程序一般在存儲(chǔ)在外部存儲(chǔ)介質(zhì)上,在運(yùn)行時(shí)由操作系統(tǒng)裝載入內(nèi)存中進(jìn)行重定位后,再運(yùn)行;而C51程序是直接在存儲(chǔ)的ROM或FLASH介質(zhì)上運(yùn)行。其區(qū)別示意圖如圖三所示。鍵盤(pán)、顯示器、磁盤(pán)存儲(chǔ)器等外圍硬件BIOS基本輸入輸出系統(tǒng)操作系統(tǒng)(DOS、Windows、Linux、Solaris、FreeBSD)用戶C程序最終代碼程序圖三 通用計(jì)算機(jī)上的用戶C語(yǔ)言程序的運(yùn)行環(huán)境示意圖鍵盤(pán)、顯示器、磁盤(pán)存儲(chǔ)器等外圍硬件操作系統(tǒng)(UC-OS)用戶C51程序最終代碼圖四 單片機(jī)上的用戶C51語(yǔ)言程序的運(yùn)行環(huán)境示意圖2 C51中繼承C中可使用的資源現(xiàn)成的函數(shù)等資源包括兩個(gè)部分,一個(gè)是函數(shù)頭的聲明文件(即.h文件),另一個(gè)是函數(shù)編譯后的目標(biāo)代碼庫(kù)(即.lib文件)。只要把用到的文件放到當(dāng)前目錄或系統(tǒng)編譯器目錄,在鏈接時(shí)系統(tǒng)會(huì)自動(dòng)尋找并使用。(1) Intrinsic.h C51內(nèi)部固定函數(shù)extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned char);extern unsigned int _iror_ (unsigned int, unsigned char);extern unsigned long _lror_ (unsigned long, unsigned char);extern unsigned char _crol_ (unsigned char, unsigned char);extern unsigned int _irol_ (unsigned int, unsigned char);extern unsigned long _lrol_ (unsigned long, unsigned char);extern unsigned char _chkfloat_(float);(2) Absacc.h 數(shù)據(jù)類(lèi)型相關(guān)資源#define CBYTE (unsigned char volatile code *) 0)#define DBYTE (unsigned char volatile data *) 0)#define PBYTE (unsigned char volatile pdata *) 0)#define XBYTE (unsigned char volatile xdata *) 0)#define CWORD (unsigned int volatile code *) 0)#define DWORD (unsigned int volatile data *) 0)#define PWORD (unsigned int volatile pdata *) 0)#define XWORD (unsigned int volatile xdata *) 0)(3) Float.h 運(yùn)算常數(shù)相關(guān)庫(kù)#define FLT_RADIX 2#define FLT_ROUNDS 0#define FLT_DIG 6#define FLT_EPSILON 5.96046e-8#define FLT_MANT_DIG 24#define FLT_MAX 3.40282e38#define FLT_MAX_EXP 0x7F#define FLT_MAX_10_EXP 38#define FLT_MIN 1.17549e-38#define FLT_MIN_EXP -125#define FLT_MIN_10_EXP -37#define DBL_RADIX FLT_RADIX #define DBL_ROUNDSFLT_ROUNDS#define DBL_DIGFLT_DIG#define DBL_EPSILONFLT_EPSILON#define DBL_MANT_DIGFLT_MANT_DIG#define DBL_MAXFLT_MAX#define DBL_MAX_EXPFLT_MAX_EXP#define DBL_MAX_10_EXPFLT_MAX_10_EXP#define DBL_MINFLT_MIN#define DBL_MIN_EXPFLT_MIN_EXP#define DBL_MIN_10_EXPFLT_MIN_10_EXP#define LDBL_RADIX FLT_RADIX #define LDBL_ROUNDSFLT_ROUNDS#define LDBL_DIGFLT_DIG#define LDBL_EPSILONFLT_EPSILON#define LDBL_MANT_DIGFLT_MANT_DIG#define LDBL_MAXFLT_MAX#define LDBL_MAX_EXPFLT_

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論