51單片機(jī)ALE引腳的控制
在FLASH編程期間,此引腳用于輸入編程脈沖。
本文引用地址:http://m.butianyuan.cn/article/201611/320361.htm在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。
當(dāng)訪問外部存儲(chǔ)器時(shí),ALE作為鎖存擴(kuò)展地址的低8位字節(jié)的控制信號(hào)。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE以十二分之一振蕩頻率輸出正脈沖,同時(shí)這個(gè)引腳也是EPROM編程時(shí)的編程脈沖輸入端。
但是這個(gè)引腳還有一個(gè)非常有用的功能往往被很多人給忽視了,那就是當(dāng)非訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE以六分之一振蕩頻率固定輸出正脈沖, 8051一個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)振蕩周期,若采用6MHz的晶體振蕩器,則ALE會(huì)發(fā)出1MHz的固定的正脈沖。因此它可以用來做外部時(shí)鐘或定時(shí)。如果我們把這個(gè)功能應(yīng)用與實(shí)際,可能給我們的設(shè)計(jì)帶來簡(jiǎn)化,降低生產(chǎn)成本。
ALE腳是在使用MOVX、MOVC指令時(shí)才會(huì)變成有效(這些指令都使用到外部RAM或ROM的地址。這些指令都有一個(gè)特點(diǎn):地址和數(shù)據(jù)分時(shí)出現(xiàn)在P0口)。使用C寫程序時(shí),要使用它有效,可用訪問內(nèi)部RAM地址的方法。如:uVariable=*((char *)0x12C),把0x12C地址的內(nèi)容給uVariable變量。這個(gè)過程有效的腳為ALE、RD。
這個(gè)信號(hào)線的信號(hào)生成是MCU硬件電路實(shí)現(xiàn)的,不可以人工控制。在某些內(nèi)置TOM的MCU里,可以關(guān)閉ALE信號(hào)輸出,以降低EMI。
評(píng)論