91视频丝瓜-91视频完整版高清-91视频网-91视频网店-91视频网或将从此无大神-91视频网入口

您好,歡迎訪問上?,F易電子元器件有限公司網站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機

?關于STC15F2K60S2看門狗的應用

文章出處:單片機 責任編輯:上?,F易電子元器件有限公司 發表時間:2020-11-10

關于STC15F2K60S2看門狗的應用

1.STC15F2K60S2系列單片機的內部結構圖

STC15F2K60S2系列單片機的內部結構框圖如下圖所示,STC15F2K60S2系列單片機中包含中央處理器(CPU)、程序存儲器(Flash)、數據存儲器(SRAM)、定時器、IO口、高速A/D轉換、看門狗、UART高速異步串行通信口1/串行通信口2,CCP/PWM/PCA,一組高速同步串行端口SPI,片內高精度R/C時鐘及高可靠復位等模塊,STC15F2K60S2系列單片機幾乎包含了數據采集和控制中的所有單元模塊。



2.目的:

在工業控制/汽車電子/航空航天等需要高可靠行的系統中,為了防止“系統在異常情況下,受到干擾,MCU/CPU程序跑飛,導致系統長時間異常工作”,通常是引進看門狗,如果MCU/CPU不在規定的時間內按要求訪問看門狗,就認為MCU/CPU處于異常狀態,看門狗就會強迫MCU/CPU復位,使系統重新從頭開始按規律執行用戶程序。看門狗復位狀態結束后,不影響特殊功能寄存器IAP_ONTR中SWBS/IAP_ONTR.6位的值,單片機根據復位前SWBS/IAP_ONTR.6的值選擇是從用戶應用程序區啟動,還是從系統ISP監控程序區啟動。如果看門狗復位前SWBS/IAP_ONTR.6的值為0,則看門口復位狀態結束后單片機從系統ISP監控程序區啟動??撮T狗復位是熱啟動復位中的軟復位之一。

工作原理:看門狗實際上是一個定時器或計數器,簡稱WDT。單片機運行工作中,看門狗會對單片機機器周期脈沖不停計數,當單片機程序陷入死循環時,單片機程序如果不能及時對看門狗的定時器復位,看門狗就會在其定時器計滿溢出時產生一個復位信號,從而使系統重啟。

看門狗應用時,首先確定看門狗計數器的位數,然后參考計數脈沖周期計算出看門狗計數溢出所需的時間T,喂狗程序 喂狗時間要小于T,這樣隔一段時間喂一次狗,只要程序正常運行,看門狗定時器就不會溢出。一旦出現程序死循環故障,喂狗程序失敗,不能對看門狗定時器及時清零,就會導致計時器溢出,重啟系統。

3.特殊寄存器:

STC15系列單片機內部也引進了此看門狗功能,使單片機系統可靠性設計變得更加方便/簡潔。為此功能,我們增加如下特殊功能寄存器WDT_CONTR:

WDT_CONTR:看門狗(Watch—dog—Timer)控制寄存器

SFR name

Address

bit

B7

B6

B5

B4

B3

B2

B1

B0

WDT_CONTR

0C1H

name

WDT_FLAG

_

EN_WDT

CLR_WDT

IDLE_WDT

PS2

PS1

PS0

WDT_FLAG: 看門狗溢出標志位,當溢出時,該位由硬件置1,可用軟件將其清零。

EN_WDT: 看門狗允許位,當設置為“1”時看門狗啟動。

CLR_WDT: 看門狗清“0”位,當設為“1”時,看門狗重新計數。硬件將自動清“0”此位。

IDLE_WDT: 看門狗“IDLE”模式位,當設置為“1”時,看門狗定時器在“空閑模式”計數,當清”0”該位時,看門狗定時器在“空閑模式”時不計數。

PS2,PS1,PS0:看門狗定時器分頻值,如下表所示

PS2

PS1

PS0

Pre_scale預分頻

WDT overflow Time @20MHz

0

0

0

2

39.3ms

0

0

1

4

78.6ms

0

1

0

8

157.3ms

0

1

1

16

314.6ms

1

0

0

32

629.1ms

1

0

1

64

1.25s

1

1

0

128

2.5s

1

1

1

256

5s

看門狗溢出時間 = (12 *Pre—scale*32768)/Oscillatorfrequency

設時鐘為12MHz

看門狗溢出時間 = (12 *Pre—scale*32768)/12000000= Pre—scale*393216/12000000

PS2

PS1

PS0

Pre_scale預分頻

WDT overflow Time @12MHz

0

0

0

2

65.5ms

0

0

1

4

131.0ms

0

1

0

8

262.1ms

0

1

1

16

524.2ms

1

0

0

32

1.0485s

1

0

1

64

2.0971s

1

1

0

128

4.1943s

1

1

1

256

8.3886s

設時鐘為11.0592MHz

看門狗溢出時間 = (12 *Pre—scale*32768)/11059200 = Pre—scale*393216/11059200

PS2

PS1

PS0

Pre_scale預分頻

WDT overflow Time @11.0592MHz

0

0

0

2

71.1ms

0

0

1

4

142.2ms

0

1

0

8

284.4ms

0

1

1

16

568.8ms

1

0

0

32

1.1377s

1

0

1

64

2.2755s

1

1

0

128

4.5511s

1

1

1

256

9.1022s

4.程序:

用LED燈的亮表示程從頭序運行,用延時函數改變兩次喂狗時間間隔。

/****************************測試程序******************************/

#include

sbit led = P0^0;

sfr WDT_CONTR = 0xel;/*定義STC單片機中新加入的看門狗程序*/

void delay(unsigned int x)/*定義延時函數*/

{

while(x--);

}

void main(void)

{

WDT_CONTR = 0x35;/*設置模式計數器值*/

led = 1;

delay(20000);

led = 0;

while(1)

{

WDT_CONTR = 0x35;

delay(50000);

}

 

}

(1)程序開始后,點亮發光二極管后延時一段時間熄滅,延時不能過長,若兩次喂狗時間間程序運行時間大于看門狗溢出時間,看門狗將復位單片機,可調節這個時間,讓看門狗是否復位。

(2)喂狗時使用和設定看門狗寄存器同樣的語句,只要看門狗寄存器中CLR—WDT位置“1”,看門狗定時器重新計數,由硬件自動將其清零。

(3)演示為發光二極管亮后熄滅不會再亮,這說明程序沒被復位,while循環中看門狗被正常喂狗,若將WDT_CONTR= 0x35;去掉程序將會不停復位,因為看門狗定時器溢出復位。


上?,F易電子元器件有限公司 版權所有 未經授權禁止復制或鏡像

CopyRight 2020-2025 www.urqm.cn All rights reserved   滬ICP備2020031792號

友情鏈接:

電話

易經理

18019251567

微信

易經理

易經理

頂部

咨詢
主站蜘蛛池模板: 亚洲综合国产在不卡在线 | 99九九99九九九视频精品 | 天天干天天色综合网 | 日韩亚洲欧洲在线rrrr片 | 国产免费人成在线视频视频 | 99国产精品高清一区二区二区 | 午夜福利1000集看看 | 嫩草影院一二三区入口首页 | 欧洲不卡一卡2卡三卡4卡网站 | 国产高清亚洲日韩字幕一区 | www.色se.com| 国产精品久久久久无码人妻精品 | 最近中文字幕大全在线电影视频 | 精品久久久久久无码中文字幕 | WW欧日韩视频高清在线 | 91极品视频 | 亚洲一-卡2卡3卡乱码... | 亚洲欧美日韩中文在线制服 | 欧美变态口味重另类牲交视频 | 午夜精品视频在线 | 小野六花的区综合久久观看 | a91ac ma果冻传媒 | 亚洲aⅴ天堂 | 日本工口生肉全彩大全 | 精品成人 | 国产麻豆精品久久一二三 | 青草视频在线观看完整版 | 丁香花视频资源在线观看 | 少年巴比伦免费完整在线观看 | 日本三日本三级香港三级 | 日本一本久道 | 亚洲精品一区二区精华液 | 在线观看成人A片免费播放 在线观看免费的小电影网站 | 欧美精品乱码99久久蜜桃 | 色图色小说 | 欧美成人黄色 | 亚洲操片 | 国产黄在线观看免费观看 | 456亚洲影院 | 免费的又色又爽又黄的视频软件 | 色中色网|