單片機(jī)實(shí)驗(yàn)過程

單片機(jī)綜合訓(xùn)練Ⅰ
實(shí)驗(yàn)指導(dǎo)書

目 錄

一荡碾、 實(shí)驗(yàn)環(huán)境介紹 1
1搏恤、Keil集成開發(fā)環(huán)境介紹 1
二蒂萎、 實(shí)驗(yàn)內(nèi)容 9
實(shí)驗(yàn)一 練習(xí)使用集成調(diào)試軟件 9
實(shí)驗(yàn)二 簡單輸入輸出 10
實(shí)驗(yàn)三 定時(shí)器應(yīng)用 11
實(shí)驗(yàn)四 流水燈程序設(shè)計(jì) 13

一葡缰、實(shí)驗(yàn)環(huán)境介紹
1遏插、Keil集成開發(fā)環(huán)境介紹
Keil集成開發(fā)環(huán)境是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀軟件之一验残,它集編輯捞附、編譯、仿真于一體您没,支持匯編語言鸟召、PLM語言、C語言的程序設(shè)計(jì)氨鹏,界面友好欧募,易學(xué)易用。
(1)建立工作文件夾
在規(guī)定的盤符建立一個(gè)以自己學(xué)號(hào)命名的文件夾仆抵,作為工作文件夾跟继,將日后實(shí)驗(yàn)所有的文件都存放在該文件夾中。
(2)進(jìn)入集成開發(fā)環(huán)境
雙擊桌面圖標(biāo)镣丑,進(jìn)入uVision4集成開發(fā)環(huán)境舔糖。

(3)新建工程
選擇菜單“porject—new uvision project”,彈出“Creat New Project”對(duì)話框莺匠;

在“保存在”下拉列表中選擇自己的工作文件夾金吗,在“文件名”文本框中鍵入工程名(不需要鍵入擴(kuò)展名,擴(kuò)展名默認(rèn)為 .uv2),單擊“保存”按鈕摇庙,關(guān)閉“新建工程”對(duì)話框旱物,彈出“為目標(biāo)‘target 1’選擇設(shè)備”對(duì)話框,選擇目標(biāo)芯片型號(hào)跟匆;

選擇Atmel公司的89C52芯片异袄,單擊“確定”按鈕,關(guān)閉對(duì)話框玛臂,新建一個(gè)工程烤蜕。

(4)新建源程序
選擇菜單“File—New”新建源程序文件Text1

單擊保存按鈕,以.C后綴名保存改文件迹冤。

(5)將源程序添加到工程中
右鍵單擊“工程窗口”中的“Source Group 1”讽营,在彈出的菜單中選擇“增加文件到組”;(注:軟件漢化有誤)

彈出“增加文件到組”對(duì)話框泡徙;

選中欲添加的源程序橱鹏,單擊“Add”按鈕,源程序添加到工程中堪藐。但是莉兰,該對(duì)話框并不關(guān)閉,等待用戶繼續(xù)添加其他程序礁竞。添加完畢后糖荒,單擊“關(guān)閉”按鈕,關(guān)閉對(duì)話框模捂〈范洌“工程窗口”中,“Source Group 1”下將出現(xiàn)該源程序文件名狂男。

若對(duì)同一個(gè)文件二次添加综看,則會(huì)彈出如下警告框。

(6)編譯和連接
單擊“Rebuild all target files”按鈕岖食,對(duì)原程序進(jìn)行編譯和連接红碑,構(gòu)造結(jié)果將在“Build Output”窗口中顯示。如果程序有語法錯(cuò)誤泡垃,則會(huì)指出錯(cuò)誤類型及所在行析珊,修改后,重新構(gòu)造兔毙,直至沒有任何語法錯(cuò)誤唾琼。

(7)開始調(diào)試
單擊“開始/停止調(diào)試”按鈕兄春,進(jìn)入調(diào)試狀態(tài)澎剥。

在調(diào)試狀態(tài)下,“構(gòu)造工具欄”變?yōu)椤罢{(diào)試工具欄”。通過單步運(yùn)行哑姚,查看寄存器祭饭、存儲(chǔ)器的值,判斷程序是否運(yùn)行正確叙量。若不正確倡蝙,找出問題所在,單擊“開始/停止調(diào)試”按鈕绞佩,停止調(diào)試寺鸥,進(jìn)入編輯狀態(tài),修改程序品山,重新編譯胆建、調(diào)試。
(8)查看寄存器
進(jìn)入調(diào)試狀態(tài)后肘交,“工程窗口”變?yōu)椤凹拇嫫鞔翱凇卑试兀梢圆榭碈PU各寄存器的值。
(9)查看存儲(chǔ)器
單擊“存儲(chǔ)器窗口”按鈕涯呻,打開存儲(chǔ)器窗口凉驻;該窗口共有4個(gè)標(biāo)簽,可顯示4個(gè)存儲(chǔ)器的值复罐。單擊一個(gè)標(biāo)簽涝登,在地址欄中輸入要查看的存儲(chǔ)器單元的類型及地址。
片內(nèi)數(shù)據(jù)存儲(chǔ)器 I : [地址]
片外數(shù)據(jù)存儲(chǔ)器 X : [地址]
程序存儲(chǔ)器 C : [地址]
若要人為修改某存儲(chǔ)單元的值市栗,可右鍵單擊該單元缀拭,在彈出的菜單中選擇“更新存儲(chǔ)器”,在彈出的文本框中輸入該單元的新值填帽,單擊“確定”即可蛛淋。注:十六進(jìn)制數(shù)前加“0x”。
(10)單步運(yùn)行
在調(diào)試狀態(tài)下篡腌,源程序的左邊有一個(gè)黃色的箭頭褐荷,指示當(dāng)前程序執(zhí)行的位置,即將要執(zhí)行的一條指令嘹悼。單擊“單步”按鈕叛甫,程序執(zhí)行一條指令,黃色箭頭下移一行杨伙。寄存器和存儲(chǔ)器的值的變化顯示在相應(yīng)位置其监。執(zhí)行過的指令左邊用一綠色方塊標(biāo)記。
(11)運(yùn)行到光標(biāo)行
若想快速限匣、連續(xù)執(zhí)行若干條指令抖苦,可將光標(biāo)定位在這些指令的最后一行處,單擊“運(yùn)行到光標(biāo)行”按鈕,即可锌历。
(12)全速運(yùn)行
對(duì)于有些程序贮庞,只有全速運(yùn)行才能實(shí)現(xiàn)其功能,這時(shí)只需單擊“運(yùn)行”按鈕究西;若要暫停運(yùn)行窗慎,單擊“暫停”按鈕卤材。
(13)將源程序從工程中刪除
一個(gè)程序調(diào)試成功后遮斥,若要調(diào)試另一個(gè)程序,可不必新建工程扇丛,只需新建一個(gè)源程序伏伐,添加到原有的工程中,同時(shí)晕拆,將前一個(gè)源程序從工程中刪除藐翎。
在“工程窗口”中,單擊要?jiǎng)h除的源程序名实幕,按“Delete”鍵吝镣,在彈出的對(duì)話框中選擇“確定”即可。
對(duì)于初學(xué)者昆庇,一般一個(gè)工程中只包含一個(gè)源程序末贾,應(yīng)將多余的源程序刪除。

二整吆、實(shí)驗(yàn)內(nèi)容
實(shí)驗(yàn)一練習(xí)使用集成調(diào)試軟件
1.實(shí)驗(yàn)?zāi)康?br> (1)練習(xí)使用Keil集成調(diào)試軟件拱撵;
(2)進(jìn)一步熟悉語言指令的功能。
2.實(shí)驗(yàn)內(nèi)容
按照實(shí)驗(yàn)指導(dǎo)書的說明表蝙,結(jié)合附錄中的例子拴测,練習(xí)使用Keil集成調(diào)試軟件,為以后的實(shí)驗(yàn)打下基礎(chǔ)府蛇。
3.實(shí)驗(yàn)器材
計(jì)算機(jī)1臺(tái)
4.實(shí)驗(yàn)步驟
(1)新建工程集索;
(2)輸入源程序;
(3)將源程序添加到工程中汇跨;
(4)編譯和連接务荆;
(5)運(yùn)行程序;
(6)觀察記錄運(yùn)行過程和結(jié)果穷遂。
5.實(shí)驗(yàn)報(bào)告要求
(1)列出源程序函匕,并加以注釋;
(2)結(jié)構(gòu)復(fù)雜的程序蚪黑,畫出流程圖盅惜;
(3)對(duì)實(shí)驗(yàn)過程和結(jié)果進(jìn)行分析吸耿;
(4)寫出心得體會(huì)。

實(shí)驗(yàn)二簡單輸入輸出
1.實(shí)驗(yàn)?zāi)康?br> (1)進(jìn)一步理解I/O口的工作原理酷窥;
(2)掌握輸入/輸出程序的設(shè)計(jì)方法
2.實(shí)驗(yàn)內(nèi)容
編寫程序,點(diǎn)亮發(fā)光二極管
3.實(shí)驗(yàn)器材
(1)計(jì)算機(jī)1臺(tái) (2)仿真器1臺(tái) (3)開發(fā)板一套
4.硬件電路

5.試編寫程序點(diǎn)亮開發(fā)板上的發(fā)光二極管
6.思考與發(fā)揮
(1)如何實(shí)現(xiàn)多個(gè)開關(guān)控制多個(gè)發(fā)光二極管伴网??
(2)如何實(shí)現(xiàn)8個(gè)發(fā)光二極管閃爍蓬推?

實(shí)驗(yàn)三定時(shí)器應(yīng)用
1.實(shí)驗(yàn)?zāi)康?br> (1)進(jìn)一步了解定時(shí)器的結(jié)構(gòu)和工作原理;
(2)掌握定時(shí)器的應(yīng)用程序設(shè)計(jì)方法澡腾。
2.實(shí)驗(yàn)內(nèi)容
編寫定時(shí)程序沸伏,實(shí)現(xiàn)發(fā)光二級(jí)管D1的定時(shí)1s亮滅
3.實(shí)驗(yàn)器材
(1)計(jì)算機(jī)1臺(tái) (2)仿真器1臺(tái) (3)開發(fā)板1套
4.硬件連線

5.實(shí)驗(yàn)程序

6.思考與發(fā)揮
(1)如何改變亮滅的頻率?
(2)計(jì)數(shù)初值變大动分,亮滅頻率將如何變化毅糟?

實(shí)驗(yàn)四流水燈程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?br> 初步掌握C51程序設(shè)計(jì)方法。
2.實(shí)驗(yàn)內(nèi)容
編寫程序澜公,使D0-D8姆另,8個(gè)LED呈現(xiàn)流水燈效果進(jìn)行左移右移滾動(dòng)
3.實(shí)驗(yàn)器材
(1)計(jì)算機(jī)1臺(tái) (2)仿真器1臺(tái) (3)開發(fā)板1套
4.實(shí)驗(yàn)程序
/**************************************************************************************

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

1
實(shí)現(xiàn)現(xiàn)象:下載程序后LED呈現(xiàn)流水燈效果進(jìn)行左移右移滾動(dòng)
注意事項(xiàng):無
***************************************************************************************/

include “reg52.h” //此文件中定義了單片機(jī)的一些特殊功能寄存器

include<intrins.h> //因?yàn)橐玫阶笥乙坪瘮?shù),所以加入這個(gè)頭文件

typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;

define led P2 //將P2口定義為led 后面就可以使用led代替P2口

/*******************************************************************************

函 數(shù) 名 : delay
函數(shù)功能 : 延時(shí)函數(shù)坟乾,i=1時(shí)迹辐,大約延時(shí)10us
*******************************************************************************/
void delay(u16 i)
{
while(i–);
}
/*******************************************************************************

函 數(shù) 名 : main
函數(shù)功能 : 主函數(shù)
輸 入 : 無
輸 出 : 無
******************************************************************************/
void main()
{
u8 i;
led=0xfe;
delay(50000); //大約延時(shí)450ms
while(1)
{
/ for(i=0;i<8;i++)
{
P2=~(0x01<<i); //將1右移i位,然后將結(jié)果取反賦值到P2口
delay(50000); //大約延時(shí)450ms
}
*/
for(i=0;i<7;i++) //將led左移一位
{
led=crol(led,1);
delay(50000); //大約延時(shí)450ms
}
for(i=0;i<7;i++) //將led右移一位
{
led=cror(led,1);
delay(50000); //大約延時(shí)450ms
}
}
}本例中main是主函數(shù)名甚侣,要執(zhí)行的主函數(shù)的內(nèi)容稱為主函數(shù)體明吩,主函數(shù)體用大括號(hào){ }括起來。函數(shù)體中包含若干條將被執(zhí)行的程序語句殷费,每條語句都必須以分號(hào)為結(jié)束符印荔。
5.思考與發(fā)揮
(1)流水燈的間隔時(shí)間怎么確定?
(2)流水燈的移動(dòng)方向和順序怎么確定详羡?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仍律,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子实柠,更是在濱河造成了極大的恐慌染苛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件主到,死亡現(xiàn)場離奇詭異茶行,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)登钥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門畔师,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人牧牢,你說我怎么就攤上這事看锉∽硕В” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵伯铣,是天一觀的道長呻此。 經(jīng)常有香客問我,道長腔寡,這世上最難降的妖魔是什么焚鲜? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮放前,結(jié)果婚禮上忿磅,老公的妹妹穿的比我還像新娘。我一直安慰自己凭语,他們只是感情好葱她,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著似扔,像睡著了一般吨些。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炒辉,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天锤灿,我揣著相機(jī)與錄音,去河邊找鬼辆脸。 笑死但校,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的啡氢。 我是一名探鬼主播状囱,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼倘是!你這毒婦竟也來了亭枷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤搀崭,失蹤者是張志新(化名)和其女友劉穎叨粘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘤睹,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡升敲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了轰传。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驴党。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖获茬,靈堂內(nèi)的尸體忽然破棺而出港庄,到底是詐尸還是另有隱情倔既,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布鹏氧,位于F島的核電站渤涌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏把还。R本人自食惡果不足惜实蓬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笨篷。 院中可真熱鬧,春花似錦瓣履、人聲如沸率翅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冕臭。三九已至,卻和暖如春燕锥,著一層夾襖步出監(jiān)牢的瞬間辜贵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工归形, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留托慨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓暇榴,卻偏偏與公主長得像厚棵,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔼紧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355