版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章:使用C語言控制核心系統(tǒng)Introduction絕大多數(shù)程序設(shè)計(jì)初學(xué)者忽視算法的重要性。實(shí)際上,沒有正確的算法就沒有正確的程序。通常程序設(shè)計(jì)在嵌入式系統(tǒng)中是實(shí)現(xiàn)測(cè)量與控制的關(guān)鍵因素。本章將說明如何使用算法設(shè)計(jì)、翻譯成C語言、再對(duì)核心控制系統(tǒng)進(jìn)行操作這三個(gè)步驟來解釋本章的主要內(nèi)容。計(jì)算機(jī)語言(例如C語言)需要控制硬件工作,算法是語言編寫過程中的關(guān)鍵問題。本章要點(diǎn)本章需要掌握的要點(diǎn)如下:
·集成開發(fā)環(huán)境的搭建(工程建立、工程配置、HEX文件生成)
·使用ISP軟件下載可執(zhí)行文件到核心硬件
·使用語言初步驅(qū)動(dòng)硬件工作本章需要了解的要點(diǎn)如下:
·算法設(shè)計(jì)的思想
·算法翻譯成程序的方法
·語言控制硬件初步體會(huì)
目錄3.1算法概述3.2軟件環(huán)境搭建3.3計(jì)算機(jī)語言與算法的配合3.4程序設(shè)計(jì)語言C語言與單片機(jī)3.1算法概述算法通常被定義為“解題方案的準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機(jī)制”。簡(jiǎn)單理解算法:算法就是為了能夠使用計(jì)算機(jī)語言編程來解決問題的步驟。算法在實(shí)際應(yīng)用上有如下幾個(gè)關(guān)鍵特征:
(1)必須保證能夠解決問題
(2)必須是一系列步驟
(3)必須能夠通過某種方式轉(zhuǎn)變?yōu)橛?jì)算機(jī)程序3.1算法概述3.1.1簡(jiǎn)單算法設(shè)計(jì)思路
是否能夠正確編寫一個(gè)算法,決定了后面編寫的程序是否正確。但是掌握算法的設(shè)計(jì)相對(duì)比較難,這是由于算法設(shè)計(jì)需要兩方面的知識(shí):
第一方面是能夠找到一個(gè)解決問題的方法
第二方面是該方法能夠使用計(jì)算機(jī)語言描述。3.1算法概述3.1.1簡(jiǎn)單算法設(shè)計(jì)思路問題:求園的面積初步分析:實(shí)際上,要求計(jì)算機(jī)幫助我們解決問題的時(shí)候,首先需要考慮到計(jì)算機(jī)的特性:事情是一步一步來完成的(即程序是一條一條執(zhí)行的)。3.1算法概述3.1.1簡(jiǎn)單算法設(shè)計(jì)思路常見錯(cuò)誤第一步:計(jì)算
第二步:輸入r值第三步:輸出結(jié)果第一步:輸入r值第二步:輸出結(jié)果第三步:計(jì)算
3.1算法概述3.1.1簡(jiǎn)單算法設(shè)計(jì)思路最終算法第一步:提示用戶輸入半徑r第二步:從鍵盤輸入半徑r第三步:計(jì)算
,并保存結(jié)果第四步:顯示該結(jié)果3.1算法概述3.1.2算法實(shí)現(xiàn)C語言程序框架包含與定義部分;
返回值main(參數(shù)表){
變量聲明/定義部分;
語句部分}#include<文件名.H> //include可能有多行或是#include“文件名.H”
#define常量名
常量值全局變量聲明/定義;函數(shù)聲明/定義;
3.1算法概述3.1.2算法實(shí)現(xiàn)對(duì)應(yīng)翻譯法:一個(gè)算法步驟翻譯成一個(gè)對(duì)應(yīng)的C語言語句第一步:提示用戶輸入半徑r 對(duì)應(yīng)翻譯: printf(“請(qǐng)輸入半徑r:”);第二步:從鍵盤輸入半徑r 對(duì)應(yīng)翻譯: scanf(“%f”,&r);第三步:計(jì)算
,并保存結(jié)果
對(duì)應(yīng)翻譯:
result=pi*r*r;第四步:顯示該結(jié)果
對(duì)應(yīng)翻譯:
printf(“\n園的面積等于-%f”,result);3.1算法概述3.1.2算法實(shí)現(xiàn)完整的程序請(qǐng)大家看正確算法與錯(cuò)誤算法的操作演示#include<stdio.h> //包含stdio.h庫文件是為了能使用printf、scanf等這種標(biāo)準(zhǔn)函數(shù)#definepi3.14159 //注意define語句最后不要加分號(hào),除非你有特殊用途voidmain(void){ //第一部分:變量定義部分 floatresult,r;
//第二部分:語句部分 //第一步:提示用戶輸入半徑r printf(“請(qǐng)輸入半徑r:”);
//第二步:從鍵盤輸入半徑r scanf(“%f”,&r); //第三步:計(jì)算
,并保存結(jié)果
result=pi*r*r; //第四步:顯示該結(jié)果
printf(“\n園的面積等于:%f”,result);}3.2軟件環(huán)境搭建
在工程應(yīng)用當(dāng)中,單片機(jī)級(jí)的嵌入式開發(fā)主要采用C語言來進(jìn)行設(shè)計(jì)。其軟件設(shè)計(jì)環(huán)境不使用VC6.0環(huán)境而使用keil環(huán)境。本教材采用支持的51單片機(jī)的環(huán)境keil2版本進(jìn)行介紹【注意】高版本的keil環(huán)境是MDK,例如:MDK4.72。并且注意到高版本的MDK也是可以用的3.2軟件環(huán)境搭建3.2.1Keil集成開發(fā)環(huán)境簡(jiǎn)介操作演示3.2軟件環(huán)境搭建3.2.2工程與配置(1)創(chuàng)建工程
第一步:新建一個(gè)工程文件夾
第二步:新建工程
第三步:選擇芯片型號(hào)
第四步:新建C文件
第五步:添加C文件到工程
操作演示
3.2軟件環(huán)境搭建3.2.2工程與配置第二步:配置工程:
選中目標(biāo)
配置輸出
填寫代碼
編譯代碼
檢查結(jié)果并生成HEX文件操作演示3.3計(jì)算機(jī)語言與算法的配合3.3.1問題提出【目標(biāo)】單片機(jī)主控板控制一個(gè)發(fā)光LED燈連續(xù)閃爍的問題,則面對(duì)該問題應(yīng)該如何做?問題1:程序設(shè)計(jì)者需要考慮硬件嗎?如果需要,需要考慮硬件什么內(nèi)容?問題2:軟件如何做?問題3:程序設(shè)計(jì)者需要做什么?3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)問題2中,提出了軟件需要如何做的問題,這里需要做的就是軟件的流程,我們考慮硬件的連接,假定單片機(jī)主控板硬件采用P0.0引腳來連接LED燈,具體連接電路如下3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)幾個(gè)問題需要考慮:(1)LED的響應(yīng)時(shí)間/速度如何?(2)如何操作LED?(3)達(dá)到LED閃爍的目標(biāo)流程是什么?3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)(1)LED的響應(yīng)時(shí)間/速度如何?
通過查閱資料了解到:LED點(diǎn)亮與熄滅所延遲的時(shí)間稱為響應(yīng)時(shí)間,通常為:10-6~10-7s。也就是點(diǎn)亮與熄滅延遲的時(shí)間很短。3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)(2)如何操作LED?
通過圖3.32可見,操作LED實(shí)際上就是操作單片機(jī)引腳P0.0。3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)(3)達(dá)到LED閃爍的目標(biāo)流程是什么?
由于無論如何LED閃爍的轉(zhuǎn)換期都是有時(shí)間延遲的(10-6~10-7s雖然很小但是仍然有響應(yīng)時(shí)間的問題,這個(gè)問題將轉(zhuǎn)換為反應(yīng)時(shí)間),所以必須考慮到延時(shí)的問題。3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)算法第一步:在P0.0線上點(diǎn)亮LED第二步:延時(shí)第三步:在P0.0線上熄滅LED第四步:延時(shí)第五步:跳轉(zhuǎn)到第一步
3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)最終算法與翻譯的C語言代碼第一步:在無限循環(huán)中做。
第1.1步
在P0.0線上點(diǎn)亮LED第1.2步
延時(shí)第1.3步
在P0.0線上熄滅LED第1.4步
延時(shí)
while(1){ P00=1; delay(time); P00=0; delay(time);}3.3計(jì)算機(jī)語言與算法的配合3.3.2算法設(shè)計(jì)與程序設(shè)計(jì)完整的C語言源程序操作演示#include<reg52.h> //注意:?jiǎn)纹瑱C(jī)C編程中頭文件名為:reg52.hsbitP00=P0^0; //sbit是單片機(jī)C編程的擴(kuò)展關(guān)鍵字,這一句的意思是:?jiǎn)纹瑱C(jī)的//P0.0口在程序中的名字是P00voiddelay(inttime); //聲明了一個(gè)延時(shí)函數(shù),注意:這里沒有寫全函數(shù)的內(nèi)容,但是//只要聲明了(說明了),后面可以再補(bǔ)全。voidmain(void) {
inttime=1000; //定義了一個(gè)變量,值是1000while(1) //在無限循環(huán)中做{ P00=1; // 在P0.0線上點(diǎn)亮LED delay(time); // 延時(shí) P00=0; // 在P0.0線上熄滅LED delay(time); // 延時(shí)}}voiddelay(inttime) //這里是延時(shí)函數(shù)的定義,上面沒有補(bǔ)全延時(shí)函數(shù)的內(nèi)容,這里{ //補(bǔ)上 inti; for(i=0;i<time;i++);}3.4程序設(shè)計(jì)語言C語言與單片機(jī)本節(jié)目標(biāo):實(shí)現(xiàn)上節(jié)的例子要點(diǎn):用KEIL軟件編譯后必須有生成.hex文件,該文件下載到單片機(jī),單片機(jī)才能依照用戶設(shè)計(jì)的代碼流程開始工作!3.4程序設(shè)計(jì)語言C語言與單片機(jī)3.4.1使用C語言控制單片機(jī)操作演示3.4程序設(shè)計(jì)語言C語言與單片機(jī)3.4.2使用ISP軟件下載從keil2中生成的HEX文件需要使用一個(gè)成為ISP的軟件來下載到單片機(jī)上運(yùn)行。本教材默認(rèn)使用STC12C5A60S2單片機(jī)。使用的下載軟件ISP的版本為:stc-isp-15xx-v6.63。下載HEX文件到單片機(jī)板遵循如下流程:(1)步驟一:連接5V直流電源到開發(fā)板,并關(guān)閉開發(fā)板電源開關(guān)。(2)步驟二:連接串口線(RS232線)到開發(fā)板,串口線的另外一頭連接到計(jì)算機(jī)的com口(3)步驟三:?jiǎn)?dòng)ISP軟件。(4)步驟四:在單片機(jī)型號(hào)下拉框選中對(duì)應(yīng)型號(hào)的單片機(jī)。(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 居民家庭供暖供氣合同3篇
- 新風(fēng)系統(tǒng)合同范本3篇
- 安徽電氣行業(yè)勞動(dòng)合同模板3篇
- 旅游包車司機(jī)服務(wù)合同3篇
- 安裝工程合同規(guī)定3篇
- 招生協(xié)議書合同模板3篇
- 新門面房買賣合同3篇
- 市政工程勞動(dòng)分包合同范本3篇
- 工業(yè)園租賃合同格式定制3篇
- 招標(biāo)文件評(píng)標(biāo)方法的改進(jìn)3篇
- 傳播學(xué)視角下的B站傳播特色分析
- 《陸上風(fēng)電場(chǎng)工程設(shè)計(jì)概算編制規(guī)定及費(fèi)用標(biāo)準(zhǔn)》(NB-T 31011-2019)
- 維吾爾族介紹
- 《安裝規(guī)范全》課件
- 跌倒或墜床相關(guān)知識(shí)培訓(xùn)課件
- 廣東省深圳市寶安區(qū)2023-2024學(xué)年高一年級(jí)上冊(cè)調(diào)研測(cè)試物理試卷
- 冰雪旅游安全知識(shí)假期旅行安全攻略
- 城市軌道交通售檢票系統(tǒng) 課件 項(xiàng)目四 自動(dòng)售票機(jī)
- 虛實(shí)結(jié)合(上課改)課件
- 2024年山東能源集團(tuán)魯西礦業(yè)有限公司招聘筆試參考題庫含答案解析
- 南昌市南昌縣2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)測(cè)試卷(含答案)
評(píng)論
0/150
提交評(píng)論