單片機c語言簡單編程_第1頁
單片機c語言簡單編程_第2頁
單片機c語言簡單編程_第3頁
單片機c語言簡單編程_第4頁
單片機c語言簡單編程_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1、點亮2、3、5、8四個發(fā)光二極管。課后作業(yè)#includesbitLED2=P1A0;sbitLED3=P1A3;sbitLED5=P1A5;sbitLED8=P1A6;main()LED2=0;/第二盞燈亮LED3=0;/第三盞燈亮LED5=0;/第五盞燈亮LED8=0;/第八盞燈亮while(1);2、設計走馬燈和數(shù)碼管逐一顯示數(shù)字。課后作業(yè)#includevoidDelay()unsignedintj;j=30000;while(j-);/時間延時函數(shù)voidmain()inta10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0

2、x80,0 x90;/數(shù)碼管顯示段碼intb10=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xaa,0 x55;/點亮燈的段碼unsignedchari;while(1)for(i=0;i10;i+)P1=bi;P2=ai;Delay();3、開關K1控制加,開關K2控制減,開關K3控制復位。當減到小于0的時候再從99開始減,當加到99的時候又從0開始加。課后作業(yè)#includesbitBIT1=P3A0;sbitBIT2=P3A1;sbitButton1=P3A7;sbitButton2=P3A6;sbitButton3=P3A5;u

3、nsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/數(shù)碼管顯示段碼voidDelay(unsignedintt)unsignedinti,j;for(i=0;it;i+)for(j=0;j252;j+);/時間延遲函數(shù)的定義voidmain()chardat=0;/有符號數(shù)intb10=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xaa,0 x55;/跑馬燈顯示的段碼unsignedcharz;while(1)for(z=0;z=99)da

4、t=0;while(Button1=0);/按鍵1是控制加的,當加到大于等于99時又從0開始加if(Button2=0)dat-;if(dat=0)dat=99;while(Button2=0);/按鍵2是控制減的,當減到小于等于0時再從99開始減if(Button3=0)dat=0;while(Button3=0);/按鍵3是控制復位的,任何時候按下就歸4、開始1、2、3、4閃爍,按一下K1,5、6、7、8閃爍,再按一下K1全部閃爍。課堂作業(yè)#includesbitK1=P3A0;unsignedcharstate=0;voidDelay(unsignedintt)unsignedinti,

5、j;for(i=0;it;i+)for(j=0;j=3)state=0;while(K1=0);25、先是1、2、3、4燈閃8下,再5、6、7、8燈閃8下。循環(huán)閃爍。#includevoidDelay()unsignedintj;j=50000;while(j-);main()chari=0;while(1)for(i=0;i16;i+)if(i8)P2=0Xf0;Delay();P2=0 xff;Delay();elseif(i16)P2=0X0f;Delay();P2=0 xff;Delay();6、逐個點亮8個發(fā)光二極管第一次亮一個。最后全亮,然后再重新開始(實驗一1)#includev

6、oidDelay()unsignedintj;j=30000;while(j-);/時間按延時函數(shù)voidmain()inta8=0 xfe,0 xfc,0 xf8,0 xf0,0 xe0,0 xc0,0 x80,0 x00;/點亮燈的段碼unsignedchari;while(1)for(i=0;i8;i+)P2=ai;Delay();7、用中斷函數(shù)控制加減用數(shù)碼管顯示數(shù)字。八盞發(fā)光二極管可以根據(jù)加減控制左右移。課后作業(yè))#include#includeunsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8;unsign

7、edcharx=0 xfe;ss=0;main()IT0=1;EX0=1;IT1=1;EX1=1;EA=1;while(1)P1=x;P2=ass;if(ss9)ss=0;if(ss0)ss=9;voiddat1()interrupt0ss+;x=_crol_(x,1);voiddat2()interrupt2ss-;x=_cror_(x,1);8、按開關K1點亮1、2、3、4,松手滅,開關K2點亮5、6、7、8,松手滅。課堂作業(yè)#includeSbitK1=P3A0;SbitK2=P3A1;Voidmain()Whlie(1)P1=0 xf0;Elseif(K2=0)P1=0 x0f;Els

8、eP1=0 xff;9、點亮一盞燈,并使其閃爍。課堂作業(yè)#includeSbitLED1=P1A0;VoidDelay()Unsignedintj;j=50000;whlie(j-);Voidmain()Whlie(1)LED1=0;Delay();LED1=1;Delay();10、先點亮1、3、5、7燈,熄滅,再點亮2、4、6、8燈。課堂作業(yè)#includevoidDelay(unsignedintt)unsignedinti,j;for(i=0;it;i+)for(j=0;j252;j+);voidmain()inta2=0 xaa,0 x55;unsignedchari;while(1

9、)for(i=0;i2;i+)P1=ai;Delay(100);11、要求使用8個按鍵K1K8,當按下按鍵時,用數(shù)碼管顯示出相應按鍵值K11,K22,。放開時顯示0。實驗二#includesbitK1=P3A0;sbitK2=P3A1;sbitK3=P3A2;sbitK4=P3A3;sbitK5=P3A4;sbitK6=P3A5;sbitK7=P3A6;sbitK8=P3A7;voidmain()while(1)if(K1=0)P2=0 xf9;elseif(K2=0)P2=0 xa4;elseif(K3=0)P2=0 xb0;elseif(K4=0)P2=0 x99;elseif(K5=0)

10、P2=0 x92;elseif(K6=0)P2=0 x82;elseif(K7=0)P2=0 xf8;elseif(K8=0)P2=0 x80;elseP2=0 xc0;12、用中斷程序K3、K4分別控制加減及發(fā)光二極管左右挪動。實驗三實際操作#include#includesbitK3=P3A2;sbitK4=P3A3;unsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;unsignedcharx=0 xfe;ss=0;voiddelay(unsignedintt)unsignedinti,j

11、;for(i=0;it;i+)for(j=0;j9)ss=0;if(ss0)ss=9;voiddat1()interrupt0delay(10);if(K3=0)ss+;x=_crol_(x,1);voiddat2()interrupt2delay(10);if(K4=0)ss-;x=_cror_(x,1);13、8051單片機主振為12MHz,在P1A5引腳上接一個發(fā)光二極管和蜂鳴器,如用T0定時,每1S控制該燈亮一次,一直循環(huán)下去。實驗四,用方式1,1s=10A3ms#includesbittest=P1A5;unsignedchari=0;main()TMOD=0 x01;TH0=155

12、36/256;TL0=15536%256;TR0=1;ET0=1;EA=1;while(1);voidsb()interrupt1TH0=15536/256;TL0=15536%256;i+;if(i19)test=test;i=0;14、制作一個9秒鐘倒計時裝置,時間由一位數(shù)碼管顯示,并要求使用一個按鍵控制倒計時的開始,當時間到0時,停頓計時,并驅動蜂鳴器發(fā)聲。實驗五#includesbitK=P3A1;sbittest=P1A5;unsignedchari=0;ss=9;unsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0

13、xf8,0 x80,0 x90;main()TMOD=0 x01;TH0=15536/256;TL0=15536%256;ET0=1;EA=1;while(1)P2=ass;if(K=0)TR0=1;voidjk()interrupt1TH0=15536/256;TL0=15536%256;i+;if(i19)ss-;i=0;if(ss=0) TR0=0;ss=0;test=test;15、用串口中斷函數(shù)設計出顯示自己姓名首寫字母和學號,式 1 下。 課后作業(yè)#includevoid Send(unsigned char dat) 11.5200MZ、9200b/s,工作在方SBUF=dat;

14、 while(!TI); TI=0;/發(fā)送函數(shù)/發(fā)送/等待發(fā)送完畢TI=1void Delay(unsigned int t) unsigned int i,j;for(i=0;it;i+) for(j=0;j256;j+) ;/時間延遲函數(shù)void UART_Init() SCON=0 x50;TMOD=0X20;TH1=0 xfd;TL1=0 xfd;TR1=1;ES=1;/程序初始函數(shù)/ 0101 0000/ 0010 0000/ 初始值設定/ 備用初始值串口工作在方式一定時器工作在方式二/串口中斷允許/調(diào)用程序初始函數(shù)/ Send(0 x32);/ Send(0 x30);/ Send

15、(0 x30);/ Send(0 x38);/ Send(0 x30);/ Send(0 x33);/ Send(0 x35);/ Send(0 x34);main()UART_Init();while(1)Send(Y);Send(J);Send();Send(2);Send(0);Send(0);Send(8);Send(0);Send(3);Send(5);Send(4);Send();Delay(300);/主函數(shù)16、利用定時器T1,在方式1的工作條件下,定時40ms,P1A0口輸出的周期是80ms,晶振頻率為6MHz。課堂作業(yè)#includesbittest=P1A0;main()TMOD=0 x10;TH1=0 xb1;TL1=0 xe0;TR1=1;ET1=1;EA=1;while(1)voidsb()interrupt3TH1=0 xb1;TL1=0 xe0;test=test;17、T0方式一定時30msT=90ms高電平30ms低電平60ms晶振頻率為12MHz。課堂作業(yè)#includesbitTest=P1A0;unsignedcharflag=1;main()TMOD=0 x01;TH0=0 xba;TL0=0 xd0;TR0=1;ET0=1;EA=1;while(1)voiddat()inter

溫馨提示

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

評論

0/150

提交評論