




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單片機(jī)專題實(shí)訓(xùn)西安交通大學(xué)城市學(xué)院電信系實(shí)驗(yàn)中心張樺辦公室:實(shí)驗(yàn)樓510辦公室電話mail:yuazhang@163.com(程序調(diào)試方法)單片機(jī)專題實(shí)訓(xùn)西安交通大學(xué)城市學(xué)院電信系實(shí)驗(yàn)中心張樺1單片機(jī)專題實(shí)訓(xùn)內(nèi)容鍵盤和數(shù)碼管顯示
主要是相關(guān)芯片ZLG7289的內(nèi)容。液晶顯示主要是相關(guān)液晶顯示模塊LCM12864的內(nèi)容。實(shí)時(shí)時(shí)鐘
主要是相關(guān)實(shí)時(shí)時(shí)鐘/日歷芯片PCF8563的內(nèi)容。單片機(jī)專題實(shí)訓(xùn)內(nèi)容鍵盤和數(shù)碼管顯示液晶顯示實(shí)時(shí)時(shí)2單片機(jī)專題實(shí)訓(xùn)報(bào)告要求硬件電路圖
電路結(jié)構(gòu)和原理簡介軟件流程圖
每個(gè)模塊畫一個(gè)流程圖和模塊說明電路圖中主要芯片說明和操作說明芯片引腳、操作時(shí)序、芯片寄存器功能介紹單片機(jī)專題實(shí)訓(xùn)報(bào)告要求硬件電路圖電路圖中主要芯片說明和3一、程序調(diào)試方法1.1單片機(jī)AT89S52
ATMEL公司出品的兼容MCS-51系列單片機(jī)的一款產(chǎn)品。其最主要的特點(diǎn)是內(nèi)置Flash存儲(chǔ)器,并提供對(duì)其編程的方法。AT89S52內(nèi)置了8KByte的可在線編程的Flash存儲(chǔ)器。具有靈活的ISP編程模式。并行和串行編程方式一、程序調(diào)試方法1.1單片機(jī)AT89S52AT89S4并行編程接線圖并行編程接線圖5串行編程接線圖串行編程接線圖61.2使用Keil軟件編程并調(diào)試程序1.2.1使用Keil軟件編程步驟一:使用keil軟件Project菜單項(xiàng)中的NewProject建立一個(gè)新工程。步驟二:為新工程選擇芯片,添加源程序文件(.c或是.asm)。步驟三:對(duì)工程做相關(guān)配置。OptionforTarget1配置頁面窗口中選中Output頁面中的CreateHEX選項(xiàng)。步驟四:編寫程序并使用Project菜單項(xiàng)中的BuildAll子菜單為應(yīng)用創(chuàng)建可執(zhí)行文件(.HEX)。1.2使用Keil軟件編程并調(diào)試程序1.2.1使用K7調(diào)試程序是發(fā)現(xiàn)查找程序的邏輯錯(cuò)誤的過程。1.2.2調(diào)試程序步驟一:連接AT89S52單片機(jī)下載線,打開實(shí)驗(yàn)箱電源。步驟二:打開電腦桌面上的雙龍電子軟件SLISP。步驟三:在SLISP軟件界面中,器件—選擇AT89S52,F(xiàn)LASH存儲(chǔ)器—選擇由Keil軟件生成的**.Hex文件,之后點(diǎn)擊軟件界面最下方的編程按鈕,下載程序,下載完成,單片機(jī)會(huì)自己執(zhí)行程序。步驟四:觀察程序執(zhí)行結(jié)果,程序運(yùn)行結(jié)果與預(yù)期不一致,則返回Keil編程界面,檢查程序邏輯。調(diào)試程序是發(fā)現(xiàn)查找程序的邏輯錯(cuò)誤的過程。1.2.2調(diào)試程8二、用C51編寫應(yīng)用程序2.1C語言的優(yōu)點(diǎn)只要求對(duì)單片機(jī)的存儲(chǔ)結(jié)構(gòu)有了解,不需了解指令系統(tǒng)。相對(duì)于匯編語言,C語言有如下的優(yōu)點(diǎn):提供專門針對(duì)8051單片機(jī)的data、idata、pdata、xdata、code等存儲(chǔ)類型,自動(dòng)為變量合理分配地址
。C語言提供復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強(qiáng)了程序處理能力和靈活性。提供常用的標(biāo)準(zhǔn)函數(shù)庫,以供用戶直接使用
。程序可有多個(gè)函數(shù)組成模塊,可讀性好,便于修改
。移植性好,可以移植到不同的單片機(jī),而匯編移植困難
。二、用C51編寫應(yīng)用程序2.1C語言的優(yōu)點(diǎn)只要求對(duì)單9C51程序結(jié)構(gòu)和一般的C語言程序結(jié)構(gòu)沒有什么差別。C51程序是函數(shù)的集合體。程序也是從main()函數(shù)開始執(zhí)行,主函數(shù)是程序的入口,主函數(shù)中的語句執(zhí)行結(jié)束,程序也就結(jié)束了。2.2C51程序結(jié)構(gòu)C51的函數(shù)是有類型、函數(shù)名、參數(shù)表、函數(shù)體組成。
函數(shù)名是一個(gè)標(biāo)識(shí)符,是大小寫可以區(qū)別的,最長可為255個(gè)字符。
參數(shù)表是用圓括號(hào)()括起來的若干參數(shù),每項(xiàng)之間用逗號(hào)隔開
函數(shù)體是用大括號(hào)括起來的若干C語句,語句之間用分號(hào)隔開,最后一個(gè)語句是return(主函數(shù)可以省略),返回函數(shù)類型。函數(shù)類型就是返回值的類型,除整型外,都需要在函數(shù)名前加以指定。C51程序結(jié)構(gòu)和一般的C語言程序結(jié)構(gòu)沒有什么差別。2.210externunsignedcharLED;externcharfunc1(charz);//主函數(shù)voidmain(void){ LED=0; chara=func1(c); intb=func2(d,e); while(1);}Intfunc2(intx,inty){ returnx+y;}外部變量聲明外部函數(shù)聲明注釋函數(shù)類型函數(shù)名(參數(shù)表){函數(shù)體開始
}函數(shù)體結(jié)束數(shù)據(jù)說明;執(zhí)行語句;本文件內(nèi)的函數(shù)定義externunsignedcharLED;外部變量112.3C51與ANSI標(biāo)準(zhǔn)C的差別2.3.1關(guān)鍵字C51包含ANSIC關(guān)鍵字的同時(shí),也針對(duì)51單片機(jī)擴(kuò)展了一些關(guān)鍵字。ANSI關(guān)鍵字:autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledowhileifstaticC51擴(kuò)展關(guān)鍵字:_at_alienbdatabitcodecompactdataidatainterruptlargepdata_priority_reentrantsbitsfrsfr16small_task_usingxdata2.3C51與ANSI標(biāo)準(zhǔn)C的差別2.3.1關(guān)鍵字12C51的運(yùn)算符與ANSIC的運(yùn)算符無差別。主要包括以下幾類:2.3.2C51的運(yùn)算符算術(shù)運(yùn)算符邏輯運(yùn)算符關(guān)系運(yùn)算符位運(yùn)算符復(fù)合運(yùn)算符其他運(yùn)算符?:,sizeof,*,&,[],->,.2.3.3C51的變量C51的變量和ANSIC的變量有些比較關(guān)鍵的區(qū)別。C51的運(yùn)算符與ANSIC的運(yùn)算符無差別。2.13變量的數(shù)據(jù)類型1、基本類型與ANSIC一樣,C51的基本數(shù)據(jù)類型有char、int、short、long和float。除float類型外均可用signed和unsigned修飾,默認(rèn)是signed型。char占1個(gè)字節(jié),int和short占2個(gè)字節(jié),long占4個(gè)字節(jié),float占4個(gè)字節(jié)。2、其他類型C51的指針類型與ANSIC的指針概念相同,指向一個(gè)特定的地址。該地址即可以變量地址也可以是函數(shù)地址。例如: intfuncA(inta,intb);int(*pointer)(int,int)=funcA;定義了一個(gè)指向函數(shù)funcA的指針pointer;其他的如enum、struct、union以及數(shù)組和ANSIC的都相同。變量的數(shù)據(jù)類型1、基本類型2、其他類型14變量的作用域
C51的變量分為局部變量和全局變量。在編程是要盡量使用局部變量,少用全局變量。3、C51專有的數(shù)據(jù)類型bit:變量存儲(chǔ)在可位尋址區(qū),保存1位二進(jìn)制數(shù)。(不能用指針)。sfr和sfr16:定義特殊寄存器變量。sbit:可位尋址變量的一個(gè)位??晌粚ぶ返淖兞渴莃data變量或是部分的sfr變量。變量的存儲(chǔ)種類
auto:變量默認(rèn)的存儲(chǔ)類型。
register:使用寄存器的變量。 extern:全局變量,可以在多個(gè)文件中使用。 static:使局部變量與程序的壽命相同;使全局變量只在本文件內(nèi)有效。變量的作用域3、C51專有的數(shù)據(jù)類型變量的存儲(chǔ)種類151、具體的存儲(chǔ)區(qū)域類型有:idata:片內(nèi)間接尋址的RAMxdata:片外數(shù)據(jù)存儲(chǔ)(64K)pdata:分頁尋址的片外RAMdata:片內(nèi)直接尋址的RAMcode:統(tǒng)一編制的ROM(64K)bdata:片內(nèi)可位尋址的RAM(128位)變量的存儲(chǔ)區(qū)域
這部分是C51與ANSIC區(qū)別最明顯的地方。C51中可以指定變量存儲(chǔ)在具體的存儲(chǔ)器區(qū)域內(nèi)。片內(nèi)RAM、片外RAM或是ROM)例如: chardatach=‘c’;定義變量ch存儲(chǔ)在直接尋址的內(nèi)部RAM區(qū)。1、具體的存儲(chǔ)區(qū)域類型有:變量的存儲(chǔ)區(qū)域162、指針與存儲(chǔ)區(qū)域 與變量相同,對(duì)于指針也可以指定存儲(chǔ)區(qū)域,以及指針?biāo)赶蜃兞康拇鎯?chǔ)區(qū)域。指明了所指向變量的具體存儲(chǔ)區(qū)域的指針的效率要更高,占用的存儲(chǔ)區(qū)也少一些。例如: chardata*str1;//指針指向data存儲(chǔ)區(qū)的字符變量。 chardata*datastr2;//指針本身也在data區(qū)域3、絕對(duì)地址的變量
C51中,可以通過使用_at_關(guān)鍵字來指定變量存儲(chǔ)在存儲(chǔ)器中的特定地址上。例如: chardatach_at_0x100; 對(duì)這類變量的要求: ⑴不能初始化;
⑵ bit類型不能使用絕對(duì)地址;
⑶只有全局變量才能使用絕對(duì)地址;2、指針與存儲(chǔ)區(qū)域3、絕對(duì)地址的變量17同ANSIC一樣,C51的程序語句主要是三種類型。2.3.4程序語句2.3.5函數(shù) C51中,函數(shù)的聲明、定義和調(diào)用的方法與ANSIC一樣,不同之處主要有:可重入函數(shù):C51中的函數(shù)默認(rèn)情況是不能由多個(gè)進(jìn)程共享,而可重入函數(shù)可以不受此限制。可用reentrant關(guān)鍵字聲明函數(shù)為可重入函數(shù)。例如: intfuncTest(intx,inty)reentrant;順序語句:就是語句,按順序一句一句執(zhí)行。分支語句:ifelse,switch循環(huán)語句:for,while,dowhile同ANSIC一樣,C51的程序語句主要是三種類型。2.3.18指定使用寄存器組:C51中的函數(shù)可以指定使用特定的寄 存器組。若為中斷函數(shù)指定寄存器組,則所有被該中斷函數(shù)調(diào)用的函數(shù)都必須使用該寄存器組。使用using關(guān)鍵字聲明函數(shù)使用第幾組寄存器組。例如: intfuncTest(intx,inty)using0; 表示函數(shù)funcTest使用第0組工作寄存器組。中斷服務(wù)子程序:C51中使用interrupt關(guān)鍵字指定函數(shù)為中斷服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)員工股合同范本
- 《韓愈短文》教案
- 合買別墅合同范本
- 《這片土地是神圣的》說課稿
- 《觀滄海》閱讀答案及鑒賞
- 任務(wù)目標(biāo)認(rèn)購合同范例
- 協(xié)議解約合同范本
- 代辦社保合同范本
- 候鳥旅行合同范本
- 物流運(yùn)輸 價(jià)格合同范本
- 部編人教版小學(xué)4四年級(jí)《道德與法治》下冊(cè)全冊(cè)教案
- 2024-2030年中國小黃姜行業(yè)盈利模式與投資策略分析報(bào)告
- 職業(yè)技術(shù)學(xué)院攝影攝像技術(shù)專業(yè)人才培養(yǎng)方案
- 心房顫動(dòng)診斷和治療中國指南(2023) 解讀
- 常見急危重癥的快速識(shí)別要點(diǎn)與處理技巧課件
- 耳鼻咽喉科中級(jí)職稱(主治醫(yī)師)考試重點(diǎn)
- 高危妊娠及五色管理課件
- 《 大學(xué)生軍事理論教程》全套教學(xué)課件
- 三年級(jí)數(shù)學(xué)下冊(cè)一兩位數(shù)乘兩位數(shù)的乘法2問題解決作業(yè)課件西師大版
- 家校溝通經(jīng)驗(yàn)分享-溝通有方法教育有溫度
- 2024年福建省廈門市翔安區(qū)殘疾人聯(lián)合會(huì)招聘殘疾人工作聯(lián)絡(luò)員29人歷年重點(diǎn)基礎(chǔ)提升難、易點(diǎn)模擬試題(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論