久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于單片機(jī)的實(shí)驗(yàn)報(bào)告5則范文

時(shí)間:2019-05-12 08:38:45下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《基于單片機(jī)的實(shí)驗(yàn)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《基于單片機(jī)的實(shí)驗(yàn)報(bào)告》。

第一篇:基于單片機(jī)的實(shí)驗(yàn)報(bào)告

基于AT89C52的電子時(shí)鐘設(shè)計(jì)

學(xué)生姓名 學(xué) 號(hào) 所在學(xué)院 專(zhuān)業(yè)名稱(chēng) 班 級(jí) 指導(dǎo)教師 成 績(jī)

四川師范大學(xué)成都學(xué)院 二O一五年十二月

基于AT89C52的電子時(shí)鐘設(shè)計(jì)

摘要:

單片機(jī)在電子產(chǎn)品中的應(yīng)用越來(lái)越廣泛,特別是51系列的單片機(jī),由于其使用方便、價(jià)格 低廉等優(yōu)勢(shì),在市場(chǎng)上占有很大的份額。AT89C52就是51系列中的一個(gè)比較成熟的型號(hào)。本設(shè)計(jì)是一個(gè)多功能的實(shí)時(shí)時(shí)鐘,帶秒表、整點(diǎn)報(bào)時(shí)、鬧鈴、調(diào)整時(shí)間等功能??砂存I直接設(shè)置鬧鈴時(shí)間。由AT89C51單片機(jī)、DS1302、LCD1602等模塊組成?,F(xiàn)代社會(huì),時(shí)間就是金錢(qián),時(shí)鐘是每個(gè)人的必備品。本設(shè)計(jì)實(shí)現(xiàn)了所需功能,給大家?guī)?lái)方便,整體性好、人性化強(qiáng)、可靠性高,實(shí)現(xiàn)了時(shí)鐘的多功能應(yīng)用。

關(guān)鍵詞:電子時(shí)鐘;DS1302;LCD1602;

Abstract: Single-chip computer is finding wider and wider application in the electronic products, especially the 51 series microcontroller, due to its convenience, price is low wait for an advantage, holds a large share in the market.AT89C52 is 51 series of a more mature model.This design is a multi-function real-time clock, stopwatch, adjusting time of the hour, alarm, etc.Can be directly set alarm time button.Composed of AT89C51, DS1302 and LCD1602 module.Modern society, time is money, the clock is an essential for everyone.This design can realize the function needed, bring convenience, integral sex is good, human nature is strong, high reliability, realize the multifunctional application of clock.Keywords: electronic;clock;DS1302

II

目錄

引言:..............................................................1 1.設(shè)計(jì)要求與方案....................................................1 1.1 設(shè)計(jì)要求:....................................................1 1.2 系統(tǒng)基本方案選擇..............................................1

1.2.1單片機(jī)芯片的選擇方案和論證.............................1 1.2.2 顯示模塊選擇方案和論證.................................2 1.2.3時(shí)鐘芯片的選擇方案和論證...............................2

2.設(shè)計(jì)方案的選擇....................................................3 2.1計(jì)時(shí)方案.....................................錯(cuò)誤!未定義書(shū)簽。2.2 單片機(jī)的基本結(jié)構(gòu).............................錯(cuò)誤!未定義書(shū)簽。2.3數(shù)字鐘的構(gòu)成..................................................4 2.4數(shù)字鐘組成框圖................................................4

2.4.1晶體振蕩器電路.........................................4 2.4.2 整點(diǎn)報(bào)時(shí)電路...........................................4

3.系統(tǒng)的軟件設(shè)計(jì)...................................................4 3.1程序流程圖....................................................4 3.2程序的設(shè)計(jì)....................................................6 4.實(shí)驗(yàn)箱調(diào)試結(jié)果....................................................8 5.總結(jié)心得體會(huì):....................................................9

III

引言:

隨著科技的快速發(fā)展,時(shí)間的流逝,從觀太陽(yáng)、擺鐘到現(xiàn)在電子鐘,人類(lèi)不斷研究,不斷創(chuàng)新紀(jì)錄。美國(guó)DALLAS公司推出的具有涓細(xì)電流充電能的低功耗實(shí)時(shí)時(shí)鐘電路DS1302。它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子時(shí)鐘采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。該設(shè)計(jì)以AT89C51單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電。

綜上所述,此電子時(shí)鐘具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。

1.設(shè)計(jì)要求與方案

1.1 設(shè)計(jì)要求:

(1)啟動(dòng)時(shí)顯示制作的年、月、日、制作者的學(xué)號(hào)等信息。(2)24小時(shí)計(jì)時(shí)功能(精確到秒)(3)整點(diǎn)報(bào)時(shí)功能。(4)秒表功能

(5)省電功能模式(未設(shè)計(jì))1.2 系統(tǒng)基本方案選擇

1.2.1單片機(jī)芯片的選擇方案和論證 方案一: 采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在線(xiàn)編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。方案二:

采用AT89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時(shí) 也與MCS-51系列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為8KB ROM 存儲(chǔ)空間,同樣具有89C51的功能,且具

有在線(xiàn)編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略?/p>

功能需要燒入程序時(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。相比之下,我們?cè)趯?shí)驗(yàn)箱實(shí)際仿真時(shí)選擇采用AT89S52作為主控制系統(tǒng),由于proteus庫(kù)中沒(méi)有AT89S52,在原理圖仿真時(shí)采用了AT89C51 1.2.2 顯示模塊選擇方案和論證 方案一:

采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高所以也不用此種作為顯示.方案二:

采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,顯示多樣,清晰可見(jiàn) 本設(shè)計(jì)采用LCD1602 1.2.3時(shí)鐘芯片的選擇方案和論證 方案一:

直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、時(shí)、分、秒計(jì)

數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。

方案二:

采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)

秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM 做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA.綜上各方案所述,對(duì)此次作品的方案選定: 采用AT89C52作為主控制系統(tǒng),DS1302提供時(shí)鐘計(jì)時(shí),LCD1602屏幕顯示.2 2為一個(gè)分頻器來(lái)使用。對(duì)于芯片的使用,我們應(yīng)該在了解它的各項(xiàng)功能的前提條件下,靈活巧妙地運(yùn)用。具體的芯片資料和圖片我們通過(guò)查閱相關(guān)的書(shū)籍,在網(wǎng)上能夠很方便的查找。

經(jīng)過(guò)這次電子鐘作品設(shè)計(jì)與制作讓我收獲很多:

一、讓我明白了“三個(gè)臭皮匠頂一個(gè)諸葛亮”和“團(tuán)結(jié)就是力量”等名言名句的道理,讓我明白只要我們團(tuán)結(jié)協(xié)作沒(méi)有什么困難是戰(zhàn)勝不了的,團(tuán)結(jié)讓我們成功,團(tuán)結(jié)讓我們勝利,團(tuán)結(jié)讓我們的力量更大;

二、增進(jìn)我和老師同學(xué)之間的友誼情感,在與老師互動(dòng)學(xué)習(xí)的過(guò)程中使我體會(huì)了老師解決問(wèn)題的方法與思路,讓我領(lǐng)會(huì)了解決問(wèn)題精髓,使我們學(xué)習(xí)更有活力更有信心更有自信,培養(yǎng)了我們的協(xié)助合作能力;

三、培養(yǎng)了我們的動(dòng)手能力和獨(dú)立解決問(wèn)題的能力;

四、培養(yǎng)了我們的自主學(xué)習(xí)能力和利用網(wǎng)上這個(gè)廣闊平臺(tái)的學(xué)習(xí)能力;

五、使我學(xué)會(huì)了用專(zhuān)用的畫(huà)圖工具和畫(huà)圖軟件Protel99SE畫(huà)電路圖的能力,通過(guò)這次作品的制作使我對(duì)Protel99SE原來(lái)的不熟悉到現(xiàn)在的比較熟練,畫(huà)的圖也比原來(lái)更合理,速度更快了;

六、鍛煉了我們的焊接技術(shù)和焊接工藝,使我的焊接能力上了一個(gè)臺(tái)階;

七、培養(yǎng)了我管理和協(xié)調(diào)各項(xiàng)工作的能力,在制作的過(guò)程中也有不協(xié)調(diào)的一面但我都能一一克服了,這也使我在管理等方面能力的提高。2.3數(shù)字鐘的構(gòu)成

數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路。由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間(如北京時(shí)間)一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1HZ時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定。通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘。2.4數(shù)字鐘組成框圖 2.4.1晶體振蕩器電路

晶體振蕩器電路給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的32768Hz的方波信號(hào),可保證數(shù)字鐘的走時(shí)準(zhǔn)確及穩(wěn)定。不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路。一般輸出為方波的數(shù)字式晶體振蕩器電路通常有兩類(lèi),一類(lèi)是用TTL門(mén)電路構(gòu)成;另一類(lèi)是通過(guò)CMOS非門(mén)構(gòu)成的電路,本次設(shè)計(jì)采用了后一種。如圖(b)所示,由CMOS非門(mén)U1與晶體、電容和電阻構(gòu)成晶體振蕩器電路,U2實(shí)現(xiàn)整形功能,將振蕩器輸出的近似于正弦波的波形轉(zhuǎn)換為較理想的方波。輸出反饋電阻R1為非門(mén)提供偏置,使電路工作于放大區(qū)域,即非門(mén)的功能近似于一個(gè)高增益的反相放大器。電容C1、C2與晶體構(gòu)成一個(gè)諧振型網(wǎng)絡(luò),完成對(duì)振蕩頻率的控制功能,同時(shí)提供了一個(gè)180度相移,從而和非門(mén)構(gòu)成一個(gè)正反饋網(wǎng)絡(luò),實(shí)現(xiàn)了振蕩器的功能。由于晶體具有較高的頻率穩(wěn)定性及準(zhǔn)確性,從而保證了輸出頻率的穩(wěn)定和準(zhǔn)確。(f)帶有消抖電路的校正電路

2.4.2 整點(diǎn)報(bào)時(shí)電路

電路應(yīng)在整點(diǎn)前10秒鐘內(nèi)開(kāi)始整點(diǎn)報(bào)時(shí),即當(dāng)時(shí)間在59分50秒到59分59秒期間時(shí),報(bào)時(shí)電路報(bào)時(shí)控制信號(hào)。

當(dāng)時(shí)間在59分50秒到59分59秒期間時(shí),分十位、分個(gè)位和秒十位均保持不變,分別為5、9和5,因此可將分計(jì)數(shù)器十位的QC和QA、個(gè)位的QD和QA及秒計(jì)數(shù)器十位的QC和QA相與,從而產(chǎn)生報(bào)時(shí)控制信號(hào)。報(bào)時(shí)電路可選74HC30來(lái)構(gòu)成。74HC30為8輸入與非門(mén)。

3.系統(tǒng)的軟件設(shè)計(jì)

3.1程序流程圖

圖-A 主程序流程圖

圖-B 整程序流程圖

間調(diào)

時(shí) 3.2程序的設(shè)計(jì) 程序

#include #include #include #include

#define uchar unsigned char #define uint unsigned int #define TIME(0X10000-50000)#define FLAG 0xf4 //鬧鐘標(biāo)志

sbit rst=P1^2;//DS sbit clk=P1^0;sbit dat=P1^1;sbit rs=P2^0;//LCD sbit rw=P2^1;sbit e=P2^2;sbit beep=P1^3;sbit mbkey=P1^4;

uchar k;uchar flag;uchar i=20,j,time1[16];uchar alarm[2],time2[15],time[3];time5[3];uchar code Day[]={31,28,31,30,31,30,31,31,30,31,30,31};//12個(gè)月的最大日期(非閏年)uchar //ms秒表進(jìn)數(shù),mbmiao.mbfe秒表的秒.分,key2num是key5的計(jì)數(shù)

key2num,ms=0,mbmiao=0,mbfen=0,mbkeynum,num;uchar code table[]=“ 32210324 GYY”;uchar code table1[]=“ 32210326 GLQ”;uchar code table4[]=“ 00:00:00 MB ”;

void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}

delay1ms(uchar time)//延時(shí)1ms { uchar i,j;for(i=0;i

//LCD驅(qū)動(dòng)部分 enable(){ rs=0;rw=0;e=0;delay1ms(3);e=1;} write2(uchar i){ P0=i;rs=1;rw=0;e=0;7 delay1ms(2);e=1;} write1(uchar data *address,m){ uchar i,j;for(i=0;i

實(shí)現(xiàn)功能的具體方法:

時(shí)鐘主界面時(shí)按下K1鍵進(jìn)入秒表功能,按K2秒表開(kāi)始,再按K3秒表停,按鍵K4返回時(shí)間顯示;按K4開(kāi)始調(diào)試(移位“年→秒”),接著按K2、K3調(diào)節(jié)時(shí)間增減;按K2開(kāi)啟鬧鐘,K3調(diào)節(jié)時(shí)間,K4(移位“時(shí)分”);按“年→秒”的順序移位,按鍵K2進(jìn)行減運(yùn)算,按鍵K3進(jìn)行加運(yùn)算,按鍵K1返回到主界面并顯示設(shè)置值。

按下K3鍵,實(shí)現(xiàn)鬧鐘定時(shí)調(diào)整,按鍵K4進(jìn)行“分-秒”移位,按鍵K3進(jìn)行 上調(diào),按鍵K2返回到主界面。

主界面K2實(shí)現(xiàn)開(kāi)啟/關(guān)閉鬧鐘的功能。按下K1鍵進(jìn)入秒表,按鍵K2開(kāi)始計(jì)時(shí),K3暫停計(jì)時(shí),K4返回到主界面。

5.總結(jié)心得體會(huì):

通過(guò)這次電子時(shí)鐘設(shè)計(jì),其中理論設(shè)計(jì)又包括選擇總體方案,硬件系統(tǒng)設(shè)計(jì)、軟件系統(tǒng)設(shè)計(jì);硬件設(shè)計(jì)包括單元電路,選擇元器件及計(jì)算參數(shù)等;軟件設(shè)計(jì)包括模塊化層次結(jié)構(gòu)圖,程序流程圖。程序設(shè)計(jì)是課程設(shè)計(jì)的關(guān)鍵環(huán)節(jié),開(kāi)始以為時(shí)鐘會(huì)很簡(jiǎn)單,就算遇到問(wèn)題應(yīng)該也很好解決,但當(dāng)自己真正去做的時(shí)候,發(fā)現(xiàn)了好多困難。于是查資料,問(wèn)同學(xué)和老師。經(jīng)過(guò)老師和同學(xué)的探討,通過(guò)調(diào)試進(jìn)一步完善程序設(shè)計(jì),最后雖然省電模式?jīng)]實(shí)現(xiàn)但其他基本達(dá)到課題所要求的指標(biāo)。完成了實(shí)習(xí)任務(wù)。這次實(shí)習(xí)我更加了解了單片機(jī)的應(yīng)用,更加牢牢的掌握了書(shū)本知識(shí)與現(xiàn)實(shí)的結(jié)合,總之這是實(shí)習(xí)收獲很大,以后還需多動(dòng)手實(shí)踐,多練習(xí)編程,才能熟練掌握單片機(jī)。

最后劉強(qiáng)老師的支持與幫助,感謝他的意見(jiàn)和建議,使這次的設(shè)計(jì)與制作少走了彎路,我感謝他。

第二篇:?jiǎn)纹瑱C(jī)實(shí)驗(yàn)報(bào)告[范文模版]

實(shí) 實(shí) 驗(yàn) 驗(yàn) 報(bào) 報(bào) 告

實(shí)驗(yàn)課程:

單片機(jī)原理及應(yīng)用

級(jí):

自動(dòng)化 2 班

學(xué)

號(hào):

名:

師:

成績(jī):

實(shí) 驗(yàn) 日 期 :

****年**月**日

實(shí)驗(yàn)名稱(chēng):

實(shí)驗(yàn) 1-—計(jì)數(shù)顯示器

一、實(shí)驗(yàn)?zāi)康? 學(xué)習(xí)Proteus 軟件得使用,掌握單片機(jī)原理圖得繪圖方法。

二、實(shí)驗(yàn)內(nèi)容:

?1、繪制“計(jì)數(shù)顯示器”電路原理圖;2、利用提供得hex 文件驗(yàn)證此電路得運(yùn)行效果。

三、實(shí)驗(yàn)要求:

提交得實(shí)驗(yàn)報(bào)告中應(yīng)包括:1、繪圖方法簡(jiǎn)述,要求說(shuō)明元件與電源得選取、擺放及屬性編輯,總線(xiàn)與標(biāo)簽得畫(huà)法等內(nèi)容;2、電路原理圖;3、仿真運(yùn)行效果展示,要求就仿真文件加載方法及 3~4幅運(yùn)行截圖進(jìn)行簡(jiǎn)要說(shuō)明;4、實(shí)驗(yàn)小結(jié),說(shuō)明遇到得主要問(wèn)題或?qū)嶒?yàn) 1 體會(huì)等.參考電路原理圖如下:

元件類(lèi)別 電路符號(hào) 元件名稱(chēng) Microprocessor ICs “U1“ 80C51 Miscellaneous “X1”/12MHz CRYSTAL Capacitors “C1”~“C2”/1nF CAP Capacitors “C3”/22μF CAP—ELEC Resistors Packs “RP1“/7—100Ω RESPACK—7 Resistors “R1"/100Ω RES Optoelectronics “LED1”~“LED2” 7SEG--CAT-GRN Switches & Relays “BUT” BUTTON 1、、及 編程思路及 C51 源程序:

2、電路原理圖:

3、仿真運(yùn)行效果展示:

4、實(shí)驗(yàn)小結(jié) :

熟悉Proteus 軟件,了解軟件得結(jié)構(gòu)組成與功能;學(xué)習(xí)ISIS 模塊得使用方法,學(xué)會(huì)設(shè)置圖紙、選元件、線(xiàn)畫(huà)總線(xiàn)、修改屬性等基本操作;學(xué)會(huì)可執(zhí)行文件 加載及程序仿法;理解Proteus在單片機(jī)開(kāi)發(fā)中得作用,完成單片機(jī)電路原 理圖得繪制. 實(shí)驗(yàn)名稱(chēng):

實(shí)驗(yàn) 2——LED 指示燈循環(huán)控制

一、實(shí)驗(yàn)?zāi)康?熟悉μVision3 編譯軟件、掌握 C51編程與調(diào)試方法。

二、

實(shí)驗(yàn)內(nèi)容 1、按照教材 P243 得圖 A、34,繪制實(shí)驗(yàn)二電路原理圖; 2、編寫(xiě) C51 程序,實(shí)現(xiàn) 8 個(gè) LED 燈依次點(diǎn)亮得功能: P0、0→P0、1→ P0、2→P0、3→ ┅ →P0、7→P0、6→P0、5→ ┅ →P0、0 得順序,無(wú)限循環(huán),間隔約50ms; 3、觀察仿真結(jié)果,完成實(shí)驗(yàn)報(bào)告。

三、

實(shí)驗(yàn)要求 1、采用兩種加載并運(yùn)行可執(zhí)行文件得方法,即proteus獨(dú)立運(yùn)行與prote

us + Keil 聯(lián)合運(yùn)行,體會(huì)其中得差異與意義;2、練習(xí)采用單步、斷點(diǎn)以及監(jiān)視窗等手段進(jìn)行程序調(diào)試得方法;3、觀察仿真結(jié)果,完成實(shí)驗(yàn)報(bào)告:繪制得電路原理圖、編程思路分析及 C51源程序、調(diào)試過(guò)程簡(jiǎn)述,仿真運(yùn)行效果以及實(shí)驗(yàn)小結(jié)。、電路原理圖:

及 2、編程思路及 C51 源程序:、仿真運(yùn)行效果:、實(shí)驗(yàn)小結(jié) :

通過(guò)本次實(shí)驗(yàn)我熟悉 uVision3 編譯軟件了解軟件得結(jié)構(gòu)組成與功能學(xué)習(xí)C51 語(yǔ)言得程序設(shè)計(jì)方法)學(xué)會(huì)在 uVision3中進(jìn)行 C51 程序錄入、編譯、與 調(diào)試?yán)斫?Proteus 與 Keil 聯(lián)合得仿真原理實(shí)現(xiàn) LED 指示燈循環(huán)控制功能。

更好得將 C 語(yǔ)言與 C51 語(yǔ)言聯(lián)系在了一起)學(xué)到得知識(shí)能準(zhǔn)確得利用了出來(lái)。

實(shí)驗(yàn)名稱(chēng):

實(shí)驗(yàn)3——指示燈與數(shù)碼管得中斷控制

一、實(shí) 驗(yàn)?zāi)康?掌握外部中斷得工作原理,學(xué)會(huì)中斷程序設(shè)計(jì).二、實(shí)驗(yàn)內(nèi)容 1、按照教材帕圖 A、53,繪制實(shí)驗(yàn)四電路原理圖;2、要求采用外部中斷原理完成本次實(shí)驗(yàn),其中按鍵 K1、K2 均設(shè)置為下降沿觸發(fā)方式,自然優(yōu)先級(jí); 3、編寫(xiě) C51 程序?qū)崿F(xiàn)如下功能:開(kāi)機(jī)后 D1滅燈,LED1黑屏,隨后單擊 K1→D1狀態(tài)反轉(zhuǎn),單擊 K2 →LED1 從 0 開(kāi)始循環(huán)顯示0~F 字符。

4、觀察仿真結(jié)果,完成實(shí)驗(yàn)報(bào)告。

三、

實(shí)驗(yàn)要求 提交得實(shí)驗(yàn)報(bào)告中應(yīng)包括:電路原理圖,外部中斷工作原理闡述(以 K1 為例說(shuō)明中斷響應(yīng)過(guò)程),C51 源程序(含流程圖與注釋語(yǔ)句),運(yùn)行效果(含運(yùn)行截圖

與說(shuō)明),實(shí)驗(yàn)小結(jié). 1、電路原理圖 :

2、外部中斷工作原理闡述:

持續(xù)按下 K1 則 D1 將“亮→滅→亮→滅→?→亮→滅如此循環(huán),表明實(shí)現(xiàn)了 K1 對(duì)應(yīng)于 D1 狀態(tài)反轉(zhuǎn)這個(gè)功能;持續(xù)按下持續(xù)按 K2 則數(shù)碼顯示管依次顯 示 1-F,實(shí)現(xiàn)了 K2 對(duì)應(yīng)于 0~F 間得數(shù)碼管加一計(jì)數(shù)顯示.

3、、及 編程思路及 C51 源 源 程序:、仿真運(yùn)行效果:

5、實(shí)驗(yàn)小結(jié):

通過(guò)實(shí)驗(yàn)對(duì) Protues 有了更多得了解,同時(shí)了解到中斷系統(tǒng)在實(shí)際中得更好 應(yīng)用。經(jīng)過(guò)編程操作起來(lái)更加熟練能很快得完成繪圖,編程時(shí)也得心應(yīng)手,能熟練得運(yùn)用軟件找出自己所編程中得語(yǔ)法問(wèn)題及其她問(wèn)題,并以改正。

實(shí)驗(yàn)名稱(chēng):

實(shí)驗(yàn)4—-電子秒表顯示器

一、實(shí) 實(shí) 驗(yàn)?zāi)康?掌握定時(shí)/計(jì)數(shù)器得中斷法工作原理,熟悉 C51 編程與調(diào)試方法

二、實(shí)驗(yàn)要求:

1、實(shí)驗(yàn)電路原理圖如教材 P260 A、65 圖所示.程序開(kāi)始時(shí)顯示“00”;當(dāng)1s 產(chǎn)生時(shí),秒計(jì)數(shù)加1;秒計(jì)數(shù)到 59 后,自動(dòng)從“00”開(kāi)始。

2、采用12MHz晶振頻率,T0 定時(shí)方式 1、50ms 定時(shí)中斷法編程(1s 需要經(jīng)過(guò) 20 軟循環(huán))(流程圖與參考程序模版如下所示).//定時(shí)中斷方式實(shí)現(xiàn)得電子秒表

15()件文頭?(定義無(wú)符號(hào)字符型變量 t—-中斷次數(shù)計(jì)數(shù)器,并賦初值0(定義無(wú)符號(hào)字符型變量 second—-秒計(jì)數(shù)器,并賦初值 0(定義位于 ROM 區(qū)得無(wú)符號(hào)字符型數(shù)組table-—顯示字模)timer0()

(中斷函數(shù)關(guān)鍵詞){ ?()0T 閉關(guān)?(初值重裝載 0x3cb0)

()1增器數(shù)計(jì)數(shù)次斷中? {)02==t(fi??

?

// 秒1于當(dāng)相,次 02斷中若?

;0=t???????? //中斷次數(shù)計(jì)數(shù)器清零 ?

;++dnoces?? ? // 零清器數(shù)計(jì)秒?

}()零清,06 到達(dá)值器數(shù)計(jì)秒若??()值示顯得 dnoces 量變出輸別分口 2P與0P?()0T動(dòng)啟??} main(){

?

;]01/dnoces[elbat=0P?? // 值示顯出輸別分口 2P 與 0P?

;]01%dnoces[elbat=2P?(定義T0 定時(shí)方式 1—-TMOD)05()0LT與0HT——載加0bc3x0值初出溢 sm?()AE,0TE——化始初斷中?(啟動(dòng) T0)

(死循環(huán))3、編程思路及C1 51 源程序: :

4、仿真運(yùn)行效果:

5、實(shí)驗(yàn)小結(jié) :

本次實(shí)驗(yàn)進(jìn)行得比較順利,根據(jù)指導(dǎo)材料中提供得流程圖完成了源程序得編 寫(xiě),成功生成了、hex文件,經(jīng)過(guò)仿真運(yùn)行達(dá)到了預(yù)期得實(shí)驗(yàn)結(jié)果.通過(guò)本次得 實(shí)驗(yàn),我更加深入得了解到單片機(jī)定時(shí)/計(jì)數(shù)功能實(shí)現(xiàn)得機(jī)理,通過(guò)與單片機(jī)中 斷功能得結(jié)合,可以完成更多得預(yù)期功能。但就是進(jìn)過(guò)討論我也發(fā)現(xiàn),程序還就是存 在很大得缺陷,想要實(shí)現(xiàn)更加準(zhǔn)確實(shí)現(xiàn)計(jì)時(shí)功能還需綜合利用各種知識(shí)完善程 序。

第三篇:?jiǎn)纹瑱C(jī)實(shí)驗(yàn)報(bào)告

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

實(shí) 驗(yàn) 報(bào) 告

2017—2018學(xué)年第一學(xué)期

班級(jí): 152 專(zhuān)業(yè): 電子科學(xué)與技術(shù) 姓名: 子路 學(xué)號(hào): 教師:

實(shí)驗(yàn)一:Keil C51

一、實(shí)驗(yàn)?zāi)康?/p>

1、熟悉Keil C51單片機(jī)應(yīng)用開(kāi)發(fā)系統(tǒng)

2、熟悉Keil C51的調(diào)試技巧

二、實(shí)驗(yàn)內(nèi)容

1、安裝好了Keil軟件以后,我們打開(kāi)它。打開(kāi)以后界面如下:

2、我們先新建一個(gè)工程文件,點(diǎn)擊“Project->New Project?”菜單,如下圖:

3、選擇工程文件要存放的路徑 ,輸入工程文件名 LED, 最后單擊保存.4、在彈出的對(duì)話(huà)框中選擇 CPU 廠商及型號(hào)

5、選擇好 Atmel 公司的 AT89S52 后 , 單擊確定

6、在接著出現(xiàn)的對(duì)話(huà)框中選擇“是”。

7、新建一個(gè) C51 文件 , 單擊左上角的 New File 如下圖所示:

8、保存新建的文件,單擊SAVE如下圖:

9、在出現(xiàn)的對(duì)話(huà)框中輸入保存文件名MAIN.C(注意后綴名必須為.C),再單擊“保存”,如下圖:

10、保存好后把此文件加入到工程中方法如下 : 用鼠標(biāo)在 Source Group1 上單擊右鍵 , 然后再單擊 Add Files to Group ‘Source Group 1' 如下圖:

11、選擇要加入的文件 , 找到 MAIN.C 后 , 單擊 Add, 然后單擊 Close

12、在編輯框里輸入如下代碼:

13、到此我們完成了工程項(xiàng)目的建立以及文件加入工程 , 現(xiàn)在我們開(kāi)始編譯工程如下圖所示 : 我們先單擊編譯, 如果在錯(cuò)誤與警告處看到 0 Error(s)表示編譯通過(guò):

14、生成.hex 燒寫(xiě)文件,先單擊Options for Target,如圖:

15、在下圖中,我們單擊 Output, 選中 Create HEX F。再單擊“確定”

16、打開(kāi)文件夾‘實(shí)驗(yàn)1’,查看是否生成了HEX文件。如果沒(méi)有生成,在執(zhí)行

一遍步驟10到步驟12,直到生成。

三、實(shí)驗(yàn)工具(軟件、硬件等)

1、Keil

2、計(jì)算機(jī)

實(shí)驗(yàn)二:Proteus軟件學(xué)習(xí)

一、實(shí)驗(yàn)?zāi)康?/p>

1、了解Proteus的基本功能

2、熟悉Proteus的設(shè)計(jì)環(huán)境Preoteus ISIS及第三方編譯工具Keil

3、掌握Proteus中實(shí)現(xiàn)單片機(jī)系統(tǒng)設(shè)計(jì)與仿真的步驟與方法

二、實(shí)驗(yàn)內(nèi)容

設(shè)計(jì)與仿真的開(kāi)發(fā)過(guò)程

Proteus強(qiáng)大的單方機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使之成為單片機(jī)系統(tǒng)應(yīng)用開(kāi)發(fā)和改進(jìn)手段之一。

開(kāi)發(fā)的整個(gè)過(guò)程都是在計(jì)算機(jī)上完成的,其過(guò)程一般分為三步: 1)Proteus 電路設(shè)計(jì):在ISIS平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣現(xiàn)則檢查等。

2)Proteus 源程序設(shè)計(jì)和生成目標(biāo)代碼文件:在ISIS平臺(tái)上或借助第三方編譯工具進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)、編輯、匯編編譯、代碼級(jí)調(diào)試,最后生成目標(biāo)代碼文件(*hex)。

3)Proteus仿真:在ISIS平臺(tái)上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中,由此實(shí)現(xiàn)系統(tǒng)實(shí)時(shí)交互與協(xié)同傷真。

三、實(shí)驗(yàn)工具(軟件、硬件等)

1、載有Proteus的計(jì)算機(jī)一臺(tái)

實(shí)驗(yàn)三:LED流水燈

一、實(shí)驗(yàn)?zāi)康?/p>

1、用Keil軟件編寫(xiě)程序并利用開(kāi)發(fā)板仿真

2、學(xué)習(xí)LED燈工作原理

二、實(shí)驗(yàn)內(nèi)容

延時(shí)實(shí)現(xiàn)LED流水燈效果P2口八個(gè)燈作跑馬燈。采用了寄存器存中間數(shù)。

三、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺(tái) 2.開(kāi)發(fā)板一套

四、實(shí)驗(yàn)結(jié)果及分析

實(shí)驗(yàn)四:靜態(tài)數(shù)碼管

一、實(shí)驗(yàn)?zāi)康?/p>

1、用Keil軟件編寫(xiě)程序并利用開(kāi)發(fā)板仿真

2、學(xué)習(xí)靜態(tài)顯示管工作原理

二、實(shí)驗(yàn)內(nèi)容

靜態(tài)數(shù)碼管流動(dòng)顯示0~9

二、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺(tái) 2.開(kāi)發(fā)板一套

四、實(shí)驗(yàn)結(jié)果及分析

實(shí)驗(yàn)五:按鍵移位動(dòng)態(tài)顯示

一、實(shí)驗(yàn)?zāi)康?/p>

1、用Keil軟件編寫(xiě)程序并利用開(kāi)發(fā)板仿真

2、學(xué)習(xí)靜態(tài)顯示管工作原理

二、實(shí)驗(yàn)內(nèi)容

靜態(tài)顯示管,按鍵不同顯示不同

三、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺(tái) 2.開(kāi)發(fā)板一套

四、實(shí)驗(yàn)結(jié)果及分析

實(shí)驗(yàn)六:中斷INT0+INT1

一、實(shí)驗(yàn)?zāi)康?/p>

1、用Keil軟件編寫(xiě)程序并利用開(kāi)發(fā)板仿真

2、學(xué)習(xí)中斷INT0和INT1的工作原理

二、實(shí)驗(yàn)內(nèi)容

試驗(yàn)數(shù)碼管上顯示外部中斷計(jì)數(shù),用單片機(jī)腳直接控制數(shù)碼管和外部中斷使用

三、實(shí)驗(yàn)工具(軟件、硬件等)1.載有Keil軟件的計(jì)算機(jī)一臺(tái) 2.開(kāi)發(fā)板一套

四、實(shí)驗(yàn)結(jié)果及分析

第四篇:?jiǎn)纹瑱C(jī)實(shí)驗(yàn)報(bào)告

目錄

第一章單片機(jī)簡(jiǎn)介....................................................2 第二章

實(shí)驗(yàn)要求..................................................3 第三章實(shí)驗(yàn)設(shè)備......................................................3 第四章實(shí)驗(yàn)安排......................................................4 第五章實(shí)驗(yàn)內(nèi)容......................................................4

LED燈實(shí)驗(yàn).......................................................4 步進(jìn)馬達(dá)試驗(yàn)....................................................5 獨(dú)立按鍵控制LED實(shí)驗(yàn)............................................7 矩陣鍵盤(pán)實(shí)驗(yàn)....................................................9 靜態(tài)數(shù)碼管實(shí)驗(yàn).................................................12 動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn).................................................14 NE555脈沖發(fā)生器實(shí)驗(yàn)(定時(shí)/計(jì)數(shù)器).............................16 RS232串口通信實(shí)驗(yàn)(接收與發(fā)送)..................................21 第六章收獲體會(huì).....................................................25

單片機(jī)實(shí)驗(yàn)報(bào)告

第一章單片機(jī)簡(jiǎn)介

單片機(jī)也被稱(chēng)為微控制器(Microcontroller),是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專(zhuān)用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專(zhuān)用處理器的發(fā)展便分道揚(yáng)鑣。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開(kāi)發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話(huà),電路一定是一塊大PCB板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過(guò)你編寫(xiě)的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!

單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。

1.SCM即單片微型計(jì)算機(jī)(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)。“創(chuàng)新模式”獲得成功,奠定了SCM與通用計(jì)算機(jī)完全不同的發(fā)展道路。在開(kāi)創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒(méi)。

2.MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時(shí),對(duì)象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對(duì)象的智能化控制能力。它所涉及的領(lǐng)域都與對(duì)象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來(lái)看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。

Philips公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢(shì),將MCS-51從單片微型計(jì)算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時(shí),不要忘記Intel和Philips的歷史功績(jī)。

3.單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求

單片機(jī)實(shí)驗(yàn)報(bào)告

應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專(zhuān)用單片機(jī)的發(fā)展自然形成了SoC化趨勢(shì)。隨著微電子技術(shù)、IC設(shè)計(jì)、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。

MCS51系列微控制器應(yīng)用廣泛,在家電、汽車(chē)甚至航空等領(lǐng)域都有其活躍的身影。然而,普通51系列微控制器內(nèi)部資源有限,像我用Proteus構(gòu)建微控制器虛擬實(shí)驗(yàn)室選用的AT89C52只有三個(gè)定時(shí)器、一個(gè)全雙工的串行口和中斷控制,并且其數(shù)據(jù)處理能力有限,不適合對(duì)大量數(shù)據(jù)進(jìn)行復(fù)雜分析和運(yùn)算。

因此,在不重新選型(可選用SoC)的前提下,為實(shí)現(xiàn)我們所需要的功能,就需要進(jìn)行外圍擴(kuò)展。針對(duì)微控制器的特點(diǎn),我們首先考慮串行擴(kuò)展,因?yàn)槲⒖刂破鞯腎/O引腳有限,并行擴(kuò)展一則外圍芯片面積比較大,二則對(duì)抑制EMI不利。

第二章 實(shí)驗(yàn)要求

1.學(xué)習(xí)Keil C51集成開(kāi)發(fā)工具的操作及調(diào)試程序的方法,包括:仿真調(diào)試與脫機(jī)運(yùn)行間的切換方法

2.熟悉TD-51單片機(jī)系統(tǒng)板及實(shí)驗(yàn)系統(tǒng)的結(jié)構(gòu)及使用

3.進(jìn)行MCS51單片機(jī)指令系統(tǒng)軟件編程設(shè)計(jì)與硬件接口功能設(shè)

4. 學(xué)習(xí)并掌握Keil C51軟件聯(lián)機(jī)進(jìn)行單片機(jī)接口電路的設(shè)計(jì)與編程調(diào)試

5.完成指定MCS51單片機(jī)綜合設(shè)計(jì)題

第三章實(shí)驗(yàn)設(shè)備

1.HC600S-51單片機(jī)開(kāi)發(fā)板 2.Keil C51 3.普中自動(dòng)下載軟件

第四章 實(shí)驗(yàn)安排

1.LED燈實(shí)驗(yàn)

單片機(jī)實(shí)驗(yàn)報(bào)告

2.步進(jìn)馬達(dá)試驗(yàn)

3.獨(dú)立按鍵控制LED實(shí)驗(yàn) 4.矩陣鍵盤(pán)實(shí)驗(yàn) 5.靜態(tài)數(shù)碼管實(shí)驗(yàn) 6.動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)

7.NE555脈沖發(fā)生器實(shí)驗(yàn)(定時(shí)/計(jì)數(shù)器)8.RS232串口通信實(shí)驗(yàn)(接收與發(fā)送)

第五章 實(shí)驗(yàn)內(nèi)容

一、LED燈實(shí)驗(yàn)

1.基本要求

利用位移循環(huán)指令實(shí)現(xiàn)LED燈的閃爍 2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。3.接線(xiàn)圖

4.電路原理圖

單片機(jī)實(shí)驗(yàn)報(bào)告

5.程序

#include #define uint unsigned int void d(uint x){uint n;for(;x>0;x--){for(n=0;n<123;n++){;} }}

main(){unsigned int i;while(1)

{for(i=0,P0=1;i<4;i++){d(500);P0=(P0<<2);}}}

二、步進(jìn)馬達(dá)試驗(yàn)

1.基本要求

編程實(shí)現(xiàn)馬達(dá)的正反轉(zhuǎn),調(diào)速等功能 2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。3.接線(xiàn)圖(圖一)

單片機(jī)實(shí)驗(yàn)報(bào)告

圖一 圖二

4.電路原理圖

上圖圖二 5.程序

#include “reg52.h” #define speed 2 sbit PH1 = P1^0;

//定義管腳 sbit PH2 = P1^1;sbit I01 = P1^2;sbit I11 = P1^3;sbit I02 = P1^4;sbit I12 = P1^5;

void delay(int time);

void Go(){ //A

PH1 = 0;//PH1為0 則A線(xiàn)圈為反向電流

I01 = 0;I11 = 0;

//以最大電流輸出

PH2 = 0;//PH2為0 則B線(xiàn)圈為反向電流

I02 = 1;I12 = 1;

//輸出0 delay(speed);//圈為反向電流

I01 = 1;//輸出0 I11 = 1;

PH2 = 1;//PH2為1 則B線(xiàn)圈為正向電流

I02 = 0;//以最大電流輸出

I12 = 0;

delay(speed);//B PH1 = 1;

//PH1為1 則A線(xiàn)圈為

正向電流

I01 = 0;

//以最大電流輸出

I11 = 0;

PH2 = 1;//PH2為1 則B線(xiàn)圈為正

向電流

I02 = 1;//輸出0 I12 = 1;

delay(speed);

PH1 = 1;

//PH1為1 則A線(xiàn)圈為正向電流

I01 = 1;I11 = 1;

PH2 = 0;

//PH2為0 則B線(xiàn)圈為反向電流

I02 = 0;I12 = 0;delay(speed);}

void delay(int time){

int i,j;

for(j=0;j <= time;j++)

for(i =0;i <= 120;i++);}

void main(){

while(1)

{

Go();//步進(jìn)電機(jī)運(yùn)行

} }

單片機(jī)實(shí)驗(yàn)報(bào)告

三、獨(dú)立按鍵控制LED實(shí)驗(yàn)

1.基本要求

通過(guò)編程控制8個(gè)獨(dú)立按鍵分別控制8個(gè)LED燈的開(kāi)關(guān) 2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。3.接線(xiàn)圖(圖一)

圖一 圖二

4.電路原理圖 上圖圖二 5.程序

#include #include #define GPIO_KEY P1 //獨(dú)立鍵盤(pán)用

P1口

#define uchar unsigned char #define uint unsigned int

void Delayms(unsigned int c);

//延時(shí)10ms uchar Key_Scan();void main(void){

unsigned char ledValue, keyNum;

ledValue = 0x01;

while(1)

{

keyNum = Key_Scan();//掃描鍵

盤(pán)

switch(keyNum)

{

case(0xFE):

//返回按

鍵K1的數(shù)據(jù)

ledValue = 0x01;

break;

單片機(jī)實(shí)驗(yàn)報(bào)告

case(0xFD):

ledValue = 0x02;

break;case(0xFB):

ledValue = 0x04;

break;case(0xF7):

ledValue = 0x08;

break;case(0xEF):

ledValue = 0x10;

break;case(0xDF):

ledValue = 0x20;

break;case(0xBF):

ledValue = 0x40;

break;case(0x7F):

ledValue = 0x80;

//返回按鍵K2的數(shù)據(jù)

//返回按鍵K3的數(shù)據(jù)

//返回按鍵K4的數(shù)據(jù)

//返回按鍵K5的數(shù)據(jù)

//返回按鍵K6的數(shù)據(jù)

//返回按鍵K7的數(shù)據(jù)

//返回按鍵K8的數(shù)據(jù)

break;default:

break;

}

GPIO_LED = ledValue;//點(diǎn)亮LED燈

}

}

uchar Key_Scan(void)//鍵盤(pán)掃描函數(shù) { uchar i,n=0xff;

if(P1==0xff)goto Scan_r;//無(wú)鍵按

下,返回

goto Scan_r;Scan_1:

while(P1!=0xff);//等待鍵釋放

Delayms(10);Scan_r:

return n;}

void Delayms(uint x){

uint n;

for(;x>0;x--)

{

for(n=0;n<123;n++)

{;}

} }

四、矩陣鍵盤(pán)實(shí)驗(yàn)

1.基本要求

編程由16個(gè)矩陣按鍵控制數(shù)碼管顯示相應(yīng)的數(shù)值 2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。

3.接線(xiàn)圖

單片機(jī)實(shí)驗(yàn)報(bào)告

見(jiàn)下圖圖一

圖一 圖二

4.電路原理圖

見(jiàn)上圖圖二 5.程序

#include #define uchar unsigned char #define uint unsigned int #define uint unsigned int #define GPIO_LED P0

uchar ScanKey(void);void Delayms(uint x);main(){ unsigned char ledValue;uchar i;ledValue = 0x01;loop: i = ScanKey();

switch(i)

{ case 0xee:

ledValue = ~0x3F;

break;

case 0xde:

ledValue = ~0x06;

break;

case 0xbe:

ledValue = ~0x5B;

break;

case 0x7e:

ledValue = ~0x4F;

break;

case 0xed:

ledValue = ~0x66;

break;

case 0xdd:

ledValue = ~0x6D;

break;

單片機(jī)實(shí)驗(yàn)報(bào)告

case 0xbd:

ledValue = ~0x7D;

break;

case 0x7d:

ledValue = ~0x07;

break;

case 0xeb:

ledValue = ~0x7F;

break;

case 0xdb:

ledValue = ~0x6F;

break;

case 0xbb:

ledValue = ~0x77;

break;

case 0x7b:

ledValue = ~0x7C;

break;

case 0xe7:

ledValue = ~0x39;

break;

case 0xd7:

ledValue = ~0x5E;

break;

case 0xb7:

ledValue = ~0x79;

break;

case 0x77:

ledValue = ~0x71;

break;

}

GPIO_LED = ledValue;i=0;goto loop;}

void Delayms(uint x){uint n;for(;x > 0;x--)

{ for(n=0;n<123;n++)

{;}

} }

uchar ScanKey(void)//鍵盤(pán)掃描函數(shù) { uchar i,n=0xff;

P1=0xf0;

if(P1==0xf0)goto Scan_r;//無(wú)鍵按下,返回

for(i=0,P1=0xfe;i<4;i++)

{ if((P1&0xf0)!=0xf0)

{ Delayms(10);

if((P1&0xf0)!=0xf0)

{ n=

P1;

goto

Scan_1;}

}

P1=(P1<<1)+1;

//掃描下

一行

} goto Scan_r;Scan_1:

單片機(jī)實(shí)驗(yàn)報(bào)告

P1=0xf0;while((P1&0xf0)!=0xf0);//等待鍵

釋放

Delayms(10);

Scan_r:

P1=0xff;return n;} }

五、靜態(tài)數(shù)碼管實(shí)驗(yàn)

1.基本要求

編程使數(shù)碼管顯示字符0-F 2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。3.接線(xiàn)框圖(圖一)

圖一

單片機(jī)實(shí)驗(yàn)報(bào)告

圖二

4.電路原理圖

見(jiàn)上圖圖二 5.程序

#include #define uchar unsigned char #define uint unsigned int void Delayms(uint x);uchar code LED7Code[]=

{~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D, ~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};main(){

unsigned int LedNumVal;//定義變量 while(1)

{

// 將字模送到P0口顯示

LedNumVal++;

P0 = LED7Code[LedNumVal%16];

Delayms(1000);

//調(diào)用延時(shí)程序

}

}

單片機(jī)實(shí)驗(yàn)報(bào)告

void Delayms(uint x){uint n;for(;x > 0;x--)

{ for(n=0;n<123;n++)

{;}

} }

六、動(dòng)態(tài)數(shù)碼管實(shí)驗(yàn)

1.基本要求

編程實(shí)現(xiàn)8個(gè)數(shù)碼管的動(dòng)態(tài)掃描。通過(guò)P22、P23、P24控制3-8譯碼器來(lái)對(duì)數(shù)碼管進(jìn)行位選,通過(guò)P0口經(jīng)過(guò)573的驅(qū)動(dòng)控制數(shù)碼管的段選,通過(guò)P13控制573的使能端,為低電平時(shí)573才會(huì)有輸出。2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。3.接線(xiàn)圖(圖一)

圖一 圖二

單片機(jī)實(shí)驗(yàn)報(bào)告

圖三

4.電路原理圖

見(jiàn)上圖圖

二、圖三 5.程序

#define uint unsigned int void Dsplay();void Delayms(uint x);uchar mDS[6];uchar code cDsCode[]=

{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};

void main(){ uchar i;

for(i=0;i<6;i++)mDS[i]=i+1;

loop:

Dsplay();

goto loop;}

void Dsplay()//動(dòng)態(tài)掃描顯示

{uchar i;

for(i=0,P2=0x01;i<6;i++)

{ P1=cDsCode[mDS[i]];//輸出段

Delayms(1000);

P2=P2<<1;

//選通下一位

}

P2=0x00;

//關(guān)閉位選通 }

void Delayms(uint x){uint n;for(;x > 0;x--)

{ for(n=0;n<123;n++)

{;}

} }

七、NE555脈沖發(fā)生器實(shí)驗(yàn)(定時(shí)/計(jì)數(shù)器)

1.基本要求

2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。3.接線(xiàn)圖

4.電路原理圖

5.程序

#include #include“l(fā)cd.h” #define uchar unsigned char #define uint unsigned int #define ulong unsigned long uchar code EN_CHAR1[16]={“

CYMOMETER

”};uchar code EN_CHAR2[16]={“FREQ:

HZ”};

單片機(jī)實(shí)驗(yàn)報(bào)告

void TIMER_Configuration();//初始化定時(shí)器 ulong Freq;

//用來(lái)存放要顯示的頻率值 ulong TimeCount;//用于計(jì)算1S鐘的

void main(){ uchar i, freqValue[6];

LcdInit();TIMER_Configuration();for(i=0;i<16;i++){

LcdWriteData(EN_CHAR1[i]);}

LcdWriteCom(0xc0);//第二行顯示

for(i=0;i<16;i++){

LcdWriteData(EN_CHAR2[i]);}

while(1){

if(TR0==0)

//當(dāng)計(jì)數(shù)器停下的時(shí)候,表明計(jì)數(shù)完畢

{

Freq = Freq + TL1;

//讀取TL的值

Freq = Freq +(TH1 * 256);//讀取TH的值

LcdWriteCom(0xc8);

//--求頻率的個(gè)十百千萬(wàn)十萬(wàn)位--//

freqValue[0]='0'+Freq%1000000/100000;

freqValue[1]='0'+Freq%100000/10000;

freqValue[2]='0'+Freq%10000/1000;

freqValue[3]='0'+Freq%1000/100;

freqValue[4]='0'+Freq%100/10;

freqValue[5]='0'+Freq%10;

for(i=0;i<5;i++)//從最高位開(kāi)始查找不為0的數(shù)開(kāi)始顯示(最低位為0顯示0)

{

if(freqValue[i]==0x30)

{

freqValue[i]=0x20;//若為0則賦值空格鍵

}

else

單片機(jī)實(shí)驗(yàn)報(bào)告

{

break;

}

}

for(i=0;i<6;i++)

{

LcdWriteData(freqValue[i]);

}

Freq=0;//將計(jì)算的頻率清零

TH1=0;//將計(jì)數(shù)器的值清零

TL1=0;

TR0=1;//開(kāi)啟定時(shí)器

TR1=1;//開(kāi)啟計(jì)數(shù)器

} } }

void TIMER_Configuration(){ TMOD=0x51;TH0=0x3C;TL0=0xB0;ET0=1;ET1=1;EA=1;TR0=1;TR1=1;} void Timer0()interrupt 1 { TimeCount++;if(TimeCount==20)//計(jì)時(shí)到1S {

TR0=0;

TR1=0;

TimeCount=0;

}

//--12MHZ設(shè)置定時(shí)50ms的初值--// TH0=0x3C;TL0=0xB0;} void Timer1()interrupt 3 {

單片機(jī)實(shí)驗(yàn)報(bào)告

//--進(jìn)入一次中斷,表明計(jì)數(shù)到了65536--// Freq=Freq+65536;

}

#include“l(fā)cd.h”

void Lcd1602_Delay1ms(uint c)

//誤差 0us {

uchar a,b;for(;c>0;c--){

for(b=199;b>0;b--)

{

for(a=1;a>0;a--);

}

}

} #ifndef LCD1602_4PINS //當(dāng)沒(méi)有定義這個(gè)LCD1602_4PINS時(shí) void LcdWriteCom(uchar com)

//寫(xiě)入命令 { LCD1602_E = 0;

//使能

LCD1602_RS = 0;

//選擇發(fā)送命令

LCD1602_RW = 0;

//選擇寫(xiě)入

LCD1602_DATAPINS = com;

//放入命令

Lcd1602_Delay1ms(1);//等待數(shù)據(jù)穩(wěn)定

LCD1602_E = 1;

//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);

//保持時(shí)間

LCD1602_E = 0;} #else

void LcdWriteCom(uchar com)

//寫(xiě)入命令 { LCD1602_E = 0;//使能清零

LCD1602_RS = 0;//選擇寫(xiě)入命令

LCD1602_RW = 0;//選擇寫(xiě)入

LCD1602_DATAPINS = com;// Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);LCD1602_E = 0;Lcd1602_Delay1ms(1);

單片機(jī)實(shí)驗(yàn)報(bào)告

LCD1602_DATAPINS = com << 4;//發(fā)送低四位

Lcd1602_Delay1ms(1);

LCD1602_E = 1;//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif #ifndef LCD1602_4PINS

void LcdWriteData(uchar dat)

//寫(xiě)入數(shù)據(jù) { LCD1602_E = 0;//使能清零

LCD1602_RS = 1;//選擇輸入數(shù)據(jù)

LCD1602_RW = 0;//選擇寫(xiě)入

LCD1602_DATAPINS = dat;//寫(xiě)入數(shù)據(jù)

Lcd1602_Delay1ms(1);

LCD1602_E = 1;

//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);

//保持時(shí)間

LCD1602_E = 0;} #else void LcdWriteData(uchar dat)

//寫(xiě)入數(shù)據(jù) { LCD1602_E = 0;//使能清零

LCD1602_RS = 1;

//選擇寫(xiě)入數(shù)據(jù)

LCD1602_RW = 0;

//選擇寫(xiě)入

LCD1602_DATAPINS = dat;

Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat << 4;//寫(xiě)入低四位

Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif #ifndef LCD1602_4PINS void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x38);//開(kāi)顯示

單片機(jī)實(shí)驗(yàn)報(bào)告

LcdWriteCom(0x0c);//開(kāi)顯示不顯示光標(biāo)

LcdWriteCom(0x06);//寫(xiě)一個(gè)指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #else void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x32);//將8位總線(xiàn)轉(zhuǎn)為4位總線(xiàn)

LcdWriteCom(0x28);//在四位線(xiàn)下的初始化

LcdWriteCom(0x0c);//開(kāi)顯示不顯示光標(biāo)

LcdWriteCom(0x06);//寫(xiě)一個(gè)指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #endif

八、RS232串口通信實(shí)驗(yàn)(接收與發(fā)送)

1.基本要求

a.通過(guò)實(shí)驗(yàn)了解串口的基本原理及使用,理解并掌握對(duì)串口進(jìn)行初始化; b.使用串口調(diào)試助手(Baud 9600、數(shù)據(jù)位

8、停止位

1、效驗(yàn)位無(wú))做為上位機(jī)來(lái)做收發(fā)試驗(yàn);

c.利用串口調(diào)試助手中字符串輸入進(jìn)行數(shù)據(jù)發(fā)送,接受窗口顯示收到的數(shù)據(jù)。2.實(shí)驗(yàn)內(nèi)容

在Keil C51中進(jìn)行程序的編寫(xiě)設(shè)計(jì)并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機(jī)開(kāi)發(fā)板接通電源,按下開(kāi)關(guān),錄入。打開(kāi)普中錄入生成.HEX文件,加載程序,觀察實(shí)驗(yàn)結(jié)果,如果不正確對(duì)程序進(jìn)行改進(jìn)后重復(fù)此操作。實(shí)驗(yàn)結(jié)束后先斷電源再拆線(xiàn),將元器件歸位后離開(kāi)。3.接線(xiàn)圖

單片機(jī)實(shí)驗(yàn)報(bào)告

4.電路原理圖

5.程序

#include #include“l(fā)cd.h” unsigned char ChCode[14] = “Received data:”;void UsartConfiguration();void main(){ unsigned char i, receiveData;LcdInit();for(i=0;i<14;i++){

LcdWriteData(ChCode[i]);} UsartConfiguration();while(1){

if(RI == 1)

//查看是否接收到數(shù)據(jù)

{

receiveData = SBUF;//讀取數(shù)據(jù)

單片機(jī)實(shí)驗(yàn)報(bào)告

RI = 0;

//清除標(biāo)志位

LcdWriteCom(0xC0);

LcdWriteData('0' +(receiveData / 100));

// 百位

LcdWriteData('0' +(receiveData % 100 / 10));// 十位

LcdWriteData('0' +(receiveData % 10));

// 個(gè)位

} } } void UsartConfiguration(){ SCON=0X50;

//設(shè)置為工作方式1 TMOD=0X20;//設(shè)置計(jì)數(shù)器工作方式2 PCON=0X80;

//波特率加倍

TH1=0XF3;

//計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的TL1=0XF3;TR1=1;

//打開(kāi)計(jì)數(shù)器 }

#include“l(fā)cd.h”

void Lcd1602_Delay1ms(uint c)

//誤差 0us {

uchar a,b;for(;c>0;c--){

for(b=199;b>0;b--)

{

for(a=1;a>0;a--);

}

}

} #ifndef LCD1602_4PINS //當(dāng)沒(méi)有定義這個(gè)LCD1602_4PINS時(shí) void LcdWriteCom(uchar com)

//寫(xiě)入命令 { LCD1602_E = 0;

//使能

LCD1602_RS = 0;

//選擇發(fā)送命令

LCD1602_RW = 0;

//選擇寫(xiě)入

LCD1602_DATAPINS = com;

//放入命令

Lcd1602_Delay1ms(1);//等待數(shù)據(jù)穩(wěn)定

LCD1602_E = 1;

//寫(xiě)入時(shí)序

單片機(jī)實(shí)驗(yàn)報(bào)告

Lcd1602_Delay1ms(5);

//保持時(shí)間

LCD1602_E = 0;} #else

void LcdWriteCom(uchar com)

//寫(xiě)入命令 { LCD1602_E = 0;//使能清零

LCD1602_RS = 0;//選擇寫(xiě)入命令

LCD1602_RW = 0;//選擇寫(xiě)入

LCD1602_DATAPINS = com;Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);LCD1602_E = 0;Lcd1602_Delay1ms(1);LCD1602_DATAPINS = com << 4;//發(fā)送低四位

Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif

#ifndef LCD1602_4PINS

void LcdWriteData(uchar dat)

//寫(xiě)入數(shù)據(jù) { LCD1602_E = 0;//使能清零

LCD1602_RS = 1;//選擇輸入數(shù)據(jù)

LCD1602_RW = 0;//選擇寫(xiě)入

LCD1602_DATAPINS = dat;//寫(xiě)入數(shù)據(jù)

Lcd1602_Delay1ms(1);LCD1602_E = 1;

//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);

//保持時(shí)間

LCD1602_E = 0;} #else void LcdWriteData(uchar dat)

//寫(xiě)入數(shù)據(jù) { LCD1602_E = 0;

//使能清零

LCD1602_RS = 1;

//選擇寫(xiě)入數(shù)據(jù)

LCD1602_RW = 0;//選擇寫(xiě)入

LCD1602_DATAPINS = dat;

Lcd1602_Delay1ms(1);LCD1602_E = 1;

//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);

單片機(jī)實(shí)驗(yàn)報(bào)告

LCD1602_E = 0;LCD1602_DATAPINS = dat << 4;//寫(xiě)入低四位

Lcd1602_Delay1ms(1);LCD1602_E = 1;

//寫(xiě)入時(shí)序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif

#ifndef LCD1602_4PINS void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x38);//開(kāi)顯示

LcdWriteCom(0x0c);//開(kāi)顯示不顯示光標(biāo)

LcdWriteCom(0x06);//寫(xiě)一個(gè)指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #else void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x32);//將8位總線(xiàn)轉(zhuǎn)為4位總線(xiàn)

LcdWriteCom(0x28);//在四位線(xiàn)下的初始化

LcdWriteCom(0x0c);//開(kāi)顯示不顯示光標(biāo)

LcdWriteCom(0x06);//寫(xiě)一個(gè)指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn) } #endif

單片機(jī)實(shí)驗(yàn)報(bào)告

第六章 收獲體會(huì)

本次微控制器綜合設(shè)計(jì)基本上使用了所選微控制器的所有資源,進(jìn)一步熟悉和加深了對(duì)中斷、定時(shí)器和串行通信的理解和使用。我覺(jué)得軟件實(shí)驗(yàn)就是讓我們初學(xué)者熟悉keil的使用,然后復(fù)習(xí)下匯編的思想和掌握程序的流程,所以軟件實(shí)驗(yàn)可以很快的完成,并且慢慢熟悉調(diào)試的強(qiáng)大功能。硬件設(shè)計(jì)中,仿真讓我很有感觸,感覺(jué)蠻好玩的,可以摒棄麻煩的實(shí)驗(yàn)硬件自己在寢室玩而且不受硬件狀態(tài)的限制,即便出錯(cuò)了也不會(huì)損壞。當(dāng)然更重要的是這種好習(xí)慣,仿真完后再去在實(shí)驗(yàn)板上驗(yàn)證會(huì)比直接要來(lái)的確切而且便捷,至少不要老是去插拔線(xiàn)。在做實(shí)驗(yàn)中在同學(xué)指導(dǎo)下我試用C語(yǔ)言來(lái)編寫(xiě)程序,確實(shí)發(fā)現(xiàn)比匯編語(yǔ)言容易編寫(xiě)也容易理解,以前的實(shí)驗(yàn)還是有參考資料的習(xí)慣,現(xiàn)在什么都開(kāi)始自己寫(xiě)感覺(jué)還是很有成就感的,當(dāng)然這是基于程序本身就那么幾行很容易編寫(xiě),也不是說(shuō)參考不好??偠灾@學(xué)期的單片機(jī)實(shí)驗(yàn)還是收獲頗豐的。相信在以后的實(shí)驗(yàn)學(xué)習(xí)實(shí)踐工作中都會(huì)有個(gè)潛移默化的作用的。

第五篇:?jiǎn)纹瑱C(jī)實(shí)驗(yàn)報(bào)告

單片機(jī)實(shí)驗(yàn)報(bào)告

一、實(shí)驗(yàn)?zāi)康?/p>

1.熟練使用Keil、Protues兩款軟件 2.通過(guò)上機(jī)操作,增強(qiáng)個(gè)人動(dòng)手實(shí)踐能力 3.加深對(duì)理論知識(shí)的理解

4.培養(yǎng)運(yùn)用匯編語(yǔ)言進(jìn)行初步編寫(xiě)程序的能力

二、實(shí)驗(yàn)內(nèi)容

1.將片外RAM3050-306FH中數(shù)據(jù)轉(zhuǎn)移至片內(nèi)70-8FH中。

要求:可以從Keil或Protues上看到RAM的數(shù)據(jù)轉(zhuǎn)移結(jié)果。2.設(shè)計(jì)一個(gè)外部中斷觸發(fā)流水燈系統(tǒng):當(dāng)外部中斷來(lái)臨時(shí),啟動(dòng)流水燈,即令P2口的LED輪流循環(huán)點(diǎn)亮。

要求:開(kāi)發(fā)板或Prrotues演示

3.將片內(nèi)存儲(chǔ)器80H中存放的BCD碼轉(zhuǎn)換為ASCII碼,要求使用表格查詢(xún)技術(shù)。

要求:在Keil或Protues上看到數(shù)據(jù)轉(zhuǎn)換結(jié)果。

4.各使用中斷方式和查詢(xún)方式設(shè)計(jì)一個(gè)方波發(fā)生器,頻率為50HZ。

要求:Protues使軟件間示波器顯示方波。

三、實(shí)驗(yàn)程序

1.將片外RAM3050-306FH中數(shù)據(jù)轉(zhuǎn)移至片內(nèi)70-8FH中

ORG 0000H AJMP MAIN 上電,轉(zhuǎn)向主程序

ORG 0030H 主程序入口

MAIN: MOV DPTR,#3050H 數(shù)據(jù)指針指向地址3050H MOV A,#04H 將立即數(shù)04H送A寄存器

MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 數(shù)據(jù)指針DPTR自加一

DJNZ R0,NEXT 判斷是否跳轉(zhuǎn)到NEXT或繼續(xù)向下執(zhí)行

MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1

SJMP $ 等待

END 2.設(shè)計(jì)一個(gè)外部中斷觸發(fā)流水燈系統(tǒng):當(dāng)外部中斷來(lái)臨時(shí),啟動(dòng)流水燈,即令P2口的LED輪流循環(huán)點(diǎn)亮 ORG 0000H SJMP MAIN 上電,轉(zhuǎn)向主程序

ORG 0003H 外部中斷0向量入口

AJMP INSER ORG 0030H 主程序入口

MAIN: SETB EX0 SETB IT0

SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或繼續(xù)向下執(zhí)行

RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP

允許外部中斷0中斷 選擇邊沿觸發(fā)方式 開(kāi)中斷 等待中斷 設(shè)置循環(huán)次數(shù) 賦初值,設(shè)置高電平亮 將初值送往P2口 延時(shí) 左移一位

判斷循環(huán)次數(shù),是否跳轉(zhuǎn)到中斷返回 延時(shí)程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.將片內(nèi)存儲(chǔ)器80H中存放的BCD碼轉(zhuǎn)換為ASCII碼,要求使用表格查詢(xún)技術(shù) ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 將立即數(shù)50H轉(zhuǎn)送內(nèi)存單元80H MOV A,80H 將內(nèi)存單元80H中的內(nèi)容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器內(nèi)容加指針偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中斷方式產(chǎn)生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 設(shè)置定時(shí)器工作模式為模式1 MOV TH1,#0D8H 裝入T1計(jì)數(shù)初值

MOV TL1,#0F0H

SETB ET1 開(kāi)中斷

SETB EA CPU開(kāi)中斷

SETB TR1 啟動(dòng)定時(shí)器T1 HERE: SJMP HERE 等待中斷 ORG 001BH T1中斷向量地址

CLR TF1 將TF1清零

CPL P2.0 P2.0取反輸出

MOV TH1,#0D8H 重裝初值

MOV TH0,#0F0H

RETI;中斷返回

END 4.2 查詢(xún)方式產(chǎn)生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口

MAIN: MOV TMOD,#10H 設(shè)置定時(shí)器的工作模式為模式1 SETB TR1 啟動(dòng)定時(shí)器T1 LOOP: MOV TH1,#0D8H 裝入T1計(jì)數(shù)初值

MOV TH0,#0F0H JNB TF1,$ T1沒(méi)有溢出則等待

CLR TF1

產(chǎn)生溢出,清標(biāo)志位

CPL P2.0 P2.0取反輸出

SJMP LOOP 循環(huán)

END

四、實(shí)驗(yàn)結(jié)果截圖

1.2

3.4.1

4.2

下載基于單片機(jī)的實(shí)驗(yàn)報(bào)告5則范文word格式文檔
下載基于單片機(jī)的實(shí)驗(yàn)報(bào)告5則范文.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    單片機(jī)實(shí)驗(yàn)報(bào)告

    實(shí)驗(yàn)四、中斷交通燈實(shí)驗(yàn) 林立強(qiáng)1000850116 一、實(shí)驗(yàn)?zāi)康?1、了解MCS-51單片機(jī)的組成、中斷原理,中斷處理過(guò)程、外部中斷的中斷方式。 2、掌握中斷響應(yīng)及處理的編程方法。 二......

    單片機(jī)實(shí)驗(yàn)報(bào)告

    51單片機(jī)控制流水燈 目錄 (1)51精簡(jiǎn)開(kāi)發(fā)板簡(jiǎn)介 (2)實(shí)驗(yàn)?zāi)康?(3)實(shí)驗(yàn)內(nèi)容 (4)元件 (5)原理圖 (6)實(shí)驗(yàn)步驟 (7)主要功能介紹(8)實(shí)驗(yàn)錯(cuò)誤及分析 (9)調(diào)試及程序 (10)系統(tǒng)測(cè)試 (11)實(shí)驗(yàn)心得 一、51精簡(jiǎn)......

    單片機(jī)實(shí)驗(yàn)報(bào)告大全

    單片機(jī)原理與應(yīng)用實(shí)學(xué)校:合肥工業(yè)大學(xué) 班級(jí):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)號(hào): 姓名:驗(yàn)報(bào)告 第一章MC51 單片機(jī)原理及應(yīng)用軟件實(shí)驗(yàn) 實(shí)驗(yàn)1:系統(tǒng)認(rèn)識(shí)實(shí)驗(yàn) 1. 實(shí)驗(yàn)?zāi)康?(1)了解ZY15MCU12BC2單片......

    單片機(jī)實(shí)驗(yàn)報(bào)告

    單片機(jī)實(shí)驗(yàn)一 實(shí)驗(yàn)報(bào)告 課程名稱(chēng): 姓名: 系別: 專(zhuān)業(yè): 年級(jí): 學(xué)號(hào): 指導(dǎo)教師: 單片機(jī)原理及應(yīng)用實(shí)驗(yàn) 陳璐 信息系 電氣工程及其自動(dòng)化 2012級(jí) 120712041 李莉 2015 年6 月 25 日......

    單片機(jī)實(shí)驗(yàn)報(bào)告

    實(shí)驗(yàn)一 uVision2 集成開(kāi)發(fā)環(huán)境的使用 一、 實(shí)驗(yàn)?zāi)康暮鸵蠖?、?shí)驗(yàn)設(shè)備與儀器三、實(shí)驗(yàn)內(nèi)容四、實(shí)驗(yàn)原理、方法與步驟 五、實(shí)驗(yàn)小結(jié):1.簡(jiǎn)述生成應(yīng)用程序的過(guò)程。2.記錄程序調(diào)試......

    單片機(jī)實(shí)驗(yàn)報(bào)告4

    單片機(jī)實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)一) 一、實(shí)驗(yàn)?zāi)康模?1. 掌握stm8的時(shí)鐘切換。 2. 熟悉匯編語(yǔ)言的指令系統(tǒng)。 3. 加深對(duì)stm8功能的理解,掌握去其使用方法。 二、實(shí)驗(yàn)儀器: stm8s105c6單片機(jī)......

    單片機(jī)實(shí)驗(yàn)報(bào)告[推薦五篇]

    單片機(jī)實(shí)驗(yàn)報(bào)告 流水燈實(shí)驗(yàn)一 一:實(shí)驗(yàn)?zāi)康?1、掌握51單片機(jī)如何控制信號(hào)輸出。 2、掌握Keil C集成開(kāi)發(fā)環(huán)境的使用。3、掌握51開(kāi)發(fā)平臺(tái)的使用。 二、實(shí)驗(yàn)內(nèi)容 在開(kāi)發(fā)板上實(shí)現(xiàn)8......

    單片機(jī)實(shí)驗(yàn)報(bào)告[五篇模版]

    實(shí)驗(yàn)一 一、 實(shí)驗(yàn)題目:試編寫(xiě)一段程序,其功能為將21H單元的內(nèi)容8位分別依次存放到從22H開(kāi)始的8單元中。 二、 keil代碼: org 0000h jmp start org 0100h start: mov 21h,#8;......

主站蜘蛛池模板: 国产又爽又大又黄a片| 国产婷婷色一区二区三区| 国产精品亲子乱子伦xxxx裸| 亚洲欧美中文高清在线专区| 人妻夜夜爽爽88888视频| 欧美日韩在线视频| 亚洲人成色44444在线观看| 亚洲av色无码乱码在线观看| 国产精品女主播在线视频| 人妻av一区二区三区精品| 国产乱人视频在线播放| 亚洲午夜无码极品久久| 日日摸夜夜添狠狠添欧美| 久久国产加勒比精品无码| 国产乱子伦农村xxxx| 亚洲一二三无人区分别是哪| 国产精品偷伦视频观看免费| 亚洲午夜成人精品无码色欲| 欧美巨大性爽| 性欧美老人牲交xxxxx视频| 亚洲综合无码久久精品综合| 丁香狠狠色婷婷久久综合| 午夜福利在线永久视频| 国产成人一区二区三区在线观看| 精品日产一卡二卡| 亚洲国产精品无码专区影院| 国内少妇毛片视频| 人妻人人妻a乱人伦青椒视频| 天堂8在线天堂资源bt| 国产人碰人摸人爱免费视频| 亚洲亚洲精品av在线动态图| 日韩av无码中文字幕| 九九在线精品国产| 国产做受???麻豆免费| 在线观看av永久免费| 亚洲人成网站在线播放无码| 国内精品久久久久影院薰衣草| 欧美国产日本高清不卡| 国产男女猛烈无遮挡免费视频| 无码av无码一区二区| 巨爆中文字幕巨爆区爆乳|