<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC8位單片機源程序編寫(xiě)方法

PIC8位單片機源程序編寫(xiě)方法

作者: 時(shí)間:2013-01-09 來(lái)源:網(wǎng)絡(luò ) 收藏

單片機的源程序是指PIC的助記符指令編寫(xiě)的程序(匯編語(yǔ)言程序)。這里將對PIC源程序的格式要求和其源程序的建立或書(shū)寫(xiě)作簡(jiǎn)要的介紹。

一般來(lái)說(shuō)對PIC單片機的源程序格式并沒(méi)有要求統一的編寫(xiě)形式,用戶(hù)可以根據習慣來(lái)編寫(xiě),當然編寫(xiě)時(shí)應遵守匯編的一些規范。下面以PIC16F84芯片點(diǎn)亮一支發(fā)光二極管的匯編程序實(shí)例,介紹一種源程序編寫(xiě)的方法(格式),以供實(shí)際應用時(shí)參考。

源程序清單

1File TURNON.ASM

2Assembly code for PIC16F84 microcontroller

3Turns on an LED connected to B0

4Uses RC oscillator,about 100kHz

5CPU configuration

6(it’s a 16F84,RC oscillator

7watchdog timer off,power-up timer on)

8processor 16F84

9include

10_config_RC_OSC_WDT_OFF_PWRTE_ON

11P(pán)rogram

12org 0;start at address 0

13At startup,all ports are inputs

14Set Port B to all outputs

15movlw B‘00000000’;w=binary 00000000

16tris Portb     ;copy w to port B control reg

17P(pán)ut a 1 in the lowest bit of port B

18movlw B‘00000001’;w=binary 00000001

19movwf portb    ;copy w to port B itself

20Stop by going into an endless loop

21fin:goto fin

22end ;program ends here

現對源程序清單逐行加以說(shuō)明。

第1行為文件(File)名,這里取名TURNONASM。TURNON意指一個(gè)接通(即接通LED)程序。ASM是源程序的擴展名。

第2行說(shuō)明是由適用于PIC16F84微控制器的匯編碼編寫(xiě)的源程序。

第3行說(shuō)明程序用途是接通PIC16F84 PORTB的B0位LED。

第4行說(shuō)明由RC振蕩器供給時(shí)鐘,頻率約為100kHz。

第5、6、7行說(shuō)明對16F84 CPU的結構設置(用RC振蕩器,看門(mén)狗定時(shí)器即watchdog timer關(guān),上電power-up定時(shí)器開(kāi),關(guān)于16F84的結構設置,后面將詳談)。

第8、9、10行為偽指令。這是用來(lái)向匯編程序提供有關(guān)如何完成匯編的控制命令信息,它既是匯編過(guò)程的控制指令,也是匯編程序的操作指令。在這里8、9、10行還向匯編程序說(shuō)明,單片機用的是16F84,用RC振蕩器、看門(mén)狗定時(shí)器關(guān)斷不用,但上電定時(shí)器接通使用。對照5、6行,可見(jiàn)二者內容相同,但一個(gè)是注釋?zhuān)瑢?zhuān)門(mén)為用戶(hù)說(shuō)明,另一個(gè)是偽指令,是為PC機的匯編程序提供命令信息。

第11行又是注釋?zhuān)f(shuō)明程序主體由此開(kāi)始。

第12行說(shuō)明程序存放在由地址0開(kāi)始的16F84單片機中的程序存貯器中,也是一條偽指令。

第13、14兩行為注釋?zhuān)f(shuō)明后續的一段指令(兩句)的作用,即在啟動(dòng)時(shí),所有端口為輸入,隨即將B口設定為全輸出(即各位均為輸出)。

第15行是匯編語(yǔ)言編寫(xiě)的第一條指令,即對二進(jìn)制(B)數“00000000”存入工作寄存器W。

第16行將W寄存器的內容(即00000000)傳送到B口控制寄存器,使B口成為輸出口。15、16行均帶有注釋?! 〉?7行為注釋?zhuān)f(shuō)明下面的二條指令是使B口的最低位為1。

第18行的指令將二進(jìn)制數00000001送入工作寄存器W,第19行指令則將W寄存器的內容復制到B口,則B口的最低位B0為高電平,其余各位則為低電平,使接到B0位的LED發(fā)光。

第20行又是注釋。說(shuō)明下面的指令將使B0位為高的狀態(tài)繼續下去。

第21行的指令為無(wú)限循環(huán)語(yǔ)句,維持B1口輸出為高不變。

第22行是偽指令END,表明程序到此結束。

將清單所列程序在PC機上用一種名為MPASM的匯編軟件進(jìn)行匯編后,如無(wú)錯誤,即可獲得擴展名為HEX的相應機器碼文件,借助編程器將該文件的相應內容燒入PIC16F84單片機的程序存儲器內,并將編程好的芯片插入前述的電路板中,再加上電源,即可點(diǎn)亮16F84 B0位的LED。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>