石家莊鐵道大學(xué)單片機(jī)實(shí)驗(yàn)_第1頁(yè)
石家莊鐵道大學(xué)單片機(jī)實(shí)驗(yàn)_第2頁(yè)
石家莊鐵道大學(xué)單片機(jī)實(shí)驗(yàn)_第3頁(yè)
石家莊鐵道大學(xué)單片機(jī)實(shí)驗(yàn)_第4頁(yè)
石家莊鐵道大學(xué)單片機(jī)實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精品好資料學(xué)習(xí)推薦石家莊鐵道大學(xué)單片機(jī)實(shí)驗(yàn)題目實(shí)驗(yàn)一數(shù)據(jù)區(qū)賦值(用指針、at、宏分別設(shè)計(jì)程序)實(shí)現(xiàn)給片內(nèi)RAM 30H和片外RAM 3000H開(kāi)始的16字節(jié)區(qū)域分別賦值為0x01、0x02.0x0f。At#include /atdata unsigned char buffer116 _at_ 0x30;xdata unsigned char buffer216 _at_ 0x0030;void main() unsigned inti,j; for(i=0;i16;i+) buffer1i=i; for(j=0;j16;j+) buffer2j=j; while(1);宏#include/宏

2、void main() unsigned inti,a,b; a=0x30; b=0x0030; for(i=0;i16;i+) DBYTEa+=i; XBYTEb+=i; while(1); 指針#include /指針void main(void)unsigned char data*p1;unsigned char xdata*p2;unsigned int i;p1=0x30;p2=0x3000;for(i=0;i16;i+)*p1=i;p1+;*p2=i;p2+;實(shí)驗(yàn)二數(shù)據(jù)區(qū)數(shù)據(jù)處理對(duì)30H開(kāi)始的內(nèi)存區(qū)數(shù)據(jù)0x010x0f進(jìn)行處理:將30H開(kāi)始的內(nèi)容變成0x01、0x23、0x45.

3、0xef存到40H開(kāi)始的單元將40H開(kāi)始的內(nèi)容變成0xef、0xcd.0x23、0x01存到50H開(kāi)始的單元將50H開(kāi)始的內(nèi)容變成0x0f、0x0e、0x0d.0x01、0x00存到60H開(kāi)始的單元#include#include#includedata unsigned char buffer116 _at_ 0x30;data unsigned char buffer28 _at_ 0x40;data unsigned char buffer38 _at_ 0x50;data unsigned char buffer416 _at_ 0x60;void main()unsigned int

4、i,j,k,r;for(i=0;i16;i+) buffer1i=i;/30H賦值for(j=0;j8;j+) buffer2j=buffer12*j4|buffer12*j+1;/40Hfor(k=0;k8;k+) buffer3k=buffer27-k;/50Hfor(r=1;r4; else buffer4r-1=buffer3r/2&0x0f;/60H實(shí)驗(yàn)三并行口實(shí)驗(yàn)P3.0接開(kāi)關(guān)K0,設(shè)計(jì)程序?qū)崿F(xiàn):當(dāng)K0=0時(shí),P1口連接的8個(gè)LED燈從LED0LED7依次點(diǎn)亮;當(dāng)K0=1時(shí),P1口連接的8個(gè)LED燈從LED7LED0依次點(diǎn)亮;#include#define unchar unsig

5、ned charvoid delay()unchari,j; for(i=0;i255;i+) for(j=0;j255;j+);void mian()unchara,b,i;doP3=0xff;/將P3置為輸入狀態(tài)a=P3;a=a&0x01;/屏蔽高7位if (a=0) b=0x01; for(i=0;i8;i+) P1=b; delay(); b=b1; elseb=0x80;for(i=0;i1;while(1);根據(jù)P3.1和P3.0連接的開(kāi)關(guān)K1和K0的狀態(tài)實(shí)現(xiàn)P1口連接的8只LED燈按以下形式亮滅:K1K0亮燈008只燈全亮全滅交替01LED74和LED30交替全亮全滅10從全滅狀

6、態(tài)起,8只燈從兩頭到中間再?gòu)闹虚g到兩頭依次點(diǎn)亮11從全亮狀態(tài)起,8只燈從兩頭到中間依次點(diǎn)滅,再?gòu)闹虚g到兩頭依次點(diǎn)亮#include#define unchar unsigned charvoid delay()unchari,j; for(i=0;i255;i+) for(j=0;j255;j+);void mian()unchara,b,c,i;doP3=0xff; a=P3; a=a&0x03;/屏蔽高六位 switch(a) case 0: for(i=0;i2;i+) P1=0x00; delay(); P1=0x0ff; delay(); break; case 1: for(i=0

7、;i2;i+) P1=0x0f; delay(); P1=0x0f0; delay(); break; case 2: P1=0x00; for(i=0;i4;i+) b=(0x01i)&0xf0; P1=b+c; delay(); for(i=0;ii)&0x0f; c=(0x10i)&0xf0; P1=b+c; delay(); break; case 3: P1=0xff; for(i=0;i4;i+) b=(0x01i)&0xf0; P1=b+c; delay(); for(i=0;ii)&0x0f; c=(0x10i)&0xf0; P1=b+c; delay(); break; /s

8、witch結(jié)束 while(1);實(shí)驗(yàn)四外部中斷實(shí)驗(yàn)1INT0中斷:P1接8個(gè)LED燈,點(diǎn)動(dòng)開(kāi)關(guān)接P3.2(INT0),負(fù)跳變產(chǎn)生中斷,編寫(xiě)程序?qū)崿F(xiàn):主程序8只LED燈一起亮滅閃爍循環(huán)往復(fù);INT0中斷程序?qū)崿F(xiàn)8個(gè)LED燈左右點(diǎn)亮循環(huán)5次后退出中斷。#include #include #define unchar unsigned charvoid delay()unchari,j;for(i=0;i255;i+)for(j=0;j255;j+);void main()EA=1; EX0=1; IT0=1; doP1=0x00; delay(); P1=0xff; delay(); while

9、(1);void int0() interrupt 0 using 1unchark,m; k=0x80; for(m=0;m40;m+)/左點(diǎn)亮循環(huán)5次 P1=k; delay(); k=_cror_(k,1); INT1中斷:P1接8個(gè)LED燈,點(diǎn)動(dòng)開(kāi)關(guān)接P3.2(INT0),負(fù)跳變產(chǎn)生中斷,編寫(xiě)程序?qū)崿F(xiàn):主程序8只LED燈一起亮滅閃爍循環(huán)往復(fù);INT0中斷程序?qū)崿F(xiàn)8個(gè)LED燈左右點(diǎn)亮循環(huán)5次后退出中斷。#include#include#define unchar unsigned charvoid delay()unchari,j;for(i=0;i255;i+)for(j=0;j255

10、;j+);void main() EA=1; EX1=1; IT1=1; doP1=0x00; delay(); P1=0xff; delay(); while(1);void int1() interrupt 2 using 2unchara,b,c; EX1=0; a=0x80; for(b=0;b5;b+) /左右點(diǎn)亮循環(huán)5次 for(c=0;cc; delay(); for(c=0;c8;c+) P1=0x01INT1,但進(jìn)入中斷后互不干擾;自然優(yōu)先級(jí)下若同時(shí)觸發(fā)INT0和INT1,則先響應(yīng)INT0)修改程序,INT0設(shè)為低優(yōu)先級(jí),INT1設(shè)為高優(yōu)先級(jí),運(yùn)行程序觀察實(shí)驗(yàn)現(xiàn)象:在INT0

11、中斷程序運(yùn)行中,INT1中斷請(qǐng)求能否得到相應(yīng)?(可以)在INT1中斷程序運(yùn)行中,INT0中斷請(qǐng)求能否得到相應(yīng)?(不可以)修改程序,INT0設(shè)為高優(yōu)先級(jí),INT1設(shè)為低優(yōu)先級(jí),運(yùn)行程序觀察實(shí)驗(yàn)現(xiàn)象:在INT0中斷程序運(yùn)行中,INT1中斷請(qǐng)求能否得到相應(yīng)?(不可以)在INT1中斷程序運(yùn)行中,INT0中斷請(qǐng)求能否得到相應(yīng)?(可以)解釋原因,加強(qiáng)對(duì)中斷嵌套知識(shí)的理解。(若手動(dòng)設(shè)置優(yōu)先級(jí),(如PX0=1,PX1=0使INT0為高級(jí)中斷、INT1為低級(jí)中斷),高級(jí)中斷可以打斷執(zhí)行中的低級(jí)中斷)(實(shí)驗(yàn)設(shè)置目的:體會(huì)中斷管理機(jī)制,理解中斷嵌套規(guī)則。)#include#include#define unchar

12、 unsigned charvoid delay()unchari,j;for(i=0;i255;i+)for(j=0;j255;j+);void main() EA=1; EX0=1; EX1=1; IT0=1; IT1=1; IP=0; /1.IP=0即PX0=0;PX1=1;同為低優(yōu)先級(jí) /2.PX0=0;PX1=1; /3.PX0=1;PX1=0; do P1=0x00; delay(); P1=0xff; delay(); while(1);void int0() interrupt 0 using 1unchara,b; b=0x80; for(a=0;a40;a+) P1=b;

13、delay(); k=_cror_(b,1); void int1() interrupt 2 using 2unchark,m; k=0x01; for(m=0;m40;m+) P1=k; delay(); k=_crol_(k,1); 實(shí)驗(yàn)六定時(shí)器實(shí)驗(yàn)P1接8個(gè)LED燈,點(diǎn)動(dòng)開(kāi)關(guān)接P3.2 (INT0),負(fù)跳變產(chǎn)生中斷。編寫(xiě)程序?qū)崿F(xiàn)如下功能: 主程序8只LED燈上電全滅。 INT0中斷程序?qū)崿F(xiàn):按一次啟動(dòng)定時(shí)器T0,再按一次停止。停止后恢復(fù)到上電狀態(tài)。 定時(shí)器T0實(shí)現(xiàn):8個(gè)LED燈左點(diǎn)亮循環(huán),每個(gè)點(diǎn)亮?xí)r間為1S。(定時(shí)器分別用中斷方式和查詢(xún)方式實(shí)現(xiàn)。)定時(shí)器初值計(jì)算:10000us=216

14、-X*12/6 得X=ec78H中斷方式:#include#includeunsigned char a,i=100;void main()TMOD=0x01;TH0=0xec;TL0=0x78;P1=0x00;IT0=1;EX0=1;EA=1;IT0=1;EX0=1;ET0=1;TR0=0;while(1);void temer0() interrupt 1TH0=0xec;TL0=0x78;i-;if(i=0) P1=a; a=_cror_(a,1); i=100; void int0() interrupt 0TR0=TR0;if(TR0=0) P1=0x00;查詢(xún)方式:#include

15、#includeunsigned char a,i=100;void main()TMOD=0X01;TH0=0Xec;TL0=0X78;P1=0X00;IT0=1;EX0=1;EA=1;IT0=1;EX0=1;TR0=0;while(1)if(TF0)TF0=0?TH0=0Xec;TL0=0X78;i-;if(i=0) P1=a; a=_cror_(a,1); i=100; void int0() interrupt 0TR0=TR0;if(TR0=0) P1=0x00;實(shí)驗(yàn)七定時(shí)器計(jì)數(shù)器綜合實(shí)驗(yàn)P1接8個(gè)LED燈,P3.7接1個(gè)LED燈,點(diǎn)動(dòng)開(kāi)關(guān)接P3.2 (INT0),負(fù)跳變產(chǎn)生中斷,P

16、3.3 (INT1)用低電平觸發(fā)中斷。編寫(xiě)程序?qū)崿F(xiàn)如下功能: 主程序9只LED燈上電全滅。 INT0中斷程序?qū)崿F(xiàn):按一次啟動(dòng)定時(shí)器T0,再按一次停止。停止后恢復(fù)到上電狀態(tài)。 INT1中斷程序?qū)崿F(xiàn):按一次啟動(dòng)定時(shí)器T1,再按一次停止。停止后恢復(fù)到上電狀態(tài)。 定時(shí)器T0實(shí)現(xiàn):P3.7所接1個(gè)LED燈亮滅閃爍,亮滅時(shí)間各為1S。 計(jì)數(shù)器T1實(shí)現(xiàn):記錄由T1口所輸入脈沖個(gè)數(shù)(P3.5輸入下降沿),以二進(jìn)制形式在P1口輸出。(提示:低電平觸發(fā)及時(shí)恢復(fù)高電平,以免中斷重入)(計(jì)數(shù)器輸入為T(mén)1(P3.5)、T0(P3.4)外部脈沖;定時(shí)器為系統(tǒng)時(shí)鐘12分頻,內(nèi)部脈沖(一個(gè)機(jī)器周期1us)#include#i

17、ncludeunsigned char i=100;sbit P3_7=P37;void main()TMOD=0X61;/(T1方式2.T0方式1)或2.TMOD=0X51;(T1.T0方式1)TH0=0Xec;TL0=0X78;TH1=0Xff;/或2.TH1=0X00;TL1=0Xff;/或2.TL1=0X00;P1=0X00;P3_7=0;EA=1;IT0=1;EX0=1;IT1=1;EX1=1;ET0=1;ET1=1;TR0=0;TR1=0;while(1);/或2.P1=TL1;void temer0() interrupt 1TH0=0Xec;TL0=0X78;i-;if(i=0

18、) P3_7=P3_7; i=100;void int0() interrupt 0TR0=TR0;if(TR0=0) P3_7=0;void int1() interrupt 2TR1=TR1;if(TR1=0) P1=0; void temer1() interrupt 3 / 2.TMOD=0X51;刪掉該段unsigned char b;TH1=0Xff;TL1=0Xff;b+;P1=b;實(shí)驗(yàn)八雙機(jī)串行通訊基礎(chǔ)實(shí)驗(yàn)通信要求:fosc=6M,波特率2400,(提示:通訊雙方工作在方式1,定時(shí)器1工作在方式2定時(shí)模式,計(jì)數(shù)初值設(shè)為:0xf3,SMOD=1。)程序設(shè)計(jì)內(nèi)容:要求內(nèi)部RAM30

19、H開(kāi)始的16個(gè)字節(jié)內(nèi)容用程序?qū)崿F(xiàn)賦值015。用查詢(xún)或中斷方式實(shí)現(xiàn)將甲機(jī)內(nèi)部RAM 30H開(kāi)始的16個(gè)字節(jié)的內(nèi)容發(fā)送到已機(jī)并存入內(nèi)部RAM 40H開(kāi)始的單元中,并同時(shí)從P1口輸出。為了觀察發(fā)送過(guò)程,要求每發(fā)送一個(gè)數(shù)據(jù)使甲機(jī)的P1_0連接的指示燈LED0亮滅一次。(亮滅延時(shí)時(shí)間自定,但要求能明顯觀察到亮滅狀態(tài)轉(zhuǎn)換。)溫馨提示:在中斷處理模式中數(shù)據(jù)發(fā)送和接收完畢后,程序執(zhí)行while(1);語(yǔ)句,可在此處設(shè)置斷點(diǎn)運(yùn)行程序;或者執(zhí)行一直讓P1_0連接的LED0燈常亮的死循環(huán)程序;在查詢(xún)模式下發(fā)送和接收完畢后最后執(zhí)行while(1);語(yǔ)句,可在此處設(shè)置斷點(diǎn)運(yùn)行程序;或者執(zhí)行一直讓P1_0連接的LED0燈

20、常亮的死循環(huán)程序;)。實(shí)驗(yàn)連線:甲機(jī)的P1.0分別接LED0,乙機(jī)P1接LED0LED7,甲機(jī)RXD接乙機(jī)TXD,甲機(jī)TXD接乙機(jī)RXD,兩機(jī)共地。#include /甲發(fā)送(中斷)#includedata unsigned char buffer116 _at_ 0x30;unsigned char i,temp=0,j=0;sbit P1_0=P10;void delay()unsigned char m,n;for(m=0;m255;m+)for(n=0;n255;n+);void main() for(i=0;i16;i+) buffer1i=i;P1_0=0;TMOD=0X20;TH

21、1=0xf3;TL1=0xf3;SCON=0X40;PCON=0X80;EA=1;ES=1;TR1=1;SBUF=buffer10; while(1);void serialtrp() interrupt 4TI=0; SBUF=buffer1j; delay(); P1_0=P1_0; j+; if(j=16)j=0; #include /乙接收中斷#include #define uchar unsigned charuchar i,j,Hong1=0x40,a=0;void main()TMOD=0x20; TH1=0xf3; TL1= 0xf3; SCON=0x50; PCON=0x8

22、0; EA=1; ES=1; TR1=1;P1=0; while(1); void serall0() interrupt 4RI=0;if(a=16) ES=0; while(1); else DBYTEHong1=SBUF; a+; P1=DBYTEHong1; Hong1+; #include /甲發(fā)送(查詢(xún)1)#includedata unsigned char buffer116 _at_ 0x30;unsigned char i,temp=0,j=0;sbit P1_0=P10;void delay()unsigned char m,n;for(m=0;m255;m+)for(n=

23、0;n255;n+);void main()P1_0=0;TMOD=0X20;TH1=0xf3;TL1=0xf3;SCON=0X40;PCON=0X80;EA=1;ES=1;TR1=1;for(i=0;i16;i+)buffer1i=i;SBUF=buffer10;/可省while(1) SBUF=buffer1j; delay(); P1_0=P1_0; j+; if(j=16)j=0; while(TI=0);#include/甲發(fā)送(查詢(xún)2)#include #define uchar unsigned charsbit P1_0=P10;data unsigned char buffe

24、r16 _at_ 0x30;void delay(uchar j)uchar t; while (j-) for (t=0;t120;t+); void main()uchari,temp; TMOD=0X20; TH1=0Xf3; TL1=0xf3; SCON=0X40; PCON=0X80; TR1=1; P1_0=0; while(1) for(i=0;i16;i+) bufferi=i; temp=bufferi; SBUF=temp; while(TI=0); TI=0; P1_0=1; delay(500); P1_0=0; delay(500); #include /乙查詢(xún)#in

25、clude #define uchar unsigned charuchar i,j,Hong1=0x40,a=0;void main()TMOD=0x20; TH1=0xf3; TL1= 0xf3; SCON=0x50; PCON=0x80;TR1=1; P1=0;for(i=0;i16;i+) while(RI=0); RI=0; DBYTEHong1=SBUF; a+; P1=DBYTEHong1; Hong1+; while(1); 實(shí)驗(yàn)九串行通信綜合實(shí)驗(yàn)通信要求:fosc=6M,波特率2400,通訊雙方工作在方式1,定時(shí)器1工作在方式2定時(shí)模式,計(jì)數(shù)初值設(shè)為:0xf3,SMOD=1。

26、1、甲機(jī)通過(guò)點(diǎn)動(dòng)開(kāi)關(guān)的動(dòng)作觸發(fā)INT0下降沿中斷,在中斷程序中以查詢(xún)方式向乙機(jī)發(fā)送開(kāi)關(guān)K0K7的狀態(tài),設(shè)計(jì)發(fā)送程序和乙機(jī)接收程序(查詢(xún)還是中斷接收自定)。實(shí)驗(yàn)連線:甲機(jī)P1口接K0K7,點(diǎn)動(dòng)開(kāi)關(guān)接INT0;乙機(jī)P1口接LED0LED7;甲機(jī)RXD接乙機(jī)TXD,甲機(jī)TXD接乙機(jī)RXD,兩機(jī)共地。2、甲機(jī)通過(guò)1s定時(shí)方式,在定時(shí)中斷程序中以查詢(xún)或中斷方式向乙機(jī)發(fā)送P1口連接的開(kāi)關(guān)K0K7的狀態(tài),乙機(jī)通過(guò)查詢(xún)或中斷方式接收甲機(jī)的開(kāi)關(guān)信號(hào)并送乙機(jī)的P1口連接的LED燈LED0LED7上。為了便于觀察發(fā)送過(guò)程,要求甲機(jī)每發(fā)送一個(gè)數(shù)據(jù)使P2_0連接的指示燈LED0亮滅一次(亮滅延時(shí)時(shí)間自定,但要求能明顯觀

27、察到亮滅狀態(tài)轉(zhuǎn)換)。設(shè)計(jì)發(fā)送程序和接收程序(查詢(xún)還是中斷接收自定)。實(shí)驗(yàn)連線:甲機(jī)P1口接K0K7,P2.0接LED0觀察發(fā)送過(guò)程;乙機(jī)P1口接LED0LED7;甲機(jī)RXD接乙機(jī)TXD,甲機(jī)TXD接乙機(jī)RXD,兩機(jī)共地。#include /甲1發(fā)送#include#define uchar unsigned charsbit P2_0=P20;uchar temp=0;void delay(unsigned int i)uchar j; for(;i0;i-) for(j=0;j125;j+);void main()TMOD=0x21;TH1=0xf3;TL1=0xf3;SCON=0x40;P

28、CON=0x80;TR1=0;EA=1;EX0=1;IT0=1;P2_0=0;P1=0xff;while(1);void int0(void) interrupt 0 using 0TR1= TR1;temp=P1;SBUF=temp;delay(500);P2_0=P2_0;delay(500);while(TI=0);TI=0;#include /九,2.甲發(fā)送(查詢(xún))unsigned char i=100,temp=0;sbit P2_0=P20;void main()TMOD=0X21;TH0=0xec;TL0=0x78;TH1=0xf3;TL1=0xf3;SCON=0X40;PCON

29、=0X80;EA=1;ET0=1;TR0=1;TR1=1;P1=0xff;P2_0=1;temp=P1; SBUF=temp; while(1);void temer0() interrupt 1TH0=0xec;TL0=0x78;i-;if(i=0) temp=P1; SBUF=temp; while(TI=0); TI=0; P2_0=P2_0; i=100;#include/乙接受(1.2相同)unsigned char temp=0;void main()TMOD=0x20;TH1=0xf3;TL1=0xf3;SCON=0x50;PCON=0x80;TR1=1;P1=0;while(1

30、)while(RI=0);RI=0;temp=SBUF;P1=temp;實(shí)驗(yàn)十定時(shí)、記數(shù)、顯示設(shè)計(jì)一個(gè)帶有控制功能的脈沖發(fā)生器/計(jì)數(shù)器系統(tǒng),脈沖發(fā)生器發(fā)出周期為2秒的方波(提示:可由P1.0口輸出,用發(fā)光二極管顯示);被計(jì)數(shù)脈沖由T0口輸入,所記錄的脈沖數(shù)以十進(jìn)制形式在數(shù)碼管顯示(至少應(yīng)可記錄256個(gè)脈沖);設(shè)兩個(gè)按鍵,一個(gè)啟動(dòng)脈沖發(fā)生器,一個(gè)啟動(dòng)記數(shù),(按一次啟動(dòng),再按一次停止),不啟動(dòng)時(shí),發(fā)光管滅,數(shù)碼管顯示學(xué)號(hào)。#include#include#define uint unsigned int#define uchar unsigned charsbit P0_1=P01;uchar i

31、=200;uchar code seg1=0x06,0x7d,0x4f,0x4f,0x07,0x5b;uchar code y2=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay(uint t)uchar a; while(t-)for(a=0;a200;a+);void main()ucharm,j; TMOD=0x15; TH1=0xec; TL1=0x78, TH0=0X00; TL0=0X00; EA=1; ET0=1; TR0=0; TR1=0; P0_1=0; IT0=1; ET1=1; EX0=1; IT1=

32、1; EX1=1; while(1) if(TR0=0) j=0x40; for(i=0;i6;i+) j= _cror_ (j,1); P1=seg1i; P2=j; delay(1); if(TR0=1) j=0x04; P1=y2TL0/100; P2=j; delay(1); j=0x02; P1=y2(TL0%100)/10; P2=j; delay(1); j=0x01; P1=y2(TL0%100)%10; P2=j; delay(1); void int0() interrupt 0 TR0=TR0;void int1() interrupt 2 TR1=TR1; if(TR1

33、=0) P0_1=0;void timer1() interrupt 3 TH1=0xEC; TL1=0x78; i-;if(i=0)P0_1=P0_1;i=200;實(shí)驗(yàn)十一、D/A轉(zhuǎn)換實(shí)驗(yàn)實(shí)驗(yàn)內(nèi)容:假設(shè)0832工作在單緩沖方式 口地址為 0X8000。 根據(jù)P1.0P1.1連接的K0K1的狀態(tài),分別實(shí)現(xiàn)下述表格功能所要求的功能:K1K0波形輸出00幅值從1V上升到4V的鋸齒波01幅值從1V上升到4V的三角波10幅值從1V上升到4V的梯形波11幅值從1V和4V的方波#include#include#define uchar unsigned char#define DA0832 XBYTE0x

34、8000void delay()ucharm,n;for(m=0;m255;m+)for(n=0;n51;i-) DA0832=i; break; case 1: for(i=51;i51;i-) DA0832=i; break; case 2: for(i=51;i51;i-) DA0832=i; delay(); break; case 3: i=51; DA0832=i; delay(); i=205; DA0832=i;dalay(); break; 實(shí)驗(yàn)十二:A/D轉(zhuǎn)換實(shí)驗(yàn)1、IN0端連接電位器滑動(dòng)端,分別設(shè)計(jì)查詢(xún)和中斷程序不斷采集電位器輸出的模擬電壓值,將A/D轉(zhuǎn)換的結(jié)果通過(guò)P1口

35、連接的8個(gè)LED顯示出來(lái)。實(shí)驗(yàn)連線:CS0接0809片選端(地址為0x8000,P1.0P1.7接LED0LED7。在查詢(xún)方式下P3.0接EOC,在中斷方式下EOC通過(guò)反相器再接INT0即P3.2。2、定時(shí)數(shù)據(jù)采集程序設(shè)計(jì):用T0定時(shí)30秒采集一次IN0連接的模擬信號(hào)并送P1口連接的LED顯示的程序#include/1.查詢(xún)#include#define uchar unsigned char#define IN0 XBYTE0X8000sbit EOC=P30;sbit start=P21;/*sbit OE=P20;sbit CLOCK=P22;sbit a=P23;sbit b=P24;

36、sbit c=P25;*/void main()uchar *ad;uchar x;/*a=0;b=0;c=0;*/while(1)ad=&IN0;*ad=0;/*start=0;start=1;start=0;*/while(EOC=0);x=*ad;/OE=1;P1=x;#include/1.查詢(xún)#include#define uchar unsigned char#define IN0 XBYTE0X8000sbit EOC=P30;void main()uchar t;P1=0;while(1)IN0=0;/啟動(dòng)轉(zhuǎn)換,使START(內(nèi)部和WR非相連)置1while(EOC);/EOC為1,本句死循環(huán);EOC為0,進(jìn)行下句while(!EOC);/EOC為0,本句死循環(huán);EOC為1,進(jìn)行下句;這兩句

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論