該課程主要講授的是Intel MCS-51及其兼容8位單片機(jī)。 實(shí)驗(yàn)中使用的是由宏晶科技提供的《STC試驗(yàn)箱》,所使用的CPU芯片為宏晶科技生產(chǎn)的STC15W4K58S4。兼容MSC-51,單比傳統(tǒng)MCS-51執(zhí)行速度更快,提供的外設(shè)也更多更豐富。宏晶科技為國內(nèi)最大的MCS-51單片機(jī)生產(chǎn)商,其生產(chǎn)的MCS-51兼容CPU在中低端嵌入式應(yīng)用中幾乎占據(jù)國內(nèi)全部市場。
實(shí)驗(yàn)裝置及軟件等 實(shí)驗(yàn)裝置: 《STC試驗(yàn)箱》 實(shí)驗(yàn)資料 1. 《STC15系列單片機(jī)器件手冊》 2. 《STC實(shí)驗(yàn)箱4-原理圖》 3. 《STC實(shí)驗(yàn)箱4-使用說明書》 4. 《嵌入式系統(tǒng)技術(shù)實(shí)驗(yàn)指導(dǎo)書》 實(shí)驗(yàn)軟件: 1. stc-isp-15xx-v6.86F.rar (程序下載工具) 2. c51setup (C51安裝程序) 3. 程序函數(shù)庫 ( .c 及.h文件) 學(xué)生自備:1.筆記本電腦一臺(tái),操作系統(tǒng)為Windows XP/Win7/Win8/Win10
實(shí)驗(yàn)準(zhǔn)備:必須在參與實(shí)驗(yàn)之前,首先在筆記本電腦上安裝c51setup和stc-isp-5xx-v6.86F軟件,以供實(shí)驗(yàn)使用,安裝方法由授課教師在課堂上講解。
實(shí)驗(yàn)中,由實(shí)驗(yàn)室向?qū)W生提供相應(yīng)實(shí)驗(yàn)?zāi)0宄绦颍梢灾苯佑糜趯?shí)驗(yàn)。在實(shí)驗(yàn)過程中,首先必須先看懂模板程序,并在此基礎(chǔ)上適當(dāng)修改后再次實(shí)驗(yàn),反復(fù)多次,以達(dá)到熟悉和掌握單片機(jī)嵌入式應(yīng)用的編程技巧和方法。
軟件安裝
一.C51setup安裝 鼠標(biāo)雙擊 C51Settp,安裝軟件開始執(zhí)行,彈出畫面  點(diǎn)擊 Next 下一步。 選擇同意,點(diǎn)擊Next,下一步。 請選擇安裝目錄,缺省安裝至C盤根目錄,選擇好后,點(diǎn)擊Next,下一步。 在First Name和E-mail處輸入你的名字和郵箱號(hào),此處可以任意輸入,不影響使用。然后點(diǎn)擊Next,下一步。 等待安裝完成后,點(diǎn)擊Finish即完成安裝。 安裝完成后的C51開發(fā)器,最大編譯程序不得超過2K容量,如果程序超過2K,請購買Keil C51正版軟件。
二.stc-isp-15xx-v6.86F安裝 將stc-isp-15xx-v6.86F.rar 拷貝至你需要安裝的磁盤,然后解壓即可,然后進(jìn)入到解壓好的目錄,發(fā)送stc-isp-15xx-v6.86F文件快捷方式到桌面。 驅(qū)動(dòng)程序安裝:進(jìn)入解壓目錄,選擇USB to UART Driver子目錄,再選擇CH340_CH341子目錄,雙擊ch341ser,彈出如下畫面
點(diǎn)擊安裝,即可完成驅(qū)動(dòng)程序的安裝。安裝完成后直接關(guān)閉即可。
添加STC單片機(jī)頭文件及調(diào)試庫 雙擊桌面stc-isp-15xx-v6.86F快捷方式,打開文件,進(jìn)入畫面 選擇Keil仿真設(shè)置,再點(diǎn)擊“添加型號(hào)和頭文件到Keil中” ,彈出對(duì)話框  選擇好keil 安裝目錄后,點(diǎn)擊“確定” ,等到完成即可。 現(xiàn)在可以編程實(shí)驗(yàn)了。具體工程建立等相關(guān)信號(hào)請參見《STC實(shí)驗(yàn)箱4-使用說明書》和本實(shí)驗(yàn)指導(dǎo)書即可。
新建Keil項(xiàng)目
首先打開 Keil 軟件,并打開“Project”菜單中的“New uVersion Project …”項(xiàng)
在下面的對(duì)話框中輸入新建的項(xiàng)目名稱,然后保存 首先選擇項(xiàng)目所在目錄,如果目錄不存在,可以右擊鼠標(biāo),新建文件夾來設(shè)置,之后,在文件名處輸入項(xiàng)目名稱,點(diǎn)擊保存。 再選擇CPU系列,此處選擇STC MCU Database,點(diǎn)擊“OK” 。 將STC展開,找到所需CPU類型,這里選擇STC15W4K32S4,因?yàn)槲覀冮_發(fā)板上CPU為次型號(hào),不得選擇其他。
點(diǎn)擊“OK” ,彈出新對(duì)話框。 此次對(duì)話框提示是否需要拷貝STARTUP.A51文件到項(xiàng)目中,一般情況下是必須拷貝的,我們這里由于已經(jīng)將其拷貝至模板程序的src目錄了,這里就不需要了,點(diǎn)擊“否” ,完成項(xiàng)目的建立。 項(xiàng)目建立到此,就需要添加C源文件代碼程序了。如果源文件代碼不存在,需要編程,請點(diǎn)擊菜單“File”—“New”來建立新的C源文件代碼。
在編輯框里編寫自己的C代碼程序,如圖示。
編程完成后,點(diǎn)擊菜單“File”—“Save As”來保存我們編寫的C代碼。可以直接將C程序文件保存在項(xiàng)目目錄中,也可與保存在其他目錄中。選擇好目錄,輸入文件名稱,點(diǎn)擊“保存” ,一個(gè)C代碼文件就建好了。如此完成其他C代碼文件建立。
添加已存在文件到項(xiàng)目中 在左邊的Project框中,鼠標(biāo)右擊Target 1—Source Group 1,彈出菜單 選擇 Add Existing Files to Group ‘Source Group 1’… 在上面查找范圍選擇文件所在目錄,不限于當(dāng)前項(xiàng)目目錄,可以是任何目錄,之后在文件列表框中選擇文件,再點(diǎn)擊“Add”即添加源文件到項(xiàng)目中了。一次可以選擇多個(gè)文件,一同添加。
編譯前的設(shè)置 前面介紹了項(xiàng)目的建立過程,現(xiàn)在要介紹一下編譯前的一些設(shè)置。 為了方便,我們打開一個(gè)“跑馬燈”實(shí)例程序。 這里我們可以看到,項(xiàng)目中包含幾個(gè).c C程序文件和一個(gè)STARTUP.A51啟動(dòng)文件。 現(xiàn)在開始設(shè)置,選則菜單Project下Options for Target Target 1’ …,
設(shè)置Output選項(xiàng),如圖示。輸出文件目錄可以通過左上Select Folder Objects…選擇。 在設(shè)置Listing選項(xiàng),如圖示。此選項(xiàng)是將編譯時(shí)將生成中間文件.lst存放在什么目錄。目錄可以通過左上的Select Folder for Listings…選擇。 添加頭文件所在目錄,選擇C51選項(xiàng),點(diǎn)擊Include Paths 后的…按鈕  在次可以添加頭文件所在目錄,可以添加多項(xiàng)。添加結(jié)束后點(diǎn)擊“OK” ,完成.h頭文件路徑的添加。
至此。我們可以編譯程序了,選擇菜單Project下Rebuiild all target files,開始編譯程序,編譯結(jié)果顯示在屏幕下部的Build Output區(qū)。
如果有錯(cuò)誤,在Build Output 會(huì)給出錯(cuò)誤提示,請?jiān)谛薷腻e(cuò)誤后重新編譯,直至沒有錯(cuò)誤為止。生成的.Hex文件將在之前選擇的目錄中,這是我們需要下載到目標(biāo)板的執(zhí)行文件的十六進(jìn)制格式文件。
下載用戶程序到目標(biāo)板
雙擊桌面stc-isp-15xx-v6.86F快捷方式,打開文件,進(jìn)入畫面 第一步選擇單片機(jī)型號(hào),此處選擇IAP15W4K58S4。 第二步選擇串口號(hào),可以通過點(diǎn)擊“掃描” ,查到所有端口,再選擇所需端口。 第三步點(diǎn)擊“打開程序文件”  通過選擇文件選擇.hex文件 文件選擇好后,點(diǎn)擊右下的“打開” 。 第四步 設(shè)置硬件選項(xiàng)  注意,必須端子使用內(nèi)部IRC時(shí)鐘和22.1184MHz,其他選項(xiàng)如上圖示。因?yàn)槌绦虬惭b22.1184MHz編寫,選擇其他頻率將導(dǎo)致定時(shí)器定時(shí)不準(zhǔn)和UART通訊不能正常通訊。 第五步連接好編程USB電纜,點(diǎn)擊左下“下載/編程” ,開始等待CPU復(fù)位,然后,輕按開發(fā)板上“SW19”主控芯片電源開關(guān),之后進(jìn)入編程,編程狀態(tài)將在右下的信息區(qū)顯示。如果出錯(cuò),請予以糾正,直至編程成功為止。 整個(gè)編程過程即告結(jié)束。
庫文件簡介
為便于同學(xué)們實(shí)驗(yàn),我們將一些基本的操作編寫為庫文件提供給大家,同學(xué)們只需要編寫主程序,在主程序中加入相應(yīng)函數(shù)庫和頭文件,即可完成實(shí)驗(yàn)。 請參見模板程序inc目錄
C庫文件和H文件: - Timer.c Timer.h
- Display.c Display.h
- KeyScan.c KeyScan.h
- Uart0.c Uart0.h
- Adc.c Adc.h
- KeyAdc.c KeyAdc.h
H 文件介紹 extern bit TimerMsFlag; // 供主程序作毫秒定時(shí)用標(biāo)志 extern WORD pdata TimerMsWait; // 供主程序作毫秒延時(shí)用變量 void Timer0Init( void ); // 啟動(dòng)定時(shí)器0 毫秒中斷 #define SIGN 0x10 // 負(fù)號(hào) #define SPACE 0x11 // 空 void SendDataToDispBuf( BYTE dat, BYTE idx ); // 發(fā)送數(shù)據(jù)至顯示緩沖區(qū) // dat 0x00--0x0f, 0x10, 0x11 // idx 0x00--0x07 void SetPoint( BYTE idx ); // 設(shè)置小數(shù)點(diǎn)顯示位置 // idx 0x00--0x07 void ClearPoint( void ); // 清除小數(shù)點(diǎn)位置 void DsipRefresh( void ); // 顯示定時(shí)刷新,主程序每毫秒調(diào)用一次 BYTE GetKeyFromBuf( void ); // 獲取鍵盤輸入 // 有輸入返回 0x00--0x0f // 無輸入返回 0xff void KeyScan( void ); // 鍵盤掃描,主程序每毫秒調(diào)用一次 #define BAUD_1200 0 #define BAUD_2400 1 #define BAUD_4800 2 #define BAUD_9600 3 #define BAUD_19200 4 #define BAUD_38400 5 #define BAUD_57600 6 #define BAUD_115200 7 // 波特率宏定義 void Uart0Init( BYTE baud ); // 設(shè)置Uart0波特率為baud, 8位數(shù)據(jù), 無校驗(yàn) // 使用Timer2作波特率發(fā)生器 BYTE GetCharFormUart0Buf( void ); // 從Uart0接收緩沖區(qū)獲取字符 // 有輸入字符返回 0x00--0xfe // 無輸入字符返回 0xff BYTE PutCharToUart0Buf( BYTE cc ); // 發(fā)送一個(gè)字符到Uart0發(fā)送緩沖區(qū) // 發(fā)送成功返回 0x01 // 發(fā)送失敗返回 0x00
#define ADC_REF25V 2 #define ADC_NTC 3 #define ADC_KEY 4 // ADC通道號(hào)定義,與硬件有關(guān),不得修改 void AdcInit( void ); // P1.2--P1.4作為模擬輸入 BYTE AdcByteRead( BYTE ch ); // 從給定通道讀取8位轉(zhuǎn)換值 WORD AdcWordRead( BYTE ch ); // 從給定通道讀取10位轉(zhuǎn)換值 BYTE GetKeyFromBuf( void ); // 獲取鍵盤輸入 // 有輸入返回 0x00--0x0f // 無輸入返回 0xff void KeyAdc( void ); // 鍵盤掃描,主程序每毫秒調(diào)用一次
實(shí)驗(yàn)一 跑馬燈
一、實(shí)驗(yàn)?zāi)康?/div> - 熟悉單片機(jī)定時(shí)器的使用方法;
- 熟悉單片機(jī)IO端口使用方法;
- 熟悉單片機(jī)數(shù)碼管顯示的控制方法;
- 熟悉Keil C51 編程環(huán)境和在次環(huán)境下的編程方法;
二、實(shí)驗(yàn)的主要內(nèi)容 1、利用已有的Timer.c 和 Display.c 程序庫,編寫相應(yīng)主程序。 2、完成一個(gè)“跑馬燈”顯示功能的實(shí)驗(yàn),每秒中將顯示數(shù)據(jù)左移或右移一位。 三、實(shí)驗(yàn)設(shè)備和工具 - STC實(shí)驗(yàn)箱一臺(tái)
- 自備筆記本電腦一臺(tái)
- 筆記本電腦安裝Keil C51開發(fā)軟件。
- 相應(yīng)庫函數(shù)。
四、實(shí)驗(yàn)程序 模板程序下“跑馬燈”項(xiàng)目。 五、實(shí)驗(yàn)報(bào)告要求 1. 對(duì)STC15W系列定時(shí)器模式的理解。 2. 對(duì)STC15W系列IO端口模式的理解。 3. 對(duì)STC15W系列定時(shí)器中斷模式的理解。
實(shí)驗(yàn)二 掃描鍵盤
一、實(shí)驗(yàn)?zāi)康?/div> - 熟悉單片機(jī)定時(shí)器的使用方法;
- 熟悉單片機(jī)IO端口使用方法;
- 熟悉單片機(jī)數(shù)碼管顯示的控制方法;
- 了解鍵盤掃描輸入方法
- 熟悉Keil C51 編程環(huán)境和在次環(huán)境下的編程方法;
二、實(shí)驗(yàn)的主要內(nèi)容 1、利用已有的Timer.c 、Display.c 和KeyScan.c程序庫,編寫相應(yīng)主程序。 2、完成一個(gè)“掃描鍵盤”顯示功能的實(shí)驗(yàn),每輸入一個(gè)字符,將顯示數(shù)據(jù)左移,并將新的輸入放到最后一位顯示。 三、實(shí)驗(yàn)設(shè)備和工具 1. STC實(shí)驗(yàn)箱一臺(tái) - 自備筆記本電腦一臺(tái)
- 筆記本電腦安裝Keil C51開發(fā)軟件。
- 相應(yīng)庫函數(shù)。
四、實(shí)驗(yàn)程序 模板程序下“掃描鍵盤”項(xiàng)目。 五、實(shí)驗(yàn)報(bào)告要求 1. 對(duì)STC15W系列定時(shí)器模式的理解。 2. 對(duì)STC15W系列IO端口模式的理解。 3. 對(duì)STC15W系列定時(shí)器中斷模式的理解。
實(shí)驗(yàn)三ADC轉(zhuǎn)換
一、實(shí)驗(yàn)?zāi)康?/div> - 熟悉單片機(jī)定時(shí)器的使用方法;
- 熟悉單片機(jī)IO端口使用方法;
- 熟悉單片機(jī)數(shù)碼管顯示的控制方法;
- 了解模擬數(shù)字轉(zhuǎn)換原理與方法
- 熟悉Keil C51 編程環(huán)境和在次環(huán)境下的編程方法;
二、實(shí)驗(yàn)的主要內(nèi)容 1.利用已有的Timer.c 、Display.c 和Adc.c程序庫,編寫相應(yīng)主程序。 2.完成一個(gè)“ADC轉(zhuǎn)換”顯示功能的實(shí)驗(yàn),并將轉(zhuǎn)換結(jié)果在數(shù)碼管上顯示。 三、實(shí)驗(yàn)設(shè)備和工具 1. STC實(shí)驗(yàn)箱一臺(tái) 2. 自備筆記本電腦一臺(tái) 3. 筆記本電腦安裝Keil C51開發(fā)軟件。 4. 相應(yīng)庫函數(shù)。 四、實(shí)驗(yàn)程序 模板程序下“ADC轉(zhuǎn)換”項(xiàng)目。 五、實(shí)驗(yàn)報(bào)告要求 1. 對(duì)STC15W系列ADC工作模式的理解。
實(shí)驗(yàn)四ADC鍵盤
一、實(shí)驗(yàn)?zāi)康?/div> 1. 熟悉單片機(jī)定時(shí)器的使用方法; 2. 熟悉單片機(jī)IO端口使用方法; 3. 熟悉單片機(jī)數(shù)碼管顯示的控制方法; 4. 了解模擬數(shù)字轉(zhuǎn)換原理與方法 5. 熟悉Keil C51 編程環(huán)境和在次環(huán)境下的編程方法; 二、實(shí)驗(yàn)的主要內(nèi)容 1.利用已有的Timer.c 、Display.c 、Adc.c和KeyAdc.c程序庫,編寫相應(yīng)主程序。 2.完成一個(gè)“ADC鍵盤”顯示功能的實(shí)驗(yàn),每輸入一個(gè)字符,將顯示數(shù)據(jù)左移,并將新的輸入放到最后一位顯示。 三、實(shí)驗(yàn)設(shè)備和工具 1. STC實(shí)驗(yàn)箱一臺(tái) 2. 自備筆記本電腦一臺(tái) 3. 筆記本電腦安裝Keil C51開發(fā)軟件。 4. 相應(yīng)庫函數(shù)。 四、實(shí)驗(yàn)程序 模板程序下“ADC鍵盤”項(xiàng)目。 五、實(shí)驗(yàn)報(bào)告要求 1. 對(duì)STC15W系列ADC工作模式的理解。
實(shí)驗(yàn)五 串口通訊
一、實(shí)驗(yàn)?zāi)康?/div> 1. 熟悉單片機(jī)定時(shí)器的使用方法; 2. 熟悉單片機(jī)IO端口使用方法; 3. 熟悉單片機(jī)數(shù)碼管顯示的控制方法; 4. 了解單片機(jī)串行通訊的原理與方法 5. 熟悉Keil C51 編程環(huán)境和在次環(huán)境下的編程方法; 二、實(shí)驗(yàn)的主要內(nèi)容 1.利用已有的Timer.c 、Display.c 和Uart0.c程序庫,編寫相應(yīng)主程序。 2.完成一個(gè)“串口通訊”顯示功能的實(shí)驗(yàn),每接收一個(gè)字符并將其返回,同時(shí)計(jì)數(shù)加1,并在數(shù)碼管上顯示計(jì)數(shù)。 三、實(shí)驗(yàn)設(shè)備和工具 1. STC實(shí)驗(yàn)箱一臺(tái) 2. 自備筆記本電腦一臺(tái) 3. 筆記本電腦安裝Keil C51開發(fā)軟件。 4. 相應(yīng)庫函數(shù)。 5. 終端仿真程序 四、實(shí)驗(yàn)程序 模板程序下“串口通訊”項(xiàng)目。 五、實(shí)驗(yàn)報(bào)告要求 1. 對(duì)STC15W系列UART串口通訊工作模式的理解。
完整的Word格式文檔51黑下載地址:
嵌入式系統(tǒng)技術(shù)實(shí)驗(yàn)指導(dǎo)書.doc
(1.1 MB, 下載次數(shù): 24)
2019-1-16 18:03 上傳
點(diǎn)擊文件名下載附件
|