導航:首頁 > 操作系統 > 單片機逆初始化

單片機逆初始化

發布時間:2023-02-07 17:28:50

A. 在51單片機編程中 初始化程序的作用是什麼

1.將一些變數轉換為初始值,如0或1。

2.如果使用zd,則需要設置定時器的工作模式和初始值。

3.如果使用中斷,應該打開相應中斷源的中斷並設置優先順序。

4.如果使用串口,則需要設置相應的串口工作模式和波特率。

5.需要提前設置的其他數據變數和命令字。

(1)單片機逆初始化擴展閱讀:

初始化器子函數帶注釋:

Voidtimer0interrupt()1

TMOD=0x01;//選擇timing0

TH0=(65536-50000)/256;//載入初始值50MS

TL0=(65536-50000)%256;

EA=1;//打開完全中斷

ET0=1;//打開定時器0中斷

TR0=1;//開屬定時器0

B. 單片機往什麼要進行初始化或者說初始化時究竟是用來干什麼的或者說初始化的意義高手具體解答~~

單片機的一些初始化都是為了設定功能,驅動某個晶元,就像你要干什麼事,先要事先准備差不多。每個晶元對於單片機來說初始化都不太一樣

C. 在51單片機編程中 初始化程序的作用是什麼

一般的情況下是在上電的時候初始化,還有就是程序跑飛和出現異常時也要初始化,初始化的目的就是把所有用到的標志位、變數回到你的初始值,以及引腳的分配,配置寄存器寫入需要的值,像時鍾的選擇(內部、外部)一般在上電時就做好,以後不是特殊需要是不改動的,引腳功能的分配也是一上來就設置好,之後如果可以就不改動,如果經常性的改可能會引發異常。

D. 單片機 IO口初始化

1、首先注意51單片機上電的時候會有個復位的操作,復位的時候不執行單片機內部程序,復位之後51單片機的所有io口都為高電平;
2、在單片機復位之後在main函數里執行程序,如果要使io口初始化為低電平,就要在while循環的上方把io置低;例如:
一般程序的結構是這樣的:
void
main()
{
....
io
=
0
;
//在while的上方對io置低,
......
while(1)
{
}
}
3、基於上面的原理,在設計單片機外圍電路的時候,為了不讓外圍電路誤動作,一般把外圍電路設置成單片機io口低電平的時候
盡心動作,
比如:
點亮led燈的時候,,一般把led的負極接io口,,這樣單片機上電的時候,沒有進入程序之前,led是不會亮的,

E. plc程序如何實現單片機初始化

可以仿照RT-Thread的自動初始化機制,寫了一個自動初始化的模塊,整個代碼僅52位元組。
單片機的復位是由RESET引腳來控制的,此引腳輸入高電平超過兩個機器周期後,單片機即進入晶元內部復位狀態,而且一直在此狀態下等待,直到RESET引腳轉為低電平後,才檢查EA引腳是高電平或低電平,若為高電平則執行晶元內部的程序代碼,若為低電平便會執行外部程序。如果RST持續為高電平,單片機就處於循環復位狀態。初始化邏輯較顯式調用的方式模糊,容易引入BUG。

F. 單片機復位初始化

80C51復位後SP的內容為07H,即堆棧指針指向07H,而80C51單片機的堆棧屬於向上生長型,也就是指在向堆棧壓入(PUSH)時,堆棧指針是增加的,並且是堆棧指針先加1然後才放入數據,故第一個入棧的單元地址是08H。

G. 單片機定時器和中斷初始化流程是什麼樣的啊還有就是TMOD和SCON的初值是怎麼計算出來的

至於那些書上都有的理論知識我就不說了,就簡單的說一下吧,樓主可以想簡單點
定時器工作的流程可以按照這個順序(以51為例用定時器0方式一產生50毫秒的定時)
1、確定使用哪個定時器,使用哪種方式,這一步通過TMOD設置,TMOD的低四位是設置定時器0的,高四位是用來設置定時器1的,其中的M0,M1是用來設置定時器工作在哪種方式,GATE一般用不要設置,C/T是選擇計數模式還是定時模式的,如:TMOD = 0X01,就說明定時器0工作在方式1。
2、接下來就要設置定時的時間,用定時器定時50毫秒,可以用這種方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以這樣理解:因為這是定時器的初值,也就是說計數脈沖就是在這個數的基礎上向上遞增,到達65535後就溢出產生中斷,至於為什麼是對256取整,和取余的話樓主自己先琢磨吧, 不懂再hi我;
3、第三步就要打開中斷了,使用IE寄存器,我一般是對各個位進行單獨設置,這樣看起來感覺更好,首先打開總中斷EA = 1,這一步是所有中斷所必須的,然後打開定時器0中斷,ET0 =1;
4、這時准備工作都准備好了就要開始啟動定時器了,使用TCON寄存器,TR0 = 1,到現在為止就實現了一個50毫秒的定時了;
總結一下:TMOD = 0X01; TH0 = (65535 - 5000) / 256; TL0 = (65535 - 50000) % 256; EA = 1; ET0 = 1; TR0 = 1,至於那個中斷函數我就不寫了,要注意的是方式0 ,1, 3是不能自動重裝的,所以得在中斷函數中重新對TH0 ,TL0賦初值,樓主說的那個SCON寄存器就是用於串口的,定時器會用了的話,串口也就會了的,希望能夠幫助樓主了

H. 單片機復位後各特殊功能寄存器的初始化狀態是什麼

首先單片機復位也分別幾種:掉電再通電,按復位按鈕,程序復位,通過外部介面復位。
各晶元的復位電路大同小異,這里以51系列單片機為例,上電後,保持RST一段高電平時間,就能達到上電復位的操作目的。
常見的復位電路如下:
1.掉電再通電,這里就視為冷啟動吧
這種情況下單片機的復位操作使單片機進入初始化狀態,其中包括使程序計數器PC=0000H,這表明程序從0000H地址單元開始執行。單片機冷啟動後,片內RAM為隨機值,特殊功能寄存器復位後的狀態為確定值,具體可參考相應單片機的說明書。
2.按復位按鈕
這種情況下單片機的復位操作也會使程序計數器PC=0000H,程序重新從
0000H
地址執行,但是與第1種情況不同的是,片內RAM為復位前的狀態值,也就是說,運行中的復位操作不改變片內RAM區中的內容。而特殊功能寄存器復位後的狀態為確定值,具體可參考相應單片機的說明書。
51單片機復位後特殊功能寄存器的初始值
特殊功能寄存器
初始值
特殊功能寄存器
初始值
ACC
00H
TCON
00H
B
00H
TMOD
00H
PSW
00H
TL0
00H
SP
07H
TH0
00H
DPTR
0000H
TL1
00H
P0~P3
FFH
TH1
00H
PCON
0XXX
0000B
T2CON
00H
AUXR
XXX0
0XX0B
T2MOD
XXXX
XX00B
AUXR1
XXXX
XXX0B
RCAP2L
00H
IE
0X00
0000B
RCAP2H
00H
IP
XX00
0000B
TL2
00H
SCON
00H
TH2
00H
SBUF
XXXX
XXXXXB
WDTRST
XXXX
XXXXB
表中部分符號的含義如下:
PSW=00H:表明復位後自動選擇第0組工作寄存器組為當前工作寄存器組
SP=07H:表明堆棧指針指向片內RAM07H單元,堆棧的壓入操作為先加後壓,所以第一個被壓入的數據存放在08H單元中
P0~P3=FFH:表明各埠寫入1,此時各埠既可作輸入口,也可以作輸出口
AUXR=XXX0
0XX0:表明ALE引腳在CPU不訪問外部存儲器期間有脈沖信號輸出
AUXR1=XXXX
XXX0:表明選擇DPTR0作數據指針
IE=00H:表明各中斷均關閉
TCON=00H:表明T0,T1
均被停止
SCON=00H:表明串口處於方式0,允許發送,不允許接收
PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,單片機處於正常工作方式。
3.程序復位
這種情況下單片機的復位操作由程序內部控制,功能要視乎程序的編寫。例如我們可以操作使程序計數器PC=0000H,同時
添加RAM初始化程序,清0或置1,同時設置某些特殊寄存器的值,或者其他操作,總之這是一種軟體操控的復位,功能可靈活控制。
4.外部介面復位待研究。
P.S.
1.什麼是冷啟動?熱啟動呢?
冷啟動就是在不加電的情況下啟動系統,熱啟動就是在加電的情況下重啟系統!
例子:
冷啟動是之直接按下電源開關啟動計算機。
熱啟動是之在已開機的狀態下在開始菜單中選擇重新啟動計算機,這叫做熱啟動。

閱讀全文

與單片機逆初始化相關的資料

熱點內容
日本歐美韓國推理片電影大分享 瀏覽:615
怎麼下載香港app游戲 瀏覽:217
加密貨幣或迎來新的上漲趨勢 瀏覽:825
電腦桌面的文件夾怎麼發的 瀏覽:194
linuxkangle 瀏覽:148
程序員負債 瀏覽:150
怎麼把解壓的游戲放到桌面上 瀏覽:981
文件夾不存在刪除不了怎麼辦 瀏覽:833
android關機命令行 瀏覽:152
網易雲伺服器支持接入什麼功能 瀏覽:649
編程器用法hpz420 瀏覽:160
日本巨胸奶大電影 瀏覽:210
shell外部命令 瀏覽:102
說程序員禿的 瀏覽:717
多女主免費閱讀 瀏覽:49
前端程序員選擇極客時間 瀏覽:166
php我要自學網 瀏覽:201
a盤命令 瀏覽:706
日俄加密通話 瀏覽:660
linuxtee命令 瀏覽:53