<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)及CPLD的多間隔脈沖產(chǎn)生電路

          基于單片機(jī)及CPLD的多間隔脈沖產(chǎn)生電路

          作者: 時(shí)間:2012-06-06 來源:網(wǎng)絡(luò) 收藏

          摘要:具有邏輯控制功能靈活的特點(diǎn),復(fù)雜可編程邏輯器件()具有集成度高、可靠性好及工作速度快的優(yōu)點(diǎn),二者各自的優(yōu)點(diǎn),設(shè)計(jì)了一種脈寬固定為1 μs,周期可調(diào)的單頭、雙頭、三頭三路,該發(fā)生器可實(shí)現(xiàn)在不間斷的情況下改變周期,其波形要求精度高、漂移小、抗干擾能力強(qiáng)。
          關(guān)鍵詞:;復(fù)雜可編程邏輯器件;脈沖發(fā)生器;計(jì)數(shù)器

          脈沖信號(hào)發(fā)生實(shí)驗(yàn)和設(shè)備檢測等工程中具有十分廣泛的用途,例如某測試系統(tǒng),需要給被測產(chǎn)品加入可調(diào)的多脈沖激勵(lì)信號(hào),以使被測產(chǎn)品能按照要求工作在不同的狀態(tài)。隨著各種數(shù)字設(shè)備和工業(yè)標(biāo)準(zhǔn)持續(xù)、快速的發(fā)展以及市場對縮短產(chǎn)品開發(fā)周期的客觀要求,脈沖信號(hào)發(fā)生電路已成為信號(hào)源市場的一大主流,其市場份額在迅速增長;同時(shí),目前國內(nèi)在測試中使用的脈沖發(fā)生電路幾乎全部依賴進(jìn)口。因此,研制出具有實(shí)用價(jià)值的脈沖發(fā)生電路,對滿足國內(nèi)、國際市場的需求具有重要意義。

          1 系統(tǒng)總體結(jié)構(gòu)
          1.1 系統(tǒng)設(shè)計(jì)思想
          系統(tǒng)采用模塊化設(shè)計(jì),AT89S52和是整個(gè)系統(tǒng)的CPU,控制系統(tǒng)的協(xié)調(diào)。首先通過4x4按鍵模塊設(shè)置系統(tǒng)脈沖信號(hào)的周期,選擇脈沖輸出方式,并給出狀態(tài)指示;接收輸入信號(hào)后與單片機(jī)進(jìn)行數(shù)據(jù)通信,并將脈沖信號(hào)周期通過LCD1602顯示,然后經(jīng)過單片機(jī)和CPLD的數(shù)據(jù)處理,所需的脈沖信號(hào),由CPLD輸出。其中狀態(tài)指示由3個(gè)不同顏色(紅、綠、黃)的發(fā)光二極管給出,其電平由CPLD的I/0口輸出;4x4按鍵模塊鍵盤的前10個(gè)鍵位為數(shù)字0~9、第11個(gè)為小數(shù)點(diǎn)、第12到第14個(gè)為脈沖選擇鍵A1,A2,A3用于選擇輸出方式(單頭、雙頭、三頭),另加一個(gè)確認(rèn)鍵。

          本文引用地址:http://www.ex-cimer.com/article/171352.htm

          a.jpg


          1.2 AT89S52單片機(jī)簡介
          AT89S52是一種低功耗、高性能的8位微控制器,具有8 k字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器。AT89S52使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,AT89S52擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。
          AT89S52具有以下標(biāo)準(zhǔn)功能:8 k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,3個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0 Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。
          1.3 EPM7128SLC84的特點(diǎn)
          EPM7128SLC84是Altera公司開發(fā)的CPLD器件,屬于MAX 7000S系列。在高集成度PLD器件中,MAX7000S系列是速度最快的類型之一,它內(nèi)部為第二代MAX(MultipleArray Matrix)結(jié)構(gòu)。除了集成度高的優(yōu)點(diǎn)外,器件內(nèi)部單元(cell)之間的連接采用連續(xù)的金屬線,這種互連結(jié)構(gòu)為單元之間提供了固定的、短時(shí)延的信號(hào)通道,從而消除了內(nèi)部延時(shí)的難以預(yù)測性,并有效地提高了芯片資源的利用效率。
          EPM7128SLC84是EEPROM的可編程CMOS器件,其主要性能指標(biāo)為:外部引腳數(shù)目為84,內(nèi)部等效門數(shù)為2 500左右;內(nèi)部有128個(gè)邏輯宏單元(Maerocell),每16個(gè)宏單元組成一個(gè)邏輯陣列塊(LAB),每個(gè)邏輯陣列塊對應(yīng)8個(gè)I/O引腳;除通用I/O引腳外,EPM7128SLC84有兩個(gè)全局時(shí)鐘、一個(gè)全局使能和一個(gè)全局清零輸入;器件最高計(jì)數(shù)頻率為151.5 MHz,內(nèi)部互連延時(shí)為1ns。
          EPM7128SLC84的主要特點(diǎn)為:支持通過JTAG口進(jìn)行5 V電壓的在片編程;宏單元的工作速率和功耗可編程選擇,用戶可決定每一個(gè)宏單元的工作模式——選擇一般模式或是節(jié)能模式(功耗降低50%或更多,但延時(shí)加大);宏單元的觸發(fā)器有獨(dú)立的清零、預(yù)置、時(shí)鐘和時(shí)鐘使能控制,可通過編程進(jìn)行設(shè)置;器件的引腳輸出可設(shè)置,有以下3種選項(xiàng):1)多電平I/O接口,通過硬件設(shè)置可使引腳輸出支持5 V或3.3 V兩種電平;2)輸出回轉(zhuǎn)速率(Slew-Rate)控制,用戶可決定每一I/O引腳的輸出回轉(zhuǎn)速率,大回轉(zhuǎn)速率縮小了信號(hào)通道的延時(shí),但有可能加大瞬態(tài)躁聲;3)集電極開路選擇。具有一個(gè)完善、友好的軟件環(huán)境支持器件開發(fā),Ahera公司的EDA軟件MAX+PlusⅡ集成了設(shè)計(jì)文件編輯、編譯、仿真、時(shí)序分析和器件編程等各項(xiàng)功能,并能直接控制器件內(nèi)部宏單元或輸出引腳的設(shè)置;Altera的硬件描述語言AHDL與CPLD硬件結(jié)合緊密,并且提供優(yōu)化的Megafunetion函數(shù)庫,支持靈活地描述各類常用復(fù)雜電路,如計(jì)數(shù)器、鎖相環(huán)等。

          DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY



          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();