項(xiàng)目1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)入門實(shí)踐_第1頁
項(xiàng)目1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)入門實(shí)踐_第2頁
項(xiàng)目1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)入門實(shí)踐_第3頁
項(xiàng)目1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)入門實(shí)踐_第4頁
項(xiàng)目1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)入門實(shí)踐_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、任務(wù)任務(wù)1控制控制1只發(fā)光二極管閃爍顯示只發(fā)光二極管閃爍顯示搭建單片機(jī)控制一只發(fā)光二極管閃爍顯示的電路,在Keil Vision4集成開發(fā)環(huán)境中新建一個(gè)Keil工程,將給定的控制發(fā)光二極管閃爍顯示程序添加到Keil工程中,編譯生成單片機(jī)可執(zhí)行的hex文件,然后用STC-ISP-6.63工具軟件將hex文件下載至單片機(jī)應(yīng)用系統(tǒng)中,觀察發(fā)光二極管的顯示效果?!救蝿?wù)要求】【任務(wù)要求】【相關(guān)知識】【相關(guān)知識】完成本任務(wù)所需要的知識主要有單片機(jī)的引腳功能、單片機(jī)的存儲組織結(jié)構(gòu)、C51程序的特點(diǎn)、Keil4和STC-ISP-6.63等開發(fā)工具的使用方法等。其中,Keil4和STC-ISP-6.63等開發(fā)工

2、具的使用將在任務(wù)實(shí)施中介紹。單片機(jī)的引腳功能單片機(jī)的引腳功能1腳腳20腳腳21腳腳40腳腳圖圖1-1 STC89C51外型外型MCS-51單片機(jī)有許多產(chǎn)品,不同產(chǎn)品的單片機(jī)其內(nèi)核相同。STC89C51是MCS-51單片機(jī)的一個(gè)品種,它有DIP-40、PLCC-44、TQFP-44等幾種封裝形式。其中DIP-40封裝形式的單片機(jī)的外型如圖左所示。雙向雙向8位并行端口位并行端口P3雙向雙向8位并行端口位并行端口P2雙向雙向8位并行端口位并行端口P1 程序存儲器選擇控制端。該腳接高電平,系統(tǒng)從片內(nèi)程序存儲器中開始執(zhí)行程序。該腳接地,系統(tǒng)從片外程序存儲器中開始執(zhí)行程序STC89C51引腳配置引腳配置V

3、CC5V電源腳 外部程序存儲器讀選通信號輸出引腳ALE地址鎖存控制信號輸出引腳EAPSENRST復(fù)位信號輸入端,用于外接復(fù)位電路XTAL2內(nèi)部振蕩電路的輸出端XTAL1內(nèi)部振蕩電路的輸入端GND接地引腳雙向雙向8位并行端口位并行端口P0振蕩器:外接晶振和微調(diào)電容構(gòu)成單片機(jī)的時(shí)鐘電路,用來產(chǎn)生單片機(jī)內(nèi)部各部件同步工作的時(shí)鐘信號。 并行端口:MCS-51單片機(jī)有4個(gè)8位并行輸入/輸出端口(P0、P1、P2、P3),可以實(shí)現(xiàn)數(shù)據(jù)的并行輸入/輸出。單片機(jī)是在單一芯片上構(gòu)成的微型計(jì)算機(jī),MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如下圖單片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu)中斷系統(tǒng):MCS-51單片機(jī)有5個(gè)中斷源,2個(gè)

4、來自外部,3個(gè)來自內(nèi)部,具有2級中斷優(yōu)先級。串行端口:MCS-51單片機(jī)有一個(gè)全雙工的串行口,可以實(shí)現(xiàn)單片機(jī)與其他計(jì)算機(jī)之間進(jìn)行串行數(shù)據(jù)通信,也可以作為同步移位器使用,用于擴(kuò)展外部輸入/輸出端口。單片機(jī)是在單一芯片上構(gòu)成的微型計(jì)算機(jī),MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如下圖單片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu)特殊功能寄存器:用于設(shè)置單片機(jī)內(nèi)部電路的運(yùn)行方式,記錄單片機(jī)的運(yùn)行狀態(tài)程序存儲器:保存用戶程序和用戶表格數(shù)據(jù)。片內(nèi)數(shù)據(jù)存儲器:存放運(yùn)算的中間結(jié)果。定時(shí)/計(jì)數(shù)器:MCS-51單片機(jī)內(nèi)部有2個(gè)16位的定時(shí)/計(jì)數(shù)器,用于產(chǎn)生各種時(shí)標(biāo)間隔或者記錄外部事件的數(shù)量CPU:中央處理器,是單片機(jī)的核心,由運(yùn)算

5、器和控制器組成。單片機(jī)的存儲組織結(jié)構(gòu)單片機(jī)的存儲組織結(jié)構(gòu)MCS-51單片機(jī)有單片機(jī)有4個(gè)個(gè)存儲空間存儲空間:(4個(gè)存儲空間有不同的功能)片內(nèi)數(shù)據(jù)存儲器(片內(nèi)RAM)特殊功能寄存器(SFR)擴(kuò)展數(shù)據(jù)存儲器(擴(kuò)展RAM)程序存儲器(ROM)單片機(jī)的存儲組織結(jié)構(gòu)單片機(jī)的存儲組織結(jié)構(gòu)片內(nèi)RAM標(biāo)準(zhǔn)的MCS-51單片機(jī)片內(nèi)RAM只有128字節(jié),其地址范圍為0 x000 x7f,增強(qiáng)型的MCS-51單片機(jī)的片內(nèi)RAM有256字節(jié),地址范圍為0 x000 x ff,MCS-51單片機(jī)的片內(nèi)RAM的結(jié)構(gòu)如下圖所示。地址0 x000 x1f的區(qū)域?yàn)楣ぷ骷拇嫫鹘M區(qū)。這32個(gè)字節(jié)單元分為4組,每組8個(gè)字節(jié),稱為一個(gè)

6、工作寄存器組,如下圖所示。任何時(shí)刻CPU都只能使用其中的某一組工作寄存器。CPU正在使用的工作寄存器組稱為當(dāng)前工作寄存器組,依次用R0、R1、R7表示,主要用來傳遞參數(shù)或者臨時(shí)存放數(shù)據(jù)。地址0 x200 x2f的區(qū)域?yàn)槲坏刂穮^(qū),共16個(gè)字節(jié),在C51中稱這一區(qū)域?yàn)閎data 區(qū),其特點(diǎn)是,每個(gè)字節(jié)都分配有一個(gè)位地址,共128位,每一位都可以單獨(dú)訪問,從0 x20單元的最低位到0 x2f的最高位各位的位地址依次為0 x00、0 x010 x7f.如下圖所示。Bdata區(qū)常用作位變量的存儲器。地址0 x300 x7f的區(qū)域?yàn)閿?shù)據(jù)緩沖區(qū)1,用來存放運(yùn)算過程中的中間值。地址0 x800 xff的區(qū)域?yàn)?/p>

7、數(shù)據(jù)緩沖區(qū)2,也是用來存放運(yùn)算過程中的中間值。單片機(jī)的存儲組織結(jié)構(gòu)單片機(jī)的存儲組織結(jié)構(gòu)標(biāo)準(zhǔn)的MCS-51單片機(jī)有21個(gè)SFR,不連續(xù)地分配在0 x800 xff地址區(qū)中,用來設(shè)置單片機(jī)內(nèi)部電路的運(yùn)行方式,記錄單片機(jī)的運(yùn)行狀態(tài),以及實(shí)現(xiàn)I/O端口的讀寫操作。21個(gè)SFR的地址分配及其功能如下表所示。符號符號地址地址功能功能P0P00 x800 x80P0P0口映射口映射SFR。對。對P0讀讀/寫,可實(shí)現(xiàn)對寫,可實(shí)現(xiàn)對P0端口的輸入端口的輸入/輸出操作輸出操作SPSP0 x810 x81CPUCPU內(nèi)部的堆棧指針寄存器的映射特殊功能寄存器內(nèi)部的堆棧指針寄存器的映射特殊功能寄存器DPLDPL0 x8

8、20 x82數(shù)據(jù)指針寄存器數(shù)據(jù)指針寄存器DPTR的低字節(jié)映射特殊功能寄存器的低字節(jié)映射特殊功能寄存器DPHDPH0 x830 x83數(shù)據(jù)指針寄存器數(shù)據(jù)指針寄存器DPTR的高字節(jié)映射特殊功能寄存器的高字節(jié)映射特殊功能寄存器PCONPCON0 x870 x87電源控制寄存器電源控制寄存器(2)特殊特殊功能寄存器功能寄存器(SFR)符號符號地址地址功能功能TCONTCON0 x880 x88定時(shí)定時(shí)/計(jì)數(shù)器的控制寄存器計(jì)數(shù)器的控制寄存器TMODTMOD0 x890 x89定時(shí)定時(shí)/計(jì)數(shù)器的模式控制寄存器計(jì)數(shù)器的模式控制寄存器TL0TL00 x8a0 x8a定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0的計(jì)數(shù)器低字節(jié)的計(jì)

9、數(shù)器低字節(jié)TL1TL10 x8b0 x8b定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1的計(jì)數(shù)器低字節(jié)的計(jì)數(shù)器低字節(jié)TH0TH00 x8c0 x8c定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0的計(jì)數(shù)器高字節(jié)的計(jì)數(shù)器高字節(jié)TH1TH10 x8d0 x8d定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1的計(jì)數(shù)器高字節(jié)的計(jì)數(shù)器高字節(jié)P1P10 x900 x90P1P1口映射口映射SFR。對。對P1讀讀/寫,可實(shí)現(xiàn)對寫,可實(shí)現(xiàn)對P1端口的輸入端口的輸入/輸出操作輸出操作SCONSCON0 x980 x98串行端口控制寄存器串行端口控制寄存器SBUFSBUF0 x990 x99串行端口數(shù)據(jù)緩沖器串行端口數(shù)據(jù)緩沖器P2P20 xa00 xa0P2P2口映射口映射S

10、FR。對。對P2讀讀/寫,可實(shí)現(xiàn)對寫,可實(shí)現(xiàn)對P2端口的輸入端口的輸入/輸出操作輸出操作IEIE0 xa80 xa8中斷允許控制寄存器中斷允許控制寄存器P3P30 xb00 xb0P3P3口映射口映射SFR。對。對P3讀讀/寫,可實(shí)現(xiàn)對寫,可實(shí)現(xiàn)對P3端口的輸入端口的輸入/輸出操作輸出操作IPIP0 xb80 xb8中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器PSWPSW0 xd00 xd0程序狀態(tài)字寄存器,用來記錄程序運(yùn)行的狀態(tài)程序狀態(tài)字寄存器,用來記錄程序運(yùn)行的狀態(tài)ACCACC0 xe00 xe0累加器累加器A的映射特殊功能寄存器的映射特殊功能寄存器B B0 xf00 xf0B B寄存器的映射

11、特殊功能寄存器寄存器的映射特殊功能寄存器(3)擴(kuò)展數(shù)據(jù)存儲器擴(kuò)展數(shù)據(jù)存儲器也叫外部數(shù)據(jù)存儲器,用來存放運(yùn)算過程中的中間值,通過在單片機(jī)外部擴(kuò)展RAM芯片來實(shí)現(xiàn)。MCS-51單片機(jī)具有16根地址線,單片機(jī)外部最多可以擴(kuò)展64KB的外部數(shù)據(jù)存儲器,地址范圍為0 x00000 xffff。在C51中,擴(kuò)展數(shù)據(jù)存儲器叫做xdata區(qū),其中高8位地址相同的256字節(jié)的區(qū)域?yàn)閜data區(qū)。單片機(jī)的存儲組織結(jié)構(gòu)單片機(jī)的存儲組織結(jié)構(gòu)(4)程序存儲器(ROM)共64KB的空間,地址范圍為0 x00000 xffff,通過外接ROM芯片來實(shí)現(xiàn),用來存放用戶程序和用戶表格數(shù)據(jù),C51中稱程序存儲器為code區(qū)。現(xiàn)代

12、的MCS-51單片機(jī)內(nèi)部一般都集成有一定數(shù)量的程序存儲器,片內(nèi)的程序存儲器位于從0 x0000開始的地址低端。例如STC89C51單片機(jī)內(nèi)就集成有4KB的程序存儲器,地址范圍為0 x00000 x0fff,其程序存儲器的結(jié)構(gòu)如下圖所示,圖中陰影部分為CPU實(shí)際訪問的程序存儲器。 單片機(jī)的存儲組織結(jié)構(gòu)單片機(jī)的存儲組織結(jié)構(gòu)(4)程序存儲器(ROM) =0( 引腳接地)時(shí),CPU只訪問片外擴(kuò)展程序存儲器,所有的程序和用戶表格數(shù)據(jù)必須固化在片外擴(kuò)展的程序存儲器中。EAEA =1( 引腳接高電平)時(shí),CPU在訪問0 x00000 x0fff范圍內(nèi)的程序存儲器時(shí),訪問片內(nèi)程序存儲器而不訪問片外的程序存儲器

13、,地址范圍超過1F0XFF后CPU自動訪問片外程序存儲器EAEA單片機(jī)的最小系統(tǒng)單片機(jī)的最小系統(tǒng)單片機(jī)的最小系統(tǒng)是指保證單片機(jī)能獨(dú)立工作所必須要的外部電路,包括時(shí)鐘電路、復(fù)位電路、存儲器電路和電源電路。時(shí)鐘電路時(shí)鐘電路時(shí)鐘電路用來產(chǎn)生時(shí)鐘脈沖信號,單片機(jī)缺少了時(shí)鐘信號就無法工作。單片機(jī)的內(nèi)部有一個(gè)高增益的放大電路,XTAL1是放大電路的輸入端,XTAL2是放大器的輸出端,XTAL1、XTLAL2引腳間接上晶振Y后就構(gòu)成了自激振蕩電路,它所產(chǎn)生的脈沖信號的頻率就是晶振的固有頻率。 MCS-51單片機(jī)常用的時(shí)鐘電路如下圖所示。圖中晶振Y起反饋選頻作用,它的頻率的高低決定了單片機(jī)運(yùn)行速度的快慢。單片

14、機(jī)系統(tǒng)中通常選用6MHz或者12MHz的晶振,如果系統(tǒng)中使用了串行通信,一般選擇11.0592MHz的晶振。電容C1、C2為振蕩微調(diào)電容,可以加快起振,同時(shí)起到穩(wěn)定頻率和微調(diào)振蕩頻率的作用。實(shí)際應(yīng)用中,C1、C2的容量相等,一般取5pF30pF。在裝配電路時(shí),為了減少寄生電容,保證電路可靠工作,要求晶振Y和電容C1、C2要盡可能地安裝在XTAL1、XTAL2引腳的附近。時(shí)鐘電路時(shí)鐘電路在單片機(jī)應(yīng)用中,常涉及與時(shí)鐘有關(guān)的概念有時(shí)鐘周期和機(jī)器周期,它們是單片機(jī)內(nèi)部計(jì)算其他時(shí)間的基本單位。時(shí)鐘周期(Tosc):又稱為振蕩周期,即時(shí)鐘信號的周期。若晶振的頻率為fosc,則Tosc=1/fosc。機(jī)器周

15、期(MC):CPU完成一個(gè)基本操作所需要的時(shí)間。標(biāo)準(zhǔn)的MCS-51單片機(jī)的一個(gè)機(jī)器周期包括12個(gè)振蕩周期。即MC=12/fosc。復(fù)位電路復(fù)位電路復(fù)位電路的作用是,為單片機(jī)產(chǎn)生復(fù)位信號,保證單片機(jī)上電后從一個(gè)確定的狀態(tài)開始工作。MCS-51單片機(jī)的復(fù)位條件是,時(shí)鐘信號建立后,RST引腳上加上至少2個(gè)機(jī)器周期的高電平。常用的復(fù)位電路如下圖所示。復(fù)位電路復(fù)位電路圖a是上電復(fù)位電路,由RC充電電路構(gòu)成。上電時(shí),電源通過電阻R1對電容C1充電,由于電容兩端電壓不能突變,RST端為高電平。過一段時(shí)間后,電容兩端電荷充滿,電容等效為開路,RST端為低電平。由此可見,RST端的高電平持續(xù)時(shí)間取決于RC電路的

16、充電時(shí)間常數(shù),合理選擇C1和R1就可以實(shí)現(xiàn)上電復(fù)位。上電后,振蕩電路起振要經(jīng)歷一個(gè)振蕩建立時(shí)間,不同頻率的振蕩器,振蕩建立時(shí)間不同,因此系統(tǒng)中所使用的晶振的頻率不同,上電復(fù)位電路的參數(shù)不同。通常要求上電時(shí)RST復(fù)位高電平能持續(xù)10ms以上,R1、C1的取值一般為:C1=1030F,R1=1K10K。晶振頻率為6MHz時(shí),可取C1=22F,R1=1 K晶振頻率為12MHz時(shí),可取C1=10F,R1=8.2 K圖b是常用的按鍵復(fù)位電路,圖中C1、R1為上電復(fù)位電路,S、R2構(gòu)成開關(guān)復(fù)位電路。單片機(jī)正常工作時(shí),按下按鍵S,C1兩端電荷經(jīng)R2迅速放電,S斷開后,由C1、R1及電源將完成對單片機(jī)的復(fù)位操

17、作。在上述電路中,R2的取值一般為0200,C1、R1按上電復(fù)位電路的設(shè)計(jì)而取值。復(fù)位電路的作用非常重要,能否成功復(fù)位關(guān)系到單片機(jī)系統(tǒng)能否正常運(yùn)行的問題。如果振蕩電路正常而單片機(jī)系統(tǒng)不能正常運(yùn)行,其主要原因是單片機(jī)沒有完成復(fù)位操作。這時(shí)可以適當(dāng)?shù)卣{(diào)整上電復(fù)位電路的阻容值,增加其充電時(shí)間常數(shù)來解決問題。單片機(jī)復(fù)位后, 21個(gè)特殊功能寄存器將回復(fù)到初始狀態(tài),復(fù)位不改變片內(nèi)RAM的內(nèi)容。復(fù)位后特殊功能寄存器的初始狀態(tài)如表1-3所示。表1-3MCS-51單片機(jī)復(fù)位后特殊功能寄存器的初始狀態(tài)特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)A0 x00TMOD0 x00B0 x00TCON0 x00PSW0

18、x00TH00 x00SP0 x07TL00 x00DPL0 x00TH10 x00DPH0 x00TL10 x00P0P30 xffSBUF不定IPxxx00000BSCON0 x00IE0 xx00000BPCON0 x00【說明】表中x表示該位為隨機(jī)狀態(tài)PSW=0 x00,表明復(fù)位后單片機(jī)使用第0組工作寄存器組SP=0 x07,表明堆棧指針指向片內(nèi)RAM 0 x07單元,0 x07以后的單元為堆棧區(qū),第一個(gè)壓入堆棧的數(shù)據(jù)存放在片內(nèi)RAM 0 x08單元中?,F(xiàn)代的MCS-51單片機(jī)片內(nèi)除了有片內(nèi)RAM外,一般還集成有一定容量的程序存儲器,有些單片機(jī)片內(nèi)還集成有一定容量的擴(kuò)展RAM,在這類單

19、片機(jī)的外部接上時(shí)鐘電路、復(fù)位電路,將其VCC和GND引腳分別接上+5V電源和地,然后將 引腳接高電平就構(gòu)成了單片機(jī)的最小系統(tǒng),以STC89C51單片機(jī)為例,STC89C51單片機(jī)的最小系統(tǒng)電路如下圖所示。最小系統(tǒng)電路最小系統(tǒng)電路EAC51程序的特點(diǎn)程序的特點(diǎn)#include/包含51寄存器頭文件(reg51.h)sbitled=P10;/led引腳定義voiddelay(void);/函數(shù)說明voidmain(void)/主函數(shù)while(1)/while循環(huán)(永遠(yuǎn)為真,死循環(huán))/循環(huán)體開始led=led;/發(fā)光二級管的顯示狀態(tài)取反delay();/延時(shí)500ms/循環(huán)體結(jié)束/主函數(shù)結(jié)束voi

20、ddelay(void)/delay子函數(shù),返回值為空unsignedlongi;/定義長整形變量ifor(i=0;i12500;i+);/for循環(huán),循環(huán)體為空,耗時(shí)/delay函數(shù)結(jié)束任務(wù)任務(wù)1中,用中,用P1.0口線控制口線控制1只發(fā)光二極管閃爍顯示的程序如下只發(fā)光二極管閃爍顯示的程序如下:從上述程序可以看出,C51程序有如下特點(diǎn):C51程序由一個(gè)main函數(shù)和若干個(gè)其他函數(shù)組成。函數(shù)是C51程序的基本單位。C51程序中有且只有一個(gè)main函數(shù),main函數(shù)可以放在程序中任意位置,無論main函數(shù)放在何處,C51程序總是從main函數(shù)開始執(zhí)行的。其他函數(shù)根據(jù)程序的需要可以為0個(gè)也可以是多

21、個(gè),其他函數(shù)可以放在程序中的任意位置。C51程序中,語句由分號(;)結(jié)尾,分號是語句的組成部分。函數(shù)是由若干條語句組成的。一條語句可以分多行寫書,一行內(nèi)也可以書寫多條語句。C51程序中的注釋有“/注釋”和“/*注釋*/”兩種形式。其中“/注釋”為單行注釋,“/”表示注釋開始,在本行內(nèi),“/”后面的內(nèi)容為注釋的內(nèi)容?!?*注釋*/”可以對多行注釋,“/*”為注釋的開始,“*/”為注釋的結(jié)束,“/*”和“*/”之間的內(nèi)容為注釋內(nèi)容。C51程序中大小寫字母有別,標(biāo)點(diǎn)符號要用半角方式錄入。【任務(wù)實(shí)施】【任務(wù)實(shí)施】1、搭建電路搭建電路電路圖根據(jù)任務(wù)要求,我們選用P1.0口線(單片機(jī)的1腳線)作為發(fā)光二極

22、管的控制口,則實(shí)現(xiàn)本任務(wù)要求的硬件電路如下圖所示。1、搭建電路搭建電路由圖可看出,任務(wù)1的硬件電路是在單片機(jī)最小系統(tǒng)的基礎(chǔ)上再加上發(fā)光二極管控制電路而構(gòu)成的。在MFSC-2實(shí)驗(yàn)平臺上,用單芯扁平線將J3的P10腳與J9的D0腳相接,就構(gòu)成了上述電路。元器件清單元器件清單元元件件規(guī)格規(guī)格元元件件規(guī)格規(guī)格元元件件規(guī)格規(guī)格C1C130pF30pF瓷片電瓷片電容容R1R18.2K8.2K普通普通電阻電阻D1D13紅色發(fā)光二紅色發(fā)光二極管極管C2C230pF30pF瓷片電瓷片電容容R2R21K1K普通電普通電阻阻U1U1STC89C51RCSTC89C51RC單單片機(jī)片機(jī)C3C31010F/16VF/1

23、6V電電解電容解電容Y1Y111.0592MH11.0592MHz z晶振晶振任務(wù)任務(wù)1元件清單元件清單2、安裝安裝USB轉(zhuǎn)串口的驅(qū)動程序轉(zhuǎn)串口的驅(qū)動程序安裝USB驅(qū)動的操作步驟如下:(1)從本書附件資料中找到USB轉(zhuǎn)串口驅(qū)動程序CH341SER.exe,然后雙擊驅(qū)動程序文件圖標(biāo)“”,打開如下圖所示的驅(qū)動安裝對話框。(2)在“驅(qū)動安裝”對話框的“選擇INF文件”下拉列表框中選擇“CH341SER.INF”列表項(xiàng),然后單擊“安裝”按鈕,系統(tǒng)就開始執(zhí)行安裝程序,驅(qū)動程序安裝結(jié)束后會自動彈出如下圖所示的驅(qū)動安裝成功提示框?!菊f明】USB轉(zhuǎn)串口的驅(qū)動程序僅需安裝一次,如果系統(tǒng)中已經(jīng)安裝了USB轉(zhuǎn)串口的

24、驅(qū)動程序,請?zhí)^此步。本例中所用的驅(qū)動程序?yàn)镃H340的驅(qū)動程序,如果用戶使用的USB轉(zhuǎn)串口通信線是其他芯片構(gòu)成的,請參照上述方法安裝其對應(yīng)的驅(qū)動程序。查看查看USB口映射的串口號口映射的串口號查看串口號的操作方法如下:(1)將含有CH340芯片的USB轉(zhuǎn)串口通信線插入計(jì)算機(jī)的某個(gè)USB口中。(2)在桌面上右擊“我的電腦”圖標(biāo),在彈出的快捷菜單中單擊“屬性”菜單命令,打開如右圖所示的“系統(tǒng)屬性”對話框。(3)在“系統(tǒng)屬性”對話框中單擊“硬件”選項(xiàng)卡標(biāo)簽,然后在“硬件”選項(xiàng)卡中單擊“設(shè)備管理器”按鈕,打開如下圖所示的“設(shè)備管理器”窗口。(4)在“設(shè)備管理器”窗口中單擊“端口”左邊的“+”號,展開

25、“端口”項(xiàng),“端口”項(xiàng)下面會出“USB-SERIAL CH340”項(xiàng)(參考圖1-16)。該項(xiàng)右邊的COMX就是當(dāng)前USB口所映射的串口號,例如圖中所表示的是當(dāng)前的USB口所映射的串口號為COM3,后續(xù)計(jì)算機(jī)通過該USB口向單片機(jī)下載程序或者調(diào)試單片機(jī)應(yīng)用程序時(shí),選擇串口編號時(shí)就應(yīng)該選擇COM3。【說明】本書配套的實(shí)訓(xùn)平臺上板載了CH340芯片,如果用戶選用的是本書配套的實(shí)訓(xùn)平臺,則只需用普通的USB線將實(shí)訓(xùn)平臺與計(jì)算機(jī)相連即可,如果用戶的實(shí)訓(xùn)平臺是自己搭建的,則需按本書任務(wù)14中所介紹的方法制USB轉(zhuǎn)串口的通信線。上述觀察映射串口號的方法是在Windows XP環(huán)境中進(jìn)行的,如果用戶計(jì)算機(jī)使用

26、的是其他操作系統(tǒng),請參照上述方法進(jìn)行操作。不同的USB所映射的串口號不同,在實(shí)驗(yàn)中更換了USB口則需按上述方法查看其所映射的串行口。4、在在keil中添加中添加STC單片機(jī)單片機(jī)STC單片機(jī)是宏晶公司生產(chǎn)的新型51單片機(jī),不在keil所羅列的51單片機(jī)之列,用keil集成開發(fā)環(huán)境開發(fā)STC單片機(jī)應(yīng)用程序時(shí)需要在keil中添加STC單片機(jī)。在keil中添加STC單片機(jī)的操作方法如下:安裝好keil Vision4,并記下安裝目錄。從宏晶公司網(wǎng)站上下載STC單片機(jī)的ISP下載編程燒錄軟件STC_ISP_6.63。宏晶公司的網(wǎng)址為http:/www.STCMCU.com。雙擊STC_ISP軟件圖標(biāo)“

27、”,打開如下圖所示的“STC-ISP”窗口。1單擊左移右移按鈕2單擊標(biāo)簽名3單擊按鈕在“STC-ISP”窗口中單擊右上角的左移“”或者右移“ ”按鈕,使窗口中出現(xiàn)“keil仿真設(shè)置”標(biāo)簽,然后單擊“keil仿真設(shè)置”標(biāo)簽名,使“keil仿真設(shè)置”標(biāo)簽成為當(dāng)前標(biāo)簽。在“keil仿真設(shè)置”標(biāo)簽中單擊“添加MCU型號到keil中”按鈕,打開如下圖所示的“瀏覽文件夾”對話框。 圖1-18 瀏覽文件夾對話框圖1-19 添加成功提示【說明】在keil中添加STC單片機(jī)的實(shí)質(zhì)是在keil安裝目錄中添加“stc.cdb”文件以及“STC89C5xRC.h”、“STC12C5410AD.h”、“STC12C5A

28、60S2.h” 、“STC15F104E.h” 、“STC15F2K60S2.h”等幾個(gè)定義特殊功能寄存器的頭文件。安裝好keil集成開發(fā)軟件后,僅需向keil中添加一次STC單片機(jī),以后使用keil集成開發(fā)軟件時(shí)就不必再添加STC單片機(jī)了。5、建立建立keil工程工程用C51開發(fā)單片機(jī)應(yīng)用程序一般是在Keil集成開發(fā)環(huán)境中進(jìn)行的,需要先建立一個(gè)Keil工程,然后配置Keil工程,利用Keil的調(diào)試工具調(diào)試好應(yīng)用程序,最后將調(diào)試好的程序編譯并生成單片機(jī)可直接運(yùn)行的16進(jìn)制文件(hex文件)。以Keil Vision4為例,建立Keil工程的操作步驟如下:建立工程文件在D盤新建一個(gè)名為EX01文

29、件夾,用來保存工程中相關(guān)文件。雙擊桌面上的“Keil Vision4”快捷圖標(biāo)“ ”,打開如下圖所示的Keil Vision4窗口。輸出窗口Project標(biāo)簽顯示工程的結(jié)構(gòu)工程管理窗口Function標(biāo)簽顯示工程中的函數(shù)Books標(biāo)簽顯示CPU的附加說明文件工具圖標(biāo)按鈕Templates標(biāo)簽顯示常用結(jié)構(gòu)模板狀態(tài)欄單擊菜單欄上的“project”“new project”菜單,打開如下圖所示的新建工程對話框在此處輸入工程名單擊此按鈕選擇文件夾此區(qū)域?yàn)槲募斜砜?,用于顯示文件夾中的文件在此處選擇工程類型在新建工程對話框中單擊“保存在”下拉列表框,從中選擇保存工程文件的文件夾“D:EX01”(第1步

30、中新建的文件夾),在“文件名(N)”文本框中輸入工程文件名“ex01”(無擴(kuò)展名),在“保存類型”下拉列表框中選擇“Project Files (*.uvproj)”列表項(xiàng),然后單擊“保存”按鈕,系統(tǒng)會出現(xiàn)如下圖所示的選擇CPU數(shù)據(jù)庫文件對話框。在選擇CPU數(shù)據(jù)庫對話框的下拉列表框中選擇“STC MCU Database”列表項(xiàng),然后單擊“OK”按鈕,打開如下圖所示的選擇單片機(jī)對話框。單擊此處選擇STC89C52RC單片機(jī)單片機(jī)類型單片機(jī)的性能介紹在選擇單片機(jī)對話框中單擊“STC”前面的“+”號,將“STC”單片機(jī)展開,然后單擊“STC89C52RC”,選擇本例實(shí)踐中所用的單片機(jī),然后再單擊“

31、OK”按鈕,打開如下圖所示的添加啟動代碼詢問框,此時(shí)可根據(jù)個(gè)人的愛好進(jìn)行選擇。本例中,我們不用系統(tǒng)提供的啟動程序代碼,需要單擊“否”按鈕。新建新建C51程序文件程序文件單擊菜單欄上的“File” “New”菜單或者單擊工具欄上的新建文件圖標(biāo)按鈕“ ”,這時(shí)Keil Vision4集成開發(fā)環(huán)境的右邊會出現(xiàn)文本編輯窗口,窗口標(biāo)簽上會顯示當(dāng)前新建文件的文件名“Text1*”,如下圖所示。 文本編輯窗口當(dāng)前編輯的文件單擊工具欄上的保存文件圖標(biāo)按鈕“ ”或者單擊菜單欄上的“File”“Save”菜單,系統(tǒng)會彈出保存文件對話框,在“文件名”文本框中輸入文件名“ex01.c”,然后單擊“保存”按鈕。這里的“

32、ex01.c”是本例的程序文件,其擴(kuò)展名為C,表示是C51程序文件。【說明】用keil新建文件時(shí),keil默認(rèn)的文件名為texti*(i=1、2、),此時(shí)文本編輯窗口上的標(biāo)簽顯示的是默認(rèn)的文件名,保存文件后,文本編輯窗口上的標(biāo)簽顯示的是保存后的文件名。C51程序文件實(shí)際上是一個(gè)文本文件,可以用任何文本編輯器新建和編輯。在程序代碼中,“/”后面的內(nèi)容為語句的注釋部分。本例中,這一部分可以暫不錄入。“/”是C語言程序的注釋符。程序中的標(biāo)點(diǎn)符號必須在半角狀態(tài)錄入。例如“;”(半角狀態(tài)下的分號)不能錄入成“;”(全角狀態(tài)下的分號)。如果事先已建立了C51程序文件,則跳過此步直接進(jìn)入第3步。在文本編輯窗

33、口中錄入我們在C51程序的特點(diǎn)中所介紹的任務(wù)1程序代碼。在Keil工程中添加程序文件在項(xiàng)目管理窗口中單擊“target 1”前面的“”號,然后用鼠標(biāo)右鍵單擊“Source Group 1”,在彈出來的快捷菜單中單擊“Add File to GroupSource Group 1”,如下圖所示。在上圖所示的添加文件對話框中,“查找范圍”下拉列表框內(nèi)顯示的是工程文件所在目錄“EX01”,“查找范圍”下面的列表框是文件列表框,顯示的是指定目錄中的指定類型的所有文件。單擊“文件類型”下拉列表框,從中選擇“C Source file(*.c)”(C語言源程序文件),此時(shí)文件列表框中將顯示EX01目錄中所

34、有C語言源程序文件,單擊剛才所建立的程序文件“ex01.c”,再單擊“Add”按鈕。此時(shí),源程序文件就添加至Keil工程中了。這時(shí)系統(tǒng)將會彈出如下圖所示的添加文件對話框?!菊f明】程序文件添加后,在Keil Vision4集成開發(fā)環(huán)境的工程管理窗口中,“Source Group 1”前面將出現(xiàn)一個(gè)“”號,單擊“”號可看到“Source Group 1”下面會出現(xiàn)所添加的文件“ex01.c”,表示程序文件已經(jīng)添加成功。但圖1-27的對話框仍保持不變,此時(shí)應(yīng)單擊“Close”按鈕關(guān)閉對話框,如果在對話框中再次單擊“Add”按鈕,則會出現(xiàn)如下圖所示的警告提示。 配置工程配置工程配置工程包括設(shè)置工程中所

35、使用的晶振頻率、輸出文件的種類及其形式、變量分配的空間等。配置工程的方法如下:用鼠標(biāo)右鍵單擊工程管理窗口中的“Target 1”,在彈出的快捷菜單中單擊“Option for Target Target 1”菜單項(xiàng),如下圖所示。這時(shí)系統(tǒng)會出現(xiàn)如下圖所示的“Option for Target Target 1”對話框。晶振的頻率是否選用片內(nèi)程序存儲器是否選用片內(nèi)擴(kuò)展RAM默認(rèn)狀態(tài)下變量分配的存儲空間程序代碼的大小選擇操作系統(tǒng)片 外 擴(kuò) 展RAM的起始地 址 及 大小片 外 擴(kuò) 展程 序 存 儲器 的 起 始地 址 及 大小Option for Target Target 1對話框非常復(fù)雜,共有1

36、1個(gè)頁面,包括對工程的方方面面的設(shè)置,在大多數(shù)情況下用戶只需對其中的少數(shù)項(xiàng)進(jìn)行設(shè)置。單擊target標(biāo)簽,系統(tǒng)會顯示target頁面,如圖1-30所示。Target頁面用來設(shè)置單片機(jī)的晶振頻率、變量的存儲空間分配等,各項(xiàng)的含義如下:“xtal”文本框:設(shè)置單片機(jī)所用晶振的頻率,用于模擬調(diào)試時(shí)確定程序執(zhí)行的時(shí)間,一般設(shè)置成實(shí)際硬件所使用的晶振頻率。默認(rèn)值為所選單片機(jī)可用的最高振蕩頻率?!癕emory model”下拉列表框:設(shè)置默認(rèn)狀態(tài)下變量分配的存儲空間。它有三個(gè)選項(xiàng),各選項(xiàng)的含義如下表所示Memory model的選項(xiàng)選項(xiàng)注釋含義Small小 型 模式所有變量都定義在data區(qū)內(nèi)(片內(nèi)RAM

37、 0 x000 x7f區(qū)域)Compact緊 湊 模式變量可以使用一頁擴(kuò)展RAM區(qū)域(pdata區(qū))。Large大 型 模式變量可使用64KB的擴(kuò)展RAM(xdata區(qū))?!癈ode Rom Size”下拉列表框:設(shè)置程序代碼的大小。有三個(gè)選項(xiàng),其含義如下表所示。Code Rom Size的選項(xiàng)選項(xiàng)注釋含義Small小型模式所有程序使用低2KB程序存儲器空間。Compact緊湊模式單個(gè)函數(shù)的代碼量不能超過2KB,整個(gè)程序可以使用64KB空間。Large大型模式可以使用全部64KB程序存儲空間?!癘perating system”下拉列表框:選擇操作系統(tǒng)。它有三個(gè)選項(xiàng),通常情況下選擇None(無

38、操作系統(tǒng))?!癠se On-chip ROM”多選鈕:是否選用片內(nèi)程序存儲器。此選項(xiàng)與代碼生成無關(guān)。“Use On-chip XRAM”多選鈕:是否選用片內(nèi)擴(kuò)展RAM。STC89C51單片機(jī)片內(nèi)集成有256B的擴(kuò)展RAM,此選項(xiàng)與代碼生成無關(guān)?!癘ff-chip Code memory”框架:設(shè)置片外擴(kuò)展程序存儲器的起始地址和大小?!癘ff-chip Xdata memory”框架:設(shè)置片外擴(kuò)展RAM的起始地址和大小。 單擊Output標(biāo)簽,顯示如下圖所示的Output頁面。Output頁面用來設(shè)置輸出文件的形式,除了“Create HEX File”多選鈕外,其他各項(xiàng)一般采用其默認(rèn)值。勾選“

39、Create HEX File”多選鈕,則對源程序編譯、連接后Keil會創(chuàng)建一個(gè)HEX文件,即生成可下載至單片機(jī)內(nèi)可執(zhí)行的十六進(jìn)制文件。默認(rèn)時(shí)該項(xiàng)沒選中,如果要將程序下載至單片機(jī)中做硬件實(shí)驗(yàn),則必須勾選此項(xiàng)。單擊Listing標(biāo)簽,顯示如下圖所示的Listing頁面。Listing頁面用來對列表文件進(jìn)行詳細(xì)設(shè)置。其中常用的是“C Compiler Listing”下面的“Assembly Code”選項(xiàng),選中此項(xiàng),則可以在列表文件中生成C語言源程序所對應(yīng)的匯編程序代碼,其他選項(xiàng)選一般選用系統(tǒng)的默認(rèn)值。單擊C51標(biāo)簽,顯示如下圖所示的C51頁面。C51頁面設(shè)置用于控制Keil的C51編譯器的編譯

40、過程。其中常用的設(shè)置項(xiàng)是“Code Optimization”框中的幾項(xiàng),其他項(xiàng)一般采用默認(rèn)設(shè)置?!癓evel”下拉列表框:編譯時(shí)的優(yōu)化等級。共有9個(gè)優(yōu)化等級,一般選用默認(rèn)的第8級,如果編譯中出現(xiàn)一些問題,可以降低優(yōu)化級別試一試?!癊mphasis”下拉列表框:編譯的優(yōu)先方式。共有三個(gè)選項(xiàng):Favor size:代碼量優(yōu)先,即生成的代碼量最少。Favor speed:速度優(yōu)先,即生成的代碼運(yùn)行速度最快。default:系統(tǒng)缺省項(xiàng)。默認(rèn)值是第二項(xiàng),通常情況下就選默認(rèn)項(xiàng)Favor speed?!癉ont use absolute register accesses”多選鈕:R0R7是否用絕對地址訪

41、問。用C51開發(fā)單片機(jī)應(yīng)用程序時(shí),R0R7一般不采用絕對地址訪問,需要勾選此項(xiàng)。單擊Debug標(biāo)簽,顯示如圖1-34所示的Debug頁面。Debug頁面用于設(shè)置程序的調(diào)式方式,如果選用軟件模擬調(diào)試,該頁一般采用默認(rèn)設(shè)置。如果選用的是硬件仿真調(diào)試,需要進(jìn)行如下設(shè)置:圖1-34 Debug頁面先單擊“Use”單選鈕,選擇硬件仿真,然后單擊“Use”右邊的下拉列表框,從中選擇“STC Monitor-51 Driver”列表項(xiàng),再單擊“Setting”按鈕,打開如下圖所示的設(shè)置仿真器對話框。選擇串口選擇波特率在右圖設(shè)置仿真器對話框中,單擊“COM Port”下拉列表框,從中選擇單片機(jī)與計(jì)算機(jī)相連的串

42、行口。單擊“Baudrate”下拉列表框,從中選擇單片機(jī)與計(jì)算機(jī)通信的波特率。單擊“OK”按鈕就完成了仿真器設(shè)置?!菊f明】在STC單片機(jī)中,以字符“IAP”開頭的單片機(jī)除了具備與其型號相對應(yīng)單片機(jī)的全部功能外,還具備硬件仿真功能,例如IAP15F2K60S2單片機(jī)與STC15F2K60S2相對應(yīng),IAP15F2K60S2單片機(jī)除了具備STC15F2K60S2的全部功能外,還具備硬件仿真功能,可以作硬件仿真器使用,STC Monitor-51 Driver是這類單片機(jī)作硬件仿真器使用時(shí)的仿真驅(qū)動程序,如果用戶使用的是其他仿真器,可以參考上述操作選擇對應(yīng)的仿真驅(qū)動程序。編譯、連接編譯、連接配置好工

43、程后就可以進(jìn)行編譯、連接了,以便生成單片機(jī)可以直接執(zhí)行的16進(jìn)制文件(HEX文件)。編譯、連接的方法是,單擊菜單欄上的“Project”“Build target”菜單。這時(shí),Keil集成開發(fā)環(huán)境下面的輸出窗口中就會顯示連接的結(jié)果,如圖1-36所示。如果源程序中存在語法上的錯誤,輸出窗口中將會有錯誤報(bào)告出現(xiàn),雙擊錯誤報(bào)告行,可以定位到出錯的位置。對源程序反復(fù)修改后最終會得到如下圖所示的結(jié)果。從右圖可以看出,連接后Keil生成了一個(gè)Hex文件(提示為Creating hex file from ”ex01”),該文件是單片機(jī)可直接執(zhí)行的文件,位于Keil工程目錄中,如果在圖1-31的Output

44、頁面中設(shè)置了輸出文件目錄,則該文件位于所設(shè)置的目錄中。提示生成了Hex文件錯誤數(shù)報(bào)告【說明】Project菜單中有三個(gè)與編譯、連接有關(guān)的子菜單,它們的含義如下:“Build target”:對當(dāng)前工程進(jìn)行連接,如果文件已修改,則先進(jìn)行編譯再進(jìn)行連接并產(chǎn)生目標(biāo)代碼?!癛ebuild all target files”:對當(dāng)前工程中所有文件重新編譯后再連接,并產(chǎn)生目標(biāo)代碼。“Translate”:只對源程序進(jìn)行編譯,不進(jìn)行連接,不產(chǎn)生目標(biāo)代碼。除了菜單外,Keil的工具欄中還提供了編譯、連接工具圖標(biāo),如下圖所示。這些圖標(biāo)按鈕與對應(yīng)的菜單命令的功能一致。輸出窗口中顯示錯誤數(shù)為0時(shí),只表明源程序無語法

45、上的錯誤,并不能代表源程序無邏輯上的錯誤。調(diào)試程序調(diào)試程序調(diào)試程序的目的是為了查找程序中的邏輯錯誤。在Keil Vision4中調(diào)試程序的方法是,跟蹤程序的運(yùn)行,查看程序運(yùn)行的結(jié)果。如果結(jié)果與理論值不符,表明程序存在邏輯錯誤,再逐條運(yùn)行程序中的相關(guān)語句,找出產(chǎn)生錯誤的語句,并修改程序,直至程序運(yùn)行的結(jié)果正確。在調(diào)試的過程中需要在程序中設(shè)置斷點(diǎn),采取全速運(yùn)行、單步運(yùn)行、過程單步等多種運(yùn)行方式反復(fù)運(yùn)行程,在程序運(yùn)行的過程中觀察相關(guān)變量的值。用Keil Vision4調(diào)試程序的步驟如下: 進(jìn)入調(diào)試狀態(tài)。編譯連接程序后,單擊菜單欄上的 “Debug”“Start/Stop Debug Session”

46、子菜單項(xiàng)或者單擊工具欄上的開始/停止調(diào)試圖標(biāo)按鈕“ ”,這時(shí)Keil Vision4會進(jìn)入調(diào)試狀態(tài),如下圖所示。在調(diào)試狀態(tài)下,Keil Vision4的窗口將會發(fā)生一系列的變化。其中,Debug菜單中的“Go”、“Step”、“Step Over”等幾個(gè)灰色不可執(zhí)行的子菜單項(xiàng)將變成黑色可執(zhí)行狀態(tài)。Keil Vision4的工具欄中會出現(xiàn)許多調(diào)試工具圖標(biāo)按鈕,這些調(diào)試工具圖標(biāo)按鈕的功能與Debug菜單中的菜單項(xiàng)相對應(yīng)?!菊f明】“開始/停止調(diào)試”命令具有開關(guān)特性,在調(diào)試狀態(tài)下單擊開始/停止調(diào)試圖標(biāo)按鈕“ ” Keil Vision4將退出調(diào)試狀態(tài)而進(jìn)入編輯狀態(tài)。顯示顯示“Registers”窗口窗

47、口?!癛egisters”窗口的功能是顯示單片機(jī)內(nèi)部的主要寄存器以及這些寄存器的當(dāng)前值。顯示“Registers”窗口的操作方法是,單擊菜單欄上的“View” “Registers Window”菜單命令或者單擊調(diào)試工具欄上的顯示寄存器窗口圖標(biāo)按鈕“ ”。顯示觀察窗口。顯示觀察窗口。觀察窗口包括Locals、Watch 1和Watch 2三個(gè)觀察窗口。其中Locals窗口用來顯示當(dāng)前執(zhí)行函數(shù)中的變量值,Watch1窗口和Watch2的功能相同,用來顯示指定變量的當(dāng)前值。顯示Locals窗口的方法是,單擊菜單欄上的“View”“Watch Window” “Locals”菜單命令或者在調(diào)試工具欄

48、上單擊觀察窗口圖標(biāo)按鈕“ ”右邊的下拉箭頭“ ”,在彈出的快捷菜單中單擊“Locals”菜單命令。Locals窗口如下圖所示。在上圖中,當(dāng)前執(zhí)行的函數(shù)是delay,Local窗口中顯示的是單片機(jī)在執(zhí)行到箭頭所指行時(shí),delay函數(shù)中各變量的值。Registers窗口中顯示的是當(dāng)前單片機(jī)中各寄存器的值,其中sec顯示的是程序執(zhí)行到當(dāng)前行時(shí)所用的時(shí)間,此時(shí)間與用戶在下圖中所設(shè)置的晶振頻率有關(guān)。顯示W(wǎng)atch 1窗口的方法是,單擊菜單欄上的“View”“Watch Window” “Watch1”菜單命令或者在調(diào)試工具欄上單擊觀察窗口圖標(biāo)按鈕“”右邊的下拉箭頭“ ”,”在彈出的快捷菜單中單擊“Wat

49、ch 1”菜單命令。Watch 1窗口如右圖所示。在Watch 1窗口中被顯示的變量必須由用戶指定,可以是本地變量,也可是全局變量。指定觀察變量的方法是,在Watch 1窗口中雙擊“double-click or F2 to edit”使窗口的字符呈藍(lán)底白字的反向顯示,再輸入所要觀察的變量名,然后單擊窗口中的空白處。顯示W(wǎng)atch 2窗口的方法與顯示W(wǎng)atch1窗口的方法相同,它們的用法也相同,在此不再贅述了?!菊f明】在調(diào)試程序的過程中,可以修改Local、Watch1、Watch2窗口中所觀察的變量值。修改變量值的方法是,用雙擊Value列中的待修改變量的值,使顯示值顯藍(lán)底白字的反向顯示,再

50、輸入數(shù)值。Local、Watch1、Watch2窗口中的值的顯示形式可以設(shè)置成16進(jìn)制(Hex)、10進(jìn)制(Decimal)兩種形式,其設(shè)置方法是,用鼠標(biāo)右鍵單擊變量值,在彈出的快捷菜單中單擊“Number Base” “Hex”或者“Number Base” “Decimal”菜單命令。單擊“Hex”命令后變量值以16進(jìn)制的格式顯示,單擊“Decimal”命令后變量值以10進(jìn)制的格式顯示。顯示顯示Call Stack窗口。窗口。Call Stack窗口的功能是顯示當(dāng)前執(zhí)行函數(shù)的調(diào)用層次關(guān)系。顯示Call Stack窗口的方法是,單擊菜單欄上的“View”“Call Stack Window”

51、菜單命令或者單擊調(diào)試工具欄上的調(diào)用棧窗口圖標(biāo)按鈕“”。Call Stack窗口如下圖所示。Call Stack窗口有Callee和Caller2列,左邊列(Callee列)顯示的是被調(diào)用函數(shù),右邊列(Caller列)顯示的是主調(diào)函數(shù),000行顯示的是當(dāng)前被調(diào)函數(shù)的調(diào)用關(guān)系,001行顯示的是調(diào)用000行函數(shù)的主調(diào)函數(shù)的調(diào)用關(guān)系,依此類推。在左圖中,Call Stack窗口顯示的是單片機(jī)執(zhí)行delay函數(shù)時(shí)的函數(shù)調(diào)用情況。第000行顯示的是delay函數(shù)的調(diào)用情況,左邊列顯示的含義是被調(diào)函數(shù)為ex01.c文件中的delay函數(shù),右邊顯示的含義是當(dāng)前調(diào)用delay函數(shù)的主調(diào)函數(shù)是ex01.c文件中的main函數(shù),并且調(diào)用函數(shù)的程序行是第9行。第001行顯示的是main函數(shù)的調(diào)用情況,左邊顯示的含義是,被調(diào)函數(shù)是ex01.c文件中的main函數(shù),右邊顯示的含義是,main函數(shù)是在code區(qū)的0 x0000地址處被調(diào)用的?!菊f明】除了前面介紹的幾個(gè)常用的顯示窗口外,keil Vision4中還有Memory Windows、Function Win

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論