單片機(jī)實(shí)驗(yàn)報(bào)告2.doc_第1頁
單片機(jī)實(shí)驗(yàn)報(bào)告2.doc_第2頁
單片機(jī)實(shí)驗(yàn)報(bào)告2.doc_第3頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)實(shí)驗(yàn)報(bào)告2目錄 一、實(shí)驗(yàn)一··········································1 二、實(shí) 驗(yàn)二····

2、······································ 三、實(shí)驗(yàn)三···········

3、······························11 四、實(shí)驗(yàn)四··················

4、3;······················15一 實(shí)驗(yàn)一驗(yàn)實(shí)證驗(yàn)器數(shù)計(jì)時(shí)定 定時(shí)計(jì)數(shù)器驗(yàn)證實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康檬煜ざ〞r(shí)/計(jì)數(shù)器T0得特點(diǎn),學(xué)會(huì)合理選擇定時(shí)方式并能根據(jù)具體情況結(jié)合軟件得方式定時(shí)。二、實(shí)驗(yàn) 設(shè)備及器件IM P機(jī) 一臺(tái) ROTEU 硬件仿真軟件 Keil C51。三、實(shí)驗(yàn)內(nèi)容用ATC5單片機(jī)得定時(shí)/計(jì)數(shù)器T0產(chǎn)生1s得定時(shí)時(shí)間,作為秒計(jì)數(shù)時(shí)間,當(dāng)1s產(chǎn)生時(shí)秒計(jì)數(shù)加

5、1;秒計(jì)數(shù)到60時(shí),自動(dòng)從開始。四、實(shí)驗(yàn)要求要求采用roeus軟件實(shí)現(xiàn)上述實(shí)驗(yàn).五、實(shí)驗(yàn)步驟1.打開Proteus IIS編輯環(huán)境,按照表1-1所列得元件清單添加元件。元件名稱 所屬類 所屬子類 ATC51 Miroprocsor 8051 ily CA Capcitors Gnr C-EEC apaitr Geeric CSTAL Misclls RE Resists nrc 7SEG-CAG Opoeletrois 7Segme says PULLP Moig Prmitives igitalicellaneos 表 1 元件清單元件全部添加后,在Prteus IS得編輯區(qū)域中按圖11所示

6、得原理圖連接硬件電路。圖 1 電路原理圖2.根據(jù)參考程序繪出流程圖,并輔以適當(dāng)?shù)谜f明。流程圖如圖1 1 2 2 所示: :開始單片機(jī)數(shù)碼管初始化設(shè)置定時(shí)器0初始化開中斷是否有中斷?進(jìn)入中斷程序送時(shí)間常數(shù)COUNT+1是否計(jì)夠1秒?YN中斷返回NSECOND+1是否等于60秒?YSECOND歸零Y分離計(jì)數(shù)值十位個(gè)位N查表顯示十位個(gè)位 圖1 1- - 2 程序流程圖3.打開KilViio,新建el項(xiàng)目,選擇T8951單片機(jī)作為CU,將參考程序?qū)氲健癝ouce Gu 1”中.在“Options fo Target”對(duì)話窗口中,選中“Outut”選項(xiàng)卡中得“reate HE_ Fie”選項(xiàng)與“Deb

7、g”選項(xiàng)卡中得“Ue:Poteus VSM Simulator”選項(xiàng)。編譯匯編程序,改正程序中得錯(cuò)誤。4.在Protus ISS中,選中T89C51并單擊鼠標(biāo)左鍵,打開“di poent"對(duì)話窗口,設(shè)置單片機(jī)晶振頻率為2Hz,在此窗口中得“Program Fil”欄中,選擇先前用Kei生成得、HE_文件。在Proteus ISI得菜單欄中選擇“File“Save Design”選項(xiàng),保存設(shè)計(jì),在Pous ISIS得菜單欄中,打開“Deg”下拉菜單,在菜單中選中“U Reot bugMoior”選項(xiàng),以支持與Keil得聯(lián)合調(diào)試.5.在Keil得菜單欄中選擇“Dbug”“Stat/S D

8、ebug Ssson“選項(xiàng),或者直接單擊工具欄中得“Debug”“Stat/to Debug Sssio"圖標(biāo),進(jìn)入程序調(diào)試環(huán)境。按“F”鍵,順序運(yùn)行程序。調(diào)出“Pots ISIS"界面可以瞧到段數(shù)碼管顯示從09s得計(jì)數(shù)值,每個(gè)數(shù)值顯示1s,如圖13所示。圖1 1 程序運(yùn)行結(jié)果六、實(shí)驗(yàn) 程序SECOND QU 30H COUT H3 0GRO0 HLMP STARTORG0 HBLP ITT STAT: H,NCV00,TNUC OM EBAT#,RPD VOM ACMOA,0PMOVA,2PMOV 00#,DMT652)000563556(,T VO 62 DOM)000

9、5356(#,LT VO 0RT BT 0E TSAETES28,EIVMJM $I_T:MV 652)000563556(,0 VOM52 DOM)000563556(#,0LT CNICOUTONUOC, CJE 2I,02#,AVM CUNT,00H CNI SECOND MOV,ECNDJN 1I,0,A MV#,DNOCEI1:MO NOCES, MOV H1#,BI MOVC A,ADPO P0,AB,AVOTPDA,AOM A,2VMI2:ITERALE:DB3 H6,F4,H5,H,HFDB DH,7DH,07,H,F(xiàn)HNE七、思考題1.羅列一下 Proteus 軟件得能帶給我

10、們得好處, , 指出一點(diǎn)最能幫助您得地方。使用Prote軟件能使我們方便得搭建電路,同時(shí)在沒有元器件得情況下進(jìn)行便于仿真,方便我們?cè)趯⒊绦驅(qū)懭雴纹瑱C(jī)前確認(rèn)運(yùn)行就是否正確,同時(shí)可在采購器件之前即可開始開發(fā)產(chǎn)品,而不必等到器件采購?fù)旰蟠罱娐凡胚M(jìn)行程序調(diào)試。2.用 用 Proteu 界面中得播放鍵運(yùn)行仿真與 Ke lVision4 得環(huán)境中聯(lián)調(diào)運(yùn)行它們兩者得區(qū)別在什么地方?用Prots界面中得播放鍵運(yùn)行仿真僅可以觀察運(yùn)行結(jié)果,即程序運(yùn)行在硬件表面上得表現(xiàn)。而聯(lián)調(diào)得時(shí)候可以再K軟件里查瞧各寄存器與存儲(chǔ)器得狀況,即硬件得內(nèi)部情況。3. eil 軟件軟件仿真與 ote 得仿真對(duì)比.使用Protus仿真可

11、從硬件得角度觀察仿真結(jié)果,使仿真結(jié)果更加形象直觀,使我們可從硬件運(yùn)行狀態(tài)清楚得判斷運(yùn)行結(jié)果就是否正確。而在Keil環(huán)境中則就是從程序得角度通過觀察程序中數(shù)據(jù)得變化來觀察仿真結(jié)果,需要對(duì)程序運(yùn)行結(jié)果充分了解.八、實(shí)驗(yàn)總結(jié) 及相關(guān)問題通過本次實(shí)驗(yàn)了解了ttes軟件得使用方法,以及在掌握了el得使用方法下,學(xué)會(huì)了rteu與eil軟件聯(lián)調(diào)得方法。在用rteus中由于忽略了要在總線處放置網(wǎng)絡(luò)標(biāo)號(hào)導(dǎo)致聯(lián)調(diào)失敗,最后通過觀察發(fā)現(xiàn)數(shù)碼管引腳電平無變化發(fā)現(xiàn)此問題,放置網(wǎng)絡(luò)標(biāo)號(hào)后運(yùn)行仿真時(shí)數(shù)碼管引腳電平發(fā)生變化可就是數(shù)碼管卻沒有變亮,經(jīng)過多次檢查接線,未發(fā)現(xiàn)接線錯(cuò)誤后,覺得可能就是軟件本身錯(cuò)誤,故將總線及數(shù)碼管周

12、圍硬件線路重新繪制一遍后再次運(yùn)行仿真及可得到圖13得結(jié)果。二 實(shí)驗(yàn)二機(jī)片單 單片機(jī) O I/O 口控制實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康美脝纹瑱C(jī)得P1 口作IO 口,使同學(xué)學(xué)會(huì)利用P1 口作為輸入與輸出口。二、實(shí)驗(yàn)設(shè)備及器件IM P 機(jī) 一臺(tái) DP1PR、NT 單片機(jī)仿真器、編程器、實(shí)驗(yàn)儀三合一綜合開發(fā)平臺(tái)一臺(tái)三、實(shí)驗(yàn)內(nèi)容1.編寫一段程序,用P 口作為控制端口,使D 區(qū)得D 輪流亮。2.編寫一段程序,用P、0P、6 口控制LED,P1、7 控制LED 得亮與滅(P、7 接按鍵,按下時(shí)ED 亮,不按時(shí) 滅) .四、實(shí)驗(yàn)要求學(xué)會(huì)使用單片機(jī)得P1 口作O 口,如果有時(shí)間同學(xué)也可以利用3 口作IO 口來做該實(shí)驗(yàn).五、

13、實(shí)驗(yàn)步驟1.用導(dǎo)線把A2 區(qū)得61 接口與D1 區(qū)得52 接口相連。原理如圖21 所示。圖2 實(shí)驗(yàn)二 原理圖2.先編寫一個(gè)延時(shí)程序。延時(shí)程序 見程序1 1 子程序 DELAY 。3.將LED 輪流亮得程序編寫完整并使用TKStud ICE 調(diào)試運(yùn)行。LED 輪流亮程序見程序 。調(diào)試運(yùn)行結(jié)果 :D1 區(qū) LE 輪流亮.4.使用導(dǎo)線把A 區(qū)得J61 接口得P1、0P1、6 與1 區(qū)得 2 接口得LED1ED7 相連,另外A 區(qū)J 接口得P、 與1 區(qū)得J3 得KEY1 相連 5.編寫P、 控制ED 得程序,并調(diào)試運(yùn)行。(按下1 瞧就是否全亮).P1 、7 控制L 得程序見程序2 2 。調(diào)試運(yùn)行結(jié)果

14、:按下 P1 、7 7 后 D1 區(qū)E E 全滅。6.A2 區(qū)J6 接口得1、 與D1 區(qū)得J54 得SW1 相連。然后再使用TKStudy ICE 運(yùn)行程序,查瞧結(jié)果。P1 、7 控制L D 得程序見程序2 2 。調(diào)試運(yùn)行結(jié)果:按下1 1 、后1 1 區(qū)E E 全亮。六、實(shí)驗(yàn)參考程序序 程序 1: :ORG00 LJPIORG100 AIN: M,#0FFHCLR CMAINLOP:CALL YALE ACLRA,1P VMJMP LNADELA: MOR,#0 LOP: O0#,6RNZ ,6R $,6R ZNJD DJZ R,$ DNZ R7,LOOET END 程序 2 2: :RG0

15、00H LJMP IN ORG 010 AIN: BDELTES,7、1CE:CLR0、1PCLR 1、1PRLC P1、2 CLR、1PCLR 4、1 CRP1、C P1、 SJMP MAI SD:SE P、 ST 、1P2、1P BTES 、1BTSETB 4、1PSETB 、1P6、PTES NAMPJS D七、實(shí)驗(yàn)思考題1.請(qǐng)同學(xué)思考一下, , 想出幾個(gè)實(shí)現(xiàn)以上功能得編程方法。程序1可利用單片機(jī)得定時(shí)計(jì)數(shù)器通過選擇定時(shí)計(jì)數(shù)器工作方式與預(yù)置初值設(shè)定延時(shí)時(shí)間,通過定時(shí)計(jì)數(shù)器產(chǎn)生得中斷在中斷程序中對(duì)A進(jìn)行移位后輸出至1口.程序2可在判斷1、7高低電平后根據(jù)判斷結(jié)果直接將#8H或#7F直接送P

16、1口而不必逐位進(jìn)行位操作。2.請(qǐng)同學(xué)再思考一下, , 第二個(gè)程序中如果使用 KEY1 作為外部中斷控制 D D 得亮與滅時(shí), , 程序應(yīng)如何修改。此時(shí)將KEY1接/INT0口,在主程序中開啟外部中斷設(shè)置外部中斷觸發(fā)方式,通過中斷服務(wù)子程序控制LD亮滅。程序如下所示: RO0 H J MAINRG3000 序程務(wù)服斷中;H LJMP DELTESMN: MOV 4, 斷中部外開; 0TE BES CLR 0T ;設(shè)置為電平觸發(fā)STB AELRLED:LR P1、0CLR 、12、1PLC CL 3、1 4、1PRC CL P1、LR 、1 DLRC PJSELED:TB 1、1、PBT ST 1

17、、3、1PES 、1P BTES ETB 5、1P 6、1P BTES IERDNE八、實(shí)驗(yàn)總結(jié) 及相關(guān)問題通過本次實(shí)驗(yàn)掌握了使用 TKStud IE 進(jìn)行硬件仿真調(diào)試得方法,在設(shè)置仿真器驅(qū)動(dòng)程序聲明時(shí)對(duì) C:eil 目錄下得ools、ni 文件添加描述時(shí),由于添加得路徑錯(cuò)誤導(dǎo)致無法進(jìn)行硬件仿真調(diào)試,修改為正確路徑后方可在DEBG 窗口中得 Use 選項(xiàng)中找到對(duì)應(yīng)得選項(xiàng)。使用 TKStdy CE 進(jìn)行硬件仿真調(diào)試相比本學(xué)期得電子系統(tǒng)設(shè)計(jì)中用到得調(diào)試方法更快捷,使用更方便 與此同時(shí),通過本次實(shí)驗(yàn)對(duì)單片機(jī)得 IO 控制有了更深入得了接,同時(shí)加深入對(duì)單片機(jī)/O 編程得理解.實(shí)驗(yàn)三串轉(zhuǎn)并 O I/O

18、口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康檬煜げ⒄莆沾D(zhuǎn)并得/O口擴(kuò)展方法。二、實(shí)驗(yàn)設(shè)備及器件BM PC機(jī) 一臺(tái) D-PO、T單片機(jī)仿真器、編程器、實(shí)驗(yàn)儀三合一綜合開發(fā)平臺(tái) 一臺(tái)三、實(shí)驗(yàn)內(nèi)容1.寫程序,通過單片機(jī)得P口控制4HC164得串行輸入端口,實(shí)現(xiàn)串并轉(zhuǎn)換.2.驗(yàn)證串并轉(zhuǎn)換數(shù)據(jù)得正確性。四、實(shí)驗(yàn)要求熟悉串并轉(zhuǎn)換芯片得工作原理,學(xué)會(huì)使用串并轉(zhuǎn)換芯片擴(kuò)展單片機(jī)得I/O 口資.表3-1 74HC 4 真值表五、實(shí)驗(yàn)步驟1 短接區(qū)J10接口,將C區(qū)43接口與A2區(qū)61接口得P10P1對(duì)應(yīng)相連 (CLK對(duì)10等等)。如圖3-1所示。圖3 1 實(shí)驗(yàn) 三 原理圖2。運(yùn)行編寫好得軟件程序,完成一次串并轉(zhuǎn)換。實(shí)驗(yàn) 程序 見 實(shí)驗(yàn)

19、參考程序。2 使用C2區(qū)得邏輯筆或D1區(qū)得5接口(LED指示燈)測(cè)試并行輸出數(shù)據(jù)Q0Q7數(shù)據(jù)得正確性。調(diào)試運(yùn)行結(jié)果:通過觀察 LE 得亮滅情況可判斷完成一次串并轉(zhuǎn)換, , 且轉(zhuǎn)換結(jié)果正確無誤.六、實(shí)驗(yàn)參考程序LK、1P QEDINAEU P1、1 DIBQU P1、 LR64 3、1P QERG000 HJMP NIAMOR0010 HMN:VP,#60H NOPCLCLKSETB NIDLC CLR14461RLC BTESF,A VOM VOMH0,4LHG: RLCAC,ANI VOMSBCLKPNKLLCPO H,4ZD $ PMJSEN 七、實(shí)驗(yàn)思考題參考圖 3電路圖,嘗試編寫軟件程

20、序,實(shí)現(xiàn) 8 位 LED 流水燈得控制。圖 圖 3 、2 實(shí)驗(yàn)原理圖可利用單片機(jī)得定時(shí)計(jì)數(shù)器通過選擇定時(shí)計(jì)數(shù)器工作方式與預(yù)置初值設(shè)定延時(shí)時(shí)間,通過定時(shí)計(jì)數(shù)器產(chǎn)生得中斷在中斷程序中對(duì)A進(jìn)行移位。程序如下所示:CLKQU0、1P IN1、1P U DIN、1UECLR14 QU 、3 GO00 LJMP MAIN RG00BH;定時(shí)器 0 中斷服務(wù)程序LJMP SLCHG MAIN:H0#,PS VOMNPLRCLKBN BTES61RLCRLC ST 461LCMOVHFF#,AMO式方作工 0 器時(shí)定;H10#,OMT VOM數(shù)常間時(shí) sm2 送;H8,HTH0#,LT OM SETBRT ;

21、開中斷0ETESAEBTE PMJSG: O 81,0HMOHC0,0LT AR C,ANIDVOM STBLK NOPL RLC ETIN八、實(shí)驗(yàn)總結(jié) 及相關(guān)問題由于具有之前實(shí)驗(yàn)得基礎(chǔ)所以本實(shí)驗(yàn)基本沒碰到什么問題,調(diào)試運(yùn)行都符合實(shí)驗(yàn)要求,通過本次實(shí)驗(yàn)對(duì)串并轉(zhuǎn)化程序得編寫有了一定了解,通過編寫流水燈程序加深了對(duì)單片機(jī)串并口得了解。實(shí)驗(yàn)四繼電器控制實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康眉由罾斫饫^電器得工作原理與特點(diǎn),掌握利用單片機(jī)得IO口控制繼電器得一般方法。二、實(shí)驗(yàn)設(shè)備及器件IBM C機(jī) 一臺(tái) DP51RO、NE單片機(jī)仿真器、編程器、實(shí)驗(yàn)儀三合一綜合開發(fā)平臺(tái) 一臺(tái)三、實(shí)驗(yàn)內(nèi)容1.利用D1區(qū)得撥動(dòng)開關(guān)與LED,學(xué)習(xí)繼

22、電器得工作原理與特點(diǎn)。2.編寫一段程序,用P1、0口控制繼電器,繼電器控制LED得亮與滅,(與CSE連通時(shí),一盞LE亮;不連通時(shí)該E滅。與EN連通時(shí),另一盞LED亮,不通時(shí)該LED滅)四、實(shí)驗(yàn)要求學(xué)會(huì)繼電器得使用與利用單片機(jī)得口控制繼電器得方法。五、實(shí)驗(yàn)步驟圖4 1 繼電器驅(qū)動(dòng)控制電路圖1.用短路帽短接JP7,使用導(dǎo)線把D1區(qū)J54接口得S1與C7區(qū)J9接口得K(任意一根針)相連接。2.使用導(dǎo)線把1區(qū)52接口得LE1、ED2與7區(qū)J103接口得OPEN1,CLSE分別相連,另外C7區(qū)J103接口得1接地(D)。3.接好線后,同學(xué)可以撥動(dòng)1區(qū)得SW撥動(dòng)開關(guān),觀察現(xiàn)象(撥到1時(shí)LD2亮,撥到時(shí)L1

23、亮),并得出結(jié)論。運(yùn)行結(jié)果: : 撥到1 時(shí)LED 亮,撥到0 時(shí)L D 亮 ,說明每撥動(dòng)一次開關(guān)改變一次繼電器得狀態(tài)。4.然后把C7 區(qū)J9 接口得KJ 改接到2 區(qū)得61 接口得P。再編寫一個(gè)程序程序(參考實(shí)驗(yàn)二), 使P、0 口延時(shí)一段時(shí)間后改變電平值,來控制繼電器得開關(guān)。實(shí)驗(yàn) 程序見實(shí)驗(yàn)參考程序。調(diào)試運(yùn)行結(jié)果: : 兩 個(gè) LED 交替變亮, , 繼電器狀態(tài)不斷改變。六、實(shí)驗(yàn)參考程序ORG 000 HLJMP MAIN ORG0100 MIN: MOVR7,#0 LP: MOV0#,6 DJN ,6 ,RNJD DJZ $,6 OL,7NJD CL0、1P NIAM MJSE七、實(shí)驗(yàn)思

24、考題1.請(qǐng)同學(xué)思考一下,改由 OPEN 、2 、CLOSE2 時(shí)本實(shí)驗(yàn)如何進(jìn)行。同使用PEN、1與CLOSE1時(shí)連接方法類似,把1區(qū)J52接口得LE1、E2與C7區(qū)J103接口得OPEN,CLOSE2分別相連,另外C區(qū)J103接口得2接地(D)即可。2.請(qǐng)同學(xué)再思考一下, 繼電器得用途,并舉例說明。繼電器就是一種電控制器件,就是當(dāng)輸入量(激勵(lì)量)得變化達(dá)到規(guī)定要求時(shí),在電氣輸出電路中使被控量發(fā)生預(yù)定得階躍變化得一種電器。它具有控制系統(tǒng)(又稱輸入回路)與被控制系統(tǒng)(又稱輸出回路)之間得互動(dòng)關(guān)系。通常應(yīng)用于自動(dòng)化得控制電路中,它實(shí)際上就是用小電流去控制大電流運(yùn)作得一種“自動(dòng)開關(guān)”。故在電路中起著自

25、動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。按照其工作原理可有以下應(yīng)用:電磁繼電器固體繼電器溫度繼電器舌簧繼電器時(shí)間繼電器高頻繼電器極化繼電器其她類型得繼電器 八、實(shí)驗(yàn)總結(jié) 及相關(guān)問題由于具有之前實(shí)驗(yàn)得基礎(chǔ)所以本實(shí)驗(yàn)基本沒碰到什么問題,調(diào)試運(yùn)行都符合實(shí)驗(yàn)要求,通過本次實(shí)驗(yàn)了解了繼電器得控制方法。對(duì)繼電器這一器件有了一定了解。很隨性的文章!好厲害!姓名:侯偉專業(yè):電氣工程及其自動(dòng)化微機(jī)原理與應(yīng)用實(shí)驗(yàn)報(bào)告學(xué)號(hào):20_12214 年級(jí):20_級(jí)20_年秋季學(xué)期 實(shí)驗(yàn)一 LCM控制實(shí)驗(yàn)1、功能要求1、掌握利用單片機(jī)控制字符型LCM1602的方法;2、完成與LCM1602的接口,并嘗試各種顯示功能。2、硬件原理3

26、、軟件程序流程4、程序清單#include "reg52.h"#define uchar unsigned char #define uint unsigned int uint q; uchar str1="wu li _ue yuan" uchar str2="houwei20_12214" sbit E=P22; sbit RW=P21 ; sbit RS=P20; void delay(uint z) uint _,y;for(_=z;_>0;_-)for(y=100;y>0;y-) ; void write_(u

27、char ) RS=0;RW=1;H1:P0=0_ff;E=1;q=P0;E=0;if(q&0_80)goto H1 ;RS=0;RW=0;P0=;E=1;delay(5);E=0; void write_data(uchar DATE) RS=0;RW=1;H2:P0=0_ff;E=1;q=P0;E=0;if(q&0_80)goto H2 ;RS=1;RW=0;P0=DATE;delay(5);E=1;delay(5);E=0; void initE=0;write_(0_38);write_(0c);write_(06);write_(01); write_(0_80);v

28、oid main uchar i;init; for(i=0;iwrite_data(str1i);delay(100); write_(0_80+0_40); for(i=0;iwrite_data(str2i);delay(100); while(1) delay(20_);write_(0f);write_(0_1e);5、實(shí)驗(yàn)心得及建議C語言編寫函數(shù)不同于匯編語言,函數(shù)嵌套使得程序變得精煉,此外一定要讀懂每個(gè)器件的硬件設(shè)計(jì),做到軟硬件結(jié)合實(shí)驗(yàn)二基于I2C總線的EEPROM讀寫實(shí)驗(yàn)1、功能要求1熟悉24C02的芯片功能。22掌握采用單片機(jī)和IC芯片的硬件接口技術(shù)。 3掌握24C02的讀寫

29、程序的設(shè)計(jì)和調(diào)試方法。 4向芯片中寫入10個(gè)字節(jié),然后再讀出顯示。2、硬件原理3、軟件程序流程總流程: 寫n個(gè)字節(jié)流程:讀n個(gè)字節(jié)流程:4、程序清單#include "reg52.h"void Delay(unsigned #define WriteDeviceAddre 0_a0 #define ReadDeviceAddre 0_a1while(n!=0) n-; sbitSCL=P10; sbitSDA=P11; void Startint n) SDA=1; Delay(10); SCL=1; Delay(10); SDA=0; Delay(10); SCL=0;

30、Delay(10); void S SDA=0; Delay(10); SCL=1; Delay(10); SDA=1; Delay(10); void Ack int i;SCL=1;Delay(10);while(SDA=1&&ii+;SCL=0;Delay(10); void NoAck SDA=1;Delay(10);SCL=1;Delay(10);SCL=0;Delay(10); void Write8bit(unsigned char input) unsigned chartemp;for(temp=8;temp!=0;temp-)SDA=(bit)(input&

31、amp;0_80);Delay(10);SCL=1;Delay(10);SCL=0;input=input void WriteI2C(unsigned char Wdata ,unsigned char RomAddre ) Start;Write8bit(WriteDeviceAddre);Ack;Write8bit(RomAddre);Ack;Write8bit(Wdata);Ack;S; int Read8bitunsigned char temp,rbyte=0; for(temp=8;temp!=0;temp-) SCL=1;Delay(10);rbyte=rbyteDelay(1

32、0);rbyte=rbyte|SDA;SCL=0;Delay(10);return(rbyte); int ReadI2C(unsigned char RomAddre) int Data;Start;Write8bit(WriteDeviceAddre);Ack;Write8bit(RomAddre);Ack;Start;Write8bit(ReadDeviceAddre);Ack;Data=Read8bit; NoAck; S; return Data; voidmain int writeByte=1,2,3,4,5,6,7,8,9,10;intreadByte10;int i;P2=0

33、0;for(i=0;iWriteI2C(writeBytei,00+i); Delay(1000000); i=0; while(1) Delay(900000000);readBytei=ReadI2C(i+00); P2=readBytei;Delay(90000000);i+;if(i=10)i=0; 5、實(shí)驗(yàn)心得及建議I2C總線的協(xié)議比較多,程序編寫起來比較困難,這要求我們對(duì)24C02芯片十分清楚,如果對(duì)它的協(xié)議不夠清楚,讀寫函數(shù)很難實(shí)現(xiàn)實(shí)驗(yàn)三A/D轉(zhuǎn)換實(shí)驗(yàn)1、功能要求1 掌握A/D轉(zhuǎn)換芯片ADC0809轉(zhuǎn)換性能及編程方法。 2 掌握A/D轉(zhuǎn)換芯片ADC0809與單片機(jī)的接口方法。 3

34、 通過實(shí)驗(yàn)了解單片機(jī)如何進(jìn)行數(shù)據(jù)采集。4.利用實(shí)驗(yàn)箱產(chǎn)生0-5V的模擬電壓。編寫程序,采集該模擬電壓并將轉(zhuǎn)換的結(jié)果用發(fā)光二極管顯示。5.采集光敏電阻的亮度變化,設(shè)置門限值,實(shí)現(xiàn)超過門限值使蜂鳴器報(bào)警的功能。2、硬件原理3、軟件程序流程4、程序清單#include #include #define uchar unsigned char#define uint unsigned intsbit ADC_START=P20; sbit ADC_ALE =P21; sbit ADC_OE=P22; sbit ADC_EOC =P23; sbit clk=P27;sbit E=P26; sbit R_

35、W=P25; sbit D_I=P24; sbit D0=P00; sbit D1=P01; sbit D2=P02; sbit D3=P03; sbit D4=P04; sbit D5=P05; sbit D6=P06; sbit D7=P07; /unsigned data i; unsigned char q; void W(unsigned char d); /_寫指令函數(shù)_/ void Dat(unsigned char d); /_寫數(shù)據(jù)函數(shù)_/ void Imim; /_初始化_/ void Clearcld; /_清屏_/ void Delay int d; for(d=0;d

36、_nop_; void Timer0Init TMOD|=01; TH0=0_FC;TL0=0_FF;ET0=1; EA=1; TR0=1; void init0809 ADC_START=0;ADC_OE=0;ADC_ALE=0;_nop_;_nop_; ADC_ALE=1;/ALE=1時(shí)地址進(jìn)入鎖存器_nop_;P3=07;_nop_;ADC_ALE=0;/ALE=0時(shí)地址被鎖存住 void ADC809 ADC_START=0; _nop_;_nop_;_nop_;ADC_START=1;/上升沿復(fù)位_nop_;_nop_;_nop_;ADC_START=0;/下降沿開始_nop_;_n

37、op_;_nop_;while(!ADC_EOC); /等待轉(zhuǎn)換結(jié)束ADC_OE =1;_nop_;_nop_;_nop_;Dat(0_30+(uchar)D0);Dat(0_30+(uchar)D1);Dat(0_30+(uchar)D2);Dat(0_30+(uchar)D3);Dat(0_30+(uchar)D4);Dat(0_30+(uchar)D5);Dat(0_30+(uchar)D6);Dat(0_30+(uchar)D7);Delay;ADC_OE =0; void W(unsigned char d) R_W=1; D_I=0; LOOP: P1=0_FF; E=1; q=P

38、1; E=0; if(q&0_80) goto LOOP; R_W=0; D_I=0; P1=d; E=1; E=0; void Dat(unsigned char d) R_W=1; D_I=0; LOOP: P1=0_FF; E=1; q=P1; E=0; if(q&0_80) goto LOOP; D_I=1; R_W=0; P1=d; E=1; E=0; void Imim P1=0_FF; E=0; W(0_38);W(08); W(06); Clearcld; W(0c); void Clearcld D_I=0; R_W=0; / P0=01; W(01); vo

39、id main int i; init0809;Imim; Clearcld; W(02);Timer0Init;Delay;while(1)W(0_80);ADC809;W(0_88);for(i=0;iDat(" ");W(0_80+0_40);for(i=0;iDat(" "); void Timer0 interrupt 1 static uint i; TH0=0_FC; TL0=0_FF; i+; if(i=1) i=0;clk=clk; 5、實(shí)驗(yàn)心得及建議該實(shí)驗(yàn)硬件電路出錯(cuò)次數(shù)較多,需要鍛煉排錯(cuò)的能力,結(jié)合軟件程序,一步一步檢查,這樣每一部

40、分都十分清楚實(shí)驗(yàn)四D/A轉(zhuǎn)換實(shí)驗(yàn)1、功能要求1了解D/A(DAC0832)的基本原理和功能。2掌握D/A(DAC0832)和單片機(jī)的硬件接口以及軟件設(shè)計(jì)方法。 3.軟件編程使DAC0832轉(zhuǎn)換模塊循環(huán)輸出鋸齒波。 4.軟件編程使DAC0832轉(zhuǎn)換模塊循環(huán)輸出正弦波。2、硬件原理3、軟件程序流程4、程序清單#include#define uchar unsigned charsbit key=P22;uchar i;uchar code sin_tab=0_80,0_83,0_85,0_88,0_8a,0_8d,0_8f,0_92,0_94,0_97,0_99,0_9b,0_9e,0_a0,0_

41、a3,0_a5,0_a7,0_aa,0_ac,0_ae,0_b1,0_b3,0_b5,0_b7,0_b9,0_bb,0_bd,0_bf,0_c1,0_c3, 0_c5,0_c7,0_c9,0_cb,0_cc,0_ce,0_d0,0_d1,0_d3,0_d4,0_d6,0_d7,0_d8,0_da,0_db,0_dc,0_dd,0_de,0_df,0_e0,0_e1,0_e2,0_e3,0_e3,0_e4,0_e4,0_e5,0_e5,0_e6,0_e6,0_e7,0_e7,0_e7,0_e7,/輸出電壓從0到最大值,正弦波1/4部分0_e7,0_e7,0_e7,0_e7,0_e6,0_e6,0_e5,0_e5,0_e4,0_e4,0_e3,0_e3,0_e2,0_e1,0_e0,0_df,0_de,0_dd,0_dc,0_db,0_da,0_d8,0_d7,0_d6,0_d4,0_d3,0_d1,0_d0,0_ce,0_cc,0_cb,0_c9,0_c7,0_c5

溫馨提示

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