基于PC、MCU和FPGA的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)1_第1頁(yè)
基于PC、MCU和FPGA的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)1_第2頁(yè)
基于PC、MCU和FPGA的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)1_第3頁(yè)
基于PC、MCU和FPGA的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)1_第4頁(yè)
基于PC、MCU和FPGA的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)1_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、中國(guó)礦業(yè)大學(xué)徐海學(xué)院專業(yè)技能考核培訓(xùn)設(shè)計(jì)報(bào)告 姓 名: 學(xué) 號(hào): 專 業(yè): 電子科學(xué)與技術(shù) 設(shè)計(jì)題目: 遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) 專 題: 基于CPLD/FPGA的電壓數(shù)據(jù)采集 指導(dǎo)教師: 設(shè)計(jì)地點(diǎn): 嘉園實(shí)驗(yàn)樓 時(shí) 間: 20130506 2013 年 5月CPLD課程設(shè)計(jì)任務(wù)書專業(yè)年級(jí)學(xué)號(hào)學(xué)生姓名 任務(wù)下達(dá)日期:2013年 5 月6 日設(shè)計(jì)日期: 2013年5月6日 至 2013年5月20日設(shè)計(jì)題目:基于PC、MCU和CPLD/FPGA的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)設(shè)計(jì)專題題目: 基于CPLD/FPGA的電壓數(shù)據(jù)采集設(shè)計(jì)主要內(nèi)容和要求: 利用上位計(jì)算機(jī)、單片機(jī)、可編程邏輯器件和ADC器件構(gòu)成一個(gè)遠(yuǎn)程數(shù)

2、據(jù)采集系統(tǒng),系統(tǒng)具備遠(yuǎn)程/就地兩種控制模式,具有8通道循環(huán)采集和指定通道采集兩種數(shù)據(jù)采集方式。具體要求如下:1.CPLD/FPGA硬件電路和AHDL控制軟件設(shè)計(jì)電路具備控制ADC0809的采集功能,具備6位數(shù)碼管動(dòng)態(tài)掃描功能,具備8位按鍵輸入功能,具備和單片機(jī)信號(hào)交換功能。2.單片機(jī)硬件電路和監(jiān)控軟件設(shè)計(jì)電路具備和CPLD/FPGA交換信息,以及和上位機(jī)算計(jì)進(jìn)行RS232的通訊功能,能將上位機(jī)發(fā)出的控制指令下達(dá)到CPLD/FPGA中,并將采集的數(shù)據(jù)傳送到上位計(jì)算機(jī)中。3.單片機(jī)程序要求用C51編制。上位機(jī)算計(jì)軟件設(shè)計(jì)利用VB或VC程序編制上位計(jì)算機(jī)控制程序,實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集功能并實(shí)時(shí)顯示采集的

3、數(shù)據(jù)和通道號(hào)。指導(dǎo)教師簽字:摘 要隨著科學(xué)技術(shù)的迅猛發(fā)展,新技術(shù)革命將把人類由工業(yè)化社會(huì)推進(jìn)到信息化社會(huì)為主要內(nèi)容的數(shù)據(jù)采集測(cè)試技術(shù),已形成了一門專門的技術(shù)科學(xué)。數(shù)據(jù)采集系統(tǒng)是計(jì)算機(jī)、智能儀器與外界物理世界聯(lián)系的橋梁,是獲取信息的重要途徑。數(shù)據(jù)采集技術(shù)是信息科學(xué)的重要分支,它不僅應(yīng)用在智能儀器中,而且在現(xiàn)代工業(yè)生產(chǎn)、國(guó)防軍事及科學(xué)研究等方面都得到了廣泛應(yīng)用,無論是過程控制、狀態(tài)檢測(cè),還是故障診斷、質(zhì)量檢測(cè),都離不開數(shù)據(jù)采集系統(tǒng)。 本文介紹一種基于EP1K30TC144-3的CPLD/FPGA和89S52單片機(jī)的一種電壓測(cè)量電路,基本內(nèi)容包括單片機(jī)最小系統(tǒng)、AD轉(zhuǎn)換電路、鍵盤和LED顯示電路,以

4、及設(shè)計(jì)系統(tǒng)涉及的其他電路。系統(tǒng)硬件電路由標(biāo)準(zhǔn)電路和自制電路兩部分組成。標(biāo)準(zhǔn)電路包括單片機(jī)最小系統(tǒng)、6個(gè)LED數(shù)碼管電路和鍵盤電路以及CPLD/FPGA系統(tǒng),這部分電路已制成電路板,自制電路自行設(shè)計(jì)焊接,包含標(biāo)準(zhǔn)電路不具備的其他電路。系統(tǒng)軟件根據(jù)設(shè)計(jì)任務(wù)自行設(shè)計(jì)獨(dú)立編制并進(jìn)行調(diào)試,最終實(shí)現(xiàn)利用上位機(jī)遠(yuǎn)程控制系統(tǒng)進(jìn)行數(shù)據(jù)采集功能并實(shí)時(shí)顯示采集的數(shù)據(jù)和通道號(hào)。關(guān)鍵詞:89S52單片機(jī)、EP1K30TC144-3芯片、CPLD/FPGA、上位機(jī)、電壓采集、AD轉(zhuǎn)換電路目 錄1 緒論11.1課程簡(jiǎn)介11.1.1課程設(shè)計(jì)的性質(zhì)、目的和任務(wù)11.2系統(tǒng)設(shè)計(jì)思路11.3方案論證及比較21.3.1單片機(jī)控制方案

5、的選用21.3.2 FPGA控制方案的選用21.4 系統(tǒng)設(shè)計(jì)原理框圖32 硬件電路設(shè)計(jì)42.1單片機(jī)電路42.1.1單片機(jī)電路板42.1.2單片機(jī)最小系統(tǒng)52.1.3 顯示譯碼電路52.2 A/D轉(zhuǎn)換72.2.1 ADC0809內(nèi)部結(jié)構(gòu)72.2.2 ADC0809轉(zhuǎn)換原理82.2.3 AD轉(zhuǎn)換電路92.2.4電路設(shè)計(jì)92.3 硬件設(shè)計(jì)流程102.3.1 硬件設(shè)計(jì)流程圖102.3.2 CPLD系統(tǒng)流程框圖112.3.3 詳細(xì)管腳說明113 軟件設(shè)計(jì)133.1 設(shè)計(jì)任務(wù)133.1.1 基本任務(wù)133.1.2 擴(kuò)展任務(wù)133.2程序設(shè)計(jì)133.2.1 軟件設(shè)計(jì)流程133.2.2 單片機(jī)設(shè)計(jì)流圖143

6、.2.3 BCD碼轉(zhuǎn)換電路與顯示電路設(shè)計(jì)程序:143.2.4八位二進(jìn)制乘法器173.2.5 用上位機(jī)和撥碼開關(guān)控制8路通道選擇:183.2.6單片機(jī)與PC機(jī)通訊程序194 系統(tǒng)調(diào)試214.1 硬件部分214.2 軟件部分215 總結(jié)23參考文獻(xiàn):24附錄二 ADC0809與單片機(jī)連接圖26附錄三 元器件清單27附錄四 程序代碼281 緒論1.1課程簡(jiǎn)介1.1.1課程設(shè)計(jì)的性質(zhì)、目的和任務(wù)單片機(jī)系統(tǒng)設(shè)計(jì)是在學(xué)習(xí)單片機(jī)原理及應(yīng)用、CPLD等相關(guān)理論課程之后,所設(shè)置的重要的綜合性實(shí)踐教學(xué)環(huán)節(jié)。此次技能考核的目的是通過課題的設(shè)計(jì)、安裝和調(diào)試,使我們?nèi)媪私庹莆针娮蛹夹g(shù)應(yīng)用設(shè)計(jì)的基本技能,鞏固已學(xué)的理論

7、知識(shí)并綜合應(yīng)用,進(jìn)行電子系統(tǒng)的設(shè)計(jì),從而培養(yǎng)工程實(shí)踐能力、創(chuàng)新能力,培養(yǎng)嚴(yán)肅認(rèn)真的工作作風(fēng)和科學(xué)態(tài)度,具備簡(jiǎn)單科技論文、技術(shù)綜述報(bào)告的寫作能力等。通過查閱資料、選定方案、設(shè)計(jì)電路、安裝調(diào)試、寫技術(shù)報(bào)告等過程,得到一次科學(xué)研究工作的啟蒙訓(xùn)練,也為以后利用單片機(jī)開發(fā)電子產(chǎn)品奠定堅(jiān)實(shí)的基礎(chǔ)。在對(duì)遠(yuǎn)程數(shù)據(jù)采集裝置進(jìn)行設(shè)計(jì)時(shí),其設(shè)計(jì)分為硬件設(shè)計(jì)與軟件設(shè)計(jì)兩部分,具體的設(shè)計(jì)流程如圖: 圖1-1 設(shè)計(jì)流程圖1.2系統(tǒng)設(shè)計(jì)思路本次實(shí)驗(yàn)要求設(shè)計(jì)基于單片機(jī)的電壓數(shù)據(jù)采集裝置,課程設(shè)計(jì)分設(shè)計(jì)、制作和調(diào)試三個(gè)部分。設(shè)計(jì)選題以單片機(jī)、AD0809為核心,基本內(nèi)容應(yīng)包括單片機(jī)最小系統(tǒng)、CPLD系統(tǒng)、鍵盤(撥碼開關(guān))和LE

8、D顯示電路,以及設(shè)計(jì)系統(tǒng)涉及的其他電路。系統(tǒng)硬件電路由單片機(jī)系統(tǒng)和CPLD系統(tǒng)兩部分組成。其中單片機(jī)系統(tǒng)包括單片機(jī)最小系統(tǒng)、8個(gè)LED數(shù)碼管電路和鍵盤電路,可根據(jù)設(shè)計(jì)需要進(jìn)行配置選用。CPLD系統(tǒng)則需自行設(shè)計(jì)焊接,包含EP1K30TC144芯片。設(shè)計(jì)中采用了模數(shù)轉(zhuǎn)換器,利用ADC0809型8位MOS型A/D轉(zhuǎn)換器,可實(shí)現(xiàn)8路模擬信號(hào)的分時(shí)采集,片內(nèi)有8路模擬選通開關(guān),以及相應(yīng)的通道地址鎖存用譯碼電路,實(shí)現(xiàn)模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。顯示部分利用LED數(shù)碼管顯示模塊,來顯示采集到的電壓分量。1.3方案論證及比較1.3.1單片機(jī)控制方案的選用方案一:采用8031為核心,由于其內(nèi)部沒有存儲(chǔ)器,所以利用

9、2764擴(kuò)展8KB的外部存儲(chǔ)器,用8031的兩組I/O接口。方案二:采用AT89C52作為核心,對(duì)AD轉(zhuǎn)換的數(shù)據(jù)進(jìn)行采集并顯示。其內(nèi)置的8KB字節(jié)點(diǎn)擦除可編程EEPROM片內(nèi)程序存儲(chǔ)器和256字節(jié)RAM,無需外部擴(kuò)展。 所以選用方案二,采用AT89C52作為核心,其片內(nèi)程序存儲(chǔ)器空間足夠滿足本系統(tǒng)程序存儲(chǔ)器的需要,可以省去對(duì)片外EPROM程序存儲(chǔ)器和地址鎖存器,使電路結(jié)構(gòu)簡(jiǎn)捷。1.3.2 FPGA控制方案的選用方案一:采用EP1K30TC144-3為核心,具備6位數(shù)碼管動(dòng)態(tài)掃描功能和8位按鍵輸入功能,以及與單片機(jī)進(jìn)行信號(hào)交換等功能。方案二:采用EP1K30TC144-3為核心,同樣具備6位數(shù)碼

10、管動(dòng)態(tài)掃描功能和8位按鍵輸入功能,以及與單片機(jī)進(jìn)行信號(hào)交換等功能。且管腳數(shù)目較少,適合本次設(shè)計(jì)使用。所以選用方案二,采用EP1K30TC144-3為核心,其功能已經(jīng)滿足設(shè)計(jì)需要,且應(yīng)用簡(jiǎn)單,管腳分配方便,使電路結(jié)構(gòu)簡(jiǎn)潔。1.4 系統(tǒng)設(shè)計(jì)原理框圖 圖1-2系統(tǒng)設(shè)計(jì)原理框圖2 硬件電路設(shè)計(jì)系統(tǒng)硬件電路由單片機(jī)系統(tǒng)和CPLD系統(tǒng)兩部分組成。其中單片機(jī)系統(tǒng)包括單片機(jī)最小系統(tǒng)、8個(gè)LED數(shù)碼管電路和鍵盤電路,可根據(jù)設(shè)計(jì)需要進(jìn)行配置選用。CPLD系統(tǒng)則需自行設(shè)計(jì)焊接,包含EP1K30TC144芯片。2.1單片機(jī)電路2.1.1單片機(jī)電路板單片機(jī)電路板電路框圖如圖2;圖2-1 電路框圖2.1.2單片機(jī)最小系統(tǒng)

11、 圖2-2單片機(jī)最小系統(tǒng)圖該原理圖包含單片機(jī)以及外部連接譯碼,鎖存電路端口,其中的ALE,REST為高電平時(shí)用來啟動(dòng)ADC0809.P0、P2口控制數(shù)碼輸出顯示,P3口的P3.3、P3.4、P3.5控制按鍵,P1.1P1.3控制通道選擇。晶振采用12MHZ,該頻率有利于提高串口的通信可靠性,同時(shí)又保證單片機(jī)有較高的運(yùn)行速度。2.1.3 顯示譯碼電路LED顯示電路可提供8位LED顯示;可顯示P1(P3)口狀態(tài);也可顯示輸入按鍵狀態(tài)。圖2-3LED顯示電路顯示電路采用6位共陽(yáng)極LED動(dòng)態(tài)掃描顯示,CD4511輸出所需字形,74LS138選擇字位。在動(dòng)態(tài)方式中,逐個(gè)地循環(huán)地點(diǎn)亮各位顯示器。 圖2-4

12、 數(shù)碼管顯示電路顯示譯碼電路部分由P0口或P2口輸出顯示。顯示譯碼器采用CD4511芯片:輸入:BCD 輸出:七段碼 74LS138芯片是用來控制顯示時(shí)候的字位的,由于單片機(jī)的管腳是有限的通過使用138芯片可以避免少使用些單片機(jī)的管腳,當(dāng)輸入001時(shí),譯碼可得10111111:輸入:07 輸出:低電平 2.2 A/D轉(zhuǎn)換2.2.1 ADC0809內(nèi)部結(jié)構(gòu)ADC0809由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、256電阻階梯、樹狀開關(guān)、逐次逼近式寄存器SAR、控制電路和三態(tài)輸出鎖存器等組成。圖2-5 ADC0809結(jié)構(gòu)圖2.2.2 ADC0809轉(zhuǎn)換原理 圖2-6 ADC0809轉(zhuǎn)換工作時(shí)序工作

13、原理: 當(dāng)單片機(jī)端的P3.3接低電平時(shí),可以使兩個(gè)非門打開(1)當(dāng)模擬量送至某一輸入通道后,CPU將標(biāo)識(shí)該通道編碼的三位地址信號(hào)經(jīng)數(shù)據(jù)線或地址線輸入到ADDC、ADDB、ADDA引腳上。 (2)地址鎖存允許ALE鎖存地址信號(hào),啟動(dòng)命令START啟動(dòng)A/D轉(zhuǎn)換。(3)轉(zhuǎn)換開始,EOC變低電平,轉(zhuǎn)換結(jié)束,EOC變?yōu)楦唠娖?。EOC可作為中斷請(qǐng)求信號(hào)。 (4)轉(zhuǎn)換結(jié)束后,可通過執(zhí)行IN指令,設(shè)法在輸出允許OE腳上形成一個(gè)正脈沖,打開三態(tài)緩沖器把轉(zhuǎn)換的結(jié)果輸入到DB,一次A/D轉(zhuǎn)換便完成。2.2.3 AD轉(zhuǎn)換電路轉(zhuǎn)換結(jié)束:EOC1 圖2-7 AD轉(zhuǎn)換電路原理圖2.2.4電路設(shè)計(jì)硬件資源分配數(shù)碼管顯示電路

14、:用 P2 口:bcd 碼輸出P2.3P2.0;字位選擇 cba=P2.6P2.4 ;小數(shù)點(diǎn) P2.7鍵盤電路: P3口低四位1號(hào)按鍵P3.0-模式切換2號(hào)按鍵P3.1-通道、報(bào)警限加3號(hào)按鍵P3.2-通道、報(bào)警限減4號(hào)按鍵P3.3-查詢法,接收ad轉(zhuǎn)換狀態(tài)(不作為按鍵使用) 中斷法,收ad結(jié)束中斷信號(hào)ADC0809電壓轉(zhuǎn)換電路控制信號(hào):/wr=p3.6 /rd=p3.7 eoc= p3.3 Cs= p3.5 轉(zhuǎn)換通道選擇地址線:CBA =P1(6-4)2.3 硬件設(shè)計(jì)流程2.3.1 硬件設(shè)計(jì)流程圖圖2-8硬件設(shè)計(jì)框圖2.3.2 CPLD系統(tǒng)流程框圖圖2-9 CPLD系統(tǒng)功能模塊框圖2.3.3

15、 詳細(xì)管腳說明(1)時(shí)鐘源圖2-10 時(shí)鐘源與CPLD對(duì)應(yīng)管腳連接圖(2)輸入開關(guān)圖2-11 16個(gè)數(shù)據(jù)開關(guān)與CPLD對(duì)應(yīng)管腳連接圖(3)數(shù)碼管顯示實(shí)驗(yàn)箱有0個(gè)數(shù)碼管(SEG1SEG10),采用共陰極段LED顯示。其中SEG1SEG2采用靜態(tài)顯示方式,SEG3SEG10采用動(dòng)態(tài)掃描顯示方式。且SEG1、SEG2的段LED顯示輸入端分別與個(gè)LED管相連同時(shí)顯示。圖2-12 數(shù)碼管管腳分配圖3 軟件設(shè)計(jì)3.1 設(shè)計(jì)任務(wù)3.1.1 基本任務(wù) (1)、進(jìn)行電壓采集并顯示 3.1.2 擴(kuò)展任務(wù) (1)、指定通道采集 (2)、循環(huán)采集顯示 ,默認(rèn)每通道顯示1秒鐘。3.2程序設(shè)計(jì)3.2.1 軟件設(shè)計(jì)流程圖

16、3-1 軟件設(shè)計(jì)流程框圖3.2.2 單片機(jī)設(shè)計(jì)流圖圖3-2 單片機(jī)設(shè)計(jì)與AD0809設(shè)計(jì)流程圖3.2.3 BCD碼轉(zhuǎn)換電路與顯示電路設(shè)計(jì)程序:Subdesign dcbzhhh -定義輸入輸出管腳( ibd15.0,inclk :input; odd6.0, p,bitout4.0 :output;)Variable -定義觸發(fā)器 mh3.0,mm3.0,mw3.0, mr3.0,ml3.0 :dff; mrd15.0,sta1.0,stb2.0,mseg3.0, bitout4.0,fpq15.0,fp :dff; mhr3.0,mmr3.0,mwr3.0,mrr3.0, mlr3.0 :d

17、ff;Beginp=vcc; -點(diǎn)亮小數(shù)點(diǎn)(fpq,fp).clk=inclk; -分頻 If fpq=19999 then fp=!fp;fpq=0; Else fp=fp;fpq=fpq+1; End if;sta.clk=fp;stb.clk=fp;bitout.clk=fp;mseg.clk=fp;-給觸發(fā)器輸入時(shí)鐘(mh,mm,mw,mr,ml,mrd).clk=inclk;(mhr,mmr,mwr,mrr,mlr).clk=inclk;Case sta is -BCD碼轉(zhuǎn)換When 0 => mrd=ibd;sta=1; mhr=mhr;mmr=mmr;mwr=mwr;mrr

18、=mrr;mlr=mlr;When 1 => If mrd=0 then mhr=mh;mmr=mm;mwr=mw;mrr=mr;mlr=ml; mh=mh;mm=mm;mw=mw;mr=mr; ml=ml; sta=0;Else mhr=mh;mmr=mm;mwr=mw;mrr=mr;mlr=ml; mrd=mrd-1; sta=1; If ml=9 then ml=0; If mr=9 then mr=0; If mw=9 then mw=0; If mm=9 then mm=0; If mh=9 then mh=0;Else mh=mh+1; End if; Else mm=mm+

19、1;mh=mh; End if; Else mw=mw+1;mm=mm;mh=mh; End if; Else mr=mr+1;mw=mw;mm=mm;mh=mh; End if; Else ml=ml+1;mr=mr;mw=mw;mm=mm;mh=mh; End if;End if;End case;case stb is-隱含狀態(tài)機(jī)的使用 when 0=> -動(dòng)態(tài)掃描顯示電路 mseg=mlr; bitout=1; stb=1; when 1=> mseg=mrr; bitout=2; stb=2; when 2=> mseg=mwr; bitout=4; stb=3;

20、when 3=> mseg=mmr; bitout=8; stb=4; when 4=> mseg=mhr; bitout=16; stb=0;end case;Table mseg3.0=>odd6.0; h"0" =>h"3f" - “0111111” h"1" =>h"06" h"2" =>h"5b" h"3" =>h"4f" h"4“ =>h"66"

21、h"5“ =>h"6d" h"6“ =>h"7d" h"7" =>h"07" h"8“ =>h"7f" h"9" =>h"6f" end table;End; 3.2.4八位二進(jìn)制乘法器FUNCTION lpm_mult (dataa7.0, datab7.0,sum7.0) -設(shè)置乘法器參數(shù) WITH (LPM_WIDTHA=8, LPM_WIDTHB=8,LPM_WIDTHP=16, LPM_

22、WIDTHS=16,INPUT_A_IS_CONSTANT="no", INPUT_B_IS_CONSTANT="no",USE_EAB="off", LPM_REPRESENTATION="unsigned" ) RETURNS (result15.0); Subdesign multt -定義輸入輸出管腳 (daa7.0,dab7.0:input; res15.0 :output; ) Variable -實(shí)現(xiàn)乘法器功能 multa :lpm_mult; Begin multa.sum=gnd; multa.d

23、ataa=daa; multa.datab=dab; res=multa.result; End;3.2.5 用上位機(jī)和撥碼開關(guān)控制8路通道選擇:Include “dcbzhhh.inc”; -調(diào)用BCD轉(zhuǎn)換和顯示模塊Include “multt.inc”; -調(diào)用乘法器模塊Subdesign sjcjjj -定義輸入輸出管腳(inclk,eoc,ds7.0,tdxuanze2.0,fsxuanze,bomakg2.0:input; add2.0,otclk,out6.0,st,oe,led7.0,p,wx4.0:output;)Variablezhq:dcbzhhh;cfq:multt;fp

24、q4.0,fp,outd :dff; -定義D觸發(fā)器sm1.0,dp7.0,st,outdd20.0:dff; Beginoe=vcc;(fpq,fp,outdd,outd).clk=inclk; zhq.inclk=inclk;If fpq=19 then -分頻 fpq=0;fp=!fp;Else fpq=fpq+1;fp=fp;End if;if outdd=999999 then outdd=0;outd=!outd;else outdd=outdd+1;outd=outd;end if;(sm,st,dp).clk=fp;otclk=fp;if fsxuanze=0 then -選擇

25、通道方式 add=tdxuanze;else add=bomakg;end if;Case sm is -實(shí)現(xiàn)ADC轉(zhuǎn)換功能When 0 => st=gnd;dp=ds; sm=1;When 1 => st=gnd; dp=dp; if eoc then sm=2; else sm=1; end if;When 2=> st=vcc; sm=0; dp=ds; End case;cfq.daa=196; -將采集的二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為十進(jìn)制數(shù)據(jù)cfq.dab=dp;zhq.ibd=cfq.res;wx=zhq.bitout;p=zhq.p;out6.0=zhq.odd;led=d

26、p;End;3.2.6單片機(jī)與PC機(jī)通訊程序#include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar r; void init(); void main() /主程序 init(); while(1) /while()死循環(huán) /* 串口中斷服務(wù)程序 */ void ser() interrupt 4 RI = 0; /清除串行接收中斷申請(qǐng)位 r = SBUF; /接收上位機(jī)數(shù)據(jù) P2 = r ; /將數(shù)據(jù)送給P2口 r = P0; SBUF=r; /發(fā)送P0數(shù)據(jù)給上位機(jī) while(T

27、I=0); /當(dāng)TI=1時(shí),完成發(fā)送,向CPU申請(qǐng)中斷 TI = 0; /關(guān)閉串口中斷 /* 串口初始化*/ void init() r = 0xff; /將P0口置高電平 TMOD= 0x20; /寫控制字20H TH1 = 0x98; /T1高4位賦初值98H TL1 = 0x98; /T1低4位賦初值98H TR1 = 1; /啟動(dòng)定時(shí)器T1,從而設(shè)定串口通信的波特率 SM0 = 0; SM1 = 1; /設(shè)定串口通信方式為十位異步收發(fā)器 (方式1) REN = 1; /打開串口通訊,允許接收 ES = 1; /開放串口中斷 EA = 1; /開放CPU中斷 4 系統(tǒng)調(diào)試系統(tǒng)調(diào)試包括硬件

28、調(diào)試和軟件調(diào)試兩部分,介紹一下我在這兩方面遇到一些問題,以及如何解決的。4.1 硬件部分硬件焊接分為EP1K30TC144貼片式芯片小板的焊接和CPLD開發(fā)板及CPLD擴(kuò)展板的焊接,在焊接EP1K30TC144時(shí),由于拖錫技術(shù)應(yīng)用的不是很嫻熟,所以導(dǎo)致芯片的焊接出現(xiàn)管腳短路的情況。其次就是焊接CPLD擴(kuò)展板時(shí),由于AD0809芯片與電位器是管腳連接出錯(cuò),即開始時(shí)電位器的管腳定義出錯(cuò),導(dǎo)致調(diào)節(jié)電位器旋鈕時(shí)數(shù)碼管顯示的數(shù)值不發(fā)生變化,經(jīng)萬用表檢測(cè),發(fā)現(xiàn)焊接問題之后及時(shí)糾正便實(shí)現(xiàn)了功能。4.2 軟件部分(1)CPLD(AD、乘法器)模塊程序:將AD轉(zhuǎn)換的輸出結(jié)果轉(zhuǎn)換為電壓值,即乘以196得到的數(shù)據(jù),

29、此時(shí)要擴(kuò)展輸入輸出端口的長(zhǎng)度。255*196=49980需要5個(gè)數(shù)碼管,其中4個(gè)只需要7段,最高一個(gè)數(shù)碼管需要8段,多添加了一個(gè)小數(shù)點(diǎn),只需要在輸出端定義一個(gè)變量,然后在管腳分配時(shí)分給小數(shù)點(diǎn)即可(取名為dcbzhh)。但由于實(shí)驗(yàn)程序名為dcbzhh(輸入管腳p表示小數(shù)點(diǎn),fpq和fp都表示分頻)的程序中引用數(shù)碼管是調(diào)用了五個(gè),其中有兩個(gè)是靜態(tài)掃描,另三個(gè)是動(dòng)態(tài)掃描。而使用靜態(tài)掃描下載程序時(shí)在CPLD板上會(huì)出現(xiàn)錯(cuò)誤。所以設(shè)計(jì)時(shí)全部用動(dòng)態(tài)掃描數(shù)碼管,并設(shè)置一個(gè)公共端!而動(dòng)態(tài)掃描時(shí)seg1seg6共用七段數(shù)碼管,所以定義輸出odd時(shí)只需要定義為odd6.0 (取名為dcbzhhh)。(2)單片機(jī)與C

30、PLD實(shí)現(xiàn)通信的程序:輸出定義為out6.0即一組5個(gè)動(dòng)態(tài)顯示數(shù)碼管。修改時(shí)在dcbzhhh里面將小數(shù)點(diǎn)定義在case語(yǔ)句的字位碼描述語(yǔ)句中,即在最高位后面添加一句p=vcc,而不用在begin語(yǔ)句里面定義p=vcc.同時(shí),在sjcjjj模塊里面調(diào)用dcbzhhh模塊時(shí),將輸出定義為out6.0 ,同時(shí)將AD轉(zhuǎn)換的輸出dp連接到AD轉(zhuǎn)換的8通道輸出,同時(shí)連接到單片機(jī)的P0口,而單片機(jī)則通過P2口低3位連接到CPLD通道選擇端。最后將dcbzhhh模塊的輸出接到out6.0的輸出即可完成CPLD與單片機(jī)的通信,但是要注意重新對(duì)管腳進(jìn)行分配。(3)軟件特色:在最終的CPLD模塊中調(diào)用了八位二進(jìn)制乘

31、法器模塊程序,以及16位BCD轉(zhuǎn)換模塊和動(dòng)態(tài)掃描顯示模塊。即將乘法器模塊、BCD轉(zhuǎn)換模塊、動(dòng)態(tài)掃描顯示模塊的文本編輯程序最終融入整合在CPLD模塊程序中,而沒有采用直接調(diào)用乘法器圖形文件的方法。雖然這樣為程序調(diào)試帶來了很多麻煩,使整體的程序設(shè)計(jì)顯得比較繁瑣,但是在我們小組成員的共同努力商討以及老師的悉心指導(dǎo)下,最終我們程序調(diào)試成功,實(shí)現(xiàn)了相應(yīng)的功能!5 總結(jié)這次單片機(jī)課程設(shè)計(jì)過后,讓我對(duì)單片機(jī)和CPLD這兩門課程有了更進(jìn)一步的理解和感悟。經(jīng)過這次課程設(shè)計(jì),自己收獲很多,明白了團(tuán)隊(duì)合作的重要性,更加深了自己對(duì)AD轉(zhuǎn)換以及單片機(jī)和PC機(jī)實(shí)現(xiàn)通訊的原理。更熟練掌握了CPLD語(yǔ)言的編寫和使用Keil軟

32、件編寫單片機(jī)程序?qū)崿F(xiàn)相應(yīng)電路功能的技術(shù)與本領(lǐng)。其次,在硬件焊接時(shí),還需更加細(xì)心,防止虛焊、漏焊現(xiàn)象的發(fā)生,并熟練學(xué)習(xí)應(yīng)用拖錫技術(shù)實(shí)現(xiàn)貼片式芯片的焊接。最后,衷心感謝在本次單片機(jī)技能考核設(shè)計(jì)中曾經(jīng)悉心幫助指導(dǎo)我們的兩位老師以及熱心討論制作思想的同學(xué),最終在大家的共同努力下,本著團(tuán)隊(duì)合作的精神,我們成功完成并實(shí)現(xiàn)了本次技能考核設(shè)計(jì)。參考文獻(xiàn):1胡漢才,單片機(jī)原理及其接口技術(shù)(2版),清華大學(xué)出版社 2孫育才,MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用,東南大學(xué)出版社3曹巧媛,單片機(jī)原理及應(yīng)用教學(xué)、實(shí)踐、設(shè)計(jì)指導(dǎo),電子工業(yè)出版社4數(shù)字系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書附錄一 單片機(jī)板電路原理圖附錄二 ADC0809與單

33、片機(jī)連接圖附錄三 元器件清單附錄四 程序代碼八位二進(jìn)制乘法器FUNCTION lpm_mult (dataa7.0, datab7.0,sum7.0) WITH (LPM_WIDTHA=8, LPM_WIDTHB=8,LPM_WIDTHP=16, LPM_WIDTHS=16,INPUT_A_IS_CONSTANT="no", INPUT_B_IS_CONSTANT="no",USE_EAB="off", LPM_REPRESENTATION="unsigned" ) RETURNS (result15.0); su

34、bdesign multt (daa7.0,dab7.0:input; res15.0 :output; ) Variable multa :lpm_mult; Begin multa.sum=gnd; multa.dataa=daa; multa.datab=dab; res=multa.result; End;16位BCD碼轉(zhuǎn)換與顯示電路Subdesign dcbzhhh( ibd15.0,inclk :input; odd6.0, p,bitout4.0 :output;)Variable mh3.0,mm3.0,mw3.0, mr3.0,ml3.0 :dff; mrd15.0,sta1

35、.0,stb2.0,mseg3.0, bitout4.0,fpq15.0,fp :dff; mhr3.0,mmr3.0,mwr3.0,mrr3.0, mlr3.0 :dff;Begin (fpq,fp).clk=inclk; If fpq=19999 then fp=!fp;fpq=0; Else fp=fp;fpq=fpq+1; End if;sta.clk=fp;stb.clk=fp;bitout.clk=fp;mseg.clk=fp;(mh,mm,mw,mr,ml,mrd).clk=inclk;(mhr,mmr,mwr,mrr,mlr).clk=inclk;Case sta isWhen

36、 0 => mrd=ibd;sta=1; mhr=mhr;mmr=mmr;mwr=mwr;mrr=mrr;mlr=mlr;When 1 => If mrd=0 then mhr=mh;mmr=mm;mwr=mw;mrr=mr;mlr=ml; mh=mh;mm=mm;mw=mw;mr=mr; ml=ml; sta=0;Else mhr=mh;mmr=mm;mwr=mw;mrr=mr;mlr=ml; mrd=mrd-1; sta=1; If ml=9 then ml=0; If mr=9 then mr=0; If mw=9 then mw=0; If mm=9 then mm=0;

37、If mh=9 then mh=0; Else mh=mh+1; End if; Else mm=mm+1;mh=mh; End if; Else mw=mw+1;mm=mm;mh=mh; End if; Else mr=mr+1;mw=mw;mm=mm;mh=mh; End if; Else ml=ml+1;mr=mr;mw=mw;mm=mm;mh=mh; End if;End if;End case;case stb is-隱含狀態(tài)機(jī)的使用 when 0=> mseg=mlr; bitout=1; p=vcc; stb=1; when 1=> mseg=mrr; bitout=2; stb=2; when 2=> mseg=mwr; bitout=4; stb=3; when 3=> mseg=mmr; bitout=8; s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論