哈理工課程設(shè)計(jì)——C51與開發(fā)環(huán)境.ppt_第1頁
哈理工課程設(shè)計(jì)——C51與開發(fā)環(huán)境.ppt_第2頁
哈理工課程設(shè)計(jì)——C51與開發(fā)環(huán)境.ppt_第3頁
哈理工課程設(shè)計(jì)——C51與開發(fā)環(huán)境.ppt_第4頁
哈理工課程設(shè)計(jì)——C51與開發(fā)環(huán)境.ppt_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)年設(shè)計(jì) 智能4路模擬量巡檢儀 C51語言與開發(fā)環(huán)境,哈爾濱理工大學(xué)自動(dòng)化系 2010.12,目錄,Ch1. C51語言 Ch2. 工程文件 Ch3. 星研開發(fā)環(huán)境 Ch4. Keil C開發(fā)環(huán)境 Ch5. STC51單片機(jī)的程序下載 Ch6. 工程文件實(shí)例,Ch1 C51語言,概述,C51是用于開發(fā)MSC51系列單片機(jī)的C語言 C51兼容與ANSI C C51對(duì)ANSI C做了擴(kuò)充,使之適合與MSC51系列的單片機(jī) 假定熟悉C語言,Ch1 C51語言,數(shù)據(jù)類型的擴(kuò)充,bit定義一個(gè)位變量 bit flag; sbit定義特殊功能寄存器中的某個(gè)位 sbit CLK0P24; sfr和sfr16定義特殊功能寄存器 sfr PSW=0xD0; 指針類型 由于MCS51系列單片機(jī)采用的是隔離編址(獨(dú)立編址)方式,因此片內(nèi)寄存器、片內(nèi)RAM、程序存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器的尋址方式是不同的。對(duì)于指向不同存儲(chǔ)區(qū)的指針,需要用不同的方式定義。,Ch1 C51語言,存儲(chǔ)器類型,Ch1 C51語言,存儲(chǔ)器模式,變量和常量必須以一定的存儲(chǔ)器類型定位于單片機(jī)的存儲(chǔ)區(qū)域中。,Ch1 C51語言,存儲(chǔ)器模式,如果用戶不對(duì)變量的存儲(chǔ)器類型進(jìn)行定義,C51編譯器采用默認(rèn)的存儲(chǔ)器類型。由編譯控制命令中的存儲(chǔ)模式指令限制。 char var;/* 在SMALL模式時(shí),var定位data存儲(chǔ)區(qū) */ /* 在COMPACT模式時(shí),var定位pdata存儲(chǔ)區(qū) */ /* 在LARGE模式時(shí),var定位xdata存儲(chǔ)區(qū) */,Ch1 C51語言,數(shù)據(jù)定義舉例,int data ibase; /* 定義整形變量ibase ,位于data區(qū) */ char code Tab10; /* 定義字符數(shù)組array4 ,位于code區(qū) */ char data * str; /* 指向data 空間char型數(shù)據(jù)的指針 */ int *data number; /* 位于data 空間的一般指針 */ int data *data num; /* 指針本身在data空間 */ char code *xdata strptr; /* 位于xdata 空間的指向code空間的指針 */,Ch1 C51語言,中斷服務(wù)函數(shù),中斷函數(shù)的定義形式為: void 函數(shù)名(void)interrupt n using m 函數(shù)體 n 表示中斷源的編號(hào),范圍是031 m 表示中斷服務(wù)函數(shù)使用的寄存器組,Ch1 C51語言,中斷服務(wù)函數(shù),常用的中斷源對(duì)應(yīng)的中斷號(hào),using 用于指定使用的工作寄存器組,m的范圍是03。不設(shè)定工作寄存器組時(shí),編譯系統(tǒng)會(huì)將當(dāng)前工作寄存器組的寄存器壓入堆棧。 在應(yīng)用程序中任何函數(shù)都不能調(diào)用中斷服務(wù)函數(shù),因?yàn)樗怯上到y(tǒng)調(diào)用的。,Ch1 C51語言,實(shí)例,用T0方式1,產(chǎn)生10ms的定時(shí),使P1.0引腳上輸出周期為20ms方波,采用中斷方式,設(shè)系統(tǒng)時(shí)鐘頻率為12 MHz。,解:1、計(jì)算計(jì)數(shù)初值: Nt/ Tcy 1010-3/110-310000 將 (10000/256)送入TH0中,-(10000%256)送入TL0。 2、T0方式控制字: M1M0=01,GATE=0,C/ T =0,可取方式控制字為01H; 3、程序清單如下:,Ch1 C51語言,實(shí)例,#include “reg52.h” sbit P10 = P10; void timer0(void)interrupt 1 EA0; P10 = ! P10; TH0 = -(10000/256); TL0 = -(10000%256); EA=1; ,void main(void) TMOD = 0x01; P10 = 0; TH0 = -(10000/256); TL0 = -(10000%256); EA = 1; ET0 = 1; TR0 = 1; while(1); ,Ch2 工程文件,工程文件,對(duì)于大的應(yīng)用程序,用單一的C源文件編寫所有的程序代碼是不合適的,其弊端是條理混亂、難于調(diào)試、難于管理源代碼。 應(yīng)該針對(duì)不同的器件或者不同的功能,編寫多個(gè)C源文件,然后將這些源代碼文件分別編譯成目標(biāo)文件OBJ,最后用連接程序?qū)⑺蠴BJ文件和C庫連接成一個(gè)可執(zhí)行的文件,對(duì)單片機(jī)來說就是HEX或者BIN文件。 最后用編程器(寫入器)將HEX文件燒錄到CPU內(nèi)部的Flash中。,Ch2 工程文件,使用工程文件的基本步驟,建立工程文件 選擇保存工程文件和源代碼文件的目錄和文件名。 配置工程文件的相關(guān)選項(xiàng) 包括選擇CPU類型、配置編譯器路徑、配置編譯器選擇、配置仿真器選項(xiàng)。 編寫各個(gè)C源文件,并加入到工程中 編譯連接 燒錄測試,Ch3 星研開發(fā)環(huán)境,注意事項(xiàng),星研開發(fā)環(huán)境是一個(gè)IDE,可以編輯、編譯、連接、調(diào)試、運(yùn)行、仿真C51的程序。 星研沒有自己的編譯器,要使用第三方編譯工具。通常使用Keil C的編譯器,因此要配置編譯器的路徑,告訴星研開發(fā)環(huán)境到哪個(gè)目錄去尋找編譯器。,Ch4 Keil C開發(fā)環(huán)境,注意事項(xiàng),Ch5 STC51單片機(jī)程序下載,STC51系列單片機(jī)支持通過串行口下載應(yīng)用程序 需要使用串行口轉(zhuǎn)換器(下載器) 需要宏晶公司的專用下載軟件 使用串口交叉連接線(DB9頭標(biāo)記黑色X的連接線) 下載器和主機(jī)板通過4PIN線連接,注意插入方向。,Ch5 STC51單片機(jī)程序下載,圖片,必須使用交叉線,即使用USB轉(zhuǎn)串口轉(zhuǎn)接線,也要用交叉線連接,加載電源,Ch6 工程文件實(shí)例,任務(wù)步

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論