單片機C51程序設(shè)計實驗報告書(word文檔良心出品)_第1頁
單片機C51程序設(shè)計實驗報告書(word文檔良心出品)_第2頁
單片機C51程序設(shè)計實驗報告書(word文檔良心出品)_第3頁
單片機C51程序設(shè)計實驗報告書(word文檔良心出品)_第4頁
單片機C51程序設(shè)計實驗報告書(word文檔良心出品)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 3938P0.0/AD0P0.1/AD1P0.2/AD2XTAL119363534-P0.3/AD3P0.4/AD4P0.5/AD5XTAL21833P0.6/AD632P0.7/AD7RST921P2.0/A82223-P2.1/A9P2.2/A102429P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDPSENALE EA253026312810P1.01112P3.1/TXDP1.1123P3.2/INT0P1.2134P3.3/INT1P3.4/T0P3.5/T1P3.6/WR-P3.7/RDP1.3P1.4P1.51451561671

2、7P1.78AT89C51實驗一并行輸入輸出口的使用一、實驗?zāi)康模簩W(xué)會設(shè)計proteus 7仿真電路,學(xué)習(xí)P1 口的使用方法和延時子程序的 編寫用Keil uVision 3編程實現(xiàn)發(fā)光二極管的流水點亮。二、實驗原理:P1 口為8位準(zhǔn)雙向I/O 口,它的每一位都可以分別定義為輸入線或輸 出線(作為輸入時,口鎖存器必須置 1)。P1 口作為輸出,接8個發(fā)光二極管D1D8 經(jīng)限流電阻分別接至8個引腳。本實驗仿真電路圖、流程圖如下:U1三、實驗代碼:#include#include/移位庫函數(shù)包含于此頭文件中void delay(unsigned int d)定義延時子函數(shù) while(-d0);v

3、oid main() unsigned char i,sel;while(1) sel=0 xfe;for(i=0;i=8;i+) P1=sel;/顯示變量賦給 P1 口delay(50000);/延時sel=_crol_(sel,1);/改變顯示變量 一 一四、實驗結(jié)論:用while語句實現(xiàn)發(fā)光二極管循環(huán)流水點亮,從上到下一次點亮實驗二C51分支程序設(shè)計一、實驗?zāi)康模簩W(xué)習(xí)多分支選擇結(jié)構(gòu)和switch語句,了解循環(huán)的嵌套。二、實驗原理:do while循環(huán)先執(zhí)行后判斷是否循環(huán),switch括號中的表達(dá)式的值與 某case后的常量表達(dá)式的值相同時,就執(zhí)行它后面的語句,遇到 break語句則退出

4、switch語句。本實驗仿真電路圖、流程圖如下:SW38 |P1.7P3.7/RDP1.6P3.6/WRP1.5P3.5/T1P1.4P3.4/T0Dd QDQ Q/IZT111 177 166 丁1 155144 1E3 P1.2P3.2/INT0P1.1P3.1/TXDP1.0P3.0/RXDP2.7/A15P2.6/A14EAP2.5/A13ALEP2.4/A12 122 111 11031 30 r 28 * 26R-2529 1PSENP2.3/A11P2.2/A10P2.1/A9P2.0/A8RSTP0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4 249 231 2

5、2 21 32331834J 35:3619P0.2/AD2P0.1/AD1 XTAL1P0.0/AD037J 3839U1AT89C51D4LED-REDR4470RR3470RR2470RR1470R(仿真電路圖)(流程圖)三、實驗代碼:#include void main() char a;do P1=0 xff;a=P1;a=a&0 x03;switch(a) case 0:P2=0 x0e;break;case 1:P2=0 x0d;break;case 2:P2=0 x0b;break;case 3:P2=0 x07;break;while(1);四、實驗結(jié)論:多分支選擇的swit

6、ch/case語句,可直接處理并行多分支選擇問題,從 匹配表達(dá)式的括號開始執(zhí)行,不再進(jìn)行判斷。實驗三外部中斷實驗一、實驗?zāi)康模赫莆胀獠恐袛嗟脑硪约爸袛嗵幚沓绦虻木帉懛椒?。二、實驗原理:外部中?和外部中斷1均為下降沿觸發(fā),當(dāng)外部中斷0發(fā)生時,P0 端口的電平反向,當(dāng)外部中斷1發(fā)生時,P1端口的電平反向,LED狀態(tài)取反,引腳 P3.2、P3.3是外部中斷INT0和INT1的輸入端,本實驗仿真電路圖、流程圖如下:U1R0470RD0LED-RED17 1P3.7/RDP3.6/WRP1.7P1.6 816715P3.5/T1P3.4/T0P1.5P1.4 6 514 13 4P3.3/INT1P

7、1.312 3P3.2/INT0P3.1/TXDP1.2P1.111 210 P3.0/RXDP1.028 P2.7/A1527 P2.6/A1426 EA 31P2.5/A1325ALE3029P2.4/A1224_23 P2.3/A11P2.2/A10PSEN22P2.1/A921P2.0/A832 P0.7/AD7RST933 P0.6/AD634 P0.5/AD535 P0.4/AD4P0.3/AD3P0.2/AD236 XTAL2_183738 P0.1/AD139 XTAL119P0.0/AD0AT89C51R1470RD1LED-RED(仿真電路圖)(主程序)(中斷服務(wù)程序)、實

8、驗代碼:#include#includevoid ISO(void) interrupt 0 P0=P0; /P0 端 口反向void IS1(void) interrupt 2 P1=P1; /P1 端口反向void main () P0=0 x00; P1=0 xFF;SCON=0 x50;TMOD=0 x22;TH1=0 xF3;TR1=1;IT0=1; IT1=1;設(shè)置下降沿觸發(fā)方式EX0=1; EX1=1; EA=1; 中斷允許while(1);四、實驗結(jié)論:利用外中斷程序可控制 LED的亮滅,P0 口、P1 口電平反向,LED 狀態(tài)取反。實驗四定時/計數(shù)器實驗一、實驗?zāi)康模簩W(xué)習(xí)定時

9、計數(shù)器的使用和編寫方法,進(jìn)一步掌握中斷處理程序的方法以及對示波器的了解。二、實驗原理:啟動定時器T1延時10ms,當(dāng)定時時間到產(chǎn)生中斷,執(zhí)行中斷程序,LED熄滅,T1再延時10ms,點亮LED,如此循環(huán),本實驗仿真電路圖、流程圖如下:17 b18P3.7/RDP1.716 二I 7P3.6/WRP1.615 14 13 P3.5/T1P3.4/T0P1.5P1.4 6 4P3.3/INT1P1.31 3 2112_11 10 二P3.2/INT0P3.1/TXDP1.2P1.1P3.0/RXDP1.028_g_P2.7/A1527P2.6/A1426 31P2.5/A13EA25 P2.4/A

10、12ALE1 3024 23 P2.3/A11PSENI 29P2.2/A102221三P2.1/A9P2.0/A832_J 9P0.7/AD7RST33 P0.6/AD634P0.5/AD535P0.4/AD436_P0.3/AD3XTAL21837_P0.2/AD238P0.1/AD139_P0.0/AD0XTAL14-J9.U1AT89C51D0LED-REDR1470R(仿真電路圖)Di gi I *1 sEillfr3CopChannel CLl*T 目一 -HI-Channel B Channel D(主程序)(中斷服務(wù)程序)三、實驗代碼:#include/定時器T1中斷響應(yīng)sbi

11、t Wave=P1A0; 位定義void TIISR(void) interrupt 3 Wave=Wave;TL1=0 x0F0;TH1=0 x0D8;/反向/重置計數(shù)初值void main(void) Wave=0;/初始化 P1.0=0TMOD=0 x10; /設(shè)置定時器T1為模式1TL1=0 x0F0; TH1=0 x0D8;TR1=1;/啟動定時計數(shù)器ET1=1; EA=1;/開中斷while(1) 四、實驗結(jié)論:T1工作于模式1,定時器產(chǎn)生10ms的定時,定時中斷產(chǎn)生,P1.0端 口的輸出在示波器中顯示,LED閃爍。利用定時計數(shù)器可控制LED的顯示時間變化。實驗五外中斷使用一、實驗

12、目的:更熟練的掌握外部中斷的原理與應(yīng)用以及中斷處理程序的編寫方法。二、實驗原理:引腳P3.2、P3.3分別是外部中斷INT0和外部中斷INT1的輸入端,均 為低電平有效,下降沿觸發(fā)。外中斷 0發(fā)生,8只LED全部點亮,外中斷1發(fā)生,8 只LED閃爍,本實驗仿真電路圖、流程圖如下:U1R1-TZ470RR2 470R R3470RR4470RR5470RR6470RR7470RR8D1EDEDEDEDEDEDEDP3.7/RDP1.7P3.6/WRP1.6P3.5/T1P1.5P3.4/T0P1.4P1.3P1.2P3 3/INT1P3.2/INT0P3.1/TXDP1.1P3.0/RXDP1.

13、0P2.7/A15P2.6/A14P2.5/A13P2.4/A12EA ALEP2.3/A11P2.2/A10PSENP2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0RSTXTAL2XTAL1417- 31 29 918198TT6: :5212827 16 15G 14_ 13 12-11a 10工2132 33 2 34三35:36 二37甘38 二39三AT89C514 326 ! ,25T 24 m23 K22470RLED-RED(仿真電路圖)開始初始化P0 口設(shè)定外中斷0,外

14、中斷1為下降沿觸發(fā)方式 Y(主程序)(中斷服務(wù)程序)三、實驗代碼:#includesbit P32=P3A2;void delay(unsigned int d)/定義延時子函數(shù) while(-d0);void main()P0=0 xFF;/熄滅 LEDIT0=1; IT1=1; /外中斷0、1脈沖觸發(fā)方式EA=1; EX0=1; EX1=1;/開中斷for(;)/延時等待中斷發(fā)生;void INT0_ISR() interrupt 0 外中斷0中斷服務(wù)函數(shù) P0=0 x00;void INT1_ISR() interrupt 2 外中斷1中斷服務(wù)函數(shù) while(P32!=0)如果有外中斷

15、0,退出 delay(5000);P0=0 x00;delay(5000);P0=0 xFF;四、實驗結(jié)論:當(dāng)外中斷0發(fā)生,即按下了 So按鈕,8只LED點亮;當(dāng)外中斷1發(fā) 生,即按下了 S1按鈕,8只LED閃爍,遇到外中斷0發(fā)生,8只LED停止閃爍并保 持點亮狀態(tài)。實驗六串行口雙機通信實驗一、實驗?zāi)康模豪斫獯型ㄐ诺幕靖拍詈?C51單片機的串行通信接口結(jié)構(gòu),熟悉用 口的4種工作方式、通信連線和應(yīng)用編程。二、實驗原理:單片機1將P1 口撥動開關(guān)數(shù)據(jù)裝入SBUF,經(jīng)由TXD將數(shù)據(jù)發(fā)送給 單片機2,單片機2將接收數(shù)據(jù)存入SBUF,再由SBUF裝入累加器,并輸出至P1, 點亮相應(yīng)端口的LED,本實

16、驗仿真電路圖、流程圖如下:U1DSW19101213141516DIPSW8_R1D1470RDD-REDR2470RR3470RR4470RR5470RR6R7470RR8470R76554433221188DD-REDDD-REDD5REDDD-RED18P1.7P3.7/RDP1.6P3.6/WRP1.5P3.5/T1P1.4P3.4/T0P1.3P3.3/INT1P1.2P3.2/rNT0P1 1P3.1/TXDP1.0P3.0/RXDP2.7/A15P2.6/A14EAP2.5/A13ALEP2.4/A12PSENP2.3/A11P2.2/A10P2.1/A9P2.0/A8RSTP0

17、.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4XTAL2P0.3/AD3P0.2/AD2P0.1/AD1X XTAL11 IOP0.0/AD03130292143470RDD-REDD8-REDLED-RED3130291817-re14102826F-4232232F 36 37389P17P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT117P1 616P1.5 P1415141312P12P3.2/INT0pi 111Pl.l10pi nP2.7/A152827P2.6/A14JEAALE26P2.5/A13P2.4/A122524PSENP2.3/

18、A11P2.2/A10P2.1/A9P2.0/A8232221P0.7/AD7P0.6/AD6P0.5/AD532RSI333435P0.4/AD4P0.3/AD336XIAL27P0.2/AD2P0.1/AD138卜 XTAL139P0.0/AD0AT89C51(仿真電路圖)(程序流程圖)三、實驗代碼:單片機i的代碼:#include#define uint unsigned int#define uchar unsigned char void main() uchar i;TMOD=0 x20;TH1=TL1=0 xff;SCON=0 x50;PCON=0 x80;TR1=1;P1=0

19、xff;while(1) P1=0 xff;i=P1;SBUF=i;while(TI=0);TI=0;單片機 2 的代碼:#include#define uint unsigned int#define uchar unsigned charvoid main() uchar i=0;TMOD=0 x20;TH1=TL1=0 xff;SCON=0 x50;PCON=0 x80;TR1=1;while(1) while(RI=0) ;RI=0;i=SBUF;P1=i;四、實驗結(jié)論: 當(dāng)開關(guān)撥動到左邊則對應(yīng)的 LED 點亮,反之 LED 熄滅。將雙片單片機串行通信,結(jié)果存入 SBUF 并輸出至 P

20、1 使相應(yīng)的 LED 點亮。實驗七單片機串口通信(二)一、實驗?zāi)康模杭由顚Υ型ㄐ诺幕靖拍詈?C51單片機的串行通信接口結(jié)構(gòu)的了解, 以及串口的工作方式、通信連線和應(yīng)用編程。二、實驗原理:甲、乙兩機以方式1進(jìn)行串行通信,甲機首先發(fā)送信號 AA,乙機接 收到后應(yīng)答B(yǎng)B,甲收到BB后發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送完畢立即發(fā)送校驗和。乙機收齊 一個數(shù)據(jù)塊后,再接收甲發(fā)來的校驗和,并將其與乙求得的校驗和比較,若相等,說 明接收正確,乙回答00H,若不等,說明接收不正確,乙回答 0FFH,請求重新發(fā)送。(程序流程圖)三、實驗代碼:#include#define uchar unsigned char#define

21、 TR 1/TR=1,發(fā)送uchar idata buf10;uchar pf;/* 串行口初始化子函數(shù)*/void init(void) TMOD=0 x20;TH0=0 xE8;TL0=0 xE8;TR1=1;SCON=0X50;/* 發(fā)送子函數(shù)*/void send(uchar idata*d) uchar i;do SBUF=0 xAA; while(TI=0) TI=0;while(RI=0) RI=0;while (SBUFA0 xBB!=0); do pf=0;/T1 工作于方式2/ 串行口工作于方式1, REN=1/發(fā)送聯(lián)絡(luò)信號/等待一幀發(fā)送完畢/ 發(fā)送完畢,標(biāo)志位清0/等待乙

22、機應(yīng)答信號/乙機未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)for(i=0;i10;i+) SBUF=di; pf+=di; while(TI=0) TI=0;SBUF=pf;while(TI=0) TI=0;while(RI=0) RI=0; while(SBUF!=0);/*接收函數(shù) */void receive(uchar idata*d) uchar i;do while(RI=0) RI=0; while(SBUFA0 xAA!=0);/校驗和變量清0/發(fā)送一個數(shù)據(jù)/計算校驗和/發(fā)送校驗和/等待乙機應(yīng)答/回答出錯,則重新發(fā)送/判斷甲機是否請求SBUF=0 xBB; /發(fā)應(yīng)答信號while(TI=0) TI=0

23、;while(1) pf=0;/清校驗和for(i=0;i10;i+) di=SBUF;/接收數(shù)據(jù)pf+=di;/計算校驗和while(RI=0) RI=0; / 接收甲校驗和if(SBUFApf)=0)比較校驗和 SBUF=0 x00;break; /校驗和相等,發(fā) 0 x00 else SBUF=0 xFF;校驗和不相等,發(fā)0 xFFwhile(TI=O)ti=0;void main() init();用行口初始化子函數(shù)if(TR=0) send(buf); /發(fā)送 else receive(buf);/接收四、實驗結(jié)論:甲、乙兩單片機通過 P3 口連接,設(shè)置寄存器 SBUF,串口工作于方

24、 式1.根據(jù)TR的設(shè)置,利用發(fā)送函數(shù)和接收函數(shù)分別實現(xiàn)發(fā)送和接收功能。實驗八多位七段數(shù)碼動態(tài)顯示一、實驗?zāi)康模赫莆諗?shù)碼管動態(tài)顯示數(shù)字的原理和連接方式,學(xué)習(xí)端口輸入輸出的應(yīng)用,以及74LS245驅(qū)動LED顯示的電路設(shè)計。二、實驗原理:輪流選中各位LED數(shù)碼管,同時給P0 口送不同的碼字,并做一定的 視覺殘留,數(shù)碼管就會同時出現(xiàn)不同的數(shù)字。本實驗仿真電路圖、流程圖如下:0 PL JCFALZPD.lWkEKSpn.wwPfl.S出口sRST加了網(wǎng)kP2.QAHP2.1U3P2 2AA1APSEHR2 3UA11緲 EAP3 4JA12P3 5A13P2 WP27A15P1J9戶1.1PliP1.J

25、pjjmro P3.3fflfTPITF3 4fTOP15F35H1PIEPITLM1_1115空XL11 盤AW51 一 1 39 3S3V 37 3S51 35Eil部第也 12(仿真電路圖)(流程圖)三、實驗代碼:#include#define uchar unsigned chartableuchar data dis_buf6;顯示緩沖區(qū)ucharcode 18=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x40,0 x00; /代碼

26、表void d1_ms()/延時 1 ms 函數(shù) unsigned int j;for(j=0;j200;j+) ;void display(void)/顯示函數(shù) uchar segcode,bitcode,i;bitcode=0 xfe;/位碼賦初值for(i=0;i6;i+) segcode=dis_bufi;/顯示緩沖器內(nèi)容查表P0=tablesegcode;P3=bitcode;d1_ms();P3=0 xff;/關(guān)閉顯示bitcode=bitcode1;/調(diào)整位碼bitcode=bitcode|0 x01;void main(void) dis_buf0=1; dis_buf1=2;

27、顯示緩沖區(qū)賦初值dis_buf2=3; dis_buf3=4;dis_buf4=5; dis_buf5=6;while(1) display。;四、實驗結(jié)論:七段數(shù)碼管動態(tài)顯示是一位一位輪流點亮各位數(shù)碼管,每隔一段時間 顯示,設(shè)置點亮延時時間短,循環(huán)掃描點亮,使人眼分辨不出,看到各位數(shù)碼管同時 發(fā)光。實驗九數(shù)/模轉(zhuǎn)換實驗一、實驗?zāi)康模簩W(xué)習(xí)掌握D/A轉(zhuǎn)換基本原理,掌握D/A轉(zhuǎn)換程序設(shè)計方法。二、實驗原理:D/A轉(zhuǎn)換器的功能主要是將輸入的數(shù)字量信號轉(zhuǎn)換成模擬量,檢測按 鍵執(zhí)行相應(yīng)的D/A轉(zhuǎn)換,顯示結(jié)果。本實驗仿真電路圖、流程圖如下:P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P

28、0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15XTAL1XTAL2RSTPSENALEEA6b7910U2CS WR1 GND DI3 DI2DI1 DI0VREF RFBGNDVCC ILE(BY1/BY2)WR2XFERDI4DI5DI6DI7IOUT2IOUT1DAC083210P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDP1.0P1.1P1.2P1.3P1.4P1.5P

29、1.6P1.720 力19 18 才17 16AT89C51開始顯示(流程圖)三、實驗代碼:#include#include#define uchar unsigned char#define DAC0832 XBYTE0 x7fffsbit P10=P1A0;sbit P12=P1A2;void main() DAC0832=0 x80;while(1) P1=0 xff;if(P10=0) DAC0832=0 xff;if(P12=0)DAC0832=0 x00;四、實驗結(jié)論:通過手動按鍵將數(shù)字量DAC0832轉(zhuǎn)換輸出模擬電壓信號實驗十模/數(shù)轉(zhuǎn)換實驗一、實驗?zāi)康模簩W(xué)習(xí)掌握A/D轉(zhuǎn)換基本原理,掌握用無條件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論