《現(xiàn)代微機(jī)原理與接口技術(shù)》實(shí)驗(yàn)指導(dǎo)書 TPC-H實(shí)驗(yàn)臺(tái)C語言版 1.實(shí)驗(yàn)臺(tái)結(jié)構(gòu)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根譯碼輸出線在實(shí)驗(yàn)臺(tái)I/O地址處分別由自鎖緊插孔引出供實(shí)驗(yàn)選用(見圖2)。 2) 總線插孔采用“自鎖緊”插座在標(biāo)有“總線”區(qū)引出數(shù)據(jù)總線D7~D0;地址總線A9~A0,讀、寫信號(hào)IOR、IOW;中斷請(qǐng)求信號(hào)IRQ ;DMA請(qǐng)求信號(hào)DRQ1;DMA響應(yīng)信號(hào)DACK1 及AEN信號(hào),供學(xué)生搭試各種接口實(shí)驗(yàn)電路使用。3) 時(shí)鐘電路如圖-3所示可以輸出1MHZ 2MHZ兩種信號(hào)供A/D轉(zhuǎn)換器定時(shí)器/計(jì)數(shù)器串行接口實(shí)驗(yàn)使用。圖34) 邏輯電平開關(guān)電路如圖-4所示實(shí)驗(yàn)臺(tái)右下方設(shè)有8個(gè)開關(guān)K7~K0,開關(guān)撥到“1”位置時(shí)開關(guān)斷開,輸出高電平。向下打到“0”位置時(shí)開關(guān)接通,輸出低電平。電路中串接了保護(hù)電阻使接口電路不直接同+5V 、GND相連,可有效地防止因誤操作誤編程損壞集成電路現(xiàn)象。圖 4 圖 55) L E D 顯示電路如圖-5所示實(shí)驗(yàn)臺(tái)上設(shè)有8個(gè)發(fā)光二極管及相關(guān)驅(qū)動(dòng)電路(輸入端L7~L0),當(dāng)輸入信號(hào)為“1” 時(shí)發(fā)光,為“0”時(shí)滅6) 七段數(shù)碼管顯示電路如圖-6所示實(shí)驗(yàn)臺(tái)上設(shè)有兩個(gè)共陰極七段數(shù)碼管及驅(qū)動(dòng)電路,段碼為同相驅(qū)動(dòng)器,位碼為反相驅(qū)動(dòng)器。從段碼與位碼的驅(qū)動(dòng)器輸入端(段碼輸入端a、b、c、d、e、f、g、dp,位碼輸入端s1、 s2)輸入不同的代碼即可顯示不同數(shù)字或符號(hào)。
標(biāo)簽: TPC-H 實(shí)驗(yàn)指導(dǎo)書 C語言 實(shí)驗(yàn)臺(tái)
上傳時(shí)間: 2013-11-22
上傳用戶:sssnaxie
串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實(shí)現(xiàn)編程的讀,寫,擦等細(xì)節(jié)//AT89C2051的特殊處:給XTAL一個(gè)脈沖,地址計(jì)數(shù)加1;P1的引腳排列與AT89C51相反,需要用函數(shù)轉(zhuǎn)換#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()//編程前的準(zhǔn)備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結(jié)束后的工作,設(shè)置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數(shù)據(jù){ 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)//轉(zhuǎn)換并設(shè)置P0口的數(shù)據(jù){ 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);//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) 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();//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) 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)//寫器件{//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //寫一個(gè)單元 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)//效驗(yàn):循環(huán)讀,直到讀出與寫入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時(shí)了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //讀一個(gè)單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) 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()//設(shè)置pw中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù){ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時(shí)間: 2013-11-12
上傳用戶:gut1234567
TKS仿真器B系列快速入門
上傳時(shí)間: 2013-10-31
上傳用戶:aix008
CPU在處理某一事件時(shí),發(fā)生了另一事件請(qǐng)求CPU迅速去處理。CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B。待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A。這一處理過程稱為中斷。介紹用匯編和C語言兩語言的源程序,愿給大家?guī)韼椭?前面我已經(jīng)上傳了幾個(gè)程序,沒幾天卻失蹤了。但這次的不會(huì)失蹤,能保留上幾天。
上傳時(shí)間: 2014-12-31
上傳用戶:dianxin61
一個(gè)簡(jiǎn)單好用的B+樹算法實(shí)現(xiàn)
上傳時(shí)間: 2015-01-04
上傳用戶:縹緲
一個(gè)用Basic實(shí)現(xiàn)的B-Tree算法
上傳時(shí)間: 2013-12-30
上傳用戶:ccclll
一個(gè)用Java applet實(shí)現(xiàn)的B-Tree算法
標(biāo)簽: B-Tree applet Java 算法
上傳時(shí)間: 2013-12-25
上傳用戶:qiao8960
java 版B+樹程序
上傳時(shí)間: 2015-01-06
上傳用戶:chenjjer
里面有相應(yīng)的hpunix(HP-UX hpl1000 B.11.00 U 9000/800 (tb)),linux(Red Hat Linux release 9 Kernel 2.4.20-8),windows的頭文件、庫文件,還有相應(yīng)的demo程序
標(biāo)簽: release hpunix Kernel HP-UX
上傳時(shí)間: 2015-01-06
上傳用戶:cursor
功能強(qiáng)大的一個(gè)b/s工作站
標(biāo)簽: 工作站
上傳時(shí)間: 2014-11-26
上傳用戶:hebmuljb
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1