智能儀器報(bào)告_第1頁(yè)
智能儀器報(bào)告_第2頁(yè)
智能儀器報(bào)告_第3頁(yè)
智能儀器報(bào)告_第4頁(yè)
智能儀器報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、哈 爾 濱 理 工 大 學(xué)課 程 實(shí) 踐 題 目:智能儀器設(shè)計(jì) 姓 名: 班 級(jí): 學(xué) 號(hào): 指導(dǎo)教師 成 績(jī):2016年6月16日哈爾濱理工大學(xué)課程實(shí)踐目錄目錄I第一章 緒論11.1 實(shí)驗(yàn)?zāi)康?1.2 實(shí)驗(yàn)內(nèi)容11.3 實(shí)驗(yàn)用設(shè)備11.4 實(shí)驗(yàn)要求11.5 實(shí)驗(yàn)波形1第二章 總體方案設(shè)計(jì)22.1 工作原理2 2.3 波形發(fā)生22.4 顯示部分32.5 按鍵部分3第三章 硬件設(shè)計(jì)33.1 硬件原理33.2 DAC接口電路設(shè)計(jì)33.3 數(shù)碼管顯示及鍵盤接口電路43.4 中央處理部分53.4.1 CPU53.4.2復(fù)位電路73.4.3 系統(tǒng)時(shí)鐘83.5 PCB93.5.1 DAC1210 PCB板

2、9第四章 軟件設(shè)計(jì)104.1 系統(tǒng)流程圖104.2 軟件程序10第五章 設(shè)計(jì)總結(jié)11參考文獻(xiàn)11附錄12第一章 緒論1.1 實(shí)驗(yàn)?zāi)康?、根據(jù)給定D/A轉(zhuǎn)換器設(shè)計(jì)其與51單片機(jī)的接口電路,畫出原理圖及線路板圖,掌握智能儀器模擬量輸出通道的設(shè)計(jì)方法。2、通過(guò)一個(gè)相對(duì)完整的程序編程,將單片機(jī)知識(shí)和智能儀器的設(shè)計(jì)融會(huì)貫通,同時(shí)掌握對(duì)智能儀器的軟硬件構(gòu)成及“硬件軟化”方法。1.2 實(shí)驗(yàn)內(nèi)容設(shè)計(jì)數(shù)字式波形發(fā)生器,畫出硬件電路原理圖;編寫程序生成各種波形,而且頻率可調(diào);確定所生成的波形頻率范圍;用鍵盤控制生成的波形及頻率;數(shù)碼管顯示輸出波形的類型及頻率。1.3 實(shí)驗(yàn)用設(shè)備HC6800實(shí)驗(yàn)板,示波器,計(jì)算機(jī),

3、電源1.4 實(shí)驗(yàn)要求1. 繪制DAC1210接口電路原理圖及線路板圖。2. 焊接D/A接口電路板。3. 編寫程序完成以下任務(wù)1) 鍵盤識(shí)別。2) 動(dòng)態(tài)LED顯示。3) 使用按鍵通過(guò)D/A輸出要求的波形并顯示頻率。1.5 實(shí)驗(yàn)波形 下半波整流正弦波 方波第二章 總體方案設(shè)計(jì)2.1 工作原理根據(jù)題目的要求,制定了整體方案:以STC89C51單片機(jī)為控制核心,DAC1210和LF356等組成DAC接口電路,其中DAC的四個(gè)控制位分別接在單片機(jī)的P14,P15,P16,P17,數(shù)據(jù)線接在單片機(jī)的P0口。利用單片機(jī)程序控制的方法不斷地給DAC輸入不同的數(shù)字量,可以在DAC輸出端得到連續(xù)變化的波形(分別為

4、三角波和下半波整流正弦波),再由按鍵控制產(chǎn)生波形的種類及頻率,在數(shù)碼管上實(shí)時(shí)的顯示波形的頻率和種類,其中數(shù)碼管位選端接在p24,p23,p22 。波形在示波器上產(chǎn)生。2.2 系統(tǒng)組成圖2-2 原理圖2.3 波形發(fā)生采用單片機(jī)STC89C51和數(shù)模轉(zhuǎn)換芯片DAC1210實(shí)現(xiàn)波形的產(chǎn)生。通過(guò)STC89C51執(zhí)行下斜鋸齒波、上半波整流正弦波程序,向D/A轉(zhuǎn)換器的輸入端發(fā)送數(shù)據(jù),從而在D/A轉(zhuǎn)換電路輸出端得到相應(yīng)的電壓波形。在STC89C51的P25,P26,P27口接獨(dú)立按鍵,通過(guò)軟件編程來(lái)選擇波形、頻率,每種波形對(duì)應(yīng)一個(gè)按鍵,頻率增加、減少對(duì)應(yīng)一個(gè)按鍵。2.4 顯示部分8段LED共陰極數(shù)碼管,13

5、8譯碼器進(jìn)行位選,P0口輸出段選信號(hào)。2.5 按鍵部分采用獨(dú)立按鍵,它相比較矩陣鍵盤,按鍵的數(shù)目比少,結(jié)構(gòu)簡(jiǎn)單,方便操作,執(zhí)行效率高。第三章 硬件設(shè)計(jì)3.1 硬件原理波形的產(chǎn)生是通過(guò)STC89C51單片機(jī)執(zhí)行某一波形發(fā)生程序,通過(guò)這個(gè)51單片機(jī)將數(shù)字信號(hào)傳入D/A轉(zhuǎn)換器中,D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換成模擬電流信號(hào),經(jīng)過(guò)LF356芯片轉(zhuǎn)換成電壓信號(hào),即產(chǎn)生想要輸出的波形。3.2 DAC接口電路設(shè)計(jì)圖3-2 DAC接口電路DAC1210是一種雙緩沖的12位DAC芯片,它包含2個(gè)輸入鎖存器(高8位和低四位)、一個(gè)12位的DAC寄存器和一個(gè)12位的D/A轉(zhuǎn)換器。片選信號(hào)與寫入信號(hào)同時(shí)有效時(shí)將數(shù)字量送入

6、輸入鎖存器,字節(jié)控制端BYTE1/為高電平時(shí),8位數(shù)字量同時(shí)送入輸入鎖存器,而此端為低電平時(shí),只將低4位數(shù)字量送入低四位鎖存器。傳輸控制信號(hào)與同時(shí)有效時(shí),12位輸入鎖存器信號(hào)同時(shí)送進(jìn)DAC寄存器。由于本設(shè)計(jì)單片機(jī)為8位單片機(jī),所以不需兩次傳送。3.3 數(shù)碼管顯示及鍵盤接口電路圖3-3-1 共陰極數(shù)碼管接線圖圖3-3-2 六路獨(dú)立按鍵本設(shè)計(jì)選擇了8位共陰極數(shù)碼管,它的8個(gè)發(fā)光二極管的陰極(二極管正端)連接在一起,通常公共陰極接低電平,其它管腳接驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額

7、定的位置導(dǎo)通電流,還需根據(jù)外接電源及額定位置導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。顯示電路用于顯示信號(hào)的波形種類和信號(hào)的頻率,并且使系統(tǒng)能根據(jù)按鍵實(shí)時(shí)顯示相關(guān)信息。該系統(tǒng)中添加74LHC573 鎖存器,用于驅(qū)動(dòng)數(shù)碼顯示管,使其更易于控制,增加顯示的準(zhǔn)確性。使用74LS138 譯碼器,利用P0口控制數(shù)碼管的位選。由LED數(shù)碼管顯示器和獨(dú)立按鍵組成。當(dāng)某一按鍵按下一次時(shí),掃描程序掃描到之后,通過(guò)P0口將信號(hào)發(fā)送到LED。掃描及顯示利用程序?qū)崿F(xiàn),不斷掃描獨(dú)立按鍵,當(dāng)某一按鍵按下時(shí),隨即執(zhí)行程序段,完成相應(yīng)的功能。74LS573芯片 原理:本次設(shè)計(jì)我們采用動(dòng)態(tài)掃描的方法顯示,74LS573 的八個(gè)鎖存器都是透

8、明的D 型鎖存器,當(dāng)使能(G)為高輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電上.輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時(shí),新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動(dòng)大電容或低阻抗負(fù)載,可直接與系統(tǒng)總線接口并驅(qū)動(dòng)總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅(qū)動(dòng)器和工作寄存器。表3-1 74LS573芯片的真值表輸出enableLatch ENABLE 啟動(dòng)D輸出 OLHHHLHLLLLXQOHXXZ圖3-3-3 74LS573芯片 3.4 中央處理部分3.4.1 CPU1、 CPU結(jié)構(gòu)CPU 是單片機(jī)的核心部件。它由運(yùn)算器和控

9、制器等部件組成。(1)運(yùn)算器 運(yùn)算器以完成二進(jìn)制的算術(shù)/邏輯運(yùn)算部件ALU為核心。它可以對(duì)半字節(jié)(4)、單字節(jié)等數(shù)據(jù)進(jìn)行操作。例如,能完成加、減、乘、除、加1、減1、BCD碼十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算,完成與、或、異或、求反、循環(huán)等邏操作,操作結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。運(yùn)算器還包含有一個(gè)布爾處理器,用以處理位操作。它以進(jìn)位標(biāo)志位C為累加器,可執(zhí)行置位、復(fù)位、取反、位判斷轉(zhuǎn)移,可在進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行位數(shù)據(jù)傳誦等操作,還可以完成進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行邏輯與、或操作。(2)程序計(jì)數(shù)器PCPC是一個(gè)16位的計(jì)數(shù)器,用于存放一條要執(zhí)行的指令地址,尋址范圍為64kB,P

10、C有自動(dòng)加1功能,即完成了一條指令的執(zhí)行后,其內(nèi)容自動(dòng)加1。(3)指令寄存器 指令寄存器用于存放指令代碼。CPU執(zhí)行指令時(shí),由程序存儲(chǔ)器中讀取的指令代碼送如指令寄存器,經(jīng)指令譯碼器譯碼后由定時(shí)有控制電路發(fā)出相應(yīng)的控制信號(hào),完成指令功能。2、 存儲(chǔ)器和特殊功能寄存器(1)存儲(chǔ)器(Memory)是計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來(lái)存放程序和數(shù)據(jù)。計(jì)算機(jī)中的全部信息,包括輸入的原始數(shù)據(jù)、計(jì)算機(jī)程序、中間運(yùn)行結(jié)果和最終運(yùn)行結(jié)果都保存在存儲(chǔ)器中。它根據(jù)控制器指定的位置存入和取出信息。(2)特殊功能寄存器特殊功能寄存器(SFR)的地址范圍為80HFFH。在MCS51中,除程序計(jì)數(shù)器PC和四個(gè)工作寄存器區(qū)外,其余

11、21個(gè)特殊功能寄存器都在這SFR塊中。其中5個(gè)是雙字節(jié)寄存器,它們共占用了26個(gè)字節(jié)。各特殊功能寄存器的符號(hào)和地址見附表2。其中帶號(hào)的可位尋址。特殊功能寄存器反映了8051的狀態(tài),實(shí)際上是8051的狀態(tài)字及控制字寄存器。用于CPU PSW便是典型一例。這些特殊功能寄存器大體上分為兩類,一類與芯片的引腳有關(guān),另一類作片內(nèi)功能的控制用。與芯片引腳有關(guān)的特殊功能寄存器是P0P3,它們實(shí)際上是4個(gè)八位鎖存器(每個(gè)I/O口一個(gè)),每個(gè)鎖存器附加有相應(yīng)的輸出驅(qū)動(dòng)器和輸入緩沖器就構(gòu)成了一個(gè)并行口。MCS51共有P0P3四個(gè)這樣的并行口,可提供32根I/O線,每根線都是雙向的,并且大都有第二功能。其余用于芯片

12、控制的寄存器中,累加器A、標(biāo)志寄存器PSW、數(shù)據(jù)指針DPTR等的功能前已提及。3、 P0-P3口結(jié)構(gòu)P0口功能:P0口具有兩種功能:第一,P0口可以作為通用I/O接口使用,P0.7P0.0用于傳送CPU的輸入/輸出數(shù)據(jù)。輸出數(shù)據(jù)時(shí)可以得到鎖存,不需外接專用鎖存器,輸入數(shù)據(jù)可以得到緩沖。第二,P0.7P0.0在CPU訪問(wèn)片外存儲(chǔ)器時(shí)用于傳送片外存儲(chǔ)器de低8位地址,然后傳送CPU對(duì)片外存儲(chǔ)器的讀寫P1口 功能:P1口的功能和P0口的第一功能相同,僅用于傳遞I/O輸入/輸出數(shù)據(jù)。 P2口的功能:2口的第一功能和上述兩組引腳的第一功能相同,即它可以作為通用I/O使用。它的第二功能和P0口引腳的第二功

13、能相配合,作為地址總線用于輸出片外存儲(chǔ)器的高8位地址。 P3口功能:P3口有兩個(gè)功能:第一功能與其余三個(gè)端口的第一功能相同;第二功能作控制用,每個(gè)引腳都不同。 P3.0RXD串行數(shù)據(jù)接收口 P3.1TXD串行數(shù)據(jù)發(fā)送口 P3.2INT0外中斷0輸入 P3.3INT1外中斷1輸入 P3.4T0計(jì)數(shù)器0計(jì)數(shù)輸入 P3.5T1計(jì)數(shù)器1計(jì)數(shù)輸入 P3.6WR外部RAM寫選通信號(hào) P3.7RD外部RAM讀選通信號(hào) 圖3-4-1 89C51芯片及部分電路3.4.2復(fù)位電路復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開始運(yùn)行。圖3-4-2 復(fù)位電路單片機(jī)的復(fù)位電路在剛接通電時(shí),剛開始電容是沒

14、有電的,電容內(nèi)的電阻很低,通電后,5V的電通過(guò)電阻給電容進(jìn)行充電,電容兩端的電會(huì)由0V慢慢的升到4V左右(此時(shí)間很短一般小于0.3秒),RC構(gòu)成的微分電路在上電瞬間產(chǎn)生一個(gè)微分脈沖,其寬度大于兩個(gè)機(jī)器周期,90C51復(fù)位。因此,復(fù)位腳的電由低電位升到高電位,引起了內(nèi)部電路的復(fù)位工作,RST端電壓慢慢下降,降到一定電壓值以后,即為低電平,單片機(jī)開始正常工作(即上電復(fù)位,也叫初始化復(fù)位);當(dāng)按下復(fù)位鍵時(shí),電容兩端放電,電容又回到0V了,于是又進(jìn)行了一次復(fù)位工作(即手動(dòng)復(fù)位)。3.4.3 系統(tǒng)時(shí)鐘單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn) 圖3-4-3 系統(tǒng)時(shí)鐘電路單片機(jī)的時(shí)鐘信號(hào)通常用兩

15、種電路形式得到:內(nèi)部振蕩和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器或陶瓷諧振蕩器,構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自積振蕩,并產(chǎn)生振蕩時(shí)鐘脈沖。晶振通常選用6MHZ、12MHZ、或24MHZ。單片機(jī)的時(shí)序單位振蕩周期:晶振的振蕩周期,又稱時(shí)鐘周期,為最小的時(shí)序單位。狀態(tài)周期:振蕩頻率經(jīng)單片機(jī)內(nèi)的二分頻器分頻后提供給片內(nèi)CPU的時(shí)鐘周期。因此一個(gè)狀態(tài)周期包含2個(gè)振蕩周期。機(jī)器周期:1個(gè)機(jī)器周期由6個(gè)狀態(tài)周期12個(gè)振蕩周期組成,是計(jì)算機(jī)執(zhí)行一種基本操作的時(shí)間單位。指令周期:執(zhí)行一條指令所需的時(shí)間。一個(gè)指令周期由1-4個(gè)機(jī)器周期組成,依

16、據(jù)指令不同而不同。3.5 PCB3.5.1 DAC1210 PCB板 圖3-5PCB 圖3-5 PROTUES仿真圖 圖3-6 PROTUES 方波仿真圖 圖3-6 PROTUES 下半波整流正弦波圖圖3-6 PROTUES 方波圖 第四章 軟件設(shè)計(jì)4.1 系統(tǒng)流程圖圖4-1 軟件流程圖4.2 軟件程序按鍵1表示選擇方波;按鍵2表示選擇下半波整流正弦波;按鍵3表示選擇頻率變化。程序見附錄。4.3答辯問(wèn)題A為什么要用動(dòng)態(tài)LED顯示,動(dòng)態(tài)和靜態(tài)LED顯示各有什么優(yōu)缺點(diǎn)?答:(1)靜態(tài)顯示方式:靜態(tài)顯示方式是指當(dāng)顯示器顯示某一字符時(shí),發(fā)光二極管的位選始終被選中。在這種顯示方式下,每一個(gè)LED數(shù)碼管顯

17、示器都需要一個(gè)8位的輸出口進(jìn)行控制。由于單片機(jī)本身提供的I/O口有限,實(shí)際使用中,通常通過(guò)擴(kuò)展I/O口的形式解決輸出口數(shù)量不足的問(wèn)題。 靜態(tài)顯示主要的優(yōu)點(diǎn)是顯示穩(wěn)定,在發(fā)光二極管導(dǎo)通電流一定的情況下顯示器的亮度大,系統(tǒng)運(yùn)行過(guò)程中,在需要更新顯示內(nèi)容時(shí),CPU才去執(zhí)行顯示更新子程序,這樣既節(jié)約了CPU的時(shí)間,又提高了CPU的工作效率。其不足之處是占用硬件資源較多,每個(gè)LED數(shù)碼管需要獨(dú)占8條輸出線。隨著顯示器位數(shù)的增加,需要的I/O口線也將增加。 (2)動(dòng)態(tài)顯示方式:動(dòng)態(tài)顯示方式是指一位一位地輪流點(diǎn)亮每位顯示器(稱為掃描),即每個(gè)數(shù)碼管的位選被輪流選中,多個(gè)數(shù)碼管公用一組段選,段選數(shù)據(jù)僅對(duì)位選選

18、中的數(shù)碼管有效。對(duì)于每一位顯示器來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。通過(guò)調(diào)整電流和時(shí)間參數(shù),可以既保證亮度,又保證顯示。若顯示器的位數(shù)不大于8位,則顯示器的公共端只需一個(gè)8位I/O口進(jìn)行動(dòng)態(tài)掃描(稱為掃描口),控制每位顯示器所顯示的字形也需一個(gè)8位口(稱為段碼輸出)。B動(dòng)態(tài)顯示的亮度如何控制?答:頻率適當(dāng)下,用脈寬控制C如何消除動(dòng)態(tài)LED顯示中“暗亮”問(wèn)題?答:降低掃描速度D識(shí)別按鍵時(shí)為什么要去抖?答:去抖動(dòng)的原因:普通按鍵一般采用的是機(jī)械彈性開關(guān),由于機(jī)械觸點(diǎn)的彈性作用,在按鍵被按下和松開的瞬間均會(huì)伴隨一連串的抖動(dòng)(微觀上講),一個(gè)電壓

19、信號(hào)通過(guò)觸點(diǎn)的閉合、斷開時(shí),導(dǎo)致信號(hào)出現(xiàn)抖動(dòng)(抖動(dòng)時(shí)間一般5ms10ms,這個(gè)參數(shù)很重要),為了確保CPU對(duì)一次按鍵動(dòng)作只確認(rèn)一次按鍵,必須消除抖動(dòng)的影響,進(jìn)行去抖處理E按鍵時(shí)LED顯示器有何變化,為什么?答:數(shù)碼顯示會(huì)發(fā)生變化,因?yàn)榇嬖阪I抖動(dòng)。F如示波器顯示波形不理想,如何處理?答:調(diào)整同步旋鈕。重新調(diào)整程序的波形發(fā)生程序和延時(shí)程序?;蛘咝枰涌垢蓴_電路。第5章 心得體會(huì) 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以

20、說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。 在實(shí)訓(xùn)過(guò)程中遇到相當(dāng)多的難題 。一開始大家都是一頭霧水,不知道從哪里下手,而且知識(shí)嚴(yán)重匱乏,大家只好分工合作,紛紛查找各種資料,并且成立了一個(gè)討論小組,共同來(lái)研究這次的課設(shè)。經(jīng)過(guò)兩周的努力和合作終于把這次的課設(shè)完成了??芍^苦盡甘來(lái)。 通過(guò)這次單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們堅(jiān)持不懈和合作精神,讓我們不斷超越自己。課堂上沒有見過(guò)真正的單片機(jī) ,只是從理論上去理解 ,枯燥乏味,這次的實(shí)訓(xùn) ,讓我大開眼界,提高了單片機(jī)知識(shí)的理解和運(yùn)用水平 ,從選題

21、到定稿,從理論到實(shí)踐,在整整兩星期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運(yùn)用到實(shí)踐的過(guò)程中仍有意想不到的困惑,經(jīng)過(guò)一番努力才得以解決。 我認(rèn)為這個(gè)收獲應(yīng)該說(shuō)是相當(dāng)大的。一開始我們從參考書上找來(lái)了課題,但是畢竟是參考書,做到后來(lái)發(fā)現(xiàn)很多程序都是不完整的,這讓我們傷透了腦筋??粗鴦e的小組都弄得有模有樣了,可是我們連一個(gè)課題都還沒有定好。好不容易又找到了課題,可是結(jié)果還是很不盡人意。程序接線什么的都弄好了,調(diào)試也沒有問(wèn)題,可是就是無(wú)法達(dá)到預(yù)期想要的結(jié)果

22、。參考書畢竟只是一個(gè)參考,設(shè)計(jì)這種東西最后還是要靠自己動(dòng)腦筋。然后我們大家一起齊心協(xié)力,從平時(shí)做的實(shí)驗(yàn)老師上課的舉例書本上的知識(shí)以及老師的輔導(dǎo)和其他同學(xué)的幫助下終于完成了。另外在課程設(shè)計(jì)的過(guò)程中,當(dāng)我們碰到不明白的問(wèn)題時(shí),指導(dǎo)老師總是耐心的講解,給我們的設(shè)計(jì)以極大的幫助,使我們獲益匪淺。因此非常感謝老師的教導(dǎo)。通過(guò)這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義,學(xué)會(huì)了堅(jiān)持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我覺得作為一名工程專業(yè)的學(xué)生,這次課程設(shè)計(jì)是很有意義的。更重要的是如何把自己平時(shí)所學(xué)的東西應(yīng)用到實(shí)際中。雖然自己對(duì)于這門課懂的并不多,很多基礎(chǔ)的東

23、西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過(guò)自身去理解,但是靠著這一個(gè)多禮拜的“學(xué)習(xí)”,在小組同學(xué)的幫助和講解下,漸漸對(duì)這門課逐漸產(chǎn)生了些許的興趣,自己開始主動(dòng)學(xué)習(xí)并逐步從基礎(chǔ)慢慢開始弄懂它。 最后再次感謝老師和同學(xué)們的幫助。 附錄參考文獻(xiàn)主要參考文獻(xiàn): 1 張?chǎng)?單片機(jī)原理及應(yīng)用M. 北京:電子工業(yè)出版社,2005.8.2 梅麗鳳,王艷秋,王毓鐸. 單片機(jī)原理及其接口技術(shù)M.北京:清華大學(xué)出版社, 2006.8.3 張毅剛,彭喜源,譚曉昀,曲春波.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.4 張洪潤(rùn),易濤. 單片機(jī)應(yīng)用技術(shù)教程M. 北京:清華大學(xué)出版社,

24、2006.10.5 丁向榮,謝俊,王彩申. 單片機(jī)C 語(yǔ)言編程與實(shí)踐M. 北京:電子工業(yè)出版社,2009.8.程序#include<reg51.h>/開發(fā)板中已經(jīng)將 P2 口與 138 譯碼器的輸入連接好了sbit LS138A = P2 2; /定義138譯碼器的輸入A腳由P2.2來(lái)控制sbit LS138B = P2 3; /定義138譯碼器的輸入B腳由P2.3來(lái)控制sbit LS138C = P2 4; /定義138譯碼器的輸入C腳由P2.4來(lái)控制sbit BYTE = P2 0; /定義DAC的sbit XFER = P2 1; /定義138譯碼器的輸入B腳由P2.3來(lái)控制

25、sbit CS = P2 5; /定義138譯碼器的輸入C腳由P2.4來(lái)控制sbit WR_1_2 = P2 6; /定義138譯碼器的輸入C腳由P2.4來(lái)控制#define u_char unsigned char#define u_int unsigned int#define u_long unsigned long#define KeyPort P3 /鍵盤#define DA_Port P1 /DA轉(zhuǎn)換口u_int squ_flag=0;void Delay(u_char i);/延時(shí)函數(shù) 延時(shí)時(shí)間為 i*5*2 us/此表為 LED 的字模, 共陰數(shù)碼管 0-9 - */*0 1

26、2 3 4 5 6 7 8 9 *u_char code Disp_Tab = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f ; /*/*u_char LED_OUT = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; /要顯示的數(shù)組void DePlay();/數(shù)碼管顯示函數(shù)/判斷鍵盤是否按下了*void keydown(void); /*/鍵盤的值得確定的函數(shù) /*u_char keyscan(void); /*/*u_char BoxingFlage;/波形的標(biāo)記 用

27、來(lái)決定輸出什么波形u_int ValueFlage;/波形幅值 /正弦波u_int code DA_Sin=2048,2098,2148,2198,2248,2298,2348,2398,2447,2496,2545,2594,2642,2690,2737,2784,2831,2877,2923,2968,3013,3057,3100,3143,3185,3226,3267,3307,3346,3385,3423,3459,3495,3530,3565,3598,3630,3662,3692,3722,3750,3777,3804,3829,3853,3876,3898,3919,3939,3

28、958,3975,3992,4007,4021,4034,4045,4056,4065,4073,4080,4085,4089,4093,4094,4095,4094,4093,4089,4085,4080,4073,4065,4056,4045,4034,4021,4007,3992,3975,3958,3939,3919,3898,3876,3853,3829,3804,3777,3750,3722,3692,3662,3630,3598,3565,3530,3495,3459,3423,3385,3346,3307,3267,3226,3185,3143,3100,3057,3013,2

29、968,2923,2877,2831,2784,2737,2690,2642,2594,2545,2496,2447,2398,2348,2298,2248,2198,2148,2098,2048,1997,1947,1897,1847,1797,1747,1697,1648,1599,1550,1501,1453,1405,1358,1311,1264,1218,1172,1127,1082,1038,995,952,910,869,828,788,749,710,672,636,600,565,530,497,465,433,403,373,345,318,291,266,242,219,

30、197,176,156,137,120,103,88,74,61,50,39,30,22,15,10,6,2,1,0,1,2,6,10,15,22,30,39,50,61,74,88,103,120,137,156,176,197,219,242,266,291,318,345,373,403,433,465,497,530,565,600,636,672,710,749,788,828,869,910,952,995,1038,1082,1127,1172,1218,1264,1311,1358,1405,1453,1501,1550,1599,1648,1697,1747,1797,184

31、7,1897,1947,1997,;u_long Time_Set;/ 定時(shí)器 每隔 Time_Set us發(fā)送一次u_int nVlaue_HZ = 50;void Init_Timer0(void);/定時(shí)器初始化void main()WR_1_2=0;Init_Timer0();BoxingFlage=1;/波形默認(rèn)是正弦波ValueFlage=0;/默認(rèn)波形幅值是第0個(gè)while (1)keydown(); Time_Set=1000000/(nVlaue_HZ) ;/找到是哪個(gè)鍵摁下u_char keyscan(void)u_char KeyVal = 0;if (KeyPort !

32、= 0xFF) /判斷按鍵是否按下 如果按鈕按下 會(huì)拉低P1其中的一個(gè)端口Delay(100);if (KeyPort != 0xFF) /表示有鍵按下if (KeyPort = 0xFE)/K1按下KeyVal = 0;while (KeyPort = 0xFE);Delay(1000); /去抖while (KeyPort = 0xFE);if (KeyPort = 0xFD)/K2按下KeyVal = 1;while (KeyPort = 0xFD);Delay(1000); /去抖while (KeyPort = 0xFD);if (KeyPort = 0xFB)/K3按下KeyVal

33、 = 2;while (KeyPort = 0xFB);Delay(1000); /去抖while (KeyPort = 0xFB);if (KeyPort = 0xF7)/K4按下KeyVal = 3;while (KeyPort = 0xF7);Delay(1000); /去抖while (KeyPort = 0xF7);return KeyVal;return -1; return -1;/判斷鍵盤是否按下了void keydown(void)switch (keyscan()case 0:/用來(lái)控制顯示的是什么波形BoxingFlage=!BoxingFlage; /波形轉(zhuǎn)換Value

34、Flage=0;/ 波形的幅值置0break;case 1:/用來(lái)控制顯示的波形加加nVlaue_HZ+;break;case 2:/用來(lái)控制波形的減減nVlaue_HZ-;break;case 3:nVlaue_HZ+=10;break;/延時(shí)函數(shù)void Delay(u_char i) /一個(gè)延時(shí)函數(shù)是30US 一個(gè)for循環(huán)的時(shí)間是6USu_char j;for (i; i > 0; i-)for (j = 5; j > 0; j-);void DePlay()u_int i=0;LED_OUT0 = Disp_TabnVlaue_HZ % 10000 / 1000;LED_OUT1 = Disp_TabnVlaue_HZ % 1000 / 100;LED_OUT2 = Disp_TabnVlaue_HZ % 100 / 10;LED_OUT3 = Disp_TabnVlaue_HZ % 10 / 1;for (i = 0; i<4; i+) /實(shí)現(xiàn)8位動(dòng)態(tài)掃描循環(huán)/將字模送到P0口顯示P0 = LED_OUTi;switch (i) /使用switch

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論