西門子CPU模塊6ES7321-1BL00-4AA2原裝現貨
4 對芯片重復編程
對無硬件仿真器的用戶,總是選用帶EPROM的芯片來調試程序。每更改一次程序,都是將原來的內容先擦除,再編程,其過程浪費了相當多的時間,又縮短了芯片的使用壽命。如果后一次編程的結果較前一次,僅是對應的機器碼字節的相同位由“1"變成“0",就可在前一次編程芯片上再次寫入數據,而不必擦除原片內容。
在程序的調試過程中,經常遇到常數的調整,如常數的改變能保證對應位由“1"變“0",都可在原片內容的基礎繼續編程。另外,由于指令“NOP"對應的機器碼為“00",調試過程中指令的刪除,先用“NOP"指令替代,編譯后也可在原片內容上繼續編程。
另外,在對帶EPROM的芯片編程時,特別注意程序保密狀態位。廠家對新一代帶EPROM芯片的保密狀態位已由原來的EPROM可擦型改為了熔絲型,一旦程序代碼保密熔絲編程為“0",可重復編程的 EPROM 芯片就無法再次編程了。使用時應注意這點,以免造成不必要的浪費(Microchip 資料并未對此做出說明)。
編寫PIC單片機的源程序,除了源程序的開始處要求嚴格的列表指令外,還需注意源程序中字母符號大小寫的有關規則,否則在PC機上匯編源程序時不會成功。筆者用下列的PIC16F84單片機對B口送數的源程序(源程序各自定義)為實例,說明其注意的問題。
LIST P=PIC16F84
#INCLUDE P16F84INC
ORG 0
START CLRW ;起始地址
BSF STATUS,5 ;選體1
MOVWF TRISB ;置B口為輸出 BCF STATUS,5;STATUS,5復位
MOVW 0xAA ;可使B口的
LED間亮
MOVWF PORTB ;B口輸出10
101010
LOOP GOTO LOOP
END
上述源程序中因用了偽指令INCLUDE,在這里是指把列表的PIC16F84文件(在MPLAB中)讀入源程序作為上述源程序的一部分,所以凡是MPLAB中有關PIC16F84已有的寄存器在上述源程序中無需再用賦值指令(EQU)賦值,這就使所建立的源程序大為簡化。
此外,由于有了偽指令INCLUDE,所以根據MPLAB軟件中的格式,在源程序中的操作數凡是涉及MPLAB已規定的寄存器名稱,其字母一律只能大寫,不能小寫,其余操作碼、標號字母可任意大小寫,但0x中的x應小寫,否則匯編不會成功。鑒于上述原因,為了書寫方便,所以在使用MPLAB軟件時,PIC單片機的源程序均用大寫字母為宜(0x例外)。