AT89C52是ATMEL公司生產(chǎn)的MCS-51系列單片機,內(nèi)置8K字節(jié)電擦除可編程EEPROM片內(nèi)程序存儲器和256字節(jié)RAM,片內(nèi)程序存儲器空間能滿足本系統(tǒng)程序存儲之需要,可省去片外EPROM程序存儲器和地址鎖存器,使電路結(jié)構(gòu)簡捷。
TXD、RXD、P1.5、P1.6分別與MAX487的DI、RO、、DE相聯(lián)進(jìn)行數(shù)據(jù)通訊控制,P1.0~P1.4口、RESET接至 X25045ALE、P0口、P2.0、P2.1接至8155。P3.4口計數(shù)器T0輸入端接至LM331的頻率輸出端進(jìn)行脈沖計數(shù)。P1.7口為光耦 TIL117控制端。
系統(tǒng)數(shù)據(jù)存儲及故障保護(hù)部分由X25045組成,X25045是一種串行通訊的512字節(jié)EEPROM,同時兼有看門狗和電源監(jiān)控功能。X25045 有三種可編程看門狗周期,上電和VCC低于檢測門限時,輸出復(fù)位信號,X25045輸出復(fù)位高電平有效,其復(fù)位輸出端直接與89C52的復(fù)位端連接。
X25045管腳功能:
:片選輸入;SO:串行輸出;SI:串行輸入;SCK:串行時鐘輸入;WP:寫保護(hù)輸入;RESET::復(fù)位輸出。
2.4 通訊口(MAX487)
本系統(tǒng)采用RS-485接口芯片MAX487作為通訊口。MAX487是MAXIM公司生產(chǎn)的用于RS-485和RS—422通信的差分總線小功率收發(fā)器,它含有一個驅(qū)動器和一個接收器,具有驅(qū)動器/接收器使能功能,輸入阻抗為1/4負(fù)載(≥48kW),節(jié)點數(shù)為128,即每個MAX487的驅(qū)動器可驅(qū)動128個標(biāo)準(zhǔn)負(fù)載。MAX487的驅(qū)動器設(shè)計成限斜率方式,使輸出信號邊沿不至于過陡,以避免在傳輸線產(chǎn)生過多的高頻分量,從而有效扼制了干擾現(xiàn)象。 MAX487的接收靈敏度為±200MV,即接收端的差分電壓≥+200MV時,接收器輸出為高電平,≤-200MV時接收器輸出為低電平,介于±200MV之間時接收器輸出為不確定狀態(tài),因此,一旦某個節(jié)點的接收器在總線空閑、傳輸線開路或短路時產(chǎn)生低電平,將使串行接收器找不到起始位,從而引起通信異常,為此,本系統(tǒng)在硬件上作了處理:將MAX487的A、B輸出端加接上拉、下拉電阻,保證在發(fā)出有效數(shù)據(jù)時所有接收器能接收到完整的數(shù)據(jù)?! ?br />
MAX487的數(shù)據(jù)傳輸速率為0.25Mbps,靜態(tài)工作電流為120μA,5V單電源工作,在本系統(tǒng)中,MAX487采用半雙工通信方式,各節(jié)點間的通信通過一對雙絞線作為傳輸介質(zhì),因雙絞線的特性阻抗為120Ω,因此系統(tǒng)在MAX487的始端和末端各接一個120Ω電阻以減少線路上傳輸信號的反射。由于主機與分機相隔較遠(yuǎn),而分機系統(tǒng)上電或復(fù)位又常常不在同一時刻完成,如在此時某個MAX487處于發(fā)送狀態(tài),將占用通信總線而使其它分機無法與主機進(jìn)行通信,本系統(tǒng)在89C52的P1.6口與MAX487的DE端之間加接光耦TIL117,保證了系統(tǒng)上電復(fù)位時MAX487的DE端為“0”,有效解決了這個問題。
MAX487主要管腳功能:
RO:接收器輸出端;:接收器輸出使能端,為“0”時RO被使能;DE:驅(qū)動器輸出使能端;DI:驅(qū)動器輸入端;A:接收器同相輸入端和驅(qū)動器同相輸出端;B:接收器反相輸入端和驅(qū)動器反相輸出端。
控制軟件的設(shè)計
該系統(tǒng)軟件采用模塊化設(shè)計,由主程序和子程序及中斷服務(wù)程序組成。主程序流程圖如圖2所示,主要子程序包括:顯示子程序;鍵盤掃描子程序;PID運算子程序。限于篇幅,具體程序略。