全國電子設(shè)計大賽培訓(xùn)之單片機部分_第1頁
全國電子設(shè)計大賽培訓(xùn)之單片機部分_第2頁
全國電子設(shè)計大賽培訓(xùn)之單片機部分_第3頁
全國電子設(shè)計大賽培訓(xùn)之單片機部分_第4頁
全國電子設(shè)計大賽培訓(xùn)之單片機部分_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Copyright CUGB2021年12月12日星期日單片機部分單片機部分Copyright CUGB2021年12月12日星期日學(xué)習(xí)平臺學(xué)習(xí)平臺STC89C516RD+實驗實驗板板Copyright CUGB2021年12月12日星期日主講內(nèi)容主講內(nèi)容一、認(rèn)識學(xué)習(xí)一、認(rèn)識學(xué)習(xí)STC89C516RD+單片機單片機二、存儲空間分配二、存儲空間分配三、編程風(fēng)格三、編程風(fēng)格四、學(xué)習(xí)任務(wù)四、學(xué)習(xí)任務(wù)Copyright CUGB2021年12月12日星期日一、認(rèn)識學(xué)習(xí)一、認(rèn)識學(xué)習(xí)STC89C516RD+單片機單片機什么是單片機?什么是單片機? 將將CPU芯片、芯片、存儲器存儲器芯片、芯片、I/O接口接

2、口芯片和芯片和簡單的簡單的I/O設(shè)備設(shè)備(小鍵盤、(小鍵盤、LED顯示器)等裝顯示器)等裝配在一塊印刷電路板上,再配上配在一塊印刷電路板上,再配上監(jiān)控程序監(jiān)控程序(固(固化在化在ROM中),就構(gòu)成了一臺單板微型計算中),就構(gòu)成了一臺單板微型計算機(機(簡稱簡稱單片單片機)。機)。單片機單片機Copyright CUGB2021年12月12日星期日一、認(rèn)識學(xué)習(xí)一、認(rèn)識學(xué)習(xí)STC89C516RD+單片機單片機特特 性性80C51 80C51 核心處理單元;核心處理單元;5V 5V 的工作電壓,操作頻率為的工作電壓,操作頻率為0 08 80 0MHzMHz;X2X2方式方式選項(每個機器周期包含選項

3、(每個機器周期包含6 6個時鐘)個時鐘)ISPISP(串行在系統(tǒng)編程)功能、(串行在系統(tǒng)編程)功能、冷啟動冷啟動方式下載程序方式下載程序SPISPI串行接口和增強型串行接口和增強型UARTUARTPCAPCA(可編程計數(shù)器陣列),(可編程計數(shù)器陣列),PWMPWM和捕獲和捕獲/ /比較功能比較功能3 3個高電流個高電流P1P1口口(P1.5P1.51.71.7,每個,每個IOIO電流電流16mA16mA)5 5個中斷源,三種中斷優(yōu)先級個中斷源,三種中斷優(yōu)先級2 2個個DPTRDPTR寄存器寄存器低低EMIEMI方式,掉電檢測,低功耗模式,看門狗方式,掉電檢測,低功耗模式,看門狗6 64 4KB

4、KB的的FLASHFLASH,1KB1KB的的RAM,RAM,哈佛結(jié)構(gòu)哈佛結(jié)構(gòu)STC89C516RD+STC89C516RD+是一種增強型是一種增強型的的80C5180C51單片機,單片機,右表列出了其右表列出了其與普通與普通89C5189C51或或89C5289C52單片機相單片機相比較的不同特比較的不同特性。性。Copyright CUGB2021年12月12日星期日工具使用:工具使用:Keil的使用的使用Keil C51是美國是美國KeilSoftware公司公司出品的出品的51系列兼系列兼容單片機容單片機C語言軟語言軟件開發(fā)系統(tǒng),該件開發(fā)系統(tǒng),該軟件包括軟件包括C編譯器、編譯器、宏匯編

5、、連接器、宏匯編、連接器、庫管理和一個功庫管理和一個功能強大的仿真調(diào)能強大的仿真調(diào)試器等在內(nèi),全試器等在內(nèi),全Windows界面。界面。Copyright CUGB2021年12月12日星期日選擇合適芯選擇合適芯片類型片類型選選擇擇合合適適的的芯芯片片類類型型工具使用:工具使用:Keil的使用的使用Copyright CUGB2021年12月12日星期日生成生成HEX文件文件工具使用:工具使用:Keil的使用的使用Copyright CUGB2021年12月12日星期日1:選擇單片機類:選擇單片機類型(我們用的是型(我們用的是STC89C516RD+)2:選擇:選擇hex文件文件(Keil生成

6、的那生成的那個)個)3:選擇:選擇COM口。口。3:下載程序,點:下載程序,點Download然后重然后重新啟動單片機新啟動單片機(冷啟動方式冷啟動方式)。)。工具使用:使用工具使用:使用STC-ISP燒錄程序燒錄程序Copyright CUGB2021年12月12日星期日STC89C51單片機介紹單片機介紹單片機,單片機,STC89C51:單片機全稱單片微型計算機;它內(nèi)部有存單片機全稱單片微型計算機;它內(nèi)部有存儲器、處理器、輸入輸出接口,具有計算儲器、處理器、輸入輸出接口,具有計算機的屬性。機的屬性。STC代表生產(chǎn)公司,代表生產(chǎn)公司,8代表代表8051內(nèi)核,內(nèi)核,9代代表表Flash內(nèi)存,內(nèi)

7、存,C代表屬于代表屬于CMOS類,類,5(表示(表示51單片機)固定不變,單片機)固定不變,1的位置可的位置可由由1-16任意數(shù)字代替,代表存儲區(qū)大小為任意數(shù)字代替,代表存儲區(qū)大小為4KB的倍數(shù)。的倍數(shù)。引腳功能:引腳功能:VCC(40腳腳)是單片機電源正,是單片機電源正,GND(20腳)是電源正;腳)是電源正;P0、P1、P2、P3是四組輸入輸出口,顯高電阻狀態(tài),對是四組輸入輸出口,顯高電阻狀態(tài),對外能發(fā)出高電平和低電平;外能發(fā)出高電平和低電平;10腳是串行輸腳是串行輸入口,入口,11腳是串行接收口;腳是串行接收口;12、13腳是外腳是外部中斷輸入;部中斷輸入;18、19腳用于外接時鐘;腳用

8、于外接時鐘;9腳是復(fù)位引腳,有兩個機器周期以上的高腳是復(fù)位引腳,有兩個機器周期以上的高電平則使單片機復(fù)位;電平則使單片機復(fù)位;Copyright CUGB2021年12月12日星期日STC89C51單片機介紹單片機介紹單片機最小系統(tǒng)單片機最小系統(tǒng)Copyright CUGB2021年12月12日星期日STC89C51單片機內(nèi)部結(jié)構(gòu)單片機內(nèi)部結(jié)構(gòu)單片機內(nèi)部結(jié)構(gòu)單片機內(nèi)部結(jié)構(gòu)Copyright CUGB2021年12月12日星期日STC89C51單片機內(nèi)部結(jié)構(gòu)單片機內(nèi)部結(jié)構(gòu)1、總線總線(BUS)是計算機各部件之間傳送信息的公共通道。微機中有內(nèi))是計算機各部件之間傳送信息的公共通道。微機中有內(nèi)部總線

9、和外部總線兩類。內(nèi)部總線是部總線和外部總線兩類。內(nèi)部總線是CPU內(nèi)部之間的連線。外部總線是內(nèi)部之間的連線。外部總線是指指CPU與其它部件之間的連線。與其它部件之間的連線。 外部總線有三種外部總線有三種: 數(shù)據(jù)總線數(shù)據(jù)總線DB(Data Bus), 地址總線地址總線 AB(Address Bus)和控制總線)和控制總線 CB(Control Bus)。)。2、CPU:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;功能寄存器;3、RAM:用以存放可以讀寫的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以:用以存放可以讀寫的數(shù)據(jù),如運算的

10、中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);及欲顯示的數(shù)據(jù);4、ROM:用以存放程序、一些原始數(shù)據(jù)和表格;:用以存放程序、一些原始數(shù)據(jù)和表格;5、I/O口口:四個:四個8位并行位并行I/O口,既可用作輸入,也可用作輸出;口,既可用作輸入,也可用作輸出;6、T/C:兩個定時:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;模式;7、五個五個中斷源的中斷控制系統(tǒng);中斷源的中斷控制系統(tǒng);8、一個全雙工、一個全雙工UART(通用異步接收發(fā)送器)的串行(通用異步接收發(fā)送器)的串行I/O口,用于實現(xiàn)單口,用于實現(xiàn)單片機之間或單片機與微機之間的串行通信;片

11、機之間或單片機與微機之間的串行通信;9、片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振、片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率取決于單片機型號及性能。蕩頻率取決于單片機型號及性能。Copyright CUGB2021年12月12日星期日STC89C51單片機特殊功能應(yīng)用單片機特殊功能應(yīng)用1:IO口口 IO的概念:的概念: IO就輸入就輸入/輸出的意思。單片機通過輸出的意思。單片機通過IO管腳與外界其他管腳與外界其他電路通訊電路通訊。STC89C51是標(biāo)準(zhǔn)單片機,具有是標(biāo)準(zhǔn)單片機,具有P0-P4合計合計4組組IO,每組每組IO有有8個管腳。個管腳。數(shù)字電

12、路中只有兩種電平:數(shù)字電路中只有兩種電平:高(高(1)和低()和低(0) sbit P3_6=P36; P3_6=1;高(高(1) P3_6=0;低(低(0)單片機為單片機為TTL電平:電平: 高高 +5V 低低 0VRS232電平:計算機的串口電平:計算機的串口 高高 -12V 低低+12V所以計算機與單片機之間通訊時需要加電平轉(zhuǎn)換芯片所以計算機與單片機之間通訊時需要加電平轉(zhuǎn)換芯片max232。Copyright CUGB2021年12月12日星期日STC89C51單片機特殊功能應(yīng)用單片機特殊功能應(yīng)用2:中斷:中斷中斷的概念:中斷的概念: CPU在處理某一事件在處理某一事件A時,發(fā)生了另一事

13、件時,發(fā)生了另一事件B請求請求CPU迅速去處理(迅速去處理(中斷發(fā)生中斷發(fā)生);); CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷響應(yīng)和中斷服務(wù)中斷服務(wù));); 待待CPU將事件將事件B處理完畢后,再回到原來事件處理完畢后,再回到原來事件A被中斷的地被中斷的地方繼續(xù)處理事件方繼續(xù)處理事件A(中斷返回中斷返回),這一過程稱為),這一過程稱為中斷中斷 。 中斷系統(tǒng)里面有五個中斷,外部中斷中斷系統(tǒng)里面有五個中斷,外部中斷0和和1,定時器,定時器/計數(shù)器計數(shù)器中斷中斷0/1,串行口中斷,串行口中斷。 應(yīng)用到程序當(dāng)中,如定時中斷:比如你定時應(yīng)用到程序當(dāng)中,如定

14、時中斷:比如你定時1ms,主程,主程序在運行,每當(dāng)序在運行,每當(dāng)1ms時間到后,就跑到定時中斷子程序里面時間到后,就跑到定時中斷子程序里面執(zhí)行,執(zhí)行完后再回到主程序。中斷程序是執(zhí)行,執(zhí)行完后再回到主程序。中斷程序是1ms進(jìn)去一次。進(jìn)去一次。Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:中斷單片機功能介紹:中斷80C51單片機的中斷系統(tǒng)結(jié)構(gòu)執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點中斷請求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:中斷單片機功能介紹:中斷引起引起CPU中斷的根源,稱為中

15、斷的根源,稱為中斷源中斷源。中斷源向。中斷源向CPU提出的提出的中斷請求。中斷請求。CPU暫時中斷原來的事務(wù)暫時中斷原來的事務(wù)A,轉(zhuǎn)去處理事件,轉(zhuǎn)去處理事件B。對。對事件事件B處理完畢后,再回到原來被中斷的地方(即處理完畢后,再回到原來被中斷的地方(即斷點斷點),稱),稱為中斷返回。實現(xiàn)上述中斷功能的部件稱為為中斷返回。實現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)中斷系統(tǒng)(中斷(中斷機構(gòu))。機構(gòu))。Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:中斷單片機功能介紹:中斷例例: :當(dāng)當(dāng)CPUCPU檢測到檢測到P3.2P3.2(INT0,(INT0,外部中斷外部中斷0

16、)0)引腳上出現(xiàn)有效的引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志中斷信號時,中斷標(biāo)志IE0(TCON.1)IE0(TCON.1)置置1 1,向,向CPUCPU申請中斷。申請中斷。Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:中斷單片機功能介紹:中斷 同一優(yōu)先級中的中斷申請不止一個時,則有中同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然由中斷系統(tǒng)硬件確定的自然優(yōu)先級優(yōu)先級形成,其排列如形成,其排列如所示:所示:Copyright CUGB2021年12

17、月12日星期日STC89C51單片機功能介紹:中斷單片機功能介紹:中斷80C51單片機中斷處理過程單片機中斷處理過程 中斷響應(yīng)條件中斷響應(yīng)條件 中斷源有中斷請求;中斷源有中斷請求; 此中斷源的中斷允許位為此中斷源的中斷允許位為1; CPU開中斷(即開中斷(即EA=1)。)。以上三條同時滿足時,以上三條同時滿足時,CPU才有可能響應(yīng)才有可能響應(yīng)中斷中斷。Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:定時器單片機功能介紹:定時器3:定時器定時器定時器定時器的概念:的概念:定時器及計數(shù)器的應(yīng)用,比定時器及計數(shù)器的應(yīng)用,比 I / O 功能稍微高級點,可實現(xiàn)更

18、功能稍微高級點,可實現(xiàn)更為復(fù)雜的功能。為復(fù)雜的功能。顧名思義,定時器可實現(xiàn)延時操作,計數(shù)器則可實現(xiàn)計數(shù)功顧名思義,定時器可實現(xiàn)延時操作,計數(shù)器則可實現(xiàn)計數(shù)功能(這兩者都靠中斷實現(xiàn))。能(這兩者都靠中斷實現(xiàn))。軟件定時軟件定時:軟件定時不占用硬件資源,但占用了:軟件定時不占用硬件資源,但占用了CPU時間,時間,降低了降低了CPU的利用率。(比較靈活,但效率低)的利用率。(比較靈活,但效率低)硬件定時硬件定時:利用單片機內(nèi)部的定時利用單片機內(nèi)部的定時/計數(shù)器。計數(shù)器。(比較精確,但(比較精確,但定時器數(shù)目有限)定時器數(shù)目有限)Copyright CUGB2021年12月12日星期日STC89C51

19、單片機功能介紹:定時器單片機功能介紹:定時器一、定時一、定時/計數(shù)器的結(jié)構(gòu)計數(shù)器的結(jié)構(gòu) 定時定時/計數(shù)器的實質(zhì)是加計數(shù)器的實質(zhì)是加1計數(shù)器(計數(shù)器(16位),由高位),由高8位和低位和低8位兩個寄存器組成。位兩個寄存器組成。TMOD是定時是定時/計數(shù)器的工作方式寄存計數(shù)器的工作方式寄存器,確定工作方式和功能;器,確定工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標(biāo)志的啟動和停止及設(shè)置溢出標(biāo)志。 Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:定時器單片機功能介紹:定時器二、定時二、定時/計數(shù)器工作原理計數(shù)器工

20、作原理 加加1計數(shù)器計數(shù)器輸入的計數(shù)脈沖有兩個來源輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是分頻后送來;一個是T0或或T1引腳引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當(dāng)加到計數(shù),當(dāng)加到計數(shù)器為全器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使溢出使TCON中中TF0或或TF1置置1,向,向CPU發(fā)出中斷請求(定發(fā)出中斷請求(定時時/計數(shù)器中斷允許時)。如果定時計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,計數(shù)器工作于定

21、時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。值已滿。由溢出時計數(shù)器的值減去計數(shù)初值才是加由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值計數(shù)器的計數(shù)值。Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:串口通信單片機功能介紹:串口通信4:串口通信串口通信 串口是串行接口(串口是串行接口(serial port)的簡稱,也稱為串行通)的簡稱,也稱為串行通信接口或信接口或COM接口。接口。串口通信是指采用串行通信協(xié)議(串口通信是指采用串行通信協(xié)議(serial communicatio

22、n)在一條信號線上將數(shù)據(jù)一個比特一個比特)在一條信號線上將數(shù)據(jù)一個比特一個比特地逐位進(jìn)行傳輸?shù)耐ㄐ拍J?。地逐位進(jìn)行傳輸?shù)耐ㄐ拍J?。串口按電氣?biāo)準(zhǔn)及協(xié)議來劃分,包括串口按電氣標(biāo)準(zhǔn)及協(xié)議來劃分,包括RS-232、RS-422、RS485等。等。Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:串口通信單片機功能介紹:串口通信一、異步通信與同步通信一、異步通信與同步通信1、異步通信、異步通信 異步通信異步通信是指通信的是指通信的發(fā)送與接收設(shè)備使用各自的時鐘發(fā)送與接收設(shè)備使用各自的時鐘控控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)制數(shù)據(jù)的發(fā)送和接收過程。為

23、使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。送和接收設(shè)備的時鐘盡可能一致。 Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:串口通信單片機功能介紹:串口通信一、異步通信與同步通信一、異步通信與同步通信 異步通信是異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有各位是以固定的時間傳送的,即字符之間不一定有“位間位間隔隔”的整數(shù)倍的關(guān)系,但的整數(shù)倍的關(guān)系,但同一字符

24、內(nèi)的同一字符內(nèi)的各位之間的距離均各位之間的距離均為為“位間隔位間隔”的整數(shù)倍。的整數(shù)倍。 異步通信的數(shù)據(jù)格式異步通信的數(shù)據(jù)格式 :Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:串口通信單片機功能介紹:串口通信2、同步通信、同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達(dá)到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均使雙方達(dá)到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為為“位間隔位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步保持位同步關(guān)系,關(guān)系,

25、也保持字符同步也保持字符同步關(guān)系。發(fā)送方對接收方關(guān)系。發(fā)送方對接收方的同步可以通過兩種方法實現(xiàn)。的同步可以通過兩種方法實現(xiàn)。 外同步外同步 自同步自同步Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:串口通信單片機功能介紹:串口通信二、串行通信的傳輸方向二、串行通信的傳輸方向1、單工、單工單工單工是指數(shù)據(jù)傳輸僅能沿是指數(shù)據(jù)傳輸僅能沿一個方向一個方向,不能實現(xiàn)反向傳輸。,不能實現(xiàn)反向傳輸。2、半雙工、半雙工半雙工半雙工是指數(shù)據(jù)傳輸可以沿是指數(shù)據(jù)傳輸可以沿兩個方向兩個方向,但需要分時進(jìn)行。,但需要分時進(jìn)行。3、全雙工、全雙工全雙工全雙工是指數(shù)據(jù)可以是指數(shù)據(jù)可

26、以同時進(jìn)行雙向同時進(jìn)行雙向傳輸。傳輸。 單工單工 半雙工半雙工 全雙工全雙工Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:串口通信單片機功能介紹:串口通信 有兩個物理上有兩個物理上獨立獨立的接收、發(fā)送緩沖器的接收、發(fā)送緩沖器SBUF,它們占用,它們占用同一地址同一地址99H ;接收器是雙緩沖結(jié)構(gòu);接收器是雙緩沖結(jié)構(gòu) ;發(fā)送緩沖器,因為;發(fā)送緩沖器,因為發(fā)送時發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。是主動的,不會產(chǎn)生重疊錯誤。 8 80C510C51串行口的結(jié)構(gòu)串行口的結(jié)構(gòu) Copyright CUGB2021年12月12日星期日STC89C51單片機功

27、能介紹:串口通信單片機功能介紹:串口通信 雙機雙機通信通信點對點通信點對點通信Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:串口通信單片機功能介紹:串口通信1:確定串口工作方式:確定串口工作方式 (配置(配置SCON 可位尋址)可位尋址)2:根據(jù):根據(jù)1確定的方式,看是否需要手動設(shè)置波特率確定的方式,看是否需要手動設(shè)置波特率 (TMODE,TH TL)3:設(shè)置波特率后啟動(:設(shè)置波特率后啟動(REN, TR)4:如果使用中斷,開中斷并寫函數(shù):如果使用中斷,開中斷并寫函數(shù)(EA = ES = 1, void serial() interrupt 4 ),

28、軟件軟件復(fù)位復(fù)位 RI=0操作步驟: Copyright CUGB2021年12月12日星期日5:SPI接口接口SPI的概念:的概念:SPI(Serial Peripheral Interface-串行外設(shè)接口)總線系統(tǒng)是一種同步串行外串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。外與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。外圍設(shè)置圍設(shè)置FLASHRAM、網(wǎng)絡(luò)控制器、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動器、顯示驅(qū)動器、A/D轉(zhuǎn)換器和轉(zhuǎn)換器和MCU等。等。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一總線系

29、統(tǒng)可直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用般使用4條線條線:串行時鐘線串行時鐘線(SCK)、)、主機輸入主機輸入/從機輸出從機輸出數(shù)據(jù)線數(shù)據(jù)線MISO、主機主機輸出輸出/從機輸入數(shù)據(jù)線從機輸入數(shù)據(jù)線MOSI和低電平有效的和低電平有效的從機選擇線從機選擇線SS(有的(有的SPI接口芯片接口芯片帶有中斷信號線帶有中斷信號線INT或或INT、有的、有的SPI接口芯片沒有主機輸出接口芯片沒有主機輸出/從機輸入數(shù)據(jù)線從機輸入數(shù)據(jù)線MOSI)。由于)。由于SPI系統(tǒng)總線一共只需系統(tǒng)總線一共只需34位數(shù)據(jù)線和控制即可實現(xiàn)與具有位數(shù)據(jù)線和控制即可實現(xiàn)與具有SPI總線接口功能的各種總線接口

30、功能的各種I/O器件進(jìn)行接口,而擴展并行總線則需要器件進(jìn)行接口,而擴展并行總線則需要8根數(shù)據(jù)線、根數(shù)據(jù)線、816位地址線、位地址線、23位控制線,因此,采用位控制線,因此,采用SPI總線接口可以簡化電路設(shè)計,總線接口可以簡化電路設(shè)計,節(jié)省很多常規(guī)電路中的接口器件和節(jié)省很多常規(guī)電路中的接口器件和I/O口線,提高設(shè)計的可靠性。口線,提高設(shè)計的可靠性。STC89C51單片機功能介紹:單片機功能介紹:SPI接口接口Copyright CUGB2021年12月12日星期日 SPI主機或從機操作;10MHZ位頻率(最大);數(shù)據(jù)傳輸LSB在前或MSB在前;4個可編程位速率;傳輸終止(SPIF);寫沖突標(biāo)志保

31、護(hù);空閑模式喚醒(僅用于從機)串行外圍接口(串行外圍接口(SPI)實)實現(xiàn)了現(xiàn)了STC89C516RD+與外與外圍器件之間及多個圍器件之間及多個STC89C516RD+之間的數(shù)之間的數(shù)據(jù)高速同步傳輸。接口為:據(jù)高速同步傳輸。接口為:SS 片選信號片選信號MOSI 主出從入主出從入MISO 主入從出主入從出SCK 時鐘信號時鐘信號STC89C51單片機功能介紹:單片機功能介紹:SPI接口接口Copyright CUGB2021年12月12日星期日SS P1.4,從機從機選擇位選擇位MOSI P1.5MISO P1.6SCK P1.7硬件硬件SPISTC89C51單片機功能介紹:單片機功能介紹:S

32、PI接口接口Copyright CUGB2021年12月12日星期日STC89C51單片機功能介紹:單片機功能介紹:SPI接口接口SPI時序圖Copyright CUGB2021年12月12日星期日SPI相關(guān)寄存器相關(guān)寄存器主機主機從機從機Copyright CUGB2021年12月12日星期日二、存儲空間分配二、存儲空間分配 當(dāng)單片機的程序代碼增加時,需要通過合理的當(dāng)單片機的程序代碼增加時,需要通過合理的方式為不同類型的代碼分配不同存儲空間,以提高方式為不同類型的代碼分配不同存儲空間,以提高系統(tǒng)效率。系統(tǒng)效率。 程序代碼存儲空間分配方式可以通過設(shè)置數(shù)據(jù)程序代碼存儲空間分配方式可以通過設(shè)置數(shù)據(jù)

33、的修飾符實現(xiàn),也可通過的修飾符實現(xiàn),也可通過Keil軟件中軟件中Target菜單的菜單的設(shè)置來實現(xiàn)。設(shè)置來實現(xiàn)。Copyright CUGB2021年12月12日星期日 類型說明符類型說明符修飾符修飾符 標(biāo)識符標(biāo)識符=初值初值unsigned char code Flag = 0 x0f ;類型說明符類型說明符修飾符修飾符標(biāo)識符標(biāo)識符初值初值這個定義給出的內(nèi)容是:定義一個無符號的字符型變量,這個定義給出的內(nèi)容是:定義一個無符號的字符型變量,該變量的名字是該變量的名字是Flag,初值為,初值為0 x0f,該變量存放在,該變量存放在ROM空空間中。間中。說明:說明:如果在一個定義中,沒有修飾符,即

34、沒有說明存放如果在一個定義中,沒有修飾符,即沒有說明存放的位置,則默認(rèn)存放在片內(nèi)的位置,則默認(rèn)存放在片內(nèi)RAM中,即是一個中,即是一個data類型的類型的變量。變量。數(shù)據(jù)聲明的格式數(shù)據(jù)聲明的格式1、設(shè)置修飾符來分配存儲空間、設(shè)置修飾符來分配存儲空間Copyright CUGB2021年12月12日星期日存儲類型尋址空間數(shù)據(jù)長度值域范圍data片內(nèi)直接尋址 RAM80127idata片內(nèi)間接尋址 RAM80255pdata分頁尋址,片外 RAM80255xdata片外數(shù)據(jù)存儲 (64K)16065535code片內(nèi)統(tǒng)一編址ROM(64K)16065535bdata片內(nèi)可位尋址的RAM(16byt

35、e)10127存儲類型存儲類型Copyright CUGB2021年12月12日星期日data區(qū)區(qū) 對對data區(qū)的尋址是最快的,所以應(yīng)把使用頻率高的變量放在區(qū)的尋址是最快的,所以應(yīng)把使用頻率高的變量放在data區(qū),區(qū),data區(qū)除了包含程序變量外,還包含了堆棧和寄存區(qū)除了包含程序變量外,還包含了堆棧和寄存器組器組data區(qū)。在區(qū)。在SMALL存儲模式下,未說明存儲器類型時存儲模式下,未說明存儲器類型時,變量默認(rèn)被定位在,變量默認(rèn)被定位在data區(qū)。標(biāo)準(zhǔn)變量和用戶自定義變量都區(qū)。標(biāo)準(zhǔn)變量和用戶自定義變量都可以存儲在可以存儲在data區(qū),只要不超過區(qū),只要不超過data區(qū)的范圍。區(qū)的范圍。 un

36、signed char data system_status=0; unsigned int data unit_id2; idata區(qū)也可以存放使用比較頻繁的變量,使用寄存器作為區(qū)也可以存放使用比較頻繁的變量,使用寄存器作為指針進(jìn)行尋址。在寄存器中設(shè)置指針進(jìn)行尋址。在寄存器中設(shè)置8位地址進(jìn)行間接尋址,與位地址進(jìn)行間接尋址,與外部存儲器尋址比較,它的指令執(zhí)行周期和代碼長度都比外部存儲器尋址比較,它的指令執(zhí)行周期和代碼長度都比較短。較短。 char idata inp_string16; float idata outp_value;idata區(qū)區(qū)Copyright CUGB2021年12月12

37、日星期日bdata區(qū)區(qū) 當(dāng)在當(dāng)在data區(qū)的位尋址區(qū)定義變量,這個變量就可進(jìn)行位尋區(qū)的位尋址區(qū)定義變量,這個變量就可進(jìn)行位尋址,并且聲明位變量。這對狀態(tài)寄存器來說十分有用,可址,并且聲明位變量。這對狀態(tài)寄存器來說十分有用,可以單獨使用變量的每一位。下面是一些在以單獨使用變量的每一位。下面是一些在bdata區(qū)中聲明變區(qū)中聲明變量和使用位變量的例子。量和使用位變量的例子。 unsigned int bdata status_word; sbit stat_flag=status_byte4; if(status_word15) stat_flag=1; pdata和和xdata區(qū)區(qū) 對對pdata

38、和和xdata的操作是相似的,對的操作是相似的,對pdata區(qū)尋址比對區(qū)尋址比對xdata區(qū)尋址要快,因為對區(qū)尋址要快,因為對pdata區(qū)尋址只需要裝入?yún)^(qū)尋址只需要裝入8位地位地址,而對址,而對xdata區(qū)尋址需裝入?yún)^(qū)尋址需裝入16位地址。所以盡量把外部位地址。所以盡量把外部數(shù)據(jù)存儲在數(shù)據(jù)存儲在pdata區(qū)中,對區(qū)中,對pdata和和xdata尋址要使用尋址要使用MOVX指令,需要指令,需要2個處理周期。個處理周期。pdata區(qū)只有區(qū)只有256B,而,而Xdata區(qū)可達(dá)區(qū)可達(dá)65536B,舉例如下。,舉例如下。 unsigned char xdata system_status=0; char

39、 xdata inp_string16;Copyright CUGB2021年12月12日星期日CODE區(qū)區(qū) CODE區(qū)即區(qū)即80C51的程序代碼區(qū),所以代碼區(qū)的數(shù)的程序代碼區(qū),所以代碼區(qū)的數(shù)據(jù)是不可改變的,據(jù)是不可改變的,80C51的代碼區(qū)不可重寫。一般的代碼區(qū)不可重寫。一般代碼區(qū)中可存放數(shù)據(jù)表,跳轉(zhuǎn)向量和狀態(tài)表,對代碼區(qū)中可存放數(shù)據(jù)表,跳轉(zhuǎn)向量和狀態(tài)表,對CODE區(qū)的訪問和對區(qū)的訪問和對xdata區(qū)的訪問的時間是一樣區(qū)的訪問的時間是一樣的,代碼區(qū)中的對象在編譯時初始化,否則就得不的,代碼區(qū)中的對象在編譯時初始化,否則就得不到想要的值。下面是代碼區(qū)的聲明例子。到想要的值。下面是代碼區(qū)的聲明例

40、子。 unsigned int code unit_id2=0 x1234, 0 x89ab; unsigned char code uchar_data16 =0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07, 0 x08,0 x09,0 x10,0 x11,0 x12,0 x13,0 x14,0 x15;Copyright CUGB2021年12月12日星期日data - 可尋址片內(nèi)ram, 0 x00-0 x7f idata - 可尋址片內(nèi)ram,允許訪問全部內(nèi)部ram, 0 x00-0 xff xdata - 可尋址片外ram (64k 地

41、址范圍0-FFFFH)code - 程序存儲區(qū) (64k 地址范圍)Copyright CUGB2021年12月12日星期日代碼示例代碼示例Copyright CUGB2021年12月12日星期日2、KEIL設(shè)置設(shè)置Target來分配存儲空間來分配存儲空間Copyright CUGB2021年12月12日星期日Copyright CUGB2021年12月12日星期日三、編程風(fēng)格三、編程風(fēng)格掌握良好的編程風(fēng)格:掌握良好的編程風(fēng)格:1、不同類型的文件分別歸類;、不同類型的文件分別歸類;2、實現(xiàn)模塊化編程;、實現(xiàn)模塊化編程;3、優(yōu)化代碼,充分利用存儲空間。、優(yōu)化代碼,充分利用存儲空間。Copyrig

42、ht CUGB2021年12月12日星期日1、不同類型文件分別歸類、不同類型文件分別歸類工程盡量存放于單獨文件夾。工程盡量存放于單獨文件夾。用戶代碼用戶代碼獨立存放于單獨文件夾。獨立存放于單獨文件夾。輸出文件輸出文件獨立存放于單獨文件夾。獨立存放于單獨文件夾。連接文件連接文件獨立存放于單獨文件夾。獨立存放于單獨文件夾。Copyright CUGB2021年12月12日星期日2、模塊化編程、模塊化編程模塊化設(shè)計的一些建議:模塊化設(shè)計的一些建議: A. 不要在主程序中寫入過長的代碼;不要在主程序中寫入過長的代碼; B. 為每個子程序編寫頭文件;為每個子程序編寫頭文件; C. 將相似功能的子程序?qū)懺?/p>

43、同一個源文件里。將相似功能的子程序?qū)懺谕粋€源文件里。子程序調(diào)用方法:子程序調(diào)用方法: 方法方法A:將各個子程序保存為:將各個子程序保存為*.c,聲明函數(shù)后調(diào)用;,聲明函數(shù)后調(diào)用; 方法方法B:包含頭文件調(diào)用。:包含頭文件調(diào)用。 Copyright CUGB2021年12月12日星期日模塊化編程方法模塊化編程方法B(建議建議)步驟一:創(chuàng)建頭文件步驟一:創(chuàng)建頭文件建立一個建立一個.c文件文件(源文件源文件)和和.h文件文件(頭文件頭文件),建議兩個文件同,建議兩個文件同名,名字體現(xiàn)代碼功能。名,名字體現(xiàn)代碼功能。步驟二:防重復(fù)包含處理步驟二:防重復(fù)包含處理在頭文件中加入如下代碼:在頭文件中加入如下代碼: #ifndef _XXXX_H_ #define _XXXX_H_ -全局全局變量及變量及全局全局函數(shù)聲明;函數(shù)聲明; #endif這樣處理確保這樣處理確保.h文件內(nèi)的有效內(nèi)容不被重復(fù)編譯。文件內(nèi)的有效內(nèi)容不被重復(fù)編譯

溫馨提示

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

評論

0/150

提交評論