新聞中心

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

        PIC8位單片機源程序編寫方法

        作者: 時間:2013-01-09 來源:網絡 收藏

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

        一般來說對PIC單片機的源程序格式并沒有要求統一的編寫形式,用戶可以根據習慣來編寫,當然編寫時應遵守匯編的一些規范。下面以PIC16F84芯片點亮一支發光二極管的匯編程序實例,介紹一種源程序編寫的方法(格式),以供實際應用時參考。

        源程序清單

        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Program

        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Put 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

        現對源程序清單逐行加以說明。

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

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

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

        第4行說明由RC振蕩器供給時鐘,頻率約為100kHz。

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

        第8、9、10行為偽指令。這是用來向匯編程序提供有關如何完成匯編的控制命令信息,它既是匯編過程的控制指令,也是匯編程序的操作指令。在這里8、9、10行還向匯編程序說明,單片機用的是16F84,用RC振蕩器、看門狗定時器關斷不用,但上電定時器接通使用。對照5、6行,可見二者內容相同,但一個是注釋,專門為用戶說明,另一個是偽指令,是為PC機的匯編程序提供命令信息。

        第11行又是注釋,說明程序主體由此開始。

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

        第13、14兩行為注釋,說明后續的一段指令(兩句)的作用,即在啟動時,所有端口為輸入,隨即將B口設定為全輸出(即各位均為輸出)。

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

        第16行將W寄存器的內容(即00000000)傳送到B口控制寄存器,使B口成為輸出口。15、16行均帶有注釋。  第17行為注釋,說明下面的二條指令是使B口的最低位為1。

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

        第20行又是注釋。說明下面的指令將使B0位為高的狀態繼續下去。

        第21行的指令為無限循環語句,維持B1口輸出為高不變。

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

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 夏津县| 彭州市| 满城县| 汝南县| 页游| 隆安县| 垦利县| 扶余县| 甘洛县| 敦化市| 柏乡县| 河南省| 大理市| 庆安县| 慈利县| 高雄市| 青浦区| 古田县| 舒城县| 萨嘎县| 马尔康县| 财经| 响水县| 朝阳县| 徐水县| 扶余县| 轮台县| 宜昌市| 凌云县| 临海市| 焉耆| 溧水县| 玛曲县| 资源县| 山东省| 合川市| 乳源| 彭泽县| 临武县| 聂荣县| 吴江市|