單片機大作業(yè)-馬強_第1頁
單片機大作業(yè)-馬強_第2頁
單片機大作業(yè)-馬強_第3頁
單片機大作業(yè)-馬強_第4頁
單片機大作業(yè)-馬強_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《單片機原理與應(yīng)用》

大作業(yè)班級:1411電科姓名:馬強學(xué)號:2016511010《單片機原理與應(yīng)用》大作業(yè)(一)作業(yè)內(nèi)容:基于STC89C51單片機設(shè)計一個流水燈項目。實現(xiàn)功能:(1)實現(xiàn)LED燈的點亮和熄滅。(2)實現(xiàn)LED燈的依次點亮。(3)實現(xiàn)LED燈的循環(huán)點亮。基于以上要實現(xiàn)的目標我進行了設(shè)計和分析,代碼如下:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintvoiddelay(uint);uchartmp,i;voidmain(){tmp=0x7f;P0=tmp;for(i=0;i<7;i++){tmp=_cror_(tmp,1);delay(500);P0=tmp;)P0=0xfe;for(i=0;i<7;i++){tmp=_crol_(tmp,1);delay(500);P0=tmp;)

voiddelay(z){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);仿真結(jié)果:rs.TtinrFXJSfAI+F2.Tf.".l5pnrvA?Dhi□點亮一個LEDBraEraFTlFCIrapFpy依次點亮結(jié)論:U1□123+£-fl-THDDDDDDDDA意歌嘉需2mmF-aEEF-aEEr循環(huán)點亮《單片機原理與應(yīng)用》大作業(yè)(二)作業(yè)內(nèi)容:基于STC89C51單片機設(shè)計一個按鍵控制數(shù)碼管項目。實現(xiàn)功能:(1)數(shù)碼管的點亮。(2)按鍵按下檢測。(3)按鍵“燈”按下數(shù)碼管以2Hz的頻率循環(huán)顯示0?尸,按鍵“長2”按下則數(shù)碼管停止自動循環(huán)顯示并以當前值為基礎(chǔ)按下加一?;谝陨弦獙崿F(xiàn)的目標我進行了設(shè)計和分析,代碼如下:、*****/#include<reg52.h>#defineucharunsignedcharucharcodetable[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};voidk1();voidk2();sbitkey1二P3A0;sbitkey2=P3A1;unsignedinti;voiddelay(unsignedintxms){unsignedintx,y;for(x=xms;x>0;x--)for(y=110;y>0;y--);}voiddelay10ms(unsignedintc){unsignedchara,b;for(;c>0;c--){for(b=38;b>0;b--){for(a=130;a>0;a--);)voidk1(){if(key1==0)(delay10ms(1);for(i=0;i<=15;i++)(P2=table[i];if(key2==0)break;delay(500);if(i==15)(i=0;))))voidk2()(if(key2==0)(P2=table[i];//delay(100);i++;while(key2==0);)if(i>=15)(i=0;))voidmain()(while(1)(k1();k2();仿真結(jié)果:PDU1ADOPD.1/AD1pn^vAtraf口*mPD.4/AD*PDS'h.KPD.&'AIHFO.TWD?pzivasPZ.VJttP32TAC1PZJ'AHPZ.4/A1ZP2S'h.13P2.S'A1+PW.T帆PDU1ADOPD.1/AD1pn^vAtraf口*mPD.4/AD*PDS'h.KPD.&'AIHFO.TWD?pzivasPZ.VJttP32TAC1PZJ'AHPZ.4/A1ZP2S'h.13P2.S'A1+PW.T帆15LUF3JSRH&叮NDEPl^JWTTPmtiEP3£irT1P3jSmJR

rj.Ti'KT僧工3皂)-HllwbI]pcnrAonPd.IMD1即割口工PD^D3PQ.4^AD+PESfAtrS叩期0日PD.?^Ab7FE£IASFZ.IlABP1W1口F33fA11P7£VA13P7SA1?P3.7^A1£P(guān)3IVHXDPXIPT^DP32.'7WTHraarTSTT門.打口F3*3T1P3.QWHra.Trfrr結(jié)論:《單片機原理與應(yīng)用》大作業(yè)(三)作業(yè)內(nèi)容:基于STC89C51單片機設(shè)計一個AD轉(zhuǎn)換項目。實現(xiàn)功能:(1)使用ADC0808芯片對模擬信號進行采樣。(2)使用6位數(shù)碼顯示AD轉(zhuǎn)換結(jié)果?;谝陨弦獙崿F(xiàn)的目標我進行了設(shè)計和分析,代碼如下:#include<reg51.h>#include<absacc.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#definePA8255XBYTE[0x4000]#definePB8255XBYTE[0x4001]#definePC8255XBYTE[0x4002]#definePD8255XBYTE[0x4003]#defineIN4_ADC0808XBYTE[0x8004]sbitwr_ADC0808=P3A6 ;sbitrd_ADC0808=P3A7 ;sbitEOC=P1A0;ucharLED_DATA[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xff};ucharLED_NUM[]={0xFE, //LED10xFD, //LED20xFB, //LED30xF7, //LED40xEF, //LED50xDF //LED6};ucharKEY_number[]={0x77,0xb7,0xd7,0xe7,0x7b,0xbb,0xdb,0xeb,0x7d,0xbd,0xdd,0xed,0x7e,0xbe,0xde,0xee};voiddelayms(uintxms)7uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);)voidini_8255()(PD8255=0x81;)voiddisplay(uchardisplay_num,uchardisplay_data)(if((display_num>=0x01)&&(display_num<=0x06))(uchari=1;PA8255=LED_NUM[display_num-i];LED1PB8255=LED_DATA[display_data];delayms(5);))/////////////////////////////////以下為主程序//////////////////////////////////////voidmain()(ucharkey1,key2,key3,key4;key2=0;ini_8255();while(1)(IN4_ADC0808=0;while(EOC!=0);key4=IN4_ADC0808;key3=(key4/100);key2=(key4/10)%10;key1=(key4%10);display(1,key3);display(2,key2);display(3,key1);)

仿真結(jié)果:《單片機原理與應(yīng)用》大作業(yè)(四)作業(yè)內(nèi)容:基于STC89C51單片機設(shè)計一個DA轉(zhuǎn)換項目。實現(xiàn)功能:(1)使用DAC0832芯片進行數(shù)字量=>模擬量。(2)使用示波器顯示DA轉(zhuǎn)換結(jié)果?;谝陨弦獙崿F(xiàn)的目標我進行了設(shè)計和分析,代碼如下:/ *L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*/*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//#defineucharunsignedchar#defineunsingedint#defineDAC0832XBYTE[0x6000]uchari=0;ucharflag=0;voiddelay20ms(void)(unsignedchara,b;for(b=215;b>0;b--)for(a=45;a>0;a--);)voiddelay78us(void)(unsignedchara,b;for(b=1;b>0;b--)10for(a=35;a>0;a--);voidInitTimerl(void)(TMOD=0x10;TH1=0x67;TL1=0x6A;EA=1;ET1=1;TR1=1;)/////////////////////////////////////////////voidmain()(InitTimer1();while(1)(DAC0832=0;delay20ms();DAC0832=0xff;delay20ms();for(i=0;i<=0xff;i++)11TOC\o"1-5"\h\z// {// DAC0832=i;// delay78us();// )//for(i=0;i<0xff;i++)// {// DAC0832=i;// delay78us();// )//for(i=0xff;i>0;i--)// {// DAC0832=i;// delay78us();// )// if(flag==0)// {// i++;// DAC0832= i;// )// else// {//i--;12//DAC0832=i;// )))voidint_timer1(void)interrupt3(TH1=0x67;TL1=0x6A;if(i==256)(flag=1;)if(i==0)(flag=0;))仿真結(jié)果:13■Tr:!r:r—結(jié)論:AD轉(zhuǎn)換結(jié)果所用元器件參數(shù)STC89C51STC89C51RC是采用8051核的ISP(InSystemProgramming)在系統(tǒng)可編程芯片,最高工作時鐘頻率為80MHz,片內(nèi)含8KBytes的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,具有在系統(tǒng)可編程(ISP)特性,配合PC端的控制程序即可將用戶的程序代碼下載進單片機內(nèi)部,省去了購買通用編程器,而且速度更快。STC89C51RC系列單片機是單時鐘/機器周期(1T)的兼容8051內(nèi)核單片機,是高速/低功耗的新一代8051單片機,14

全新的流水線/精簡指令集結(jié)構(gòu),內(nèi)部集成MAX810專用復(fù)位電路。ADC0808ADC0808是采樣分辨率為8位的、以逐次逼近原理進行模/數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。ADC0808是ADC0809的簡化版本,功能基本相同。一般在硬件仿真時采用ADC0808進行A

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論