版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 問(wèn)題描述</b></p><p><b> 系統(tǒng)基本背景</b></p><p> 這學(xué)期我們專(zhuān)業(yè)開(kāi)設(shè)了《嵌入式系統(tǒng)課程設(shè)計(jì)》這門(mén)課程,是《嵌入式系統(tǒng)》課程的輔助教學(xué)課程。通過(guò)課程設(shè)計(jì),使我們掌握嵌入式ARM的基本概念,結(jié)合實(shí)際的操作和設(shè)計(jì),鞏固課堂教學(xué)內(nèi)容,使我們掌握嵌入式系統(tǒng)的基本概念、原理和技術(shù),將理論與實(shí)
2、際相結(jié)合,應(yīng)用現(xiàn)有的仿真工具和嵌入式軟件開(kāi)發(fā)平臺(tái),規(guī)范、科學(xué)地完成一個(gè)小型LCD顯示電路的設(shè)計(jì)與實(shí)現(xiàn),把理論課與實(shí)驗(yàn)課所學(xué)內(nèi)容做一綜合,并在此基礎(chǔ)上強(qiáng)化我們的實(shí)踐意識(shí)、提高其實(shí)際動(dòng)手能力和創(chuàng)新能力。</p><p> 芯片及開(kāi)發(fā)軟件的選擇</p><p> 本課程設(shè)計(jì)采用了LPC2106 ARM嵌入式處理器和LM016L液晶顯示模塊,在實(shí)現(xiàn)軟件商使用了Proteus Version 7
3、.5進(jìn)行電路仿真和設(shè)計(jì),程序設(shè)計(jì)上采用RealView MDK來(lái)設(shè)計(jì)實(shí)現(xiàn)。</p><p><b> 電路設(shè)計(jì)</b></p><p> Proteus創(chuàng)建工程過(guò)程</p><p><b> 圖1.1 創(chuàng)建工程</b></p><p> 打開(kāi)Proteus Version 7.5點(diǎn)擊工具欄下
4、面一行第一個(gè)圖標(biāo)創(chuàng)建一張電路板,保存在選定好的路徑上。</p><p><b> 元件的選擇</b></p><p> 點(diǎn)擊側(cè)欄項(xiàng)目元件列表上的P鍵,彈出元件庫(kù),在搜索框中搜索LPC2106和LM016L并雙擊添加元件到左側(cè)元件列表。</p><p> 圖1.2 添加LPC2106ARM處理器</p><p>
5、圖1.3 添加LM016L液晶顯示模塊</p><p> 圖1.4 添加元件到項(xiàng)目元件列表</p><p> 在左側(cè)元件列表中元件添加到右側(cè)電路圖上,同樣操作添加另一個(gè)元件,調(diào)整好對(duì)應(yīng)位置,效果如下圖。</p><p> 圖1.5 添加元件到電路圖上</p><p> 電路連線及對(duì)應(yīng)參數(shù)配置</p><p>
6、 選擇左側(cè)工具欄中的終端模式,將地線和電源添加進(jìn)電路圖,本設(shè)計(jì)采用了兩種電源設(shè)計(jì),所以要添加兩個(gè)電源在后續(xù)的配置中配置電源屬性。</p><p> 圖1.6 添加電源和地線到電路圖上</p><p> 圖1.7配置電源電壓參數(shù)</p><p> 選中電源,右鍵菜單,會(huì)出現(xiàn)圖1.6效果,選中Edit properties會(huì)彈出圖1.7菜單在String欄中輸入+
7、3.3V,同理配置另外一個(gè)電源為+1.8v。</p><p> 圖1.8連接芯片電源線和地線</p><p> 圖1.9添加總線到電路圖</p><p> 按圖1.8連接好電源線和地線,調(diào)整好元件位置,點(diǎn)擊左側(cè)工具欄選中終端模式,點(diǎn)擊BUS,在兩個(gè)元器件之間添加總線,調(diào)整好位置。將芯片的13到35引腳連接到總線上,將液晶顯示器模塊的4到14引腳連接到總線上,連
8、接好后的效果圖如圖1.10所示。</p><p> 圖1.10通過(guò)總線連接處理器和液晶顯示器模塊</p><p> 圖1.11右鍵調(diào)處總線配置菜單</p><p> 圖1.12總線配置菜單</p><p> 圖1.13右鍵調(diào)處總線配置菜單</p><p> 按照?qǐng)D1.11右鍵總線調(diào)出如圖1.12配置菜單后,在
9、String欄中輸入P0.[0..10]點(diǎn)擊確認(rèn),總線參數(shù)配置完畢接下來(lái)配置各個(gè)連線,選中13腳右鍵菜單,點(diǎn)擊place wire label得到圖1.14,按照引腳功能選擇P0.0,如圖配置好13到35引腳。</p><p><b> 圖1.14連線配置</b></p><p> 圖1.15總線連接配置完成后截圖</p><p> 配置
10、完LPC2106引腳后配置液晶模塊引腳,引腳7到14依次配置P0.0到P0.7,4引腳配置P0.8,5引腳配置P0.9,6引腳配置P0.10。到此總線及總線連接配置完畢。</p><p> 圖1.16右鍵調(diào)處晶振頻率配置菜單</p><p> 圖1.17仿真器晶振頻率配置菜單</p><p> 最后配置好仿真器晶振頻率,選中LPC2106的11引腳,右鍵選中E
11、dit properties得到圖1.17菜單,在Clock Frequency欄中輸入12MHZ。到此電路圖的連接及配置完成。</p><p><b> 電路效果圖</b></p><p> 圖1.18電路最終效果圖</p><p><b> 程序設(shè)計(jì)</b></p><p> RealV
12、iew MDK創(chuàng)建工程過(guò)程</p><p> 打開(kāi)軟件,在工具欄上選擇project菜單項(xiàng),選擇第一個(gè)新建一個(gè)工程,填好工程名字lcd_dw,然后點(diǎn)擊確認(rèn)創(chuàng)建,選擇目標(biāo)設(shè)備,以便添加啟動(dòng)代碼,根據(jù)之前的設(shè)計(jì),我們選擇NXP,在里面選擇LPC2106,然后在隨后彈出的對(duì)話框中選確認(rèn)創(chuàng)建啟動(dòng)代碼。創(chuàng)建成功后,在左側(cè)項(xiàng)目管理樹(shù)形圖中選擇一個(gè)文件夾右鍵,點(diǎn)manage components,在這個(gè)菜單中創(chuàng)建src 和i
13、nc文件夾,然后點(diǎn)擊target options按鈕,在output選項(xiàng)條中點(diǎn)擊select Folder for objects選擇之前在項(xiàng)目文件夾中創(chuàng)建好的目錄。同樣的設(shè)置listing選項(xiàng)卡中的select Folder for objects選項(xiàng)。這樣RealView MDK的工程就創(chuàng)建完成了。之后就可以導(dǎo)入開(kāi)發(fā)好的頭文件和住函數(shù)文件進(jìn)行開(kāi)發(fā)了。</p><p><b> 圖1.19新建工程&
14、lt;/b></p><p> 打開(kāi)RealView MDK軟件,在第四個(gè)菜單項(xiàng)project下創(chuàng)建新的工程。</p><p> 圖1.20保存工程位置</p><p> 圖1.21選擇仿真硬件</p><p> 在選擇完保存路徑后,在彈出的對(duì)話框點(diǎn)擊“確定”,之后進(jìn)入硬件仿真選擇對(duì)話框,在對(duì)話框中選擇NXP下的LPC2106,
15、點(diǎn)擊“OK”,隨后兩個(gè)對(duì)話框默認(rèn)選擇是。</p><p> 圖1.22添加源程序文件</p><p> 將寫(xiě)好的源文件放在新建的工程文件夾下,在工程項(xiàng)目欄剛剛新建的工程下添加源文件。</p><p> 圖1.23選擇源文件</p><p> 首先添加main函數(shù)文件,之后再選擇功能函數(shù)config、LPC2106、LCD_PRO添加到
16、文件。</p><p> 圖1.24修改options屬性</p><p><b> 功能函數(shù)</b></p><p> // File: main.c</p><p> // 功能:向LCD輸出HelloWorld</p><p> #include "config.h&q
17、uot;</p><p> #define rs (1<<8)//10000000</p><p> #define rw (1<<9)//100000000</p><p> #define en (1<<10)//1000000000</p><p> #define busy (1<&l
18、t;7)//1000000</p><p> //uint8 txt[]={"HelloWorld"};</p><p> //名稱(chēng):ChkBusy()</p><p> // 功能:檢查總線是否忙</p><p> void ChkBusy()</p><p><b> {&l
19、t;/b></p><p> IODIR=0x700;</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> IOCLR=rs;</b></p><p><b> I
20、OSET=rw;</b></p><p><b> IOSET=en;</b></p><p> if(!(IOPIN & busy))break;</p><p><b> IOCLR=en;</b></p><p><b> }</b></
21、p><p> IODIR=0x7ff;</p><p><b> }</b></p><p> //名稱(chēng):WrOp()</p><p> //功能:寫(xiě)指令函數(shù)</p><p> void WrOp(uint8 dat)</p><p><b> {<
22、/b></p><p> ChkBusy();</p><p> IOCLR=rs;//全部清零</p><p><b> IOCLR=rw;</b></p><p> IOCLR=0xff;//先清零</p><p> IOSET=dat;//再送數(shù)</p>
23、;<p><b> IOSET=en;</b></p><p><b> IOCLR=en;</b></p><p><b> }</b></p><p> // 名稱(chēng):WrDat()</p><p> //功能:寫(xiě)數(shù)據(jù)函數(shù)</p><
24、;p> void WrDat(uint8 dat)</p><p><b> {</b></p><p> ChkBusy();</p><p><b> IOSET=rs;</b></p><p><b> IOCLR=rw;</b></p>
25、<p> IOCLR=0xff;//先清零</p><p> IOSET=dat;//再送數(shù)</p><p><b> IOSET=en;</b></p><p><b> IOCLR=en;</b></p><p><b> }</b></p
26、><p> // 名稱(chēng):lcd_init()</p><p> // 功能:lcd初始化函數(shù)</p><p> void lcd_init(void)</p><p><b> {</b></p><p> WrOp(0x38);</p><p> WrOp(
27、0x06);//光標(biāo)加1</p><p> WrOp(0x0c);//開(kāi)顯示</p><p><b> }</b></p><p> // 名稱(chēng):DisText()</p><p> //功能:顯示文本函數(shù)</p><p> void DisText(uint8 addr,u
28、int8 *p)</p><p><b> {</b></p><p> WrOp(addr);</p><p> while(*p !='\0')WrDat(*(p++));</p><p><b> }</b></p><p><b>
29、 //功能:延時(shí)程序</b></p><p> void delay(uint16 n)</p><p><b> {</b></p><p><b> uint8 i;</b></p><p> for(;n>0;n--)</p><p> fo
30、r(i=5;i>0;i--);</p><p><b> }</b></p><p><b> 主函數(shù)</b></p><p> int main(void)</p><p><b> { </b></p><p> uint8 t
31、xt[]={"HelloWord"};</p><p> uint8 txt1[]={" "};</p><p> lcd_init();</p><p> IODIR=0x7ff;//設(shè)置為輸出</p><p> IOCLR=0x7ff;</p><p&
32、gt;<b> while(1){</b></p><p> DisText(0x80,txt);</p><p> delay(111);</p><p> DisText(0x80,txt1);</p><p> DisText(0x82,txt);</p><p> delay(
33、111);</p><p> DisText(0x82,txt1);</p><p> DisText(0x84,txt);</p><p> delay(111);</p><p> DisText(0x84,txt1);</p><p> DisText(0x86,txt);</p><
34、;p> delay(111);</p><p> DisText(0x86,txt1);</p><p><b> }</b></p><p><b> }</b></p><p><b> 編譯結(jié)果</b></p><p> 圖1.2
35、7編譯成功,無(wú)報(bào)錯(cuò)無(wú)警告</p><p><b> 設(shè)計(jì)效果</b></p><p><b> 圖1.26</b></p><p> 設(shè)計(jì)效果實(shí)現(xiàn)了文字從右向左的循環(huán)移動(dòng),達(dá)到了預(yù)期的設(shè)計(jì)目的。</p><p><b> 參考文獻(xiàn)</b></p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于arm7的lcd顯示電路仿真-課程設(shè)計(jì)報(bào)告
- 基于arm7的lcd顯示電路仿真
- 電路仿真綜合課程設(shè)計(jì)報(bào)告
- 電路課程設(shè)計(jì)--通信電路仿真課程設(shè)計(jì)
- 差動(dòng)放大電路仿真課程設(shè)計(jì)報(bào)告
- multisim 電路仿真 課程設(shè)計(jì)
- 電路課程設(shè)計(jì)---電路仿真設(shè)計(jì)實(shí)驗(yàn)
- 基于arm7的uclinux移植嵌入式課程設(shè)計(jì)
- arm7電子時(shí)鐘嵌入式課程設(shè)計(jì)報(bào)告
- 收音機(jī)課程設(shè)計(jì)---音頻放大電路仿真設(shè)計(jì)
- 基于arm7的gui設(shè)計(jì)
- 基于arm的lcd顯示設(shè)計(jì)與實(shí)現(xiàn)
- 電路仿真課程設(shè)計(jì)--智力競(jìng)賽搶答器
- 單相交流調(diào)壓電路仿真研究課程設(shè)計(jì)
- 課程設(shè)計(jì)--基于arm7的可調(diào)、準(zhǔn)點(diǎn)報(bào)時(shí)萬(wàn)年歷
- 課程設(shè)計(jì)---基于單片機(jī)的lcd顯示系統(tǒng)設(shè)計(jì)
- multisim對(duì)于負(fù)反饋放大發(fā)電路仿真課程設(shè)計(jì)
- 基于ARM7的移頻軌道電路測(cè)試系統(tǒng)設(shè)計(jì).pdf
- lcd顯示設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 基于arm7的交通燈設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論