大連海事大學(xué)單片機(jī)下實(shí)驗(yàn)程序總結(jié)吳穎晶_第1頁(yè)
大連海事大學(xué)單片機(jī)下實(shí)驗(yàn)程序總結(jié)吳穎晶_第2頁(yè)
大連海事大學(xué)單片機(jī)下實(shí)驗(yàn)程序總結(jié)吳穎晶_第3頁(yè)
大連海事大學(xué)單片機(jī)下實(shí)驗(yàn)程序總結(jié)吳穎晶_第4頁(yè)
大連海事大學(xué)單片機(jī)下實(shí)驗(yàn)程序總結(jié)吳穎晶_第5頁(yè)
已閱讀5頁(yè),還剩6頁(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、講義第三章實(shí)驗(yàn)十1、編寫程序,將8XX51單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器20H單元和35H單元的數(shù)據(jù)相乘,結(jié)果存到外部數(shù)據(jù)存儲(chǔ)器中。#include<absacc.h>int xdata *c;main()c=0x0000;DBYTE0x20=0x02;DBYTE0x35=0x03;*c=DBYTE0x20*DBYTE0x35;while(1);2、P1口接8個(gè)發(fā)光二極管LED,編程實(shí)現(xiàn)8個(gè)LED燈依次點(diǎn)亮0.5秒鐘,如此循環(huán)。設(shè)fosc=12MHz。(定時(shí)器采用中斷方式編程)#include<reg51.h>#include<intrins.h>#define u

2、char unsigned char#define uint unsigned intuchar i;uchar a=10;timer0()interrupt 1 using 1TH0=-50000/256;TL0=-5000%256;a-;void main()while(1)TMOD=1;P1=0xfe;TH0=-50000/256;TL0=-5000%256;EA=1;ET0=1;TR0=1;while(1)if(a=0)P1=_crol_(P1,1);a=10;3、 (選作)將內(nèi)部RAM從21H單元開(kāi)始存放的壓縮BCD碼數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),并存入30H為首址的單元,BCD碼的長(zhǎng)度存放在2

3、0H單元中。(沒(méi)有)講義第四章實(shí)驗(yàn)二通過(guò)ADC0809實(shí)現(xiàn)對(duì)電位器輸出的模擬電壓的采集,并將采集到的數(shù)字量顯示到二極管上。#include"reg51.h"#include"absacc.h"#define AD0809 XBYTE0x7000main()unsigned char i, dat=0xff;while(1)AD0809=0x00;/啟動(dòng)AD0809for(i=0;i<200;i+);/延時(shí)等待dat=AD0809;/讀取A/D轉(zhuǎn)換的結(jié)果P1=dat;/送P1顯示講義第四章實(shí)驗(yàn)三利用DAC0832輸出模擬電壓信號(hào),并用運(yùn)算放大器電路反

4、向后進(jìn)行觀察。#include<reg51.h>#include<absacc.h>#define da0832 XBYTE0x7FFFmain()unsigned char i,j;while(1)for(i=0;i<=255;i+)da0832=i; /* 啟動(dòng)轉(zhuǎn)換 */for(j=0;j<=255;j+); /* 延時(shí) */講義第四章實(shí)驗(yàn)七(題目有改動(dòng))1、P1接8個(gè)開(kāi)關(guān),P2接8個(gè)LED,單片機(jī)讀入P1狀態(tài),通過(guò)串行方式1或2自發(fā)自收,從P2口輸出顯示。(實(shí)驗(yàn)代碼丟失,以下僅供參考)#include <reg51.h>void main(

5、)TMOD=0x20;TH1=0xCC;TL1=0xCC;TR1=1; SCON=0x50;/方式二while(1)TI=0;P1=0xFE;SBUF=0xfe;while(RI!=1);RI=0;P1=SUBF;while(TI!=1);2、利用實(shí)驗(yàn)儀D1區(qū)完成按鍵的動(dòng)作判斷、按鍵識(shí)別和功能定義:對(duì)兩個(gè)以上的按鍵進(jìn)行上述操作。具體要求: 4個(gè)按鍵分別對(duì)應(yīng)以下四個(gè)操作 (1)顯示值加1 (2)顯示值減1 (3)顯示值乘2 (4)顯示值除2(實(shí)驗(yàn)代碼丟失,以下僅供參考)#include<reg51.h>#define uchar unsigned char void delay(T)

6、uchar i,j;for(i=0;i<T;i+)for(j=0;j<110;j+);uchar key()uchar data key0,key1;P1=0xFF;key0=P1&0xFF;if(key0=0xFF) return 0;delay(20);key1=P1&0xFF;if(key1=0xFF) return 0;if(key0!=key1) return 0;return key1;main()uchar data value=0;uchar data KEY;while(1)KEY=key();switch(KEY)case 0xFE:value+

7、;break;case 0xFD:value-;break; case 0XFB:value>>1;break; case 0XF7:value<<1;break;P2=value;.講義第四章實(shí)驗(yàn)六1、 設(shè)計(jì)接口、編寫程序,實(shí)現(xiàn)點(diǎn)陣LED的靜態(tài)顯示。(1)利用點(diǎn)陣LED的任意一行,間隔點(diǎn)亮LED(如01010101或10101010);#include <reg51.h>void main()while(1)P1= 0XAA;P0 = 0x01;(2)利用點(diǎn)陣LED的一行,實(shí)現(xiàn)跑馬燈的功能,LED從左到右輪流、循環(huán)顯示。#include <reg51

8、.h>#include <intrins.h>void delay()unsigned char i,j;for(i=0;i<255;i+)for(j=0;j<255;j+);void main()P1= 0XAA;P0 = 0x00;while(1)P1 = _crol_(P1,1);delay();2、編寫程序,實(shí)現(xiàn)點(diǎn)陣LED的動(dòng)態(tài)顯示:在點(diǎn)陣LED上顯示A字符。#include <reg51.h>unsigned char tab0=0xfe,0xfd,0xfb; unsigned char tab1=0xdf,0x8f,0x77;void de

9、lay()unsigned char i,j;for(i=0;i<70;i+)for(j=0;j<50;j+);void main()unsigned char i=0;for(i=0;i<3;i+)P0=tab0i;P1=tab1i;delay();大實(shí)驗(yàn):直流電機(jī)的調(diào)速控制系統(tǒng)(第四章實(shí)驗(yàn)十一)#include <reg51.h>#include <absacc.h> #define uchar unsigned char #define V_TH0 0XFF #define V_TL0 0XD8 #define V_TMOD 0X01sbit P

10、1_0=P10;sbit P1_1=P11;sbit Key_UP=P12;sbit Key_DOWN=P13;sbit Key_STOP=P14; sbit P1_5=P15;sbit P1_6=P16;sbit P1_7=P17;void init_sys(void); /*系統(tǒng)初始化函數(shù)*/ void Delay5Ms(void); uchar KeyV; uchar TempKeyV;uchar flag=0;unsigned char ZDJ_A,ZDJ_B; void main (void) ZDJ_A=40; /*占空比初始值設(shè)定*/ ZDJ_B=70; /*占空比初始值設(shè)定*/

11、 init_sys(); while(1)/*對(duì)按鍵的檢測(cè)*/P1_0=0; P1_1=0; if (Key_UP)KeyV = 1; if (Key_DOWN)KeyV = 2;if (Key_STOP)KeyV = 3; if (KeyV!= 0) Delay5Ms(); if (Key_UP) TempKeyV = 1; if (Key_DOWN) TempKeyV = 2; if (Key_STOP) TempKeyV = 3; /*改變速度*/ if (P1_5=0) /如果按了+鍵,增加占空比 Delay5Ms(); if (P1_5=0) ZDJ_A+; ZDJ_B=100-ZD

12、J_A; if (P1_6=0) /如果按了-鍵,減少占空比 Delay5Ms(); if (P1_6=0) ZDJ_A-; ZDJ_B=100-ZDJ_A; if (P1_7=0)Delay5Ms(); if (P1_7=0) if(ZDJ_A=0)flag=1;if(flag=0)ZDJ_A+; ZDJ_B=100-ZDJ_A; else ZDJ_A-; ZDJ_B=100-ZDJ_A; /* /*函數(shù)功能:對(duì)系統(tǒng)進(jìn)行初始化,包括定時(shí)器初始化和變量初始化*/ /*/void init_sys(void) /*系統(tǒng)初始化函數(shù)*/ /*定時(shí)器初始化*/ TMOD=V_TMOD; TH0=V_T

13、H0; TL0=V_TL0; TR0=1; ET0=1; EA=1; /* /*函數(shù)功能:延時(shí) */ /*/ void Delay5Ms(void) unsigned int TempCyc = 1000; while(TempCyc-); /* /*函數(shù)功能:中斷函數(shù) */ /*/ void timer0(void) interrupt 1 using 2 static uchar click=0; /*中斷次數(shù)計(jì)數(shù)器變量*/ TH0=V_TH0; /*恢復(fù)定時(shí)器初始值*/ TL0=V_TL0; +click; if (click>=100) click=0;if (KeyV=TempKeyV) if (KeyV = 1)if (click<=ZDJ_A) /*當(dāng)小于占空比值時(shí)輸出低電平,高于時(shí)是高電平,從而實(shí)現(xiàn)占空比的調(diào)整*/ P1_0=0; else P1_0=1; if (click

溫馨提示

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