《現代微機原理與接口技術》實驗指導書 TPC-H實驗臺C語言版 1.實驗臺結構1)I / O 地址譯碼電路如上圖1所示地址空間280H~2BFH共分8條譯碼輸出線:Y0~Y7 其地址分別是280H~287H、288H~28FH、290H~297H、298H~29FH、2A0H~2A7H、2A8H~2AFH、2B0H~2B7H、2B8H~2BFH,8根譯碼輸出線在實驗臺I/O地址處分別由自鎖緊插孔引出供實驗選用(見圖2)。 2) 總線插孔采用“自鎖緊”插座在標有“總線”區引出數據總線D7~D0;地址總線A9~A0,讀、寫信號IOR、IOW;中斷請求信號IRQ ;DMA請求信號DRQ1;DMA響應信號DACK1 及AEN信號,供學生搭試各種接口實驗電路使用。3) 時鐘電路如圖-3所示可以輸出1MHZ 2MHZ兩種信號供A/D轉換器定時器/計數器串行接口實驗使用。圖34) 邏輯電平開關電路如圖-4所示實驗臺右下方設有8個開關K7~K0,開關撥到“1”位置時開關斷開,輸出高電平。向下打到“0”位置時開關接通,輸出低電平。電路中串接了保護電阻使接口電路不直接同+5V 、GND相連,可有效地防止因誤操作誤編程損壞集成電路現象。圖 4 圖 55) L E D 顯示電路如圖-5所示實驗臺上設有8個發光二極管及相關驅動電路(輸入端L7~L0),當輸入信號為“1” 時發光,為“0”時滅6) 七段數碼管顯示電路如圖-6所示實驗臺上設有兩個共陰極七段數碼管及驅動電路,段碼為同相驅動器,位碼為反相驅動器。從段碼與位碼的驅動器輸入端(段碼輸入端a、b、c、d、e、f、g、dp,位碼輸入端s1、 s2)輸入不同的代碼即可顯示不同數字或符號。
上傳時間: 2013-11-22
上傳用戶:sssnaxie
串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實現編程的讀,寫,擦等細節//AT89C2051的特殊處:給XTAL一個脈沖,地址計數加1;P1的引腳排列與AT89C51相反,需要用函數轉換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結束后的工作,設置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數據{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉換并設置P0口的數據{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //寫一個單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗:循環讀,直到讀出與寫入的數相同 { nTimeOut++; if(nTimeOut>1000)//超時了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //讀一個單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設置成編程狀態//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設置pw中的函數指針,讓主程序可以調用上面的函數{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時間: 2013-11-12
上傳用戶:gut1234567
基于USB接口的數據采集模塊的設計與實現Design and Implementation of USB-Based Data Acquisition Module路 永 伸(天津科技大學電子信息與自動化學院,天津300222)摘要文中給出基于USB接口的數據采集模塊的設計與實現。硬件設計采用以Adpc831與PDIUSBDI2為主的器件進行硬件設計,采用Windriver開發USB驅動,并用Visual C十十6.0對主機軟件中硬件接口操作部分進行動態鏈接庫封裝。關鍵詞USB 數據采集Adpc831 PDNSBDI2 Windriver動態鏈接庫Abstract T hed esigna ndim plementaitono fU SB-BasedD ataA cquisiitonM oduleis g iven.Th ec hips oluitonm ainlyw ithA dpc831a ndP DTUSBD12i sused for hardware design. The USB drive is developed場Wmdriver, and the operation on the hardware interface is packaged into Dynamic Link Libraries場Visual C++6.0. Keywords USB DataA cquisition Adttc831 PDfUSBD12 Windriver0 引言US B總 線 是新一代接口總線,最初推出的目的是為了統一取代PC機的各類外設接口,迄今經歷了1.0,1.1與2.0版本3個標準。在國內基于USB總線的相關設計與開發也得到了快速的發展,很多設計者從各自的應用領域,用不同方案設計出了相應的裝置[1,2]。數據采集是工業控制中一個普遍而重要的環節,因此開發基于USB接口的數據采集模塊具有很強的現實應用意義。雖然 US B總線標準已經發展到2.0版本,但由于工業控制現場干擾信號的情況比較復雜,高速數據傳輸的可靠性不容易被保證,并且很多場合對數據采集的實時性要求并不高,開發2.0標準產品的成本又較1.1標準產品高,所以筆者認為,在工業控制領域,目前開發基于USB總線1.1標準實現的數據采集模塊的實用意義大于相應2.0標準模塊。
上傳時間: 2013-10-23
上傳用戶:q3290766
TKS仿真器B系列快速入門
上傳時間: 2013-10-31
上傳用戶:aix008
CPU在處理某一事件時,發生了另一事件請求CPU迅速去處理。CPU暫時中斷當前的工作,轉去處理事件B。待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續處理事件A。這一處理過程稱為中斷。介紹用匯編和C語言兩語言的源程序,愿給大家帶來幫助。 前面我已經上傳了幾個程序,沒幾天卻失蹤了。但這次的不會失蹤,能保留上幾天。
上傳時間: 2014-12-31
上傳用戶:dianxin61
買的開發板上帶的52個應用于實物的程序,希望對大家有幫助
上傳時間: 2013-11-04
上傳用戶:xymbian
磁芯電感器的諧波失真分析 摘 要:簡述了改進鐵氧體軟磁材料比損耗系數和磁滯常數ηB,從而降低總諧波失真THD的歷史過程,分析了諸多因數對諧波測量的影響,提出了磁心性能的調控方向。 關鍵詞:比損耗系數, 磁滯常數ηB ,直流偏置特性DC-Bias,總諧波失真THD Analysis on THD of the fer rite co res u se d i n i nductancShi Yan Nanjing Finemag Technology Co. Ltd., Nanjing 210033 Abstract: Histrory of decreasing THD by improving the ratio loss coefficient and hysteresis constant of soft magnetic ferrite is briefly narrated. The effect of many factors which affect the harmonic wave testing is analysed. The way of improving the performance of ferrite cores is put forward. Key words: ratio loss coefficient,hysteresis constant,DC-Bias,THD 近年來,變壓器生產廠家和軟磁鐵氧體生產廠家,在電感器和變壓器產品的總諧波失真指標控制上,進行了深入的探討和廣泛的合作,逐步弄清了一些似是而非的問題。從工藝技術上采取了不少有效措施,促進了質量問題的迅速解決。本文將就此熱門話題作一些粗淺探討。 一、 歷史回顧 總諧波失真(Total harmonic distortion) ,簡稱THD,并不是什么新的概念,早在幾十年前的載波通信技術中就已有嚴格要求<1>。1978年郵電部公布的標準YD/Z17-78“載波用鐵氧體罐形磁心”中,規定了高μQ材料制作的無中心柱配對罐形磁心詳細的測試電路和方法。如圖一電路所示,利用LC組成的150KHz低通濾波器在高電平輸入的情況下測量磁心產生的非線性失真。這種相對比較的實用方法,專用于無中心柱配對罐形磁心的諧波衰耗測試。 這種磁心主要用于載波電報、電話設備的遙測振蕩器和線路放大器系統,其非線性失真有很嚴格的要求。 圖中 ZD —— QF867 型阻容式載頻振蕩器,輸出阻抗 150Ω, Ld47 —— 47KHz 低通濾波器,阻抗 150Ω,阻帶衰耗大于61dB, Lg88 ——并聯高低通濾波器,阻抗 150Ω,三次諧波衰耗大于61dB Ld88 ——并聯高低通濾波器,阻抗 150Ω,三次諧波衰耗大于61dB FD —— 30~50KHz 放大器, 阻抗 150Ω, 增益不小于 43 dB,三次諧波衰耗b3(0)≥91 dB, DP —— Qp373 選頻電平表,輸入高阻抗, L ——被測無心罐形磁心及線圈, C ——聚苯乙烯薄膜電容器CMO-100V-707APF±0.5%,二只。 測量時,所配用線圈應用絲包銅電磁線SQJ9×0.12(JB661-75)在直徑為16.1mm的線架上繞制 120 匝, (線架為一格) , 其空心電感值為 318μH(誤差1%) 被測磁心配對安裝好后,先調節振蕩器頻率為 36.6~40KHz, 使輸出電平值為+17.4 dB, 即選頻表在 22′端子測得的主波電平 (P2)為+17.4 dB,然后在33′端子處測得輸出的三次諧波電平(P3), 則三次諧波衰耗值為:b3(+2)= P2+S+ P3 式中:S 為放大器增益dB 從以往的資料引證, 就可以發現諧波失真的測量是一項很精細的工作,其中測量系統的高、低通濾波器,信號源和放大器本身的三次諧波衰耗控制很嚴,阻抗必須匹配,薄膜電容器的非線性也有相應要求。濾波器的電感全由不帶任何磁介質的大空心線圈繞成,以保證本身的“潔凈” ,不至于造成對磁心分選的誤判。 為了滿足多路通信整機的小型化和穩定性要求, 必須生產低損耗高穩定磁心。上世紀 70 年代初,1409 所和四機部、郵電部各廠,從工藝上改變了推板空氣窯燒結,出窯后經真空罐冷卻的落后方式,改用真空爐,并控制燒結、冷卻氣氛。技術上采用共沉淀法攻關試制出了μQ乘積 60 萬和 100 萬的低損耗高穩定材料,在此基礎上,還實現了高μ7000~10000材料的突破,從而大大縮短了與國外企業的技術差異。當時正處于通信技術由FDM(頻率劃分調制)向PCM(脈沖編碼調制) 轉換時期, 日本人明石雅夫發表了μQ乘積125 萬為 0.8×10 ,100KHz)的超優鐵氧體材料<3>,其磁滯系數降為優鐵
上傳時間: 2013-12-15
上傳用戶:天空說我在
一個簡單好用的B+樹算法實現
上傳時間: 2015-01-04
上傳用戶:縹緲
一個用Basic實現的B-Tree算法
上傳時間: 2013-12-30
上傳用戶:ccclll
一個用Java applet實現的B-Tree算法
上傳時間: 2013-12-25
上傳用戶:qiao8960