單片機(jī)學(xué)習(xí)知識(shí)點(diǎn)全攻略(完結(jié)篇)(三)
六、單片機(jī)的開(kāi)發(fā)過(guò)程 這里所說(shuō)的開(kāi)發(fā)過(guò)程并不是一般書(shū)中所說(shuō)的從任務(wù)分析開(kāi)始,我們假設(shè)已設(shè)計(jì)并制作好硬件,下面就是編寫(xiě)軟件的工作。在編寫(xiě)軟件之前,首先要確定一些常數(shù)、地址,事實(shí)上這些常數(shù)、地址在設(shè)計(jì)階段已被直接或間接地確定下來(lái)了。如當(dāng)某器件的連線設(shè)計(jì)好后,其地址也就被確定了,當(dāng)器件的功能被確定下來(lái)后,其控制字也就被確定了。然后用文本編緝器(如EDIT、CCED等)編寫(xiě)軟件,編寫(xiě)好后,用編譯器對(duì)源程序文件編譯,查錯(cuò),直到?jīng)]有語(yǔ)法錯(cuò)誤,除了極簡(jiǎn)單的程序外,一般應(yīng)用仿真機(jī)對(duì)軟件進(jìn)行調(diào)試,直到程序運(yùn)行正確為止。運(yùn)行正確后,就能寫(xiě)片(將程序固化在EPROM中)。在源程序被編譯后,生成了擴(kuò)展名為HEX的目標(biāo)文件,一般編程器能夠識(shí)別這種格式的文件,只要將此文件調(diào)入即可寫(xiě)片。在此,為使大家對(duì)整個(gè)過(guò)程有個(gè)認(rèn)識(shí),舉一例說(shuō)明:
表1
ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;設(shè)堆棧
LOOP:
NOP
LJMP LOOP ;循環(huán)
END ;結(jié)束
表2
?。?3000000020040BB
?。?700400075815F000200431F
表3
02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 75 81 5F 00 02 00 43
表1為源程序,表2是匯編后得到的HEX文件,表3是由HEX文件轉(zhuǎn)換成的目標(biāo)文件,也就是最終寫(xiě)入EPROM的文件,它由編程器轉(zhuǎn)換得到,也能由HEXBIN一類(lèi)的程序轉(zhuǎn)換得到。學(xué)過(guò)手工匯編者應(yīng)當(dāng)不難找出表3與表1的一一對(duì)應(yīng)關(guān)系,值得注意的是從02 00 40后開(kāi)始的一長(zhǎng)串‘FF’,直到75 81,這是由于偽指令:ORG 040H造成的結(jié)果。
七、仿真、仿
評(píng)論