基于AT89S52與PIC16F877A的在線編程控制系統(tǒng)
l 引 言
本文引用地址:http://butianyuan.cn/article/161130.htm通常進(jìn)行單片機(jī)的實驗或開發(fā)時,傳統(tǒng)的并行編程方法中,編程器是必不可少的。仿真、調(diào)試完的程序需要借助編程器燒到單片機(jī)內(nèi)部或外接的程序存儲器中。
在開發(fā)過程中,程序每改動一次就要拔下電路板上的芯片,編程后再插上。隨著計算機(jī)技術(shù)的發(fā)展,許多公司推出了帶有片內(nèi)FLASH存儲器的MCU,F(xiàn)LASH存儲器具有電可擦除、無需后備電源保護(hù)數(shù)據(jù)、可在線編程等特點。在線編程目前有兩種實現(xiàn)方法:在線系統(tǒng)編程(ISP)和在線應(yīng)用編程(IAP)。ISP一般是通過單片機(jī)專用的串行編程接口對單片機(jī)內(nèi)部的FLASH存儲器進(jìn)行編程,例如AT-MEL公司的單片機(jī)AT89S52就提供了一個SPI串行接口對內(nèi)部程序存儲器編程(ISP)。
在線編程(ISP)允許單片機(jī)內(nèi)部運(yùn)行的程序去改寫FLASH存儲器的內(nèi)容,可以在運(yùn)行過程中修改某些運(yùn)行參數(shù),已經(jīng)編程的器件也可以用ISP方式擦除或再編程。單片機(jī)在ISP模式下上電時,可以進(jìn)行ISP操作,在ISP模式下,單片機(jī)通過串行端口與外部主機(jī)(如PC機(jī)或終端)通信,從主機(jī)接收命令和數(shù)據(jù),用于擦除和再編程代碼存儲區(qū)。ISP的實現(xiàn)一般只需要很少的外部電路輔助實現(xiàn),使用ISP技術(shù),連接一根下載線即可對芯片編程,不再需要編程器就可進(jìn)行單片機(jī)的實驗和開發(fā),單片機(jī)芯片可以直接焊接在電路板上,調(diào)試結(jié)束即成成品,甚至可以遠(yuǎn)程在線升級或改變單片機(jī)中的程序。
2 AT89S52 ISP原理
AT89S52具有ISP功能。在RESET引腳處于高電平時,利用P1.5(MOSI),P1.6(MISO),P1.7(SCK)三引腳的數(shù)據(jù)設(shè)置或傳送達(dá)到程序下載的目的,P1.5(MOSI)引腳作為串行指令的輸入端口,P1.6(MISO)引腳作為串行數(shù)據(jù)的輸出端口,P1.7(SCK)引腳作為串行移位脈沖的輸入端口。
AT89S系列中的FLASH地址編址是以字節(jié)為單位的,在使用過程中應(yīng)注意高低字節(jié)的區(qū)別,上位機(jī)和目標(biāo)板通信時,一般都是4字節(jié)的指令,第1字節(jié)為操作碼,第2、第3字節(jié)一般為地址碼,第4字節(jié)為數(shù)據(jù)。
根據(jù)串行下載波形圖和串行下載編程指令集即可完成有關(guān)在線下載的操作。
3 在線編程控制系統(tǒng)的設(shè)計
3.1 系統(tǒng)結(jié)構(gòu)
AT89S52負(fù)責(zé)人機(jī)界面的信息交互,主要由顯示部分,鍵盤部分和數(shù)據(jù)通路組成。
顯示部分由AT89S52的P1,P2口組成。P2是八位的顯示數(shù)據(jù)通路,P1.1~P1.4是4個LED的使能線,達(dá)到動態(tài)顯示4位數(shù)據(jù)的效果。
鍵盤部分由INT0,INT1,CT0,CT1組成。利用中斷的優(yōu)先級嵌套實現(xiàn)命令與數(shù)據(jù)的輸入,減少了鍵盤的體積。硬件分配如下:
數(shù)據(jù)通路部分主要是PSP的控制。PSP是PIC16FX系列微處理器專門針對8位機(jī)的通用數(shù)據(jù)端口,由CS,WR,RD,8位數(shù)據(jù)線組成,可供AT89S52直接控制。
PIC收到PSP的數(shù)據(jù)后會產(chǎn)生一個中斷響應(yīng),由軟件設(shè)計者決定該中斷如何處理。因此,可以設(shè)定0XC0~0XFF為命令字節(jié),供控制使用,0X00~0X09為功能號,組合起來就可以實現(xiàn)各種控制的命令。
PIC16FX具有4路A/D通道,精度為10 b,轉(zhuǎn)換時間為56μs。內(nèi)置硬件看門狗電路,提高了可靠性,節(jié)省了軟件開支。利用其4路中斷功能實現(xiàn)系統(tǒng)復(fù)位及檢修測試功能。PGM接口(在線編程接口)可采用ICD2適配器進(jìn)行在線編程和調(diào)試。系統(tǒng)結(jié)構(gòu)如圖1所示。
3.2 系統(tǒng)功能
(1) AT89S52頻率4 MHz,具有在線編程,無需編程器直接燒寫的功能,用AT89S52[INT0],[INT1],[CT0],[CT1]四個引腳單獨引出,方便作為鍵盤接口。
(2) AT89S52 P1.1~P1.4分別作為LED1~4的使能線,高電平有效,P2口作為LED1~4的八位顯示數(shù)據(jù)口。
(3) AT89S52串口與16F877A的串口可直接進(jìn)行串口通訊。
(4) AT89S52 P0口及[ALE十P1.0],[WR],[RD]作為8位并行端口與16F877A通訊。
(5) PIC16F877A:頻率20 MHz:
① PA-AN[0]-板載A/D通道:VREF+/-可調(diào)
AN[1],[5]一外接A/D通道,AN[2-3]-VREF+/-可調(diào),AN[4]-T0CKI-WDT監(jiān)控。
② PB-PB0-外接INT中斷信號,低電平/下降沿有效,PB1,2,4,5作為INPUT1234,低電平/下降沿有效。
3.3 電路原理圖
AT89S52部分電路原理如圖2所示。
評論