知道了單片機通過(guò)I/O口與外設打交道,也知道了單片機的程序與數據如何保存,到底單片機是如何運行程序的?原來(lái)單片機和其他微機一樣,也擁有一個(gè)中央處理器(CPU),它是整個(gè)單片機的核心部件,是8位數據寬度的處理器,能處理8位二進(jìn)制數據或代碼,CPU負責控制、指揮和調度整個(gè)單元系統協(xié)調的工作,完成運算和控制輸入輸出功能等操作。它通過(guò)單片機的內部總線(xiàn),將單片機內部的各個(gè)部分:程序存儲器(ROM)、數據存儲器(RAM)、定時(shí)/計數器、并行接口、串行接口和中斷系統等聯(lián)系在一起,內部總線(xiàn)有三種:數據總線(xiàn),專(zhuān)門(mén)用來(lái)傳送數據信息,地址總線(xiàn)專(zhuān)門(mén)用來(lái)傳送地址信息,選中各操作單元,控制總線(xiàn)專(zhuān)門(mén)用來(lái)傳送CPU各種控制命令,以便CPU統一指揮協(xié)調工作。完成程序所要執行的各種功能。CPU執行程序一般包括兩個(gè)主要過(guò)程:第一,就是從程序存儲器中取出指令,指令的地址由PC指針提供,在前面我們已經(jīng)知道,PC指針在CPU取指后會(huì )自動(dòng)加一,所以PC指針總是指向下一個(gè)將要取出的指令代碼或操作數。這樣,就能保證程序源源不斷往下執行。第二,就是執指過(guò)程,取出的指令代碼首先被送到CPU中控制器中的指令寄存器,再通過(guò)指令譯碼器譯碼變成各種電信號,從而實(shí)現指令的各種功能。
現在我們知道了單片機怎樣取指、執指,即怎樣運行程序了。那么怎樣才能保證CPU有序的工作?這就必須提到單片機的兩個(gè)非常重要的外圍電路:?jiǎn)纹瑱C的時(shí)鐘電路和復位電路。在單片機上面有兩個(gè)引腳,分別是它的第18、19腳,其功能如下。
Pin19: 時(shí)鐘XTAL1腳,片內振蕩電路的輸入端。
Pin18: 時(shí)鐘XTAL2腳,片內振蕩電路的輸出端。
89S51的時(shí)鐘有兩種方式,一種是片內時(shí)鐘振蕩方式,但需在18和19腳外接石英晶體和振蕩電容,振蕩電容的值一般取10p~30p。另外一種是外部時(shí)鐘方式,即將XTAL1接地,外部時(shí)鐘信號從XTAL2腳輸入。
當時(shí)鐘電路起振后,產(chǎn)生一定頻率的時(shí)鐘信號,單片機的CPU在時(shí)鐘信號的控制下,就能一步一步完成自己的工作。通常我們必須了解以下幾種周期。
【振蕩周期】:?jiǎn)纹瑱C外接石英晶體振蕩器的周期。如外接石英晶體的頻率若為12MHz,這其振蕩周期就是1/12微秒。
【狀態(tài)周期】:?jiǎn)纹瑱C完成一個(gè)最基本的動(dòng)作所需的時(shí)間周期。如掃描一次定時(shí)器T0引腳狀態(tài)所需要的時(shí)間。一個(gè)狀態(tài)周期=2個(gè)振蕩周期。
【機器周期】:?jiǎn)纹瑱C完成一次完整的具有一定功能的動(dòng)作所需的時(shí)間周期。如一次完整的讀操作或寫(xiě)操作對應的時(shí)間。一個(gè)機器周期=6個(gè)狀態(tài)周期。
【指令周期】:執行完某條指令所需要的時(shí)間周期,一般需要1~4個(gè)機器周期,如MUL AB指令是四機器周期指令。一個(gè)指令周期=1~4個(gè)機器周期。
單片機工作時(shí),除了需要時(shí)鐘支持外,還必須有一個(gè)初始狀態(tài),即單片機的復位狀態(tài)。在單片機外部引腳第9腳,就是專(zhuān)門(mén)給單片機提供復位脈沖的。
Pin9: RESET/Vpd復位信號復用腳,當89S51通電,時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現24個(gè)時(shí)鐘周期以上的高電平,系統即初始復位,89S51的復位方式可以是自動(dòng)復位,也可以是手動(dòng)復位,見(jiàn)下圖。此外,RESET/Vpd還是一復用腳,Vcc掉電期間,此腳可接上備用電源,以保證單片機內部RAM的數據不丟失。
復位成功后,程序計數器PC指向0000H,P0~P3輸出口全部為高電平,堆棧指鐘寫(xiě)入07H,其它專(zhuān)用寄存器被清“0”。RESET由高電平下降為低電平后,系統即從0000H地址開(kāi)始執行程序。
我們基本上知道MCS-51單片機的結構,它由CPU、程序存儲器、數據存儲器、并行輸入輸出口、復位電路、震蕩電路,算術(shù)邏輯運算單元電路構成其基本電路,單片機除了這些之外還會(huì )附帶一些其他外設資源,比如定時(shí)計數器、中斷系統、串行通訊口等。
這里就不一一說(shuō)明了,如果是用C語(yǔ)言寫(xiě)的程序,首先C語(yǔ)言會(huì )被C語(yǔ)言編譯器編譯成目標文件,然后再鏈接接生成成單片機的可執行二進(jìn)制文件。
聯(lián)系客服