第一篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告
單片機(jī)課程設(shè)計(jì)報(bào)告
? 課程名稱:?jiǎn)纹瑱C(jī)原理及接口課程設(shè)計(jì)
? 題目:基于
? 學(xué)院:電氣信息學(xué)院
? 專業(yè)班級(jí):測(cè)控技術(shù)與儀器
? 姓名:江讓
? 學(xué)號(hào):
? 指導(dǎo)老師:劉升老師
? 時(shí)間:
C51單片機(jī)的ADC0809數(shù)模轉(zhuǎn)換103班1090640772013/1/16
第二篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告格式
《單片機(jī)課程設(shè)計(jì)》報(bào)告格式
一、封面(注明:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告、課題名稱、班級(jí)、姓名、指導(dǎo)教師、日期)
二、摘要(課題簡(jiǎn)要說(shuō)明)
三、課題設(shè)計(jì)目標(biāo)(功能、性能指標(biāo))、方案論證(要求作兩種以上方案比較)
四、設(shè)計(jì)過(guò)程(關(guān)鍵電路工作原理、元器件參數(shù)選用、程序流程圖、程序)
五、軟硬件的安裝、調(diào)試方法
六、完整電路圖、性能參數(shù)測(cè)試
七、存在的問(wèn)題和改進(jìn)方向
八、參考文獻(xiàn)資料
第三篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告格式
單片機(jī)課程設(shè)計(jì)報(bào)告格式要求
統(tǒng)一的A4紙打印。每頁(yè)約44行,每行約34字;打印正文用宋體小四號(hào)字;版面頁(yè)邊距上空2.5cm,下空2cm,左空2.5cm,右空2cm;頁(yè)碼用小五號(hào)字,底端居中。
A、封面;B、課程設(shè)計(jì)任務(wù)書(shū);C、摘要; D、目錄; E、正文;F、參考文獻(xiàn);G、附錄(源程序代碼);H、有關(guān)圖紙(系統(tǒng)的總體原理圖)
摘要(內(nèi)容提要)
摘要是論文內(nèi)容的簡(jiǎn)要陳述,應(yīng)盡量反映主要信息,內(nèi)容包括研究目的、方法、成果和結(jié)論,不含圖表,不加注釋,具有獨(dú)立性和完整性,?摘要?字樣位置居中。
目錄
目錄按三級(jí)標(biāo)題編寫(xiě),要求層次清晰,且要與正文標(biāo)題一致。主要包括緒論、正文主體、結(jié)論、主要參考文獻(xiàn)及附錄等。
題序?qū)哟未笾掠幸韵聨追N格式:
1、緒論
1.1課題背景
ˉˉˉˉˉˉ(正文)ˉˉˉˉˉˉˉˉˉ
1.2交會(huì)對(duì)接技術(shù)發(fā)展概況
ˉˉˉˉˉˉˉ(正文)ˉˉˉˉˉˉˉˉˉ
1.2.1俄羅斯空間交會(huì)對(duì)接發(fā)展概況
ˉˉˉˉˉˉˉ(正文)ˉˉˉˉˉˉˉˉˉ
1.2.2美國(guó)空間交會(huì)對(duì)接發(fā)展概況
ˉˉˉˉˉˉˉ(正文)ˉˉˉˉˉˉˉˉˉ
2、空間飛行器
2.1引言
ˉˉˉˉˉˉˉ(正文)ˉˉˉˉˉˉˉˉˉ
結(jié)論
ˉˉˉˉˉˉˉ(正文)ˉˉˉˉˉˉˉˉˉ
主要參考文獻(xiàn)
為了反映報(bào)告的科學(xué)依據(jù)和作者尊重他人研究成果的嚴(yán)肅態(tài)度,同時(shí)向讀者提供有關(guān)信息的出處,正文之后一般應(yīng)列出主要參考文獻(xiàn)(只限于那些作者親自閱讀過(guò)的,最重要的且發(fā)表在公開(kāi)出版物上的文獻(xiàn)或網(wǎng)上下載的資料)。報(bào)告中被引用的參考文獻(xiàn)序號(hào)置于所引用部分的右上角。參考文獻(xiàn)所列著作按報(bào)告中引用順序排列,著作按如下格式著錄:序號(hào)、著作者、書(shū)名、出版地、出版社、出版日期。
例1(著作):1.宋尚桂.大學(xué)通識(shí)教育的理論和模式.青島:中國(guó)海洋大學(xué)出版社,2007年9月
例2(文章):2.朱曉剛.以人為本----美國(guó)大學(xué)通識(shí)教育理念和實(shí)踐的解讀.民辦教育研究,2005(5)
設(shè)計(jì)報(bào)告裝訂順序
(一)課程設(shè)計(jì)封面
(二)課程設(shè)計(jì)任務(wù)書(shū)
(三)摘要
(四)目錄
例:
1、緒論ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
11.1課題背景ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ1
1.2交會(huì)對(duì)接技術(shù)發(fā)展概況ˉˉˉˉˉˉˉˉˉˉˉˉˉ
31.2.1俄羅斯空間交會(huì)對(duì)接發(fā)展概況ˉˉˉˉˉˉˉˉˉ
51.2.2美國(guó)空間交會(huì)對(duì)接發(fā)展概況ˉˉˉˉˉˉˉˉˉˉ72、空間飛行器ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ20
2.1引言ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ20
2.2空間飛行器姿態(tài)表示ˉˉˉˉˉˉˉˉˉˉˉˉˉˉ23 結(jié)論ˉˉˉˉˉˉˉˉˉˉˉˉ ˉˉˉˉˉˉˉˉˉˉ50 主要參考文獻(xiàn)ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
51(五)正文
(六)參考文獻(xiàn)
(七)附錄
(八)有關(guān)圖紙
撰寫(xiě)設(shè)計(jì)報(bào)告的幾點(diǎn)要求
1、文字
設(shè)計(jì)中漢字應(yīng)采用《簡(jiǎn)化漢字總表》規(guī)定的簡(jiǎn)化字,并嚴(yán)格執(zhí)行漢字的規(guī)范,所有文字字面清晰,不得涂改。
第一層次(章)題序和標(biāo)題居中放置,其余各層次(節(jié)、條、款)題序和標(biāo)題一律沿版面左側(cè)邊線頂格排列。第一層次(章)題序和標(biāo)題距下文雙倍行距。段落開(kāi)始后縮兩個(gè)字。行與行之間,段落和層次標(biāo)題以及各段落之間均為單倍行距。
第一層次(章)題序和標(biāo)題用小二號(hào)黑體字。題序和標(biāo)題之間空兩個(gè)字,不加標(biāo)點(diǎn),下同。
第二層次(節(jié))題序和標(biāo)題用小三號(hào)黑體字。
第三層次(條)題序和標(biāo)題用四號(hào)黑體字。
第四層次及以下層次題序及標(biāo)題一律用小四號(hào)黑體字。
結(jié)論(結(jié)束語(yǔ))作為單獨(dú)一章排列,但標(biāo)題前不加?第XXX?字樣。結(jié)論是整個(gè)設(shè)計(jì)的總結(jié),應(yīng)以簡(jiǎn)練的文字說(shuō)明所做的工作。
2、表格
設(shè)計(jì)中的表格可以統(tǒng)一編序,也可以逐章單獨(dú)編序,方式應(yīng)與插圖及公式的編序方式統(tǒng)一。表序必須連續(xù),不得重復(fù)或跳躍。表格的結(jié)構(gòu)應(yīng)簡(jiǎn)潔,各欄都應(yīng)標(biāo)注量和相應(yīng)的單位。表格內(nèi)數(shù)字須上下對(duì)齊,相鄰欄內(nèi)的數(shù)值相同時(shí),不能用‘同上’、‘同左’和其它類似用詞,應(yīng)一一重新標(biāo)注。表序和表題置于表格上方中間位置,無(wú)表題的表序置于表格的左上方或右上方(同一篇論文位置應(yīng)一致)。
3、插圖
插圖要精選,圖序可以連續(xù)編序,也可以逐章單獨(dú)編序,方式應(yīng)與表格、公式的編序方式統(tǒng)一,圖序必須連續(xù),不得重復(fù)或跳躍。僅有一圖時(shí),在圖題前加‘附圖’字樣。設(shè)計(jì)中的插圖以及圖中文字符號(hào)應(yīng)打印,無(wú)法打印時(shí)一律用鋼筆繪制和標(biāo)出。由若干個(gè)分圖組成的插圖,分圖用a,b,c,……標(biāo)出。圖序和圖題置于圖下方中間位置。
4、公式
設(shè)計(jì)中重要的或者后文中須重新提及的公式應(yīng)注序號(hào)并加圓括號(hào),序號(hào)一律用阿拉伯?dāng)?shù)字連續(xù)編序或逐章編序,序號(hào)排在版面右側(cè),且距右邊距相等。公式與序號(hào)之間不加虛線。
5、數(shù)字用法
公歷世紀(jì)、年代、年、月、日、時(shí)間和各種計(jì)數(shù)、計(jì)量,均用阿拉伯?dāng)?shù)字。年份不能簡(jiǎn)寫(xiě)(如1999年不能寫(xiě)成99年)。數(shù)值的有效數(shù)字應(yīng)全部寫(xiě)出,如:0.50∶20.0不能寫(xiě)作0.5∶20。
6、軟件
軟件流程圖和原程序清單要按軟件文檔格式附在報(bào)告后面,特殊情況可在答辯時(shí)展示,不附在報(bào)告內(nèi)。
7、計(jì)量單位的定義和使用方法按國(guó)家計(jì)量標(biāo)準(zhǔn)執(zhí)行。
第四篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告
《單片機(jī)原理與接口技術(shù)》
課程設(shè)計(jì)報(bào)告
設(shè)計(jì)題目: 基于80C51單片機(jī)系統(tǒng)實(shí)驗(yàn)板的制作
與程序設(shè)計(jì)
專
業(yè):應(yīng)用電子專業(yè)
班
級(jí): 11應(yīng)電班
姓
名: 丁文俊
指導(dǎo)教師: 余靜老師
2013 年 5 月20 日
目錄 前 言………………………………………………………………… 2 課程設(shè)計(jì)的目的及要求…………………………………………… 3 硬件電路設(shè)計(jì)……………………………………………………… 4 軟件程序設(shè)計(jì)…………………………………………………… 5 小結(jié)………………………………………………………………
參考文獻(xiàn) 附錄A 電路總圖 附錄B 程序清單
基于80C51單片機(jī)系統(tǒng)實(shí)驗(yàn)板的制作與程序設(shè)計(jì)
1.前言
2、課程設(shè)計(jì)的目的及要求 2.1課程設(shè)計(jì)目的
2.2課程設(shè)計(jì)要求
3、系統(tǒng)主要硬件電路設(shè)計(jì)
3.1 STC89C51單片機(jī)簡(jiǎn)介
MCS-51是美國(guó)Intel公司生產(chǎn)的一系列單片機(jī)的總稱,包括多個(gè)品種,如8031、8051、8751、8032、80C52、8752等。其中8051是最典型的產(chǎn)品,其他單片機(jī)都是在其基礎(chǔ)上進(jìn)行功能增減而來(lái)的,所以人們習(xí)慣于用8051來(lái)稱呼MCS-51系列單片機(jī)。Intel公司將MCS-51的核心技術(shù)授權(quán)給了多家公司,這些廠家生產(chǎn)的單片機(jī)在功能上或多或少有些改變,以滿足不同的需求,其中美國(guó)的ATMEL公司生產(chǎn)的AT89C51是曾經(jīng)在我國(guó)非常流行的51單片機(jī)。當(dāng)前AT89C51/52已經(jīng)停產(chǎn),其替代產(chǎn)品為AT89S51/52。深圳宏晶公司出品的STC89C51可以直接代替?zhèn)鹘y(tǒng)的AT89S51和AT89C51芯片,也可以代替菲利普、華幫等其他公司的89C51,由于時(shí)代的發(fā)展,工藝的進(jìn)步,STC89C51功能更強(qiáng),壽命更長(zhǎng)(4K字節(jié)Flash存儲(chǔ)器、128字節(jié)片內(nèi)RAM、支持ISP下載編程)
圖2.1 STC89c51單片機(jī)
單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)際使用中常采用這種方式,如圖2-2所示在其外接晶體振蕩器(簡(jiǎn)稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。
圖2-2中外接晶體以及電容C2和C1構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值均為30P左右,晶振頻率選11.0592MHz。
為了初始化單片機(jī)內(nèi)部的某些特殊功能寄存器,必須采用復(fù)位的方式,復(fù)位后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開(kāi)始正常工作。單片機(jī)的復(fù)位是靠外電路來(lái)實(shí)現(xiàn)的,在正常運(yùn)行情況下,只要RST引腳上出現(xiàn)兩個(gè)機(jī)器周期時(shí)間以上的高電平,即可引起系統(tǒng)復(fù)位,但如果RST引腳上持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位后系統(tǒng)將輸入/輸出(1/0)端口寄存器置為FFH,堆棧指針SP置為07H, SBUF內(nèi)置為不定值,其余的寄存器全部清0,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí)RAM的內(nèi)容是不定的。復(fù)位操作有兩種情況,即上電復(fù)位和手動(dòng)(開(kāi)關(guān))復(fù)位。本系統(tǒng)采用上電復(fù)位方式。圖2-2中R9和Cl組成上電復(fù)位電路,其值R取為10K, C取為10μF.4
圖2.2 最小系統(tǒng)結(jié)構(gòu)圖
3.2 電平轉(zhuǎn)換電路 3.3
4、軟件程序設(shè)計(jì)
5、小結(jié)
參考文獻(xiàn)
[1] 張偉,《單片機(jī)原理及應(yīng)用》,機(jī)械工業(yè)出版社,2005(這是格式)
附錄
江西工業(yè)職業(yè)技術(shù)學(xué)院電子與信息工程系
課程設(shè)計(jì)指導(dǎo)教師評(píng)語(yǔ)
班級(jí):
學(xué)生姓名:
學(xué)號(hào):
指導(dǎo)教師評(píng)語(yǔ)(包括工作態(tài)度,遵守紀(jì)律;基本理論、知識(shí)、技能;獨(dú)立工作能力和分析解決問(wèn)題的能力;完成任務(wù)情況及水平):
學(xué)生成績(jī)(五級(jí)分制):
指導(dǎo)教師簽名:
****年**月**日
第五篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告
課程設(shè)計(jì)報(bào)告
題 目: 自動(dòng)滴灌系統(tǒng)設(shè)計(jì)
課程名稱: 單片機(jī)原理及應(yīng)用 學(xué) 院: 信息工程學(xué)院
專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 2014 級(jí)計(jì)本 1 班
學(xué)生姓名: *** 學(xué) 號(hào): 201403031 指導(dǎo)教師: 巫 宗 賓
成 績(jī):
開(kāi)課時(shí)間: 2016~2017 學(xué)年 2 學(xué)期
目錄
第一章 系統(tǒng)概要.........................................................................................................................2 1.1系統(tǒng)背景............................................................................................................................2 1.2系統(tǒng)功能............................................................................................................................2 1.3設(shè)計(jì)要求............................................................................................................................2 第二章 系統(tǒng)硬件原理...............................................................................................................3 2.1AW60主要模塊和特點(diǎn)........................................................................................................3 2.2 LCD模塊............................................................................................................................3 2.3 LED模塊............................................................................................................................4 第三章 系統(tǒng)軟件設(shè)計(jì).................................................................................................................6 3.1系統(tǒng)流程............................................................................................................................6 3.2主程序(main.c)............................................................................................................7 3.2中斷處理程序(isr.c)..................................................................................................7 3.3構(gòu)件組成............................................................................................................................9 第四章 系統(tǒng)測(cè)試.......................................................................................................................27 4.1測(cè)試結(jié)果..........................................................................................................................27 第五章 總結(jié)展望........................................................................................................................31 5.1總結(jié)..................................................................................................................................31 5.2展望..................................................................................................................................31 參考文獻(xiàn).....................................................................................................................................32
第一章 系統(tǒng)概要
1.1系統(tǒng)背景
隨著科學(xué)技術(shù)的發(fā)展電子技術(shù)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整,單片機(jī)開(kāi)始迅速發(fā)展,由于單片機(jī)本身的易于控制,精度高,自動(dòng)化全面,市場(chǎng)對(duì)于智能控制系統(tǒng)的需求也越來(lái)越大。自動(dòng)滴灌系統(tǒng),就是在單片機(jī)程序的控制下實(shí)現(xiàn)濕度監(jiān)測(cè)、滴灌控制的設(shè)備。單片機(jī)系統(tǒng)座位一種典型的嵌入式系統(tǒng),其系統(tǒng)設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)編程設(shè)計(jì)兩個(gè)方面,其調(diào)試過(guò)程一般分為軟件調(diào)試,硬件調(diào)試,系統(tǒng)調(diào)試。自動(dòng)滴灌系統(tǒng)需要實(shí)現(xiàn)濕度采集,A/D轉(zhuǎn)換,濕度顯示,工作狀態(tài)顯示,電機(jī)驅(qū)動(dòng)的功能。
1.2系統(tǒng)功能
首先要進(jìn)行濕度監(jiān)測(cè),每隔固定的時(shí)間就采集一次濕度,在內(nèi)部轉(zhuǎn)換后與標(biāo)準(zhǔn)值進(jìn)行比較如果濕度值低于給定值的話就切換至工作狀態(tài),滴灌結(jié)束時(shí)自動(dòng)切換至結(jié)束模式,繼續(xù)監(jiān)測(cè)濕度。
仿真狀態(tài)下濕度監(jiān)測(cè)采用軟件模擬實(shí)現(xiàn),采集濕度信息使用LED顯示,每隔5s采集一次。工作狀態(tài)由LCD顯示。分別有滴灌開(kāi)始(“Drip-irrigation is starting..”),和滴灌結(jié)束(“Drip-irrigation has ended..”)。滴灌時(shí)間為5s。結(jié)束后切換至結(jié)束模式。
1.3設(shè)計(jì)要求
學(xué)生在設(shè)計(jì)中可以引用所需的參考資料,避免重復(fù)工作,加快設(shè)計(jì)進(jìn)程,但必須和題目的要求相符合,保證設(shè)計(jì)的正確。學(xué)生要在老師的指導(dǎo)下制定好自己各環(huán)節(jié)的詳細(xì)設(shè)計(jì)進(jìn)程計(jì)劃,按給定的時(shí)間計(jì)劃保質(zhì)保量的完成個(gè)階段的設(shè)計(jì)任務(wù)。設(shè)計(jì)中可邊設(shè)計(jì),邊修改,軟件設(shè)計(jì)與硬件設(shè)計(jì)可交替進(jìn)行,問(wèn)題答疑與調(diào)試和方案修改相結(jié)合,提高設(shè)計(jì)的效率,保證按時(shí)完成設(shè)計(jì)工作并交出合格的設(shè)計(jì)報(bào)告。1
第二章 系統(tǒng)硬件原理
2.1AW60主要模塊和特點(diǎn)
AW60系列主要常規(guī)模塊和特點(diǎn):
(1)最高達(dá)40MHz的CPU工作頻率和20MHz的內(nèi)部總線工作頻率;時(shí)鐘源選項(xiàng)包括晶振,諧振器,外部時(shí)鐘或,內(nèi)部產(chǎn)生的時(shí)鐘。
(2)相比HC08CPU指令集,S08CPU增加了BGND指令。
(3)單線后臺(tái)調(diào)試模式接口:增強(qiáng)的斷點(diǎn)能力,允許單一的斷點(diǎn)設(shè)置在線調(diào)試(在片內(nèi)調(diào)試模塊增加了多于兩個(gè)的斷點(diǎn))。
(4)內(nèi)含32個(gè)中斷/復(fù)位源;內(nèi)含2KB的片內(nèi)RAM;內(nèi)含60KB的片內(nèi)在線可編程的Flash存儲(chǔ)器,帶有 塊保護(hù)和安全選項(xiàng)。
(5)可選的計(jì)算機(jī)正常操作(COP)復(fù)位;低電壓檢測(cè)與復(fù)位或中斷;非法操作碼檢測(cè)與復(fù)位;非法地址檢測(cè)與復(fù)位。
(6)ADC:多達(dá)16個(gè)通道,10個(gè)A/D轉(zhuǎn)換器與動(dòng)動(dòng)比較功能;兩個(gè)串行通信接口SCI模塊與可選的13位中斷;一個(gè)串行外設(shè)接口SPI模塊;集成電路互聯(lián)總線IIC模塊運(yùn)行高達(dá)100kbps的最高總線負(fù)載;8引腳鍵盤(pán)中斷KBI模塊。
(7)Timers:1個(gè)2 通道和一個(gè)6通道16位定時(shí)器/脈沖寬度調(diào)制器模塊。既有輸入捕獲,輸出比較,脈寬調(diào)制功能。AW子系列MCU的4種封裝形式只是引腳數(shù)量和形式有所區(qū)別,其他方面是一致的。
2.2 LCD模塊
LCD作為電子信息產(chǎn)品的主要顯示器件,相對(duì)于其他類型的顯示器件來(lái)說(shuō)有其自身的特點(diǎn),主要包括:
(1)低電壓,低功耗;(2)平板型結(jié)構(gòu);
(3)使用壽命長(zhǎng);
(4)被動(dòng)顯示;
(5)顯示信息量大且易于彩色化; 1
(6)無(wú)電磁輻射。
點(diǎn)陣字符型LCD是專門(mén)用于顯示數(shù)字,字母,圖形符號(hào)及少量自定義符號(hào)的液晶顯示器。這類顯示器把LCD控制器,點(diǎn)陣驅(qū)動(dòng)器,字符存儲(chǔ)器,顯示體及少量的阻容元件等集成一個(gè)液晶顯示模板。鑒于字符型液晶顯示模塊目前在國(guó)際上已經(jīng)規(guī)范化,其電特性及接口特性是統(tǒng)一的,只要設(shè)計(jì)出一種型號(hào)的接口電路,在指令上稍加修改即可使用各種規(guī)格的字符型液晶顯示器模塊。
字符型液晶顯示器模塊的特點(diǎn)如下:
(1)液晶顯示屏是以若干5*8或5*11點(diǎn)陣塊等組成的顯示字符群。每個(gè)點(diǎn)陣塊塊為一個(gè)字符位,字符間距和行間距都是一個(gè)點(diǎn)的寬度。
(2)主控制電路為HD44780(HITACHI及其他公司的兼容電路。從程序員的角度來(lái)看LCD顯示接口與編程是面向HD44780的,只要了解HD44780的編程結(jié)構(gòu)即可進(jìn)行LCD的顯示編程。
(3)內(nèi)部具有字符發(fā)生器ROM,可顯示192種字符。
(4)具有64字節(jié)的字符發(fā)生器RAM,可以定義8個(gè)5*8點(diǎn)陣字符或4個(gè)5*11的點(diǎn)陣字符。
(5)具有64字節(jié)的數(shù)據(jù)顯示RAM,供顯示器編程使用。(6)標(biāo)準(zhǔn)接口特性,與MC9S08系列的MCU容易接口。(7)模塊結(jié)構(gòu)緊湊,輕巧,裝配容易。
(8)單+5V電源供電(寬溫型需要加-7V驅(qū)動(dòng)電源)。(9)低功耗,高可靠性。
2.3 LED模塊
LED發(fā)光二極管分為共陰極和共陽(yáng)極數(shù)碼管,若為共陰極數(shù)碼管則公共端接地,若為共陽(yáng)極數(shù)碼管則公共端接電源正極。如圖1: 1
圖1
實(shí)際應(yīng)用中是多個(gè)LED共同使用,MCU通過(guò)一個(gè)稱為數(shù)據(jù)口的8位數(shù)據(jù)端口來(lái)控制位段而原來(lái)8段數(shù)碼管的公共端,原來(lái)接到公共電平,現(xiàn)在接MCU的一個(gè)引腳,由MCU來(lái)控制,通常叫做位選信號(hào),這樣MCU的8?jìng)€(gè)端口就可以控制8連排的數(shù)碼管了。若要控制更多數(shù)碼管則需加一個(gè)譯碼芯片。每個(gè)時(shí)刻只讓一個(gè)數(shù)碼管有效,由于人的視覺(jué)暫留效應(yīng)(100ms)可以達(dá)到同時(shí)顯示的效果。
圖2是MCU與4排8段數(shù)碼管的連接:
圖2 1
第三章 系統(tǒng)軟件設(shè)計(jì)
3.1系統(tǒng)流程
開(kāi)始初始化土壤濕度數(shù)據(jù)采集顯示濕度N小于設(shè)定值Y顯示滴灌開(kāi)始計(jì)時(shí)結(jié)束,結(jié)束滴灌顯示滴灌結(jié)束 圖3 圖3是系統(tǒng)流程圖,開(kāi)始時(shí)先初始化各個(gè)部件,LCD顯示結(jié)束滴灌信息,LED顯示為全零。后每隔五秒采集一次濕度數(shù)據(jù)用LED顯示濕度。判斷濕度值是否低于設(shè)定值,低于設(shè)定值的話立即啟動(dòng)滴灌,此時(shí)濕度上升,結(jié)束滴灌。若沒(méi)有低于設(shè)定值的話,則繼續(xù)監(jiān)測(cè)。LED不斷刷新顯示當(dāng)前濕度值。1
3.2主程序(main.c)
#include “includes.h” //包涵總頭文件 int main(void){ work = 0;shidu = 75;enter_critical();LEDInit();//LED初始化 LCDInit();//LCD初始化 tpm_init(TPM0,TPM_CLKSRC_PLL,1000);//初始化TPM模塊,1ms中斷一次
light_init(LIGHT_PORT, LIGHT_PIN_RED, LIGHT_OFF);light_init(LIGHT_PORT, LIGHT_PIN_GREEN, LIGHT_OFF);tpm_enable_int(0);init_critical();for(;;){
}
} return 0;3.2中斷處理程序(isr.c)
//================== //文件名稱:isr.c //功能概要: 中斷底層驅(qū)動(dòng)構(gòu)件源文件
//版權(quán)所有:蘇州大學(xué)飛思卡爾嵌入式中心(sumcu.suda.edu.cn)1
//================== #include “includes.h” void tpm0_isr(void){ static uint_32 TPMCounter = 0;//計(jì)時(shí)器 static uint_8 LEDindex=0;//位選口聲明 uint_8 LEDDataBuffer[4];//LED顯示緩沖區(qū)
changeCode(shidu,LEDDataBuffer);//將濕度值轉(zhuǎn)化為對(duì)應(yīng)字符輸出 uint_8 i;uint_8 * working;uint_8 * stop;working =(uint_8 *)“Drip-irrigation is starting......”;stop =(uint_8 *)“Drip-irrigation has ended......”;if((TPM_SC_REG(TPM0_BASE_PTR)TPM_SC_TOF_MASK){ TPMCounter++;
&
TPM_SC_TOF_MASK)
== } BSET(TPM_SC_TOF_SHIFT,TPM_SC_REG(TPM0_BASE_PTR));//中斷置標(biāo)志位寫(xiě)1清0 LEDindex++;//位選位+1 if(LEDindex>=4)LEDindex=0;//大于4位選口置0 i=LEDchangeCode(LEDDataBuffer[LEDindex]-'0');//轉(zhuǎn)碼 LEDshow1(LEDindex,i);if(TPMCounter>5000){
shidu = sdmn(shidu);if(shidu <= 65){ 1
} changeState(&work);//改變工作狀態(tài)
if(work == 0)
{ LCDShow(stop);TPMCounter = 0;light_control(LIGHT_PORT, LIGHT_PIN_RED, LIGHT_ON);light_control(LIGHT_PORT, LIGHT_PIN_GREEN, LIGHT_OFF);} if(work == 1){
LCDShow(working);
TPMCounter = 0;shidu = 80;light_control(LIGHT_PORT, LIGHT_PIN_GREEN, LIGHT_ON);light_control(LIGHT_PORT, LIGHT_PIN_RED, LIGHT_OFF);changeState(&work);}
} }
3.3構(gòu)件組成
1、TPM構(gòu)件:
//=================== //文件名稱:tpm.c //功能概要:tpm底層驅(qū)動(dòng)構(gòu)件源文件 1
//版權(quán)所有:蘇州大學(xué)飛思卡爾嵌入式中心(sumcu.suda.edu.cn)//====================== #include “tpm.h” //定時(shí)器模塊0,1,2地址映射 Const TPM_MemMapPtr TPM_ARR[]={TPM0_BASE_PTR,TPM1_BASE_PTR,TPM2_BASE_PTR};//====================== //函數(shù)名稱:tpm_enable_int //功能概要:使能tpm模塊中斷。
//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //函數(shù)返回:無(wú)
//====================== void tpm_enable_int(uint_8 tpmModule){ } //====================== //函數(shù)名稱:tpm_disable_int //功能概要:禁止tpm模塊初始化。enable_irq(tpm0_irq_no + tpmModule);//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //函數(shù)返回:無(wú)
//====================== void tpm_disable_int(uint_8 tpmModule){ } //====================== //函數(shù)名稱:tpm_init //功能概要:初始化tpm模塊.1
disable_irq(tpm0_irq_no + tpmModule);
//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //clk_src_sel:時(shí)鐘源選擇:1:PLL/FLL(推薦)、2:晶振、3:內(nèi)部參考時(shí)鐘。1,2可用
// int_us:中斷毫秒數(shù),中斷時(shí)間間隔,單位為毫秒,10ms=10000 //函數(shù)返回:函數(shù)執(zhí)行狀態(tài):0=正常;非0=異常
//====================== uint_8 tpm_init(uint_8 tpmModule,uint_8 clk_src_sel,uint_32 int_us){
if(tpmModule>2)//防止越界值 { } //開(kāi)啟SIM時(shí)鐘門(mén) tpmModule=2;BSET(SIM_SCGC6_TPM0_SHIFT+tpmModule,SIM_SCGC6);//使能TPM時(shí)鐘
//中斷時(shí)間計(jì)算:(48000/8)*10000/1000=0x7530 10ms中斷一次 switch(clk_src_sel){ case 1: //MCGPLL/2或者M(jìn)CGFLL作為時(shí)鐘源 BSET(SIM_SOPT2_PLLFLLSEL_SHIFT,SIM_SOPT2);
//使能PLL為時(shí)鐘源
int_us=(48000/8)*int_us/1000;break;case 2: //晶振作為時(shí)鐘源
int_us=(8000/8)*int_us/1000;OSC0_CR|=OSC_CR_ERCLKEN_MASK;//開(kāi)啟晶振輸出時(shí)鐘
break;case 3: //內(nèi)部參考時(shí)鐘,由MCG決定 break;
default: 1
} return 1;//傳參錯(cuò)誤,返回
SIM_SOPT2 |= SIM_SOPT2_TPMSRC(clk_src_sel);//使能時(shí)鐘選擇 TPM_ARR[tpmModule]->CNT=0x00;TPM_ARR[tpmModule]->MOD=int_us;//TOF寫(xiě)1清0,TOIE中斷使能,CMOD選擇每次時(shí)鐘加1,PS=0x011 選擇8分頻;TPM_ARR[tpmModule]->SC=TPM_SC_TOF_MASK|TPM_SC_TOIE_MASK|TPM_SC_CMOD(1)|TPM_SC_PS(3);return 0;} //====================== //函數(shù)名稱:tpm_stop //功能概要:禁止tpm模塊。
//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //函數(shù)返回:無(wú)
//====================== void tpm_stop(uint_8 tpmModule){ } Tpm.h //====================== //文件名稱:tpm.c //功能概要:tpm底層驅(qū)動(dòng)構(gòu)件源文件
//版權(quán)所有:蘇州大學(xué)飛思卡爾嵌入式中心(sumcu.suda.edu.cn)//====================== #ifndef TPM_H 1
TPM_ARR[tpmModule]->SC&=~TPM_SC_CMOD(3);
#define TPM_H
#include “common.h” #include “sysinit.h” //中斷號(hào)
#define tpm0_irq_no 17 #define tpm1_irq_no 18 #define tpm2_irq_no 19 //時(shí)鐘選擇
#define TPM_CLKSRC_PLL 1 #define TPM_CLKSRC_OSC 2 #define TPM_CLKSRC_IRC 3 //模塊號(hào) #define TPM0 0 #define TPM1 1 #define TPM2 2
//====================== //函數(shù)名稱:tpm_enable_int //功能概要:使能tpm模塊中斷。
//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //函數(shù)返回:無(wú)
//====================== void tpm_enable_int(uint_8 tpmModule);//====================== //函數(shù)名稱:tpm_disable_int //功能概要:禁止tpm模塊初始化。
//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //函數(shù)返回:無(wú) 1
//====================== void tpm_disable_int(uint_8 tpmModule);//====================== //函數(shù)名稱:tpm_init //功能概要:初始化tpm模塊.//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //clk_src_sel:時(shí)鐘源選擇:1:PLL/FLL(推薦)、2:晶振、3:內(nèi)部參考時(shí)鐘。1,2可用
// int_us:中斷毫秒數(shù),中斷時(shí)間間隔,單位為毫秒,10ms=10000 //函數(shù)返回:函數(shù)執(zhí)行狀態(tài):0=正常;非0=異常
//====================== uint_8 tpm_init(uint_8 tpmModule,uint_8 clk_src_sel,uint_32 int_us);//====================== //函數(shù)名稱:tpm_stop //功能概要:禁止tpm模塊。
//參數(shù)說(shuō)明:tpmModule:模塊號(hào):0、1、2 //函數(shù)返回:無(wú)
//====================== void tpm_stop(uint_8 tpmModule);#endif
2、LED構(gòu)件
//===================== // 文件名稱:led.c // 功能概要:led構(gòu)件源文件
// 版權(quán)所有: 蘇州大學(xué)飛思卡爾嵌入式中心(sumcu.suda.edu.cn)//====================== #include “l(fā)ed.h” //led位選端口 struct GPIO led_cs[4]= 1
{
{LED_CS0_PORT,LED_CS0}, {LED_CS1_PORT,LED_CS1}, {LED_CS2_PORT,LED_CS2}, {LED_CS3_PORT,LED_CS3}, };//led數(shù)據(jù)端口 struct GPIO led_d[8]= {
{LED_D1_PORT,LED_D1}, {LED_D2_PORT,LED_D2}, {LED_D3_PORT,LED_D3}, {LED_D4_PORT,LED_D4}, {LED_D5_PORT,LED_D5}, {LED_D6_PORT,LED_D6}, {LED_D7_PORT,LED_D7}, {LED_D8_PORT,LED_D8}, };
//====================== //函數(shù)名稱:LEDInit //函數(shù)返回:無(wú) //參數(shù)說(shuō)明:無(wú) //功能概要:LED初始化。
//====================== void LEDInit(){ uint_8 i = 0;//定義8根數(shù)據(jù)線為輸出,初始輸出0 for(i = 0;i < 8;i++)gpio_init(led_d[i].gpio_port, led_d[i].gpio_pin, 1, 0);1
//定義4位選線定義為輸出,初始輸出0 for(i = 0;i < 4;i++)gpio_init(led_cs[i].gpio_port, led_cs[i].gpio_pin, 1, 0);} //====================== //函數(shù)名稱:LEDshow1 //函數(shù)返回:無(wú)
//參數(shù)說(shuō)明:i:指定LED哪一位顯示,c:顯示的內(nèi)容 //功能概要:指定LED的第i位顯示c。
//====================== void LEDshow1(uint_8 i, uint_8 c){ uint_8 temp;uint_8 j;//位選全部置0 for(j=0;j<=3;j++)gpio_set(led_cs[j].gpio_port, led_cs[j].gpio_pin, 0);//數(shù)據(jù)上線 for(j=0;j<=7;j++){ temp =(c>>j)& 0x01;
gpio_set(led_d[j].gpio_port, led_d[j].gpio_pin, temp);} //選擇的位選置1 gpio_set(led_cs[i].gpio_port, led_cs[i].gpio_pin, 1);}
//顯示碼表
const uint_8 Dtable[24] = 1
// 0 1 2 3 4 5 6 7 8 9 {0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F, // 11 12 13 14 15 16 17 18 19 20 // 0.1.2.3.4.5.6.7.8.9.0xBF,0x86,0xDB,0x4F,0x66, 0x6D,0x7D,0x07,0xFF,0x6F, // 21 22 23(全亮)24(全滅)// E F 0x79,0x71, 0xFF, 0x00};//====================== //函數(shù)名稱:LEDchangeCode //函數(shù)返回:返回?cái)?shù)據(jù)num對(duì)應(yīng)的顯示碼 //參數(shù)說(shuō)明:num:需要轉(zhuǎn)換成顯示碼的數(shù)字 //功能概要:數(shù)字轉(zhuǎn)成顯示碼
//===================== uint_8 LEDchangeCode(uint_8 num){ return Dtable[num];} LED.h //====================== // 文件名稱:led.h // 功能概要:led構(gòu)件頭文件
// 版權(quán)所有: 蘇州大學(xué)飛思卡爾嵌入式中心(sumcu.suda.edu.cn)//======================
#ifndef led_H //防止重復(fù)定義(開(kāi)頭)#define led_H #include “GPIOapp.h” //LED數(shù)據(jù)口分別接PORTB的{11,10,9,8,3,2,1,0}引腳 1
#define LED_D1_PORT PORTB #define LED_D1 11 #define LED_D2_PORT PORTB #define LED_D2 10 #define LED_D3_PORT PORTB #define LED_D3 9 #define LED_D4_PORT PORTB #define LED_D4 8 #define LED_D5_PORT PORTB #define LED_D5 3 #define LED_D6_PORT PORTB #define LED_D6 2 #define LED_D7_PORT PORTB #define LED_D7 1 #define LED_D8_PORT PORTB #define LED_D8 0 //LED位選口分別接PORTB的{19,18,17,16}引腳 #define LED_CS0_PORT PORTB #define LED_CS0 19 #define LED_CS1_PORT PORTB #define LED_CS1 18 #define LED_CS2_PORT PORTB #define LED_CS2 17 #define LED_CS3_PORT PORTB #define LED_CS3 16 //====================== //函數(shù)名稱:LEDInit //函數(shù)返回:無(wú) //參數(shù)說(shuō)明:無(wú) 1
//功能概要:LED初始化。
//====================== void LEDInit();//====================== //函數(shù)名稱:LEDshow1 //函數(shù)返回:無(wú)
//參數(shù)說(shuō)明:i:指定LED哪一位顯示,c:顯示的內(nèi)容 //功能概要:指定LED的第i位顯示c。
//====================== void LEDshow1(uint_8 i, uint_8 c);//====================== //函數(shù)名稱:LEDchangeCode //函數(shù)返回:返回?cái)?shù)據(jù)num對(duì)應(yīng)的顯示碼 //參數(shù)說(shuō)明:num:需要轉(zhuǎn)換成顯示碼的數(shù)字 //功能概要:數(shù)字轉(zhuǎn)成顯示碼
//====================== uint_8 LEDchangeCode(uint_8 num);#endif //防止重復(fù)定義(結(jié)尾)
3、LCD構(gòu)件
//====================== // 文件名稱:lcd.c // 功能概要:lcd構(gòu)件頭文件
// 版權(quán)所有: 蘇州大學(xué)飛思卡爾嵌入式中心(sumcu.suda.edu.cn)//====================== #include “l(fā)cd.h”//lcd控制位和數(shù)據(jù)位端口及引腳號(hào) struct GPIO LCD[11]= { {LCD_RS_PORT,LCD_RS}, 1
{LCD_RW_PORT,LCD_RW}, {LCD_E_PORT,LCD_E}, {LCD_D0_PORT,LCD_D0}, {LCD_D1_PORT,LCD_D1}, {LCD_D2_PORT,LCD_D2}, {LCD_D3_PORT,LCD_D3}, {LCD_D4_PORT,LCD_D4}, {LCD_D5_PORT,LCD_D5}, {LCD_D6_PORT,LCD_D6}, {LCD_D7_PORT,LCD_D7}, };//內(nèi)部函數(shù)原型說(shuō)明
extern void LCDCommand(uint_8 cmd);//====================== //函數(shù)名稱:LCDInit //函數(shù)返回:無(wú) //參數(shù)說(shuō)明:無(wú)
//功能概要:LCD初始化。
//====================== void LCDInit(){ uint_32 i = 0; //定義數(shù)據(jù)口和控制口為輸出 for(i = 0;i < 11;i++){ gpio_init(LCD[i].gpio_port, LCD[i].gpio_pin, 1,0);} //設(shè)置指令,RS,R/W = 00, 寫(xiě)指令代碼
gpio_set(LCD[0].gpio_port, LCD[0].gpio_pin, 0);gpio_set(LCD[1].gpio_port, LCD[1].gpio_pin, 0);1
//功能設(shè)置-//設(shè)置指令
LCDCommand(0x38);//5*7點(diǎn)陣模式,2行顯示,8位數(shù)據(jù)總線 LCDCommand(0x08);//關(guān)顯示,關(guān)光標(biāo)顯示,不閃爍
LCDCommand(0x01);//清屏
for(i=0;i<40000;i++)asm(“NOP”);//延時(shí) LCDCommand(0x06);LCDCommand(0x14);//光標(biāo)右移一個(gè)字符位,AC自動(dòng)加1 LCDCommand(0x0C);//開(kāi)顯示,關(guān)光標(biāo)顯示,不閃爍 } //====================== //函數(shù)名稱:LCDShow //函數(shù)返回:無(wú)
//參數(shù)說(shuō)明:需要顯示的數(shù)據(jù) //功能概要:液晶顯示data中的數(shù)據(jù)。
//====================== void LCDShow(uint_8 data[32]){ uint_8 i;LCDInit();//LCD初始化 //顯示第1行16個(gè)字符
gpio_set(LCD[0].gpio_port, LCD[0].gpio_pin, 0);gpio_set(LCD[1].gpio_port, LCD[1].gpio_pin, 0);//后7位為DD RAM地址(0x00)LCDCommand(0x80);//寫(xiě)16個(gè)數(shù)據(jù)到DD RAM gpio_set(LCD[0].gpio_port, LCD[0].gpio_pin, 1);gpio_set(LCD[1].gpio_port, LCD[1].gpio_pin, 0);//將要顯示在第1行上的16個(gè)數(shù)據(jù)逐個(gè)寫(xiě)入DD RAM中 1
for(i = 0;i < 16;i++){ } //顯示第2行16個(gè)字符
gpio_set(LCD[0].gpio_port, LCD[0].gpio_pin, 0);gpio_set(LCD[1].gpio_port, LCD[1].gpio_pin, 0);//后7位為DD RAM地址(0x40)LCDCommand(0xC0);gpio_set(LCD[0].gpio_port, LCD[0].gpio_pin, 1);gpio_set(LCD[1].gpio_port, LCD[1].gpio_pin, 0);//將要顯示在第2行上的16個(gè)數(shù)據(jù)逐個(gè)寫(xiě)入DD RAM中 for(i = 16;i < 32;i++){ } } //====================== //函數(shù)名稱:LCDCommand //函數(shù)返回:無(wú)
//參數(shù)說(shuō)明:cmd:待執(zhí)行的命令
//功能概要:執(zhí)行給定的cmd命令,且延時(shí)。
//====================== void LCDCommand(uint_8 cmd){
uint_8 i;uint_16 j;uint_8 temp;LCDCommand(data[i]);LCDCommand(data[i]);//等待延遲防止重復(fù)調(diào)用此函數(shù)而LCD卡死 1
for(j=0;j<1600;j++);asm(“NOP”);//數(shù)據(jù)送到LCD的數(shù)據(jù)線上 for(i = 3;i < 11;i++){ gpio_set(LCD[i].gpio_port, LCD[i].gpio_pin, 0);} for(i = 3;i < 11;i++){ temp = 0x01 &(cmd>>(i-3));gpio_set(LCD[i].gpio_port, LCD[i].gpio_pin, temp);} //給出E信號(hào)的下降沿(先高后低),使數(shù)據(jù)寫(xiě)入LCD gpio_set(LCD[2].gpio_port, LCD[2].gpio_pin, 1);for(j=0;j<25;j++)asm(“NOP”);gpio_set(LCD[2].gpio_port, LCD[2].gpio_pin, 0);} LCD.h //====================== // 文件名稱:lcd.h // 功能概要:lcd構(gòu)件頭文件
// 版權(quán)所有: 蘇州大學(xué)飛思卡爾嵌入式中心(sumcu.suda.edu.cn)// 版本更新: 2013-03-17 V1.2 //====================== #ifndef LCD_H #define LCD_H #include “GPIOapp.h” //LCD寄存器選擇信號(hào)引腳 #define LCD_RS_PORT PORTD #define LCD_RS 7 //LCD讀寫(xiě)信號(hào)引腳 1
#define LCD_RW_PORT PORTD #define LCD_RW 6 //LCD讀寫(xiě)信號(hào)引腳
#define LCD_E_PORT PORTD #define LCD_E 5 //LCD數(shù)據(jù)引腳
#define LCD_D0_PORT PORTD #define LCD_D0 4 #define LCD_D1_PORT PORTD #define LCD_D1 3 #define LCD_D2_PORT PORTD #define LCD_D2 2 #define LCD_D3_PORT PORTD #define LCD_D3 1 #define LCD_D4_PORT PORTD #define LCD_D4 0 #define LCD_D5_PORT PORTC #define LCD_D5 17 #define LCD_D6_PORT PORTC #define LCD_D6 16 #define LCD_D7_PORT PORTC #define LCD_D7 13 //====================== //函數(shù)名稱:LCDInit //函數(shù)返回:無(wú) //參數(shù)說(shuō)明:無(wú)
//功能概要:LCD初始化。
//====================== extern void LCDInit();1
//====================== //函數(shù)名稱:LCDShow //函數(shù)返回:無(wú)
//參數(shù)說(shuō)明:data[32]:需要顯示的數(shù)組 //功能概要:LCD顯示數(shù)組的內(nèi)容。
//====================== extern void LCDShow(uint_8 data[32]);#endif //防止重復(fù)定義(結(jié)尾)
4、輔助函數(shù) /* * qzh.h * * Created on: Jun 5, 2017 * Author: administrator */
#ifndef QZH_H_ #define QZH_H_ #include “GPIOapp.h” void changeState(int*);//改變工作狀態(tài)函數(shù) int sdmn(int);//濕度變化模擬函數(shù)
void changeCode(int,uint_8 s[4]);//LED顯示轉(zhuǎn)碼函數(shù) #endif /* QZH_H_ */ /* * fun.c * * Created on: Jun 5, 2017 1
* Author: administrator */ #include“qzh.h” void changeState(int *a){
} int sdmn(int a){ } void changeCode(int a,uint_8 s[4]){
} 1
if(*a == 0){ } else { } *a = 0;*a = 1;return a-=5;uint_8 c[10] = {'0','1','2','3','4','5','6','7','8','9'};s[3] = c[a%10];s[2] = c[a/10];s[1] = c[a/100];s[0] = c[a/1000];
第四章 系統(tǒng)測(cè)試
4.1測(cè)試結(jié)果
圖4 圖4 是開(kāi)始是濕度顯示是72%,工作狀態(tài)顯示為停止。1
圖5 圖5 是第二次采集濕度顯示為69%,工作狀態(tài)顯示為停止。1
圖6 圖6 是第三次采集濕度顯示為66%度,已經(jīng)逼近設(shè)定值65%,此時(shí)工作狀態(tài)顯示為停止。1
圖7 再次采集時(shí)濕度低于65%,滴灌立即開(kāi)始,濕度上升至75%。1
第五章 總結(jié)展望
5.1總結(jié)
通過(guò)本次課程設(shè)計(jì),對(duì)中斷處理有了更加深入的理解。對(duì)于計(jì)時(shí)器,LED和LCD的工作原理也有了更深的認(rèn)識(shí)。LCD在試驗(yàn)中遇到的問(wèn)題不大,主要問(wèn)題在于中斷處理函數(shù)的編寫(xiě)和LED顯示上,LED顯示是每次中斷顯示一個(gè)數(shù),所以要每次中斷顯示,才能使得四個(gè)值看起來(lái)是同時(shí)顯示的且沒(méi)有閃爍效果。
其次LED的顯示是要求是字符,所以在顯示濕度是加上了轉(zhuǎn)碼函數(shù)加以轉(zhuǎn)換。這里又涉及到了參數(shù)為數(shù)組的函數(shù)的寫(xiě)法,因?yàn)閷W(xué)過(guò)好幾種語(yǔ)言,其傳遞方式偶所不同所以在這里也出現(xiàn)了不少問(wèn)題。
通過(guò)此次課程設(shè)計(jì)不僅對(duì)單片機(jī)應(yīng)用有了很好的實(shí)踐經(jīng)驗(yàn),而且也幫助鞏固了以前的知識(shí)。
5.2展望
1、滴灌系統(tǒng)可以增加通信模塊,使得所有者可以實(shí)時(shí)監(jiān)測(cè)農(nóng)作物生長(zhǎng)環(huán)境,也可以遠(yuǎn)程操控進(jìn)行滴灌等功能。
2、滴灌系統(tǒng)可以增加溫度監(jiān)測(cè),土壤酸堿性監(jiān)測(cè),空氣CO2濃度監(jiān)測(cè),并配套處理設(shè)備使得對(duì)農(nóng)作物的管理更加智能化。
1
參考文獻(xiàn)
[1] 王宜懷、張書(shū)奎、王林、吳瑾著.嵌入式技術(shù)基礎(chǔ)與實(shí)踐(第3版),北京:清華大學(xué) 出版社,2011.[2] 田澤.嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用.北京:北京航天航空大學(xué)出版社,[3] 王宜懷、陳建明、蔣銀珍著.基于32位ColdFire構(gòu)建嵌入式系統(tǒng).北京:電子工業(yè)出
版社,2006.[4] 王粉花、王志良.嵌入式系統(tǒng)與單片機(jī)實(shí)踐教程.北京:清華大學(xué)出版社,2010.32 1