7. 給ALE一個50us的低電平脈沖.
8. 效驗數(shù)據(jù),將控制信號組合為讀模式,數(shù)據(jù)即出現(xiàn)在P0口.
9. 改變地址和數(shù)據(jù),重復步驟3~8步,直至程序寫完.
AT89C1051\2051\4051的編程原理
AT89C1051\2051\4051只有20個腳,相對AT89C51\52來說少了P0口和P2口.以AT89C2051為例,它內部有一個地址計數(shù)器,它的編程地址是通過XTAL1串行輸入的,對XTAL1管腳施加一個脈沖,內部地址計數(shù)器遞增,而數(shù)據(jù)則通過P1口輸入.編程時硬件參照圖2連接,控制信號見表2:
其編程步驟如下:
1. 擦除程序,電平組合為擦除模式,往P3.2口送一10ms低電平脈沖,內部ROM全部被置1,擦除完成.
2. 將XTAL1和RST置低電平.
3. 將RST和P3.2置高電平.
4. 將P3.4、P3.5、P3.6、P3.7的電平組合為寫模式.
5. 將編程數(shù)據(jù)送入P1口.
6. 將RST端電壓升至12V編程電壓.
7. 送P3.2一個50us的低電平脈沖,即將一個字節(jié)寫入內部ROM.
8. 效驗數(shù)據(jù),將RST電壓降為5V,組合電平變?yōu)樽x模式,數(shù)據(jù)即出現(xiàn)在P1口.
9. 對下一存儲單元編程,在XTAL1施加一個脈沖,內部計數(shù)器加1,新數(shù)據(jù)送入P1口.
10. 重復步驟1~8,直至程序寫完.
11. 下電步驟:將XTAL1置低電平,RST置低電平.
對十六進制文件的理解
當對源程序進行編譯鏈接完成后,將得到相應的十六進制文件(后綴是.HEX), 對單片機進行編程就是將*.HEX文件寫入內部ROM, 當用記事本程序打開HEX文件時,可以發(fā)現(xiàn)其每一行都是以“:”開頭,后面是一串十六進制數(shù)字;
從“:”開始,第一個字節(jié)表示要寫入ROM的字節(jié)數(shù),第二、三字節(jié)表示這一串數(shù)據(jù)在ROM中的首地址,第四個字節(jié)總是00,一般不作處理,第五個字節(jié)到倒數(shù)第二個字節(jié)就是要寫入ROM的數(shù)據(jù),最后一個字節(jié)作效驗用,使得整行數(shù)據(jù)之和低8位為0。





