




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄一.課程設(shè)計的目的和意義1二.系統(tǒng)方案設(shè)計及提出22.1 系統(tǒng)方案的提出22.2 方案比較及確定2三.系統(tǒng)硬件設(shè)計33.1 at89s51最小系統(tǒng)設(shè)計33.1.1 時鐘電路硬件設(shè)計73.1.2 復(fù)位電路硬件設(shè)計73.2 a/d轉(zhuǎn)換電路的設(shè)計83.3 鍵盤電路硬件設(shè)計103.4 顯示電路硬件設(shè)計10四.系統(tǒng)軟件設(shè)計114.1 系統(tǒng)軟件設(shè)計內(nèi)存分配及芯片地址介紹114.2 系統(tǒng)主程序設(shè)計114.3 a/d轉(zhuǎn)換子程序設(shè)計124.4 八路循環(huán)顯示控制子程序134.5 單路顯示控制子程序144.6 顯示子程序154.7 按鍵子程序16五.系統(tǒng)調(diào)試175.1 仿真環(huán)境介紹175.2 仿真步驟205.2
2、.1 連接仿真器205.2.2 windows軟件安裝205.2.3 編程及調(diào)試20六.總結(jié)21七.參考文獻(xiàn)22附錄23附錄一:程序清單23附錄二:系統(tǒng)硬件原理圖32一.課程設(shè)計的目的和意義學(xué)校為我們安排了為期三周的單片機(jī)課程設(shè)計,可以說讓我們受益匪淺。細(xì)想,其目的及意義主要有以下幾點:目的通過單片機(jī)課程設(shè)計,加深對單片機(jī)的更深層次的理解,熟悉單片機(jī)的內(nèi)部硬件資源,掌握單片機(jī)的編程方法及技巧,要學(xué)會對單片機(jī)的各部硬件資源的控制,分配,特別是掌握單片機(jī)中斷,定時器的編程方法。靈活運用單片機(jī)的基礎(chǔ)知識,依據(jù)課程設(shè)計內(nèi)容,能夠完成從硬件電路圖設(shè)計,到pcb制版,再到軟件編程及系統(tǒng)調(diào)試實現(xiàn)系統(tǒng)功能,完
3、成課程設(shè)計,加深對單片機(jī)基礎(chǔ)知識的理解,并靈活運用,將各門知識綜合應(yīng)用。能夠上網(wǎng)查詢器件資料,培養(yǎng)對新知識新技術(shù)的獨立的學(xué)習(xí)能力和應(yīng)用能力。獨立完成一個小的系統(tǒng)設(shè)計,從硬件設(shè)計到軟件設(shè)計,增強分析問題、解決問題的能力,為日后的畢業(yè)設(shè)計及科研工作奠定良好的基礎(chǔ)。通過這次設(shè)計,要學(xué)會怎么利用所學(xué)單片機(jī)知識獨立設(shè)計系統(tǒng)的能力,達(dá)到學(xué)于致用的目的,要學(xué)會發(fā)散創(chuàng)造設(shè)計編程思想,要學(xué)會開發(fā)系統(tǒng)的一般過程,并不斷創(chuàng)新。意義作為一名自動化專業(yè)的大三學(xué)生,做單片機(jī)課程設(shè)計是十分有意義的,而且是十分必要的。在已度過的大學(xué)時間里,我們大多數(shù)接觸的是專業(yè)基礎(chǔ)課及專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去
4、鍛煉我們的實踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識運用到實踐中去呢?我想做類似本次的課程設(shè)計就為我們提供了良好的實踐平臺。在這次課程設(shè)計中,我們運用到了以前所學(xué)的專業(yè)課知識以及一些實踐性很強的軟件和工具,如:protel制圖、偉福仿真設(shè)備、匯編語言編譯軟件、單片機(jī)的原理等。雖然在過去的學(xué)習(xí)中曾獨立地學(xué)習(xí)了它們中的一部分,但都不知道學(xué)的那些東西具體可以運用在那些領(lǐng)域??墒窃诒敬握n程設(shè)計中,我們將所學(xué)的知識都匯聚到了一起,并適當(dāng)?shù)丶尤肓艘欢ǖ钠渌R,讓我們自己動手動腦完成一項單片機(jī)任務(wù),我認(rèn)為這是很有意義的。而且在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,利用仿真設(shè)備去發(fā)現(xiàn)問題并解決問題也讓我
5、們學(xué)到了不少在課堂上無法學(xué)到的東西,這是我本次課程設(shè)計的巨大收獲。并掌握了目前自動化儀表的一般設(shè)計過程,鍛煉了我們的動手能力和分析,解決問題的能力;積累經(jīng)驗,培養(yǎng)按部就班、一絲不茍的工作和對所學(xué)知識的綜合應(yīng)用能力。二.系統(tǒng)方案設(shè)計及提出2.1 系統(tǒng)方案的提出a.課程設(shè)計內(nèi)容及技術(shù)指標(biāo)簡易數(shù)字電壓表可以測量05v范圍內(nèi)的8路輸入電壓值,并在4位led數(shù)碼管上8路循環(huán)顯示或單路選擇顯示。其測量最小分辨率為0.02v。注:1、4位led顯示,一位顯示模擬量通道數(shù),三位顯示電壓值(0.005.00v);2、使用按鍵切換8路循環(huán)顯示和單路顯示;3、在單路顯示是,使用按鍵選擇待顯示的通道;4、按鍵可采用查
6、詢方式,也可采用中斷和查詢相結(jié)合的方式。b.系統(tǒng)設(shè)計方案框圖圖2.1 系統(tǒng)設(shè)計方案框圖2.2 方案比較及確定a.單片機(jī)89c51:與mcs-51 兼容、4k字節(jié)可編程閃爍存儲器、1000寫/擦循環(huán)、數(shù)據(jù)保留時間為10年、128*8位內(nèi)部ram、32可編程i/o線、兩個16位定時器/計數(shù)器、5個中斷源、可編程串行通道、低功耗的閑置和掉電模式、片內(nèi)振蕩器和時鐘電路。89s51:在89c51的基礎(chǔ)上增加了很多新的功能,性能有了較大提升,價格基本不變,甚至比89c51更低。比較可知,功能強大的微型計算機(jī)的at89s52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案,因此選用89s51為此次課程設(shè)計中
7、的單片機(jī)。b.a/d轉(zhuǎn)換器adc0804:8位逐次逼近型a/d轉(zhuǎn)換器,一個a/d 轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成,輸入方式為單通道,轉(zhuǎn)換時間約為100s,它的非線形誤差為1lsb,電源電壓為單一+5v。adc0809: 8位逐次逼近型a/d轉(zhuǎn)換器。它由一個8路模擬開關(guān)、一個地址鎖存譯碼器、一個a/d 轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8 路模擬量分時輸入,共用a/d 轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換時間約為100s,它的非線形誤差為1lsb,電源電壓為單一+5v。比較可知,adc0809較符合本次課程設(shè)計的要求,因此選用adc0809作為a/d轉(zhuǎn)換器。c.顯示方式靜態(tài)顯示:數(shù)
8、據(jù)分開地送到每一位led上,顯示亮度很高,占用口線較多。動態(tài)顯示:數(shù)據(jù)送到每一個led上,再根據(jù)位選線來確定是哪一位led被顯示,占用的口線數(shù)目較少,適合用在顯示位數(shù)較多的場合,但顯示位數(shù)的增多,將占用大量的cpu時間。比較可知,選擇動態(tài)顯示對我們本次課程設(shè)計是比較方便的,因此選用動態(tài)顯示。三.系統(tǒng)硬件設(shè)計3.1 at89s51最小系統(tǒng)設(shè)計at89s51是一個低功耗,高性能cmos 8位單片機(jī),片內(nèi)含4k bytes isp(in-system programmable)的可反復(fù)擦寫1000次的flash只讀程序存儲器,器件采用atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)mcs-51
9、指令系統(tǒng)及80c51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和isp flash存儲單元,功能強大的微型計算機(jī)的at89s51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。at89s51具有如下特點:40個引腳,4k bytes flash片內(nèi)程序存儲器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),32個外部雙向輸入/輸出(i/o)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(wdt)電路,片內(nèi)時鐘振蕩器。 此外,at89s51設(shè)計和配置了振蕩頻率可為0hz并可通過軟件設(shè)置省電模式。空閑模式下,cpu暫停工作,而ram定時計數(shù)器,串行口
10、,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有pdip、tqfp和plcc等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。1主要特性: 8031 cpu與mcs-51 兼容 4k字節(jié)可編程flash存儲器(壽命:1000寫/擦循環(huán)) 全靜態(tài)工作:0hz-24khz 三級程序存儲器保密鎖定 128*8位內(nèi)部ram 32條可編程i/o線 兩個16位定時器/計數(shù)器 6個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路2管腳說明:vcc:供電電壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8
11、ttl門電流。當(dāng)p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1
12、”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。
13、p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)p3口同時為閃爍編程和編程校驗接收一些控制信號。i/o口作為輸入口時有兩種工作方式即所謂的讀端口與讀引腳讀端口時實際上并不從外部讀入數(shù)據(jù)而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線經(jīng)過某種運算或變換后再寫回到端口鎖存器只有讀端口時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線上面圖中的兩個三角形表示的就是輸入緩沖器cpu將根據(jù)不同的指令分別發(fā)
14、出讀端口或讀引腳信號以完成不同的操作這是由硬件自動完成的不需要我們操心1然后再實行讀引腳操作否則就可能讀入出錯為什么看上面的圖如果不對端口置1端口鎖存器原來的狀態(tài)有可能為0q端為0q為1加到場效應(yīng)管柵極的信號為1該場效應(yīng)管就導(dǎo)通對地呈現(xiàn)低阻抗,此時即使引腳上輸入的信號為1也會因端口的低阻抗而使信號變低使得外加的1信號讀入后不一定是1若先執(zhí)行置1操作則可以使場效應(yīng)管截止引腳信號直接加到三態(tài)緩沖器中實現(xiàn)正確的讀入由于在輸入操作時還必須附加一個準(zhǔn)備動作所以這類i/o口被稱為準(zhǔn)雙向口89c51的p0/p1/p2/p3口作為輸入時都是準(zhǔn)雙向口接下來讓我們再看另一個問題從圖中可以看出這四個端口還有一個差別
15、除了p1口外p0p2p3口都還有其他的功能 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機(jī)器周期的高電平時間。ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)a
16、le禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3.1.1 時鐘電路硬件設(shè)計時鐘電路即晶振電路:典型的晶
17、振取11.0592mhz(因為可以準(zhǔn)確地得到9600波特率和19200波特率,用于有串口通訊的場合,計算的初值為整數(shù),可減小誤差)/12mhz(產(chǎn)生精確的us級時歇,方便定時操作),晶振兩端各接一個30pf的微調(diào)電容然后接地,可使晶振工作在穩(wěn)定狀態(tài),如圖3.1.1。圖3.1.1 單片機(jī)時鐘電路3.1.2 復(fù)位電路硬件設(shè)計單片機(jī)的復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,為了電路運行方便,我們采用按鈕復(fù)位電路。復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合電容電壓不能突變的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,rst腳將會出現(xiàn)高電平,并且,這個高電平持續(xù)的時間由電路的rc值來決定.典型的51單片機(jī)當(dāng)rs
18、t腳的高電平持續(xù)兩個機(jī)器周期以上就將復(fù)位,所以,適當(dāng)組合rc的取值就可以保證可靠的復(fù)位.選取電容電阻的原則就是要讓rc組合可以在rst腳上產(chǎn)生不少于2個機(jī)周期的高電平,我選擇的是電容22f,電阻一個為1k,一個為200,如圖3.1.2。圖3.1.2 單片機(jī)復(fù)位電路3.2 a/d轉(zhuǎn)換電路的設(shè)計a/d轉(zhuǎn)換電路硬件電路設(shè)計的原理主要有:1. 采用如圖3.2.1所示的模擬信號采樣電路采集模擬信號,并輸入帶adc0809的模擬信號輸入端。2. 由于at89s51的ale引腳輸出的頻率為1/6fosc(我們使用的晶振為11.0592mhz,即ale為2000khz),而adc0809的clk引腳的標(biāo)準(zhǔn)工作
19、頻率為500khz,所以ale信號必須經(jīng)過四分頻才能送到clk引腳上(一個d/q觸發(fā)器為一次2分頻),由此可得分頻電路圖3.2.2。3. 由于adc0809的eoc引腳為轉(zhuǎn)換結(jié)束信號引腳,且轉(zhuǎn)換結(jié)束后eoc=1,而單片機(jī)在復(fù)位后p0p3口都為高電平,因此eoc引腳在接到i/o端口前必須加一個反相器或者非門。如圖3.2.3所示。圖3.2.1 ad采樣電路圖3.2.2 ad分頻電路圖3.2.3 adc0809芯片引腳電路3.3 鍵盤電路硬件設(shè)計采用查詢方式設(shè)置鍵盤電路,在按鍵未按下時引腳為高電平,按鍵按下后,對應(yīng)的引腳變?yōu)榈碗娖?,如圖3.3。圖3.3 鍵盤電路3.4 顯示電路硬件設(shè)計設(shè)計過程中采用
20、動態(tài)的顯示方式,利用p1.3p1.6為位選線,并利用反相器作為驅(qū)動器。p0口為段選線,并利用74ls244為驅(qū)動器。由于led的額定電壓為1.8v2.4v,額定電流為5ma25ma,因此限流電阻為72480,結(jié)合電阻的阻值,我選擇的限流電阻為510。如圖3.4.1和圖3.4.2.。圖3.4.1 led顯示電路接線圖圖3.4.2 數(shù)碼管驅(qū)動電路及限流電阻接線圖四.系統(tǒng)軟件設(shè)計4.1 系統(tǒng)軟件設(shè)計內(nèi)存分配及芯片地址介紹30h:模擬量通道數(shù)31h33h:電壓值顯示40h47h:數(shù)字量電壓50h:八路單路切換按鍵的標(biāo)志位51h52h:單路增加按鍵的標(biāo)志位4.2 系統(tǒng)主程序設(shè)計根據(jù)課程設(shè)計的要求設(shè)計主程
21、序,主程序流程圖如圖4.2所示圖4.2 主程序流程圖4.3 a/d轉(zhuǎn)換子程序設(shè)計adc0809的時序圖如圖4.3.1所示。圖4.3.1 adc0809時序圖根據(jù)時序圖可編寫出a/d轉(zhuǎn)換測量子程序流程圖,如圖4.3.2所示。注:在判斷模擬量是否轉(zhuǎn)換成數(shù)字量時,有兩種方式,可用查詢方式,還可調(diào)用延時子程序,但此延時子程序必須大于128us,我采用的是查詢方式。圖4.3.2 a/d轉(zhuǎn)換子程序流程圖4.4 八路循環(huán)顯示控制子程序八路循環(huán)顯示控制子程序流程圖如圖4.4所示注:1.標(biāo)度變換 y=(ymax-ymin)*(nx-nmin)/(nmax-nmin)+ymin 在本次課程設(shè)計中,將此公式化簡得y
22、=nx/512.判斷按鍵是否按下時,可采用查詢方式,也可采用中斷方式。查詢方式要不斷的判斷引腳的電瓶高低,滿足條件則執(zhí)行中斷程序;中斷方式則不需要查詢,一旦滿足條件,則執(zhí)行中斷程序。中斷方式比查詢方式效率高,我采用的是中斷方式。判斷按鍵k0是否按下的方法:在程序開始時將50h清零,當(dāng)產(chǎn)生一次中斷0時對50h加一,在判斷k0按鍵是否按下時判斷50h單元的內(nèi)容的第0位是否為1即可,為1則表示按鍵k0按下了一次,為0則表示按鍵k0沒有按下,當(dāng)按下一次之后,判斷按鍵k0是否第二次按下時判斷50h單元中的內(nèi)容的第0位是否為0即可, 為0表示按鍵再次按下了,為1表示按鍵沒有再次按下。圖4.4 八路循環(huán)顯示
23、控制子程序流程圖4.5 單路顯示控制子程序單路顯示控制子程序流程圖如圖4.5所示。注:判斷按鍵k1是否按下的方法:在程序開始時將51h和52h清零,當(dāng)產(chǎn)生一次中斷0時對51h加1,在判斷按鍵k1是否按下時,將51h與52h相比較,若相等表示按鍵k1并沒有按下,不相等則表示按鍵k1按下了,在按鍵k1按下后且顯示完數(shù)據(jù)后將51h內(nèi)的內(nèi)容傳給52h,這樣在按鍵k1再次按下時,繼續(xù)使用這種方法進(jìn)行判斷時即可成功地判斷。圖4.5 單路顯示子程序流程圖4.6 顯示子程序顯示子程序流程圖如圖4.6所示。注:1.顯示程序中,由于測量出的電壓為0.00v5.00v,可得不論顯示的電壓是何值時,四位led顯示中的
24、第二位的小數(shù)點都顯示,所以在編程中,可直接將第二位顯示的小數(shù)點直接顯示即可。 2.調(diào)用的延時程序可選用1s或2s延時。圖4.6 顯示子程序流程圖4.7 按鍵子程序由于我采用的是中斷方式,所以按鍵子程序即為中斷子程序,需要注意的是在中斷子程序中必須進(jìn)行按鍵消抖,方式為在延時10ms后判斷按鍵是否釋放。五.系統(tǒng)調(diào)試本次課程設(shè)計中我們采用單片機(jī)語言進(jìn)行編程,在編程的過程中,我們需要一邊編程一邊調(diào)試,先將小的子程序編寫完成并調(diào)試成功,在編寫大的程序,這樣一步一步得調(diào)試才能更方便地將我們所需要的大的程序成功地實現(xiàn)我們的要求。而學(xué)校為我們提供的調(diào)試環(huán)境及調(diào)試軟件為偉福仿真器。5.1 仿真環(huán)境介紹仿真環(huán)境包
25、括偉福仿真器及偉福仿真軟件,在此主要介紹偉福仿真軟件,由于軟件中的內(nèi)容過多,因此只對常用的功能進(jìn)行介紹。1.文件(f)文件| 打開文件打開用戶程序,進(jìn)行編輯。如果文件已經(jīng)在項目中,可以在項目窗口中雙擊相應(yīng)文件名打開文件.文件| 保存文件保存用戶程序。用戶在修改程序后,如果進(jìn)行編譯,則在編譯前,系統(tǒng)會自動將修改過的文件存盤.文件| 新建文件建立一個新的用戶程序, 在存盤的時候,系統(tǒng)會要求用戶輸入文件名.文件| 另存為將用戶程序存成另外一個文件, 原來的文件內(nèi)容不會改變文件| 退出退出系統(tǒng),如果在退出以前有修改過的文件沒有存盤,系統(tǒng)將會提示是否把文件存盤.2.編輯(e)編輯| 撤消鍵入取消上一次操
26、作編輯| 重復(fù)鍵入恢復(fù)被取消的操作編輯| 剪切刪除選定的正文,刪除的內(nèi)容被送到剪貼板上編輯| 復(fù)制將選定的內(nèi)容,復(fù)制到剪貼板上編輯| 粘帖將剪貼板的內(nèi)容插入光標(biāo)位置編輯| 全選選定當(dāng)前窗口所有內(nèi)容。3.搜索(s)搜索| 查找在當(dāng)前窗口中查找符號,字串。可以指定區(qū)分大小寫方式,全字匹配方式,可以向上向下查找。搜索| 在文件中查找可以在指定的一批文件中查找某個關(guān)鍵字。搜索| 轉(zhuǎn)到當(dāng)前pc 所在行將光標(biāo)轉(zhuǎn)到pc 所在的程序位置。4.項目(p)項目| 編譯編譯當(dāng)前窗口的程序。如有錯誤,系統(tǒng)將會指出錯誤所在的位置。項目| 全部編譯全部編譯項目中所有的模塊(程序文件),包含文件。如有錯誤系統(tǒng)會指出錯誤所在
27、位置。5.執(zhí)行(r)執(zhí)行| 全速執(zhí)行運行程序執(zhí)行| 跟蹤跟蹤程序執(zhí)行的每步,觀察程序運行狀態(tài)。執(zhí)行| 單步單步執(zhí)行程序,與跟蹤不同的是,跟蹤可以跟蹤到函數(shù)或過程的內(nèi)部,而單步執(zhí)行則不跟蹤到程序內(nèi)部。執(zhí)行| 執(zhí)行到光標(biāo)處程序從當(dāng)前pc 位置,全速執(zhí)行到光標(biāo)所在的行。如果光標(biāo)所在行沒有可執(zhí)行代碼。則提示“這行沒有代碼”執(zhí)行| 暫停暫停正在全速執(zhí)行的程序。執(zhí)行| 復(fù)位終止調(diào)試過程,程序?qū)⒈粡?fù)位。如果程序正在全速執(zhí)行,則應(yīng)先停止。執(zhí)行| 設(shè)置pc將程序指針pc,設(shè)置到光標(biāo)所在行。程序?qū)墓鈽?biāo)所在行開始執(zhí)行。執(zhí)行| 自動單步跟蹤/單步模仿用戶連續(xù)按f7 或f8 單步執(zhí)行程序。執(zhí)行| 編輯觀察項觀察變量或
28、表達(dá)式的值,可以將需要檢查和修改的值或表達(dá)式放到觀察窗口里以便檢查和修改。(圖:觀察項對話框)執(zhí)行| 設(shè)置/取消斷點將光標(biāo)所在行設(shè)為斷點,如果該行原來已為斷點,則取消該斷點。所有斷點通過斷點窗口進(jìn)行管理。6.窗口(w)窗口| 刷新刷新打開的所有窗口,及窗口里的數(shù)據(jù)。窗口| 項目窗口打開項目窗口,以便在項目中加入模塊或包含文件。(圖:項目窗口)窗口| 信息窗口顯示系統(tǒng)編譯輸出的信息。如果程序有錯,會以圖標(biāo)形式指出,窗口| 觀察窗口項目編譯正確后,可以在觀察窗口中看到當(dāng)前項目中的所有模塊,及各模塊中的所在過程和函數(shù),及各個過程函數(shù)中的各個變量,結(jié)構(gòu)。如果能充分利用觀察窗口的強大功能,可以加快你開發(fā)
29、速度。7.仿真器(o)仿真器| 仿真器設(shè)置仿真器設(shè)置包括仿真器類型,仿真頭(pod)類型,cpu 類型,顯示格式和產(chǎn)生的目標(biāo)文件類型。5.2 仿真步驟5.2.1 連接仿真器本次使用的偉福仿真器采用的仿真頭為podh8x5x型,仿真器類型為e6000/l。在將偉福仿真器與單片機(jī)芯片插銷接好之后,接著將仿真器與計算機(jī)連接好,并對單片機(jī)模板通電,這樣,仿真環(huán)境的硬件方面就做好了。5.2.2 windows軟件安裝步驟:1.將光盤放入光驅(qū),光盤會自動運行,出現(xiàn)安裝提示。2.選擇“安裝windows”軟件。3.按照安裝程序的提示,輸入相應(yīng)內(nèi)容。4.繼續(xù)安裝,直至結(jié)束。若光驅(qū)自動運行被關(guān)閉,用戶可以打開光
30、盤的icessofte2000w目錄(文件夾),執(zhí)行setup.exe,按照安裝程序的提示,輸入相應(yīng)的內(nèi)容,直至結(jié)束。在安裝過程中,如果用戶沒有指定安裝目錄,安裝完成后,會在c:盤建立一個c:wave6000 目錄(文件夾)。5.2.3 編程及調(diào)試1.打開偉福仿真軟件,在【仿真器】中選擇【仿真器設(shè)置】,在【仿真器】中選擇仿真頭為podh8x5x型,選擇cpu為e6000/l型,選擇使用偉福軟件模擬器為89s51,單擊【好】。再次在【仿真器】中選擇【仿真器設(shè)置】,在【通信設(shè)置】中檢測串行口是否工作正常,若不正常則檢查仿真器的接口是否連接正常、仿真器及單片機(jī)模板是否接通電源等,直到串行口工作正常為
31、止。2.在【文件】中選擇【新建文件】,并將其保存,路徑可自己選擇,要注意的是命名必須是全英文,且以“.asm”結(jié)尾,保存完成后即可進(jìn)行正常的編程及調(diào)試了。3.將程序輸入到編輯窗口后,選擇【項目】中的【全部編譯】,觀察是否有語法錯誤,若有則改正,直到無錯誤無警告為止。接著選擇【執(zhí)行】中的【全速運行】,觀察是否是我們想得到的結(jié)果,不是則繼續(xù)調(diào)試,并編譯、運行。六.總結(jié)三周的單片機(jī)課程設(shè)計終于結(jié)束了,期間我學(xué)到了很多在課堂上學(xué)不到的東西。老師將我們兩個班分為三組,每組的課題都不一樣,我被分在了第三組,課題是簡易數(shù)字電壓的設(shè)計,老師都說我們這組是最簡單的,感覺自己很幸運,因為自己的單片機(jī)本來就不好,對
32、與編程的東西一看到就頭疼,在以前的單片機(jī)實驗中也是蒙混過關(guān)的,這次簡單一些我就不用那么辛苦了,可是在實習(xí)的過程中,不知不覺地就發(fā)現(xiàn)了自己的單片機(jī)真的太差了,而且單片機(jī)要考試了,就想趁著這次的實習(xí)好好地學(xué)一學(xué)。我們的指導(dǎo)老師是張欣老師,老師說第三組雖然是最簡單的,但是硬件部分還是比較麻煩的,而且在實習(xí)的前幾天主要就是上網(wǎng)查資料并將硬件電路圖畫出來,在繪制的過程中,遇到了一些問題,在請教了同學(xué)和老師并通過自己的努力,終于將硬件電路圖繪制出來了,雖然在最后經(jīng)過老師檢查的時候還是發(fā)現(xiàn)了一些問題,但改正后的電路圖還是可以基本實現(xiàn)本次課程設(shè)計的要求的。硬件電路圖經(jīng)過老師檢查后,就要進(jìn)行焊板及軟件設(shè)計了,這
33、時老師將我們這組的同學(xué)分成了六小組,而我也由同學(xué)推薦當(dāng)了小組長,我自認(rèn)為我無法勝任,但是老師都已經(jīng)這么安排了,我就試一試吧,順便鍛煉一下自己。為了方便我們的焊板及編程,老師給我們統(tǒng)一了硬件電路圖,并為我們準(zhǔn)備好了印刷完成的電路硬板,我們花了將近半天的時間才將電路板焊接完。接下來要做的就是編程了。我感覺軟件的設(shè)計還是比較難的,特別是調(diào)試方面。使用軟件編程調(diào)試之前,老師讓我們編寫一個小的顯示程序,用來檢測我們焊接的電路板是否連接完好,若不顯示的話說明電路板有問題必須好好檢查了,幸好我們這個小組的同學(xué)焊電路板式都認(rèn)真地做了,所有人的電路板都是好用的。接下來就是程序的編寫及調(diào)試了。首先要調(diào)試的是顯示子
34、程序,因為整個大程序中它是最基礎(chǔ)的小程序,由于我在課下上網(wǎng)找了資料,改一改顯示程序就編出來了。顯示程序編完之后,接著就是a/d轉(zhuǎn)換子程序了,我把自己編的a/d轉(zhuǎn)換子程序輸入進(jìn)去后,led顯示器上并不顯示,而且我還找不出錯誤,頓時我就失去了信心,越找不出錯誤我就越來越急躁,這樣就越來越找不出錯誤來了。在我將要失去信心的時候,老師耐心地替我解讀程序,并為我找出了出錯的原因所在,接著我將錯誤的地方改了改,重新編譯運行了一次,a/d轉(zhuǎn)換子程序終于能夠正常運行了。轉(zhuǎn)換程序完成后,就表示八路循環(huán)顯示程序能夠正常運行了。這時需要將八路/單路切換按鍵即按鍵k0功能程序加入轉(zhuǎn)換程序中。接著將單路通道顯示增加按鈕
35、即按鍵k1功能程序加入即可,由于在自己已經(jīng)想好了判斷按鍵的方法,因此將構(gòu)思好的程序加入進(jìn)去就好用了。到此為止,我以為我的程序就已經(jīng)編好了,可是在最后一次調(diào)試的時候,老師檢查發(fā)現(xiàn)我的單路顯示延時的時間過長,不能立即反應(yīng),而且顯示的電壓也不能隨著電阻的變化而變化。在自己的努力和老師的幫助,我改正了錯誤,成功地將能夠滿足要求的程序編寫完成了。通過這次的課程設(shè)計,我對單片機(jī)有了新的認(rèn)識,也學(xué)到了一些以前并不知道的知識,感謝同學(xué)的幫助,更感謝老師的教導(dǎo)!七.參考文獻(xiàn)1.單片機(jī)原理及應(yīng)用 張毅剛 彭喜元 董繼成 高等教育出版社2.mcs-51實用匯編子程序設(shè)計 張毅剛 哈爾濱工業(yè)大學(xué)出版社3.智能儀器與數(shù)
36、據(jù)采集系統(tǒng)中的新器件及應(yīng)用 楊振江 西安電子科技大學(xué)出版社4.單片機(jī)器件應(yīng)用手冊 王毅 人民郵電出版社5.計算機(jī)控制技術(shù)及工程應(yīng)用 林敏 丁金華 田濤 國防工業(yè)出版社6.基于proteus的單片機(jī)可視化軟硬件仿真林志琦 郎建軍 李會杰 佟大鵬 北京航空航天大學(xué)出版社7.單片機(jī)學(xué)習(xí)指導(dǎo)及習(xí)題解答 張志良 機(jī)械工業(yè)出版社8. 基于proteus的電路及單片機(jī)電路及單片機(jī)系統(tǒng)設(shè)計與仿真 周潤景 張麗娜 北京航空航天大學(xué)出版社附錄附錄一:程序清單led_0 equ 30hled_1 equ 31hled_2 equ 32hled_3 equ 33hkey00 equ 50hkey01 equ 51hk
37、ey02 equ 52hst bit p2.4oe bit p2.5eoc bit p3.0ale bit p2.3org 000hljmp startorg 0003hljmp intx0org 0013hljmp intx1start:mov led_0,#00 mov led_1,#00 mov led_2,#00 mov led_3,#00 mov 40h,#00h mov 41h,#00h mov dptr,#table mov r3,#00h mov key00,#00h mov key01,#00h mov 52h,#00h setb ex0 setb it0 setb ex1
38、setb it1 setb eal0: mov r0,#40h mov r2,#08h mov p2,#00h lcall meas1 ;采樣子程序 mov r1,#40h mov r2,#08h lcall loop2 ;標(biāo)度變換子程序 sjmp l0intx0:push dpl push dph push acc lcall delay2 lcall delay2 jb p3.2,l1 inc key00l1: pop acc pop dph pop dpl retiintx1:push dpl push dph push acc lcall delay2 lcall delay2 jb
39、p3.3,l2 mov 52h,key01 inc key01l2: pop acc pop dph pop dpl retimeas1:setb p2.3 ;采樣子程序 nop nop clr p2.3 nop nop setb p2.4 nop nop clr p2.4 nop noploop3:jnb p3.0,loop3 setb p2.5 mov a,p0 mov r0,a clr p2.5 inc p2 inc r0 djnz r2,meas1 retloop2:mov r4,#30h ;標(biāo)度變換 mov a,r1 mov b,#51 div ab mov led_2,a clr
40、f0 mov a,b subb a,#1ah mov f0,c mov a,#10 mul ab mov b,#51 div ab jb f0,biao0 add a,#5biao0:mov led_1,a clr f0 mov a,b subb a,1ah mov f0,c mov a,#10 mul ab mov b,#51 div ab jnb f0,biao1 add a,#5biao1:mov led_0,a mov a,r1 subb a,#40h mov led_3,a lcall disp ;調(diào)顯示子程序 mov a,key00 ;判斷第一個按鍵是否按下 jnb acc.0,loop0 sjmp key0loop0:inc r1 djnz r2,loop2 retdisp:mov a,led_3 ;顯示子程序 mov dptr,#table movc a,a+dptr clr p3.7 mov p1,a lcall delay2 setb p3.7 mov p1,#0ffh mov a,led_2 movc a,a+dptr clr p3.6 anl a,#7fh mov p1,a lcall delay2 setb p3.6 mov p1,#0ffh mov a,led_1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇全日制勞動合同范文7篇
- 第7單元 習(xí)作:寫信 教學(xué)設(shè)計2024-2025學(xué)年四年級語文上冊同步教學(xué) (廣東專版)
- 異分母分?jǐn)?shù)加減法(教學(xué)設(shè)計)-2023-2024學(xué)年五年級下冊數(shù)學(xué)人教版
- 粵教版高中信息技術(shù)必修教學(xué)設(shè)計-3.2.5 形成報告
- 第五課周到的預(yù)案教學(xué)設(shè)計 -2023-2024學(xué)年青島版(2019)初中信息技術(shù)第四冊
- 全國人教版初中信息技術(shù)七年級上冊第四單元第11課一、《訪問網(wǎng)站》教學(xué)設(shè)計
- 全國電子工業(yè)版初中信息技術(shù)第四冊第2單元2.4活動1《生活中的人臉識別應(yīng)用》教學(xué)設(shè)計
- 第四章第一節(jié)天氣教學(xué)設(shè)計2023-2024學(xué)年商務(wù)星球版七年級地理上冊
- 第1課《信息技術(shù)真奇妙》教學(xué)設(shè)計
- 2025至2031年中國脫硫除塵器行業(yè)投資前景及策略咨詢研究報告
- 《教育向美而生-》讀書分享課件
- 中海地產(chǎn)總部-員工考核手冊
- 左卡尼汀在減輕高原反應(yīng)中的應(yīng)用
- 《烹飪美學(xué)》課件-項目二 烹飪色彩
- 青海省西寧市選調(diào)生考試(行政職業(yè)能力測驗)綜合能力測試題匯編
- 2024年上海民航職業(yè)技術(shù)學(xué)院高職單招歷年職業(yè)技能測驗高頻考點試題含答案解析
- 2024年江西省南昌市南昌縣中考物理模擬試卷
- 夏枯草口服液相關(guān)項目實施方案
- 農(nóng)貿(mào)市場消防整改報告
- 《學(xué)前兒童家庭教育》課程標(biāo)準(zhǔn)(含課程思政)
- 三會一課培訓(xùn)
評論
0/150
提交評論