從定時(shí)器開始說中斷
13 006BH
14 0073H
15 007BH
16 0083H
17 008BH
18 0093H
19 009BH
20 00A3H
21 00ABH
22 00B3H
23 00BBH
24 00C3H
25 00CBH
26 00D3H
27 00DBH
28 00E3H
29 00EBH
30 00F3H
31 00FBH
看到了吧,中斷號(hào)就是對(duì)應(yīng)中斷進(jìn)入地址的,至于什么是中斷進(jìn)入地址?那就是發(fā)生某個(gè)中斷的時(shí)候單片機(jī)自動(dòng)跳進(jìn)的一個(gè)地址段了.
對(duì)于定時(shí)器0來說,就是000BH,所以對(duì)應(yīng)中斷號(hào)1。其他中斷地址看看書就知道了。由上面的表可以看出,KEILC支持32個(gè)中斷,不過到現(xiàn)在為止,我還沒看到過有51單片機(jī)有32個(gè)中斷的:)
好了,進(jìn)入調(diào)試實(shí)踐中了,把上面的代碼敲進(jìn)去吧,又或者直接下載我這個(gè)編譯好的工程:
timer0
進(jìn)入工程后,你需要設(shè)置點(diǎn)東西:
Debug Information是調(diào)試信息,你選擇這個(gè)東西,才可以在C語(yǔ)言上進(jìn)行仿真(不管是軟還是硬仿真),否則你的仿真環(huán)境是匯編的!
軟仿真設(shè)置:
Go till main()就是在仿真的時(shí)候直接跳到MAIN函數(shù)上。如果沒有選,那就由0地址開始運(yùn)行。這里說個(gè)概念,在C51中,mian()函數(shù)并不代表0地址的,要知道,keilc在一開始的時(shí)候是需要經(jīng)過比較多的初始化,例如清空RAM內(nèi)容,設(shè)置堆棧等東西,這些都是不需要你做的,你的用戶程序也不包括這些,做完這些初始化后,KEIL才自動(dòng)跳到你的mian進(jìn)行處理.
軟件仿真是可以選晶振的,我們選的12M。下面的這些東西你就按圖中的來選吧,具體內(nèi)容以后再說。
如果編譯成功的話,那么我們就開始第一次的軟件仿真咯:
上面的是已經(jīng)進(jìn)入仿真狀態(tài)的了,因?yàn)槲覀冞x擇了Debug Information所以可以在C下面調(diào)試,也因?yàn)檫x擇了Go till main()我們可以看到一開始就有個(gè)箭頭指著main()的第一句話。而程序旁深色的東東,也就是我圈著的東西,就是有效代碼段,程序只會(huì)在那里跑,也就是那個(gè)黃色箭頭只會(huì)在那個(gè)區(qū)域跑?,F(xiàn)在你已經(jīng)可以仿真的了,可以選單步,全速來運(yùn)行了。關(guān)于KEIL的具體仿真,將在下一章為大家解說。
評(píng)論