發(fā)光二極管流水燈試驗(yàn)_第1頁
發(fā)光二極管流水燈試驗(yàn)_第2頁
發(fā)光二極管流水燈試驗(yàn)_第3頁
發(fā)光二極管流水燈試驗(yàn)_第4頁
發(fā)光二極管流水燈試驗(yàn)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、文檔 一、實(shí)驗(yàn)?zāi)康模?1.通過AT89C51單片機(jī)控制8個(gè)發(fā)光二極管,八個(gè)發(fā)光二極管分別接在單片機(jī)的 P0.0 P0.7 接口上,輸出“ 0”時(shí),發(fā)光二極管亮。開始時(shí) P0.0P0.1.r P0.7,實(shí)現(xiàn)亮點(diǎn)以1HZ頻率循環(huán) 移動(dòng)。 2. 用PROTEU鍛計(jì),仿真以AT89C51為核心的發(fā)光二極管流水燈實(shí)驗(yàn)裝置。 3. 掌握發(fā)光二極管的控制方法。 、PROTEUS路設(shè)計(jì): 三、程序部分 #include sbit control = P3A7; void delay(int z) ( int x,y; for(x=z;x0;x-) for(y=110;y0;y-); void main() (

2、 int i,tmp; control = 0; P0 = 0 xef; delay(1000); for(i=1;i1)+ 0 x80; delay(1000);實(shí)驗(yàn) 發(fā)光二極管流水燈實(shí)驗(yàn) LM . I/XV PM:*,, P3 -4/A.-IS; PS fi/A-ia P2 ajA i*+ p.TJAia g.r 八如 f3 .3/iN T1 am P3.5H1 P3.6 匝 P3.詭 P2.1M PJ3A11 P;4l2 P2.5/A13 P2J6AH P2.7iA15 EH就爭(zhēng) Cf H 皿 3E JJ&3 文檔 三、程序部分 #include unsigned char ta

3、ble=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82, 0 xF8,0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E,; unsigned char KEY; void main() while(1) KEY = P2; switch(KEY) case 0 xff:P0 = table0;break; case 0 xfe:P0 = table1;break; case 0 xfd:P0 = table2;break; case 0 xfc:P0 = table3;break; case 0 xfb:P0 =

4、 table4;break; case 0 xfa:P0 = table5;break; case 0 xf9:P0 = table6;break; case 0 xf8:P0 = table7;break; case 0 xf7:P0 = table8;break; case 0 xf6:P0 = table9;break; case 0 xf5:P0 = table10;break; case 0 xf4:P0 = table11;break; case 0 xf3:P0 = table12;break; case 0 xf2:P0 = table13;break; case 0 xf1:

5、P0 = table14;break; case 0 xf0:P0 = table15;break; default :break; 文檔 實(shí)驗(yàn)二 外中斷優(yōu)先級(jí)實(shí)驗(yàn) 一、 實(shí)驗(yàn)?zāi)康模?1. 理解單片機(jī)中斷優(yōu)先級(jí)和優(yōu)先權(quán)。 2. 用PROTEUS:計(jì),仿真基丁 AT89C51片機(jī)的中斷優(yōu)先級(jí)實(shí)驗(yàn)。 3. 掌握中斷編程方法。 單片機(jī)主程序控制P0 口數(shù)碼管循環(huán)顯示0 8;外中斷0、外中斷1發(fā)生時(shí)分別在 P2 口、P1 口依次顯示0 8。通過實(shí)驗(yàn)可演示高優(yōu)先級(jí)可中斷低優(yōu)先級(jí),但低優(yōu)先級(jí)的 中斷請(qǐng)求不能中斷高優(yōu)先級(jí)。 二、 PROTEUS路設(shè)計(jì): 三、程序部分 #includeIQ Wk P3 wnY

6、 K也仙 PJ t/n PO.aW P37JPD o fiD5 PD.Fr PSDJffl P2 1 FJ *11 P2.4m2 F2.5/W3 FL6MH P2 J5 文檔 unsigned char code table=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80;/ 管的段碼 int x,y; P0 = tablei; delay(200); void int0()interrupt 0 / 外部中斷0優(yōu)先級(jí)高于外部中斷 1,中斷號(hào)為0 for(i0=0;i09;i0+) / 顯示 08 P2 = tablei0; dela

7、y(200); void int1()interrupt 2 / 外部中斷 1,中斷號(hào)為 2 for(i1=0;i10;x-) for(y=z;y0;y-); int i0=0,i1=0; void main() int i; EX0 = 1; EX1 = 1; IT0 = 1; IT1 = 1; PX0 = 1; PX1 = 0; EA = 1; while(1) for(i=0;i9;i+) /用于中斷0,1顯示數(shù)碼管的變量 /開外部中斷0 /開外部中斷1 /開總中斷 /P0循環(huán)顯示08 文檔 、PROTEUS路設(shè)計(jì): 三、程序部分 #include sbit GE = P2A1; sbi

8、t SHI = P2A0; int count = 0,number = 60; unsigned char code table=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8, 0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E; void delay(int z); void display(); void main() EA = 1; ET0 = 1; TMOD = 0X01; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; TR0 = 1;

9、while(1) display();If XTAL2 3DpF RST C3 AT&9C51 I PiEN HE w 30 31 C2 $ U XTAL1 1J 。1 12 2- -3 3 心以 w w 7 7 FDFDPDPDPDPDPDPD - 10 JF 1 PIDin 1 P112 F123 P1?4 | P14$B P167B P178 ZD J 16 in 12 可 10 P1.D Fl 1 P12 PI.3 PI 4 Fl 5 P1.B Pl.7 P2貝加e P2 1/0 F2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7

10、7A15 P3.D/F?XD F3.1/D P3.2/IW P3,3/n7|T P3.4HD P3.5/H P3.8MW P3.7/RD 文檔 void delay(int z) ( int x,y; for(x=110;x0;x-) for(y=z;y0;y-); void display() ( SHI = 0; GE = 1; P1 = tablenumber%10; delay(10); GE = 0; SHI = 1; P1 = tablenumber/10; delay(10); void time_count() interrupt 1 ( TH0 = (65536-50000)

11、/256; TL0 = (65536-50000)%256; count+; if(count = 20) ( count = 0; number-; if(number 0) number = 59; 又檔 實(shí)驗(yàn)五 矩陣式鍵盤的設(shè)計(jì) 一、 實(shí)驗(yàn)?zāi)康模?1. 掌握鍵盤設(shè)計(jì)中按鍵識(shí)別的原則。 2. 用PROTEUS:計(jì)一個(gè)常規(guī)4X4的矩陣鍵盤。 3. 鍵盤編碼規(guī)則自己定義,分別對(duì)應(yīng)數(shù)字鍵 0-9、A-F,按下對(duì)應(yīng)的按鍵顯示在數(shù) 碼管上顯示對(duì)應(yīng)的數(shù)據(jù)。 二、 PROTEUS路設(shè)計(jì): 三、程序部分 #include sbit show_1 = P1A0; sbit show_2 = P1A1; sb

12、it show_3 = P1A2; sbit show_4 = P1A3; unsigned char j,k,temp,key; unsigned char code table=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8, 0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E,; void delay(unsigned char i); void display(unsigned char num); void key_scan(); void main() while(1) ( key_scan

13、(); -FXTOJ -XTALE -tm FJ.IfTWB FSjaTffTO -u-iIMTI F3. m P3jm .mmiss IF3 7/HE raM M raM M 帽PI11=13HPI11=13H 文檔 display(key); void delay(unsigned char i) ( for(j=i;j0;j-) for(k=110;k0;k-); void display(unsigned char num) ( P0=tablenum; show_4 = 0; void key_scan() ( P2=0 xef; temp=P2; temp=temp&0 x

14、0f; if(temp!=0 x0f) ( delay(10); if(temp!=0 x0f) ( temp=P2; switch(temp) ( case 0 xe7: key=0; break; case 0 xeb: key=1; break; case 0 xed: key=2; break; case 0 xee: key=3; break; while(temp!=0 x0f)temp=P2; temp=temp&0 x0f; display(key); P2=0 xdf; temp=P2; temp=temp&0 x0f; if(temp!=0 x0f) ( d

15、elay(10); if(temp!=0 x0f) ( temp=P2; switch(temp) ( case 0 xd7: key=4; 文檔 break; case 0 xdb: key=5; break; case 0 xdd: key=6; break; case 0 xde: key=7; break; while(temp!=0 x0f) ( temp=P2; temp=temp&0 x0f; display(key); P2=0 xbf; temp=P2; temp=temp&0 x0f; if(temp!=0 x0f) ( delay(10); if(temp

16、!=0 x0f) ( temp=P2; switch(temp) ( case 0 xb7: key=8; break; case 0 xbb: key=9; break; case 0 xbd: key=10; break; case 0 xbe: key=11; break; while(temp!=0 x0f) ( temp=P2; temp=temp&0 x0f; display(key); P2=0 x7f; temp=P2; 文檔 temp=temp&0 x0f; if(temp!=0 x0f) ( delay(10); if(temp!=0 x0f) ( temp

17、=P2; switch(temp) ( case 0 x77: key=12; break; case 0 x7 b: key=13; break; case 0 x7d: key=14; break; case 0 x7e: key=15; break; while(temp!=0 x0f) ( temp=P2; temp=temp&0 x0f; display(key); 文檔 實(shí)驗(yàn)六 AD 轉(zhuǎn)換程序設(shè)計(jì)文檔 、實(shí)驗(yàn)?zāi)康? 1. 掌握轉(zhuǎn)換器ADC0809勺使用。 2. 用PROTEUS:計(jì),仿真基丁 AT89C5仰片機(jī)的A/D轉(zhuǎn)換實(shí)驗(yàn)。 3. 通過改變電位器的值改變模擬量的輸入,經(jīng)

18、轉(zhuǎn)換為數(shù)字量在 LED上顯示,比對(duì) 模擬量和數(shù)字量的關(guān)系。 二、PROTEUS路設(shè)計(jì): 三、程序部分 #include sbit OE = P3A1; sbit START = ?3人3; sbit NUM_1 = P3A4; sbit NUM_2 = P3A5; sbit NUM_3 = P3A6; sbit NUM_4 = P3A7; sbit dp = P1A7; unsigned char code table=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 x

19、79,0 x71; unsigned int date; void show(); void delay(int z) int x,y; for(x=z;x0;x-) for(y=110;y0;y-); RVt 用:W P0TQ1 *2M F23MQ W 1 F2LAL2 P2AA13 V3fl:D E LTE Fjjrwni 口 ETi KE pq$oi fyan/T ex m H4 CUTS Mt MT3 M oun nr CUTri dun AIO A aura wn 1 JUTT MID e c ME 1E 的 WETH 日rayt.:i ra2R:2 II .1 3J IX ATSC5I 文檔 void main() ( EX0 = 1; IT0 = 1; EA = 1; START = 0; START = 1; START = 0; while(1); void over() interrupt 0 ( OE = 1; date = P0; OE = 0; show(); START = 0; START = 1; START = 0; void show() ( NUM_3 = 1; NUM_2 = 1; P1=tabledate/51;

溫馨提示

  • 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)論