第7組(單片機(jī)實(shí)驗(yàn)總結(jié))_第1頁(yè)
第7組(單片機(jī)實(shí)驗(yàn)總結(jié))_第2頁(yè)
第7組(單片機(jī)實(shí)驗(yàn)總結(jié))_第3頁(yè)
第7組(單片機(jī)實(shí)驗(yàn)總結(jié))_第4頁(yè)
第7組(單片機(jī)實(shí)驗(yàn)總結(jié))_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、廣東藥學(xué)院實(shí)驗(yàn)報(bào)告總結(jié)班級(jí): 生物醫(yī)學(xué)工程11(電子儀器) 組別:第19組 組長(zhǎng):陳均連組員:陳春明、駱偉偉2013年12月15 日實(shí)驗(yàn)三 單片機(jī)I/O口控制實(shí)驗(yàn)1、要求利用P1口做輸出口,接八只發(fā)光二極管。編寫(xiě)程序,使發(fā)光二極管循環(huán)點(diǎn)亮,或者產(chǎn)生有一定規(guī)律的花樣,花樣要求如下(提示:每一個(gè)要求編一個(gè)程序):第一個(gè)發(fā)光管以間隔200ms閃爍#include /1#define uint unsigned intvoid delayms(uint);sbit led1=P10;void main()while(1)led1=0;delayms(200);led1=1;delayms(200);v

2、oid delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);8個(gè)發(fā)光管由上至下間隔1s流動(dòng),其中每個(gè)管亮500ms,滅500ms,亮?xí)r蜂鳴器響,滅時(shí)關(guān)閉蜂鳴器,一直重復(fù)下去。#include/2#include#define uint unsigned intvoid delayms(uint);uint aa;sbit beep=P15; void main()P2=0xff;aa=0xfe;beep=1;while(1)P2=aa;beep=0;delayms(500);P2=0xff;beep=1;delayms(500)

3、;aa=_crol_(aa,1);void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);8個(gè)發(fā)光管來(lái)回流動(dòng),第個(gè)管亮100ms,流動(dòng)時(shí)讓蜂鳴器發(fā)出“滴滴”聲。#include/3#include#define uint unsigned intvoid delayms(uint);uint aa,i;sbit beep=P23; void main()P1=0xff;beep=1;aa=0xfe;delayms(500);while(1)for(i=0;i8;i+)P1=aa;beep=1;delayms(100);be

4、ep=0;delayms(100);aa=_crol_(aa,1);if(aa=0xfe) break;aa=0x7f; for(i=0;i0;i-)for(j=110;j0;j-);用8個(gè)發(fā)光管演示出8位二進(jìn)制數(shù)累加過(guò)程,結(jié)合兩個(gè)開(kāi)關(guān)(一加一減)實(shí)現(xiàn)加減運(yùn)算。#include /4#define uchar unsigned char#define uint unsigned intsbit s0=P20;sbit s1=P21;uchar a;void delayms(uint z) int i,j; for(i=z;i0;i-) for(j=110;j0;j-);void main()

5、while(1) a=0; if(s0=0) while(a!=256) a+; P1=a; delayms(500); a=0xff; if(s1=0) while(a!=0) a-; P1=a; delayms(500); 8個(gè)發(fā)光管間隔200ms由上至下,再由下至上,再重復(fù)一次,然后全部熄滅再以300ms間隔全部閃爍5次。重復(fù)此過(guò)程。#include/5#include#define uint unsigned intvoid delayms(uint);uint a,i,j;void main()while(1)a=0xfe;for(j=0;j2;j+)for(i=0;i8;i+)P1

6、=a;a=_crol_(a,1);delayms(200);a=0x7f;for(i=0;i7;i+)a=_cror_(a,1);P1=a;delayms(200);P1=0xff;delayms(500);for(i=0;i0;i-)for(j=110;j0;j-);間隔300ms第一次一個(gè)管亮流動(dòng)一次,第二次兩個(gè)管亮流動(dòng),依次到8個(gè)管亮,然后重復(fù)整個(gè)過(guò)程。#include/6#include#define uint unsigned intvoid delayms(uint);uint i,a;void main()while(1)a=0xfe; for(i=0;i8;i+) P1=a;a

7、=_crol_(a,1);delayms(500); delayms(500); a=0xfc; for(i=0;i4;i+) P1=a;a=_crol_(a,2);delayms(500); delayms(500); a=0xf8; for(i=0;i3;i+) P1=a;a=_crol_(a,3);delayms(500); delayms(500); a=0xf0; for(i=0;i2;i+) P1=a;a=_crol_(a,4);delayms(500); delayms(500); a=0xe0; for(i=0;i2;i+) P1=a;a=_crol_(a,5);delayms

8、(500); delayms(500); a=0xc0; for(i=0;i2;i+) P1=a;a=_crol_(a,6);delayms(500); delayms(500); a=0x80; for(i=0;i0;i-)for(j=110;j0;j-);間隔300ms先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;一個(gè)燈上下循環(huán)三次;兩個(gè)分別從兩邊往中間流動(dòng)三次;再?gòu)闹虚g往兩邊流動(dòng)三次;8個(gè)全部閃爍3次;關(guān)閉發(fā)光管,程序停止。#include /7#include#define uint unsigned intvoid delayms(uint);uint a,i,j;void main()for(i=0

9、;i3;i+)P1=0xaa; /0101 0101delayms(1000);P1=0x55; /1010 1010delayms(1000);P1=0xff;delayms(500);for(i=0;i3;i+)a=0xfe;for(j=0;j7;j+)P1=a;delayms(500);a=_crol_(a,1);for(j=0;j8;j+)P1=a;delayms(500);a=_cror_(a,1);P1=0xff;delayms(500);for(i=0;i3;i+) P1=0x7e;delayms(1000);P1=0xbd;delayms(1000);P1=0xdb;delay

10、ms(1000);P1=0xe7;delayms(1000);P1=0xff;delayms(500);for(i=0;i3;i+)P1=0xe7;delayms(1000);P1=0xdb;delayms(1000);P1=0xbd;delayms(1000); P1=0x7e;delayms(1000);P1=0xff;delayms(500);for(i=0;i0;i-)for(j=110;j0;j-);心得體驗(yàn):本實(shí)驗(yàn)主要學(xué)習(xí)使用單片機(jī)的I/O口控制發(fā)光二極管的亮滅,同時(shí)要熟悉延時(shí)子函數(shù)的調(diào)用,熟練進(jìn)行移位操作,比如左移,等指令。應(yīng)該注意的是:?jiǎn)纹瑱C(jī)上電時(shí),沒(méi)有人為地控制I/O口的狀態(tài)

11、,所有未控制的I/O口都默認(rèn)為高電頻。剛開(kāi)始學(xué)習(xí)單片機(jī)這門(mén)課程,因?yàn)閷W(xué)過(guò)C語(yǔ)言,所以還是稍微能上手的。學(xué)習(xí)實(shí)驗(yàn)三,從中掌握了I/O口的工作原理和它的數(shù)據(jù)輸出方式,通過(guò)P1口觀察程序的運(yùn)行。而且掌握了二個(gè)新軟件proteu isis和keil,可以進(jìn)行仿真實(shí)驗(yàn),也和單片機(jī)實(shí)物結(jié)合理論聯(lián)系實(shí)際,提高動(dòng)手能力,從而全面掌握單片機(jī)的應(yīng)用。而在實(shí)驗(yàn)三中,首先要理解題目要求,相應(yīng)地去編程,要有自己的思路,先把大概的脈絡(luò)寫(xiě)出來(lái),還要不斷地去調(diào)試,最終才可以滿足題目要求,在仿真和實(shí)物單片機(jī)都能實(shí)現(xiàn)需要的現(xiàn)象。7實(shí)驗(yàn)四 LED數(shù)碼管控制實(shí)驗(yàn)1.單片機(jī)AT89C51讀入4位開(kāi)關(guān)的輸入狀態(tài)(0F),并將其輸出到數(shù)碼

12、管顯示。#include /數(shù)碼管共陽(yáng),按鍵共陰 (1)#include#define uchar unsigned char#define uint unsigned intsbit k1=P20;sbit k2=P21;sbit k3=P22;sbit k4=P23;uint a,b,c,d,m;uchar code table=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e;void main()a=k1;b=k2;c=k3;d=k4;m=(8*!d+4*!c+2*!b+1*!

13、a);P0=tablem;/P02、 數(shù)碼管動(dòng)態(tài)顯示。#include /數(shù)碼管共陰 (2)#include#define uchar unsigned char#define uint unsigned intuint i; /1/2 /3 /4 /5 /6uchar code dula=0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code wela=0x7f,0xbf,0xdf,0xef,0xf7,0xfb;void delayms(uint xms)uint i,j;fo

14、r(i=xms;i0;i-)for(j=110;j0;j-);void main()while(1) for(i=0;i6;i+)P2=welai;/P1P0=dulai;delayms(500);P0=0xff;/消影delayms(100);心得體驗(yàn):本實(shí)驗(yàn)主要是熟練掌握I/O口對(duì)數(shù)碼管顯示的控制,在編寫(xiě)程序時(shí),應(yīng)先確定選用的數(shù)碼管是共陰還是共陽(yáng)數(shù)碼管,不同的數(shù)碼管使用不同的編碼。數(shù)碼管的動(dòng)態(tài)顯示中,一般都要上一句P0=0xff,即是消影。如果不進(jìn)行消影,就會(huì)出現(xiàn)顯示混亂的現(xiàn)象。學(xué)習(xí)了P1口和P2口的使用方法,要把P0口、P1口和P2口在keil中調(diào)出來(lái)調(diào)試觀察0和1數(shù)值(高低電平)變化,

15、由于買(mǎi)的單片機(jī)是內(nèi)部接線固定好,只能通過(guò)修改程序和仿真圖去滿足實(shí)驗(yàn)要求,比其他同學(xué)所做的工作更多,也更復(fù)雜,不過(guò)我覺(jué)得這樣可以讓我更深入地去了解了單片機(jī)的結(jié)構(gòu)。8實(shí)驗(yàn)五 廣告流水燈中斷控制1、利用定時(shí)/計(jì)數(shù)器T0從P1.0輸出周期為1s的方波,讓發(fā)光二極管以1HZ閃爍,設(shè)晶振頻率為12MHz。#include /1#define uint unsigned intsbit led=P10;uint num;void main()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1)if(nu

16、m=20)num=0;led=led;void T0_time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;num+;2、利用定時(shí)/計(jì)數(shù)器T1產(chǎn)生定時(shí)時(shí)鐘,由P1口控制8個(gè)發(fā)光二極管,使8個(gè)指示燈依次一個(gè)一個(gè)閃動(dòng),閃動(dòng)頻率為10次/秒(8個(gè)燈依次亮一遍為一個(gè)周期),循環(huán)。#include /2 單數(shù)碼管共陽(yáng)#include#define uint unsigned int#define uchar unsigned charUchar code dula=0x79,0x24,0x30,0x19,0x12,0x02,0x78,

17、0x00,0x10,0x40;uint a,num,i;void main()TMOD=0x10; /T1TH1=(65536-10000)/256; /10msTL1=(65536-10000)%256;EA=1;ET1=1;TR1=1;num=0;i=0;a=0xfe;while(1)if(num=7) P1=a;P0=dulai;i+;if(num=10)num=0;P1=0xff; if(i=10)i=0;a=_crol_(a,1);/P1=0xff;void T1_time() interrupt 3TH1=(65536-10000)/256;TL1=(65536-10000)%25

18、6;num+;3、用定時(shí)器以間隔500MS在6位數(shù)碼管上依次顯示0、1、2、3.C、D、E、F,重復(fù)(電路自己設(shè)計(jì))。#include /3 共陰#define uint unsigned int#define uchar unsigned charuchar code dula=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code wela=0x7f,0xbf,0xdf,0xef,0xf7,0xfb;uint num,i,j;void main()TMOD=0x01

19、;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;i=0;num=0;while(1)if(num=10)num=0;P2=welaj;/0選中 位選P3=dulai;/段選i+;if(i=16) i=0;j+;if(j=6) j=0;void T0_time() interrupt 1TH0=(65536-50000)/256; /45872TL0=(65536-50000)%256;num+;選做:INT0、INT1同時(shí)存在,P1為輸出口,INT1優(yōu)先級(jí)高于INT0,均為電平觸發(fā)。要求:主程序8個(gè)發(fā)光二極管左、右移動(dòng)

20、2輪,再閃爍2次,INT0的中斷服務(wù)程序控制P1口的8個(gè)發(fā)光二極管閃爍5次,INT1的中斷服務(wù)程序控制P1口的8個(gè)發(fā)光二極管左、右移動(dòng)3輪(所有計(jì)數(shù)通過(guò)數(shù)碼管顯示),信號(hào)燈優(yōu)先級(jí)控制程序流程圖如圖8-5所示。#include/選做 單數(shù)碼管共陽(yáng)#include#define uint unsigned int#define uchar unsigned charuchar code dula=0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x40;/19uint a,b,num0,num1,i,j;sbit N0=P32;sbit N1=P33;vo

21、id delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void main()TMOD=0xdd;TCON=0x00;PX1=1; /外部中斷1為高優(yōu)先PX0=0; /0為低EA=1; /全局允許中斷EX1=1; /開(kāi)外部中斷1EX0=1; /開(kāi)外部中斷0num0=0;num1=0;i=0;a=0xfe;b=0xff;while(1)for(j=0;j2;j+)/移動(dòng)2輪for(i=0;i7;i+) /左P1=a;delayms(200);a=_crol_(a,1);for(i=0;i7;i+) /右P1=a;delayms(

22、200);a=_cror_(a,1);j=0;for(j=0;j2;j+)/閃2次P1=b;delayms(200);P1=b;delayms(200);void exter0() interrupt 0b=0xff;while(1)P1=b;P0=dulanum0;delayms(200);P1=b;delayms(200);num0+;if(num0=5)while(1)P1=b;void exter1() interrupt 2a=0xfe;while(1)for(i=0;i7;i+) /左P1=a;delayms(200);a=_crol_(a,1);for(i=0;i7;i+) /右

23、P1=a;delayms(200);a=_cror_(a,1);P0=dulanum1;num1+;if(num1=3) while(1)P1=b;實(shí)驗(yàn)五心得:由于水平有限,在實(shí)驗(yàn)五花了好長(zhǎng)時(shí)間,先要了解了定時(shí)器/計(jì)數(shù)器工作方式,而且要搞清楚題目的中斷延時(shí)要求,既要設(shè)計(jì)實(shí)驗(yàn)仿真電路,又要編程去實(shí)現(xiàn)要求。在實(shí)驗(yàn)中學(xué)習(xí)到了外部中斷基本使用方法和中斷優(yōu)先級(jí),學(xué)習(xí)了中斷程序的編寫(xiě)程序方法。而在選做實(shí)驗(yàn)中斷嵌套中進(jìn)一步地利用了中斷優(yōu)先級(jí)去控制程序。9 實(shí)驗(yàn)六 方波發(fā)生器(1)用內(nèi)部定時(shí)器/計(jì)數(shù)器0的定時(shí)功能,實(shí)現(xiàn)周期為400us的方波輸出。#include /(1)#define uchar unsig

24、ned char#define uint unsigned intsbit a=P35;sbit b=P37;uchar num;void main() TMOD=0x01; /啟動(dòng)T0 TH0=(65536-100)/256; /400US TL0=(65536-100)%256; EA=1; ET0=1; TR0=1;a=0; b=0; while(1)if(num=2) num=0; a=!a; b=!b; void T0_time()interrupt 1 TH0=(65536-100)/256; TL0=(65536-100)%256; num+;(2)用內(nèi)部定時(shí)器/計(jì)數(shù)器1的定時(shí)功

25、能,在P3.0引腳上產(chǎn)生周期為10ms的方波輸出,定時(shí)器采用查詢和中斷兩種方式實(shí)現(xiàn)。#include /(2)#define uchar unsigned char#define uint unsigned intsbit a=P30;uchar num;void main() TMOD=0x10; /啟動(dòng)T1 TH1=(65536-1000)/256; /10ms TL1=(65536-1000)%256; EA=1; ET1=1; TR1=1;a=0; while(1)if(num=10) num=0; a=!a; void T1_time()interrupt 3 TH1=(65536-

26、1000)/256; TL1=(65536-1000)%256; num+;(3)用內(nèi)部定時(shí)器/計(jì)數(shù)器0的方式2,在P3.0引腳上產(chǎn)生矩形波, 高電平為50us,低電平為300us。#include /(3)#define uchar unsigned char#define uint unsigned intsbit a=P30;uchar num;void main() TMOD=0x02; /啟動(dòng)T0 TH0=(65536-50)/256; /50US TL0=(65536-50)%256; EA=1; ET0=1; TR0=1;a=0; while(1)/為什么在while里面程序不能

27、實(shí)現(xiàn)?void T0_time()interrupt 1 TH0=(65536-50)/256; TL0=(65536-50)%256; num+; if(a=1&num=1) a=!a; num=0; if(a=0&num=6) a=!a;num=0; (4)同時(shí)用兩個(gè)定時(shí)器控制蜂鳴器發(fā)聲,定時(shí)器0控制頻率,定時(shí)器1控制同個(gè)頻率持續(xù)的時(shí)間,間隔300ms依次輸出1,10,50,100,200,400,800,1k(hz)的方波。#include/(4)#include/包含有左右循環(huán)移位子函數(shù)的庫(kù) #define uint unsigned int/宏定義#define uchar unsi

28、gned char sbit a=P30;sbit b=P15; uchar tt; uint i,f,flag; uchar code FB=1,10,50,100,200,400,800,1000;void main() /主函數(shù) i=0;f=50000;TMOD=0x11;/設(shè)置定時(shí)器0,定時(shí)器1為工作方式1 TH0=(65536-f)/256;TL0=(65536-f)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;/開(kāi)總中斷 ET0=1;/開(kāi)定時(shí)器0中斷ET1=1;TR1=1;TR0=1; /啟動(dòng)定時(shí)器0 while(1)

29、/等待中斷產(chǎn)生 if(tt=f)tt=0;a=!a;b=!b;if(flag=6) flag=0;i+; f=FBi;void T0_time() interrupt 1/定時(shí)器0中斷 TR0=0; /進(jìn)中斷后先把定時(shí)器0中斷關(guān)閉,防止內(nèi)部程序過(guò)多而造成中斷丟失TH0=(65536-f)/256;TL0=(65536-f)%256;tt+;6、選作-計(jì)數(shù)器方式,原理圖如下圖9-10所示,流程圖如圖9-11、9-12、9-13所示(1)用內(nèi)部定時(shí)器/計(jì)數(shù)器1的計(jì)數(shù)功能,工作在方式2,實(shí)現(xiàn)計(jì)數(shù)10次產(chǎn)生中斷使P1.7所接發(fā)光二極管點(diǎn)亮(計(jì)數(shù)用數(shù)碼管顯示,需加數(shù)碼管)。#include /選做(1)

30、 單數(shù)碼管共陽(yáng) 接按鍵于P35#include#define uint unsigned int#define uchar unsigned charuchar code dula=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/09void T1_time() interrupt 3 /定時(shí)器1中斷用來(lái)產(chǎn)生300微秒時(shí)間定時(shí) TH1=(65536-50000)/256;TL1=(65536-50000)%256;flag+;sbit led=P17;uchar Count = 0;void main() TMOD = 0x60; /T1工

31、作于計(jì)數(shù)器方式2TH1=255; /計(jì)數(shù)值設(shè)為256-1=255,當(dāng)P3.5有鍵按下時(shí),負(fù)跳變會(huì)使計(jì)數(shù)器初值255加1,TL1=255; /計(jì)數(shù)器立即溢出而觸發(fā)計(jì)數(shù)中斷,計(jì)數(shù)中斷函數(shù)將計(jì)數(shù)變量Count累加ET1=1; /允許T1中斷EA =1; /開(kāi)總中斷TR1=1; /啟動(dòng)T1while(1) P0= dulaCount; if(Count=9) led=0; else led=1; void Key_Counter() interrupt 3 /T1計(jì)數(shù)器中斷函數(shù) Count=(Count + 1) %10; /計(jì)數(shù)控制在10以內(nèi)無(wú)需再加if語(yǔ)句控制初值 (2)用內(nèi)部定時(shí)器/計(jì)數(shù)器1的計(jì)

32、數(shù)功能,工作在方式1,8位發(fā)光二極管以二進(jìn)制顯示按鍵次數(shù)。#include /選做(2) 單數(shù)碼管共陽(yáng)void main() TMOD = 0x50; /設(shè)置T1為計(jì)數(shù)器,工作于方式1,最大計(jì)數(shù)值為65535TH1 = 0x00; /初值為0TL1 = 0x00;TR1 = 1; /啟動(dòng)T1while(1) P1 = TL1;/顯示計(jì)數(shù)值低字節(jié) P1 = TH1; /顯示計(jì)數(shù)值高字節(jié)實(shí)驗(yàn)六心得:實(shí)驗(yàn)六要用到單片機(jī)內(nèi)部定時(shí)器的定時(shí)功能,通過(guò)查詢書(shū)本學(xué)習(xí)到了內(nèi)部定時(shí)器的硬件結(jié)構(gòu)和應(yīng)用,熟悉了定時(shí)器T0和T1的兩種用途的其中一種是作為定時(shí)器實(shí)現(xiàn)定時(shí)控制,掌握了TMOD、TCON的意思,也熟悉了使用V

33、SM虛擬示波器來(lái)觀測(cè)波形,也在編程時(shí),熟悉了內(nèi)部定時(shí)器的編程方法。實(shí)驗(yàn)七 鍵盤(pán)設(shè)計(jì)與顯示實(shí)驗(yàn)1、 將AT89C51的P3端口分別連接8個(gè)按鍵,編號(hào)從18, P2端口連接LED數(shù)碼管,在數(shù)碼管上顯示相應(yīng)的鍵值。實(shí)驗(yàn)代碼與結(jié)果: #include#define uchar unsigned char#define uint unsigned intsbit k1=P30;sbit k2=P31;sbit k3=P32;sbit k4=P33;sbit k5=P34;sbit k6=P35;sbit k7=P36;sbit k8=P37;uchar code table=0x3f,0x06,0x5b

34、,0x4f,0x66,0x6d,0x7d,0x07,0x7f;void delayms(uint);uchar num;void delayms(uint xms) uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-);void keyscan() if(k1=0) delayms(10); if(k1=0) num=1;while(!k1); if(k2=0) delayms(10); if(k2=0) num=2;while(!k2);if(k3=0) delayms(10); if(k3=0) num=3;while(!k3);if(k4=0) dela

35、yms(10); if(k4=0) num=4;while(!k4);if(k5=0) delayms(10); if(k5=0) num=5;while(!k5);if(k6=0) delayms(10); if(k6=0) num=6;while(!k6);if(k7=0) delayms(10); if(k7=0) num=7;while(!k7);if(k8=0) delayms(10); if(k8=0) num=8;while(!k8);void main() while(1) keyscan(); P2=tablenum; 2、 一個(gè)4x4的矩陣式鍵盤(pán),以P3.0P3.3作為行線

36、,以P3.4P3.7作為列線,在數(shù)碼管上顯示每個(gè)按鍵相應(yīng)的鍵值“0F”。實(shí)驗(yàn)代碼與結(jié)果:#include #define uchar unsigned charvoid main()P2=0x00; while(1) P3=0xfe; if(P3=0xee)P2=0x3f; if(P3=0xde)P2=0x06; if(P3=0xbe)P2=0x5b; if(P3=0x7e)P2=0x4f; P3=0xfd; if(P3=0xed)P2=0x66; if(P3=0xdd)P2=0x6d;if(P3=0xbd)P2=0x7d;if(P3=0x7d)P2=0x07; P3=0xfb; if(P3=

37、0xeb)P2=0x7f;if(P3=0xdb)P2=0x6f;if(P3=0xbb)P2=0x77;if(P3=0x7b)P2=0x7c; P3=0xf7; if(P3=0xe7)P2=0x39;if(P3=0xd7)P2=0x5e;if(P3=0xb7)P2=0x79;if(P3=0x77)P2=0x71;實(shí)驗(yàn)總結(jié):進(jìn)行這次實(shí)驗(yàn)的過(guò)程中,首先了解了接口電路的工作原理,也了解了鍵盤(pán)和顯示器的接口方法。其中鍵盤(pán)分為獨(dú)立式和矩陣式按鍵,獨(dú)立式按鍵每個(gè)I/O口線接一個(gè)按鍵,而矩陣式鍵盤(pán)由行線和列線組成,按鍵位置交叉點(diǎn)上。實(shí)驗(yàn)七分別是驗(yàn)證獨(dú)立式按鍵和矩陣式按鍵。該編程難度不大,注意好交叉式按鍵的排列

38、即可。實(shí)驗(yàn)八 并行D/A轉(zhuǎn)換實(shí)驗(yàn)1、 編寫(xiě)程序,使之控制D/A轉(zhuǎn)換器DAC0832進(jìn)行轉(zhuǎn)換,能功過(guò)示波器觀察輸出階梯波、三角波、方波、正弦波。實(shí)驗(yàn)代碼與結(jié)果:#include #define uchar unsigned char #define uint unsigned int sbit led1=P11; sbit dawr=P36; sbit dacs=P27; sbit key1=P10; sbit key2=P12; sbit key3=P14; sbit key4=P16; uchar code sin272= /輸出電壓從0到最大值(正弦波1/4部分)0x80,0x83,0x8

39、6,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xf

40、f,0xff,/輸出電壓從最大值到0(正弦波1/4部分)0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x

41、9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,/輸出電壓從0到最小值(正弦波1/4部分)0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/輸出電壓從最小值到0(正弦波1/4部分)0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論