從定時(shí)器開(kāi)始說(shuō)中斷
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
看到了吧,中斷號就是對應中斷進(jìn)入地址的,至于什么是中斷進(jìn)入地址?那就是發(fā)生某個(gè)中斷的時(shí)候單片機自動(dòng)跳進(jìn)的一個(gè)地址段了.
對于定時(shí)器0來(lái)說(shuō),就是000BH,所以對應中斷號1。其他中斷地址看看書(shū)就知道了。由上面的表可以看出,KEILC支持32個(gè)中斷,不過(guò)到現在為止,我還沒(méi)看到過(guò)有51單片機有32個(gè)中斷的:)
好了,進(jìn)入調試實(shí)踐中了,把上面的代碼敲進(jìn)去吧,又或者直接下載我這個(gè)編譯好的工程:
timer0
進(jìn)入工程后,你需要設置點(diǎn)東西:
Debug Information是調試信息,你選擇這個(gè)東西,才可以在C語(yǔ)言上進(jìn)行仿真(不管是軟還是硬仿真),否則你的仿真環(huán)境是匯編的!
軟仿真設置:
Go till main()就是在仿真的時(shí)候直接跳到MAIN函數上。如果沒(méi)有選,那就由0地址開(kāi)始運行。這里說(shuō)個(gè)概念,在C51中,mian()函數并不代表0地址的,要知道,keilc在一開(kāi)始的時(shí)候是需要經(jīng)過(guò)比較多的初始化,例如清空RAM內容,設置堆棧等東西,這些都是不需要你做的,你的用戶(hù)程序也不包括這些,做完這些初始化后,KEIL才自動(dòng)跳到你的mian進(jìn)行處理.
軟件仿真是可以選晶振的,我們選的12M。下面的這些東西你就按圖中的來(lái)選吧,具體內容以后再說(shuō)。
如果編譯成功的話(huà),那么我們就開(kāi)始第一次的軟件仿真咯:
上面的是已經(jīng)進(jìn)入仿真狀態(tài)的了,因為我們選擇了Debug Information所以可以在C下面調試,也因為選擇了Go till main()我們可以看到一開(kāi)始就有個(gè)箭頭指著(zhù)main()的第一句話(huà)。而程序旁深色的東東,也就是我圈著(zhù)的東西,就是有效代碼段,程序只會(huì )在那里跑,也就是那個(gè)黃色箭頭只會(huì )在那個(gè)區域跑?,F在你已經(jīng)可以仿真的了,可以選單步,全速來(lái)運行了。關(guān)于KEIL的具體仿真,將在下一章為大家解說(shuō)。
評論