




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機專題實訓西安交通大學城市學院電信系實驗中心張樺辦公室:實驗樓510辦公室電話mail:yuazhang@163.com(程序調試方法)單片機專題實訓西安交通大學城市學院電信系實驗中心張樺1單片機專題實訓內容鍵盤和數碼管顯示
主要是相關芯片ZLG7289的內容。液晶顯示主要是相關液晶顯示模塊LCM12864的內容。實時時鐘
主要是相關實時時鐘/日歷芯片PCF8563的內容。單片機專題實訓內容鍵盤和數碼管顯示液晶顯示實時時2單片機專題實訓報告要求硬件電路圖
電路結構和原理簡介軟件流程圖
每個模塊畫一個流程圖和模塊說明電路圖中主要芯片說明和操作說明芯片引腳、操作時序、芯片寄存器功能介紹單片機專題實訓報告要求硬件電路圖電路圖中主要芯片說明和3一、程序調試方法1.1單片機AT89S52
ATMEL公司出品的兼容MCS-51系列單片機的一款產品。其最主要的特點是內置Flash存儲器,并提供對其編程的方法。AT89S52內置了8KByte的可在線編程的Flash存儲器。具有靈活的ISP編程模式。并行和串行編程方式一、程序調試方法1.1單片機AT89S52AT89S4并行編程接線圖并行編程接線圖5串行編程接線圖串行編程接線圖61.2使用Keil軟件編程并調試程序1.2.1使用Keil軟件編程步驟一:使用keil軟件Project菜單項中的NewProject建立一個新工程。步驟二:為新工程選擇芯片,添加源程序文件(.c或是.asm)。步驟三:對工程做相關配置。OptionforTarget1配置頁面窗口中選中Output頁面中的CreateHEX選項。步驟四:編寫程序并使用Project菜單項中的BuildAll子菜單為應用創建可執行文件(.HEX)。1.2使用Keil軟件編程并調試程序1.2.1使用K7調試程序是發現查找程序的邏輯錯誤的過程。1.2.2調試程序步驟一:連接AT89S52單片機下載線,打開實驗箱電源。步驟二:打開電腦桌面上的雙龍電子軟件SLISP。步驟三:在SLISP軟件界面中,器件—選擇AT89S52,FLASH存儲器—選擇由Keil軟件生成的**.Hex文件,之后點擊軟件界面最下方的編程按鈕,下載程序,下載完成,單片機會自己執行程序。步驟四:觀察程序執行結果,程序運行結果與預期不一致,則返回Keil編程界面,檢查程序邏輯。調試程序是發現查找程序的邏輯錯誤的過程。1.2.2調試程8二、用C51編寫應用程序2.1C語言的優點只要求對單片機的存儲結構有了解,不需了解指令系統。相對于匯編語言,C語言有如下的優點:提供專門針對8051單片機的data、idata、pdata、xdata、code等存儲類型,自動為變量合理分配地址
。C語言提供復雜的數據類型(數組、結構、聯合、枚舉、指針等),極大地增強了程序處理能力和靈活性。提供常用的標準函數庫,以供用戶直接使用
。程序可有多個函數組成模塊,可讀性好,便于修改
。移植性好,可以移植到不同的單片機,而匯編移植困難
。二、用C51編寫應用程序2.1C語言的優點只要求對單9C51程序結構和一般的C語言程序結構沒有什么差別。C51程序是函數的集合體。程序也是從main()函數開始執行,主函數是程序的入口,主函數中的語句執行結束,程序也就結束了。2.2C51程序結構C51的函數是有類型、函數名、參數表、函數體組成。
函數名是一個標識符,是大小寫可以區別的,最長可為255個字符。
參數表是用圓括號()括起來的若干參數,每項之間用逗號隔開
函數體是用大括號括起來的若干C語句,語句之間用分號隔開,最后一個語句是return(主函數可以省略),返回函數類型。函數類型就是返回值的類型,除整型外,都需要在函數名前加以指定。C51程序結構和一般的C語言程序結構沒有什么差別。2.210externunsignedcharLED;externcharfunc1(charz);//主函數voidmain(void){ LED=0; chara=func1(c); intb=func2(d,e); while(1);}Intfunc2(intx,inty){ returnx+y;}外部變量聲明外部函數聲明注釋函數類型函數名(參數表){函數體開始
}函數體結束數據說明;執行語句;本文件內的函數定義externunsignedcharLED;外部變量112.3C51與ANSI標準C的差別2.3.1關鍵字C51包含ANSIC關鍵字的同時,也針對51單片機擴展了一些關鍵字。ANSI關鍵字:autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledowhileifstaticC51擴展關鍵字:_at_alienbdatabitcodecompactdataidatainterruptlargepdata_priority_reentrantsbitsfrsfr16small_task_usingxdata2.3C51與ANSI標準C的差別2.3.1關鍵字12C51的運算符與ANSIC的運算符無差別。主要包括以下幾類:2.3.2C51的運算符算術運算符邏輯運算符關系運算符位運算符復合運算符其他運算符?:,sizeof,*,&,[],->,.2.3.3C51的變量C51的變量和ANSIC的變量有些比較關鍵的區別。C51的運算符與ANSIC的運算符無差別。2.13變量的數據類型1、基本類型與ANSIC一樣,C51的基本數據類型有char、int、short、long和float。除float類型外均可用signed和unsigned修飾,默認是signed型。char占1個字節,int和short占2個字節,long占4個字節,float占4個字節。2、其他類型C51的指針類型與ANSIC的指針概念相同,指向一個特定的地址。該地址即可以變量地址也可以是函數地址。例如: intfuncA(inta,intb);int(*pointer)(int,int)=funcA;定義了一個指向函數funcA的指針pointer;其他的如enum、struct、union以及數組和ANSIC的都相同。變量的數據類型1、基本類型2、其他類型14變量的作用域
C51的變量分為局部變量和全局變量。在編程是要盡量使用局部變量,少用全局變量。3、C51專有的數據類型bit:變量存儲在可位尋址區,保存1位二進制數。(不能用指針)。sfr和sfr16:定義特殊寄存器變量。sbit:可位尋址變量的一個位。可位尋址的變量是bdata變量或是部分的sfr變量。變量的存儲種類
auto:變量默認的存儲類型。
register:使用寄存器的變量。 extern:全局變量,可以在多個文件中使用。 static:使局部變量與程序的壽命相同;使全局變量只在本文件內有效。變量的作用域3、C51專有的數據類型變量的存儲種類151、具體的存儲區域類型有:idata:片內間接尋址的RAMxdata:片外數據存儲(64K)pdata:分頁尋址的片外RAMdata:片內直接尋址的RAMcode:統一編制的ROM(64K)bdata:片內可位尋址的RAM(128位)變量的存儲區域
這部分是C51與ANSIC區別最明顯的地方。C51中可以指定變量存儲在具體的存儲器區域內。片內RAM、片外RAM或是ROM)例如: chardatach=‘c’;定義變量ch存儲在直接尋址的內部RAM區。1、具體的存儲區域類型有:變量的存儲區域162、指針與存儲區域 與變量相同,對于指針也可以指定存儲區域,以及指針所指向變量的存儲區域。指明了所指向變量的具體存儲區域的指針的效率要更高,占用的存儲區也少一些。例如: chardata*str1;//指針指向data存儲區的字符變量。 chardata*datastr2;//指針本身也在data區域3、絕對地址的變量
C51中,可以通過使用_at_關鍵字來指定變量存儲在存儲器中的特定地址上。例如: chardatach_at_0x100; 對這類變量的要求: ⑴不能初始化;
⑵ bit類型不能使用絕對地址;
⑶只有全局變量才能使用絕對地址;2、指針與存儲區域3、絕對地址的變量17同ANSIC一樣,C51的程序語句主要是三種類型。2.3.4程序語句2.3.5函數 C51中,函數的聲明、定義和調用的方法與ANSIC一樣,不同之處主要有:可重入函數:C51中的函數默認情況是不能由多個進程共享,而可重入函數可以不受此限制。可用reentrant關鍵字聲明函數為可重入函數。例如: intfuncTest(intx,inty)reentrant;順序語句:就是語句,按順序一句一句執行。分支語句:ifelse,switch循環語句:for,while,dowhile同ANSIC一樣,C51的程序語句主要是三種類型。2.3.18指定使用寄存器組:C51中的函數可以指定使用特定的寄 存器組。若為中斷函數指定寄存器組,則所有被該中斷函數調用的函數都必須使用該寄存器組。使用using關鍵字聲明函數使用第幾組寄存器組。例如: intfuncTest(intx,inty)using0; 表示函數funcTest使用第0組工作寄存器組。中斷服務子程序:C51中使用interrupt關鍵字指定函數為中斷服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論