找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3493|回復(fù): 0
收起左側(cè)

STC15單片機(jī)嵌入式系統(tǒng)實(shí)驗(yàn)指導(dǎo)書下載

[復(fù)制鏈接]
ID:469321 發(fā)表于 2019-1-16 18:03 | 顯示全部樓層 |閱讀模式
該課程主要講授的是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 文件介紹
  • Timer.h
extern              bit                                                                      TimerMsFlag;
// 供主程序作毫秒定時(shí)用標(biāo)志
extern              WORD                            pdata              TimerMsWait;
// 供主程序作毫秒延時(shí)用變量
void Timer0Init( void );
// 啟動(dòng)定時(shí)器0 毫秒中斷
  • Display.h
#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)用一次
  • KeyScan.h
BYTE GetKeyFromBuf( void );
// 獲取鍵盤輸入
// 有輸入返回                            0x00--0x0f
// 無輸入返回                            0xff
void KeyScan( void );
// 鍵盤掃描,主程序每毫秒調(diào)用一次
  • Uart0.h
#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
  • Adc.h

#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)換值
  • KeyAdc.h
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)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表