日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]復(fù)位源的問題大家最常用的復(fù)位方式就是電阻加電容吧,AT89C51是高電平復(fù)位,這種方式不穩(wěn)定,在產(chǎn)品調(diào)試時(shí)可以使用,因?yàn)樵谡{(diào)試時(shí)我們一般使用了仿真器,而許多仿真器都會自

復(fù)位源的問題

大家最常用的復(fù)位方式就是電阻加電容吧,AT89C51是高電平復(fù)位,這種方式不穩(wěn)定,在產(chǎn)品調(diào)試時(shí)可以使用,因?yàn)樵谡{(diào)試時(shí)我們一般使用了仿真器,而許多仿真器都會自己輸出復(fù)位信號,而屏蔽掉目標(biāo)板產(chǎn)生的復(fù)位信號,所以調(diào)試時(shí)復(fù)位信號是沒有問題的,我們公司使用的是長沙菊陽的仿真器,用的是比較先進(jìn)的技術(shù),還算可以,仿真AT89系列的芯片一點(diǎn)問題沒有,還很穩(wěn)定的說。

這里有一個(gè)非常重要的問題要說下,大家有時(shí)候會遇到這樣的一個(gè)問題:自己的程序在仿真時(shí)運(yùn)行一點(diǎn)問題也沒有,但燒錄后卻不行了。結(jié)合我的經(jīng)驗(yàn)有兩種原因。一是時(shí)序可能變了,這個(gè)大家都知道,我不多說,還有一個(gè)原因就是復(fù)位信號的問題。具體情況如下:

(1)復(fù)位電路有問題,不能正常產(chǎn)生復(fù)位信號。因?yàn)檎{(diào)試時(shí)仿真器可能給你提供了復(fù)位信號,而脫離仿真器后就沒有了;

(2)看門狗的問題。有些51芯片帶有看門狗復(fù)位功能,如At89c55WD,當(dāng)程序開啟了看門狗后,有時(shí)候程序的初始化內(nèi)容太多了,往往會產(chǎn)生了復(fù)位信號,特別是用C語言編程功能時(shí),有時(shí)候雖然你明明在程序開始時(shí)某個(gè)地方關(guān)閉了看門狗,但程序依然會復(fù)位,這是因?yàn)镃語言執(zhí)行效率比匯編低,看似幾行代碼,有時(shí)候要很長時(shí)間的,所以在使用開門狗時(shí)一定要注意這個(gè)問題。

而這個(gè)問題在使用仿真器時(shí)容易被忽視,因?yàn)榧词鼓愕某绦蚶锟撮T狗復(fù)位了,但是仿真器(菊陽仿真器可以開啟/屏蔽這個(gè)功能)往往會屏蔽了這個(gè)復(fù)位信號,所以程序仍然會正常運(yùn)行的。

當(dāng)你把程序燒好后再運(yùn)行時(shí),你卻為發(fā)現(xiàn)剛調(diào)試好的程序卻無法正常運(yùn)行了,那是因?yàn)槟愕某绦蛞恢痹诓煌?fù)位了,注意用示波器觀察RST腳可能看不到復(fù)位信號的,因?yàn)榭撮T狗復(fù)位并不影響RST腳的電平。

再一種情況就是芯片內(nèi)部不帶看門狗,但是電路中有CPU監(jiān)控芯片的,它往往是可以提供復(fù)位信號的,而且是多種原因的復(fù)位信號,如果你發(fā)現(xiàn)上述情況,就可以用示波器查看RST腳看是否有電平變化。

所以建議大家做51產(chǎn)品開發(fā)時(shí)盡量使用CPU監(jiān)控芯片,向X5045就是非常好用的,因?yàn)樗€帶有Eprom功能,這在很多場合使用的到的,也可以用MAX708等專用復(fù)位芯片了,既穩(wěn)定又方便。

筆記歸納

以下是結(jié)合自己的實(shí)際做的幾點(diǎn)筆記歸納:

1、與發(fā)光二極管串聯(lián)的電阻(排阻)的計(jì)算和選取,一般發(fā)光二極管的正常發(fā)光的電流是3~10mA,在發(fā)光二極管上產(chǎn)生的壓降是1.7V(軌管) R=(5-1.7)/3~10 (k)

2、單片機(jī)TTL電平高電平:+5V;低電平:0V。

RS232串口電平高電平:—12V ;低電平:+12V??梢酝ㄟ^MAX232電平轉(zhuǎn)換芯片,轉(zhuǎn)換之間的電平。

3、單片機(jī)上電IO口的寄存器為高電平,其余寄存器為低電平。

4、三極管的開關(guān)作用:在B、E間接正向電壓,E、C是導(dǎo)通的。

5、蜂鳴器:

1) 有源蜂鳴器直接接上額定電壓就可以連續(xù)發(fā)聲。

2)無源蜂鳴器和電磁揚(yáng)聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。

3)有源蜂鳴器帶振蕩源,無源的不帶。

4)有源蜂鳴器的理想信號是直流電。

5)無源蜂鳴器的理想信號為方波信號。

方波發(fā)聲函數(shù):void beep()

{ fmq=0;

delay 500us();

fmq=1;

delay 500us();

}

6、計(jì)算單片機(jī)指令周期:

指令周期(us) = 12 / 晶振頻率(Mhz)

選用12M的晶振,一個(gè)指令周期為1us

7、89C51的芯片最高支持24M的晶振

拋磚引玉——向前輩學(xué)習(xí)

上面只是筆者粗陋的小見解,筆者和大家都會感覺到不是很過癮,它山之石可以攻玉,我們還需向更多的前輩學(xué)習(xí),筆者經(jīng)過整理前人的經(jīng)驗(yàn)總結(jié),看到了很多值得很大家一起分享的一些開發(fā)經(jīng)驗(yàn)!

目前介紹單片機(jī)應(yīng)用的文章很多,但介紹單片機(jī)開發(fā)工具制作的文章卻較少。由于單片機(jī)是一門實(shí)踐性很強(qiáng)的課程,如果采用傳統(tǒng)的開發(fā)模式,則要購買價(jià)格昂貴的仿真器、編程器等開發(fā)工具來作實(shí)驗(yàn)。

其實(shí)由于芯片功能的日益完善,我們可以利用芯片的在系統(tǒng)編程(ISP)功能制作出實(shí)用而低價(jià)的開發(fā)工具。下面就幫助DIY愛好者開發(fā)制作出適合自己的開發(fā)工具。

1 當(dāng)前常用開發(fā)模式

目前,基本上有兩種開發(fā)模式可供選擇:用仿真器、用編程器。

① 用仿真器。優(yōu)點(diǎn):方便,可以設(shè)置斷點(diǎn),可以觀察存儲器及寄存器的內(nèi)容。缺點(diǎn):價(jià)格昂貴,不同類型的單片機(jī)要購買不同的仿真器;仿真器終究不是單片機(jī),有時(shí)代碼在仿真器上能通過,但在單片機(jī)中不能正常工作,反而增加了調(diào)試的難度。

② 用編程器。優(yōu)點(diǎn):價(jià)格相對便宜,通常一款編程器可編程多種器件。缺點(diǎn):操作相當(dāng)不便,每次要將芯片在目標(biāo)板與編程器之間轉(zhuǎn)移,并且還要在編譯操作界面與編程器操作界面之間切換,大部分時(shí)間在做簡單的重復(fù)工作。

2 新的開發(fā)模式介紹及芯片選擇

本文介紹的開發(fā)工具采用一種新的開發(fā)模式(類似于編程器開發(fā)模式)。由于利用了芯片的在系統(tǒng)編程功能,因此不需要移動芯片。在軟件設(shè)計(jì)時(shí)設(shè)計(jì)成:一旦代碼文件被重新編過,即自動下載到芯片,并自動復(fù)位運(yùn)行,是真正的“所編即所得”。

目前很多單片機(jī)都支持在系統(tǒng)編程。8051系列單片機(jī)支持在系統(tǒng)編程的也很多,但大多數(shù)是支持通過PC機(jī)的串口對單片機(jī)進(jìn)行編程。

這樣有四個(gè)不方便的地方:一是項(xiàng)目本身與PC機(jī)串行通信不方便;二是要增加1片MAX232電平轉(zhuǎn)換芯片;三是有的芯片要按特定的步驟進(jìn)入下載模式,編程過程需要手工干預(yù);四是有的芯片需要固件(定制的程序)的支持,如果不小心損壞了固件,則芯片的在系統(tǒng)編程功能也沒有了。

經(jīng)過比較,Atmel公司生產(chǎn)的AT89S8252是一種比較理想的芯片,適合制作開發(fā)工具。此芯片有如下特點(diǎn):

◆ 與8051兼容;

◆ 內(nèi)含8KB可擦寫1000次的程序存儲器,2KB可擦寫超過100 000次的數(shù)據(jù)存儲器及256字節(jié)8位寬內(nèi)部RAM;

◆ 可通過SPI接口在系統(tǒng)串行編程,與8051兼容

◆ 串行編程時(shí)有自動擦寫周期,在調(diào)試大程序時(shí)可以分段下載,節(jié)約時(shí)間;

◆ 低電壓下載,無需12V編程電壓。

3 AT89S8252串行編程

(1) AT89S8252串行編程模式

當(dāng)芯片的RST引腳置高電平時(shí),所有程序和數(shù)據(jù)存儲器可以通過SPI總線接口[SCK,MOSI(input),MISO(output)]編程。RST變高以后,在編程或擦除操作之前必須首先發(fā)送一條編程允許命令。在串行編程模式下,芯片會在字節(jié)編程之前自動插入一個(gè)擦除周期。因此,除非芯片的代碼保護(hù)位被編程,編程之前不需要執(zhí)行全片擦除命令。SPI接口之SCK時(shí)鐘頻率須低于晶振頻率的1/40。

(2) AT89S8252串行編程步驟

① 在XTAL1與XTAL2之間連接一個(gè)3~24MHz的晶振;在VCC與GND之前加上電源電壓,將RST置高,等待10ms。

② 發(fā)送串行編程允許命令。

③ 發(fā)送寫/讀/擦除等命令及數(shù)據(jù),串行數(shù)據(jù)高位在前,低位在后,數(shù)據(jù)在時(shí)鐘的上升沿鎖定。

④ 如果上一步是寫命令,至少等待2.5ms。

⑤ 需要時(shí)重復(fù)③、④兩步。

⑥ 將RST置低,芯片開始運(yùn)行。

(3) AT89S8252串行編程命令,AT89S8252串行編程命令如表1所列。

 

 

表1

(4) AT89S8252串行編程時(shí)序圖,AT89S8252串行編程時(shí)序如圖1所示。

 

 

圖1

4 硬件設(shè)計(jì)

① 通過計(jì)算機(jī)并口與單片機(jī)SPI口連接;

② 為了保護(hù)計(jì)算機(jī)并口,需要增加1片74HC244作為隔離。

實(shí)用的原理圖如圖2所示。(已經(jīng)過實(shí)踐檢驗(yàn),可放心使用。)

 

 

圖2

5 用VB編程進(jìn)行并口控制

打印端口的基地址一般為0x278、0x378或0x3BC,可以從控制面板中查到。為了方便讀者,表2列出了常用打印端口引腳及寄存器位元的說明。

 

 

表2

在Windows環(huán)境下最簡單易學(xué)的語言恐怕非VB莫屬,所以我們的開發(fā)工具也選用VB作為編程語言。但由于Windows的保護(hù),VB無法直接讀寫打印端口,因此我們需要另外的程序模塊來實(shí)現(xiàn)打印端口的直接讀寫。在Internet網(wǎng)上可以找到許多此類模塊,并且相當(dāng)多的模塊可以免費(fèi)使用。

經(jīng)過試用,筆者推薦使用Winio v2.0。

該模塊支持Win9X/NT/2000/XP(http://www.internals.com Yariv Kaplan ),并且?guī)в性敿?xì)的幫助、例子程序及源碼。使用時(shí),將Winio.sys、Winio.dll、Winio.vxd及Winio.bas四個(gè)文件拷貝到工作目錄下,在VB中直接添加Winio.bas模塊即可。本例中用到的函數(shù)有四個(gè),分別說明如下。

① IniTIalize():允許端口控制函數(shù)。在使用端口輸入輸出函數(shù)之前調(diào)用一次,成功返回“1”,失敗返回“0”。

② Shutdown():關(guān)閉端口控制函數(shù)。在退出程序時(shí)執(zhí)行一次,成功返回“1”,失敗返回“0”。

③ GetPortVal(ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte) As Boolean:讀取端口函數(shù),PortAddr 為端口地址, Portval為端口值,bSize為要讀取的字節(jié)數(shù)。讀取成功時(shí)返回“1”,失敗時(shí)返回“0”。

④ SetPortVal(ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte) As Boolean:寫端口函數(shù)。PortAddr 為端口地址, Portval為要寫的值,bSize為要寫入的字節(jié)數(shù)。寫入成功返回“1”,失敗返回“0”。

四個(gè)函數(shù)在Winio.bas模塊中的聲明如下:

Declare FuncTIon IniTIalizeWinIo Lib “WinIo.dll” () As Boolean

Declare FuncTIon ShutdownWinIo Lib “WinIo.dll” () As Boolean

Declare Function GetPortVal Lib “WinIo.dll” (ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte) As Boolean

Declare Function SetPortVal Lib “WinIo.dll” (ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte) As Boolean

6 Intel HEX 格式文件

由于一般編譯軟件產(chǎn)生的用于寫入芯片的文件都是Intel HEX格式的文件。Intel HEX文件屬于文本文件,可以用記事本查看。一個(gè)Intel HEX文件的一行稱為一個(gè)記錄,每個(gè)記錄都是由十六進(jìn)制字符組成的,兩個(gè)字符表示一個(gè)字節(jié)的值。Intel HEX文件通常由若干條記錄組成,每個(gè)記錄都具有如下的形式:

:LLAAAATTDD.。.DDCC

“:”——記錄的起始標(biāo)志;

LL——記錄長度,表示該記錄中的數(shù)據(jù)字節(jié)數(shù);

AAAA——數(shù)據(jù)裝入的首地址(16位);

TT——記錄類型,00表示數(shù)據(jù)記錄,01表示文件結(jié)束;(注意:有的編譯軟件會產(chǎn)生大于01的記錄類型,本應(yīng)用中對大于01記錄類型的記錄忽略掉即可。)

DD——數(shù)據(jù)值(字節(jié));

CC——校驗(yàn)和。(將其本身與記錄中除起始標(biāo)志外的所有字節(jié)相加應(yīng)為0,不為0則有錯(cuò)。)

結(jié)語

雖然上述程序能實(shí)現(xiàn)各種基本的功能,但并不完善,并未考慮各種異常情況,讀者可根據(jù)實(shí)際情況進(jìn)行完善。

由于AT89S8252的價(jià)格還是較貴,所以現(xiàn)在市場上較難買,不過Atmel公司推出的替代AT89C51/52的AT89S51/52也有在系統(tǒng)編程功能,且價(jià)格便宜。其在系統(tǒng)編程的實(shí)現(xiàn)方法與AT89S8252類似,對本例部分程序稍作修改即可支持該器件。筆者制作的“MCS51/AVR/PIC三合一下載器”增加了對AT89S51/52的支持。

因?yàn)镃語言執(zhí)行效率比匯編低,看似幾行代碼,有時(shí)候要很長時(shí)間的,所以在使用開門狗時(shí)一定要注意這個(gè)問題。而這個(gè)問題在使用仿真器時(shí)容易被忽視,因?yàn)榧词鼓愕某绦蚶锟撮T狗復(fù)位了,但是仿真器(菊陽仿真器可以開啟/屏蔽這個(gè)功能)往往會屏蔽了這個(gè)復(fù)位信號,所以程序仍然會正常運(yùn)行的。

當(dāng)你把程序燒好后再運(yùn)行時(shí),你卻為發(fā)現(xiàn)剛調(diào)試好的程序卻無法正常運(yùn)行了,那是因?yàn)槟愕某绦蛞恢痹诓煌?fù)位了,注意用示波器觀察RST腳可能看不到復(fù)位信號的,因?yàn)榭撮T狗復(fù)位并不影響RST腳的電平。

再一種情況就是芯片內(nèi)部不帶看門狗,但是電路中有CPU監(jiān)控芯片的,它往往是可以提供復(fù)位信號的,而且是多種原因的復(fù)位信號,如果你發(fā)現(xiàn)上述情況,就可以用示波器查看RST腳看是否有電平變化。

所以建議大家做51產(chǎn)品開發(fā)時(shí)盡量使用CPU監(jiān)控芯片,向X5045就是非常好用的,因?yàn)樗€帶有Eprom功能,這在很多場合使用的到的,也可以用MAX708等專用復(fù)位芯片了,既穩(wěn)定又方便。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

中國上海,2025 年9月9日 — Nexperia 每年增加 800 多種新產(chǎn)品類型。2024 年,僅模擬和電源管理應(yīng)用便推出了超過 70 種新部件。為支持 Nexperia 產(chǎn)品擴(kuò)展,e絡(luò)盟緊跟其不斷擴(kuò)大的產(chǎn)品組合,...

關(guān)鍵字: 電源管理 SiC 二極管

太陽能逆變器種類豐富,可按類型(集中式、組串式、微型)或終端應(yīng)用場景(住宅、商業(yè)、公用事業(yè))進(jìn)行劃分。目前,組串式逆變器因具備靈活性高、易于安裝的特點(diǎn)而應(yīng)用最為廣泛。隨著功率器件的不斷迭代升級,單臺逆變器的功率水平與功率...

關(guān)鍵字: 太陽能逆變器 光伏逆變器 SiC 二極管

8位單片機(jī)在嵌入式設(shè)計(jì)領(lǐng)域已經(jīng)成為半個(gè)多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨(dú)立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計(jì)與硬件實(shí)現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機(jī)燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠(yuǎn)程升級等不同場景。...

關(guān)鍵字: 單片機(jī) ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時(shí)機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個(gè)維度,系統(tǒng)分析看門狗初始化的最佳實(shí)踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機(jī)予以介紹,如果你想對它的詳細(xì)情況有所認(rèn)識,或者想要增進(jìn)對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機(jī) 開發(fā)板 Keil

隨著單片機(jī)系統(tǒng)越來越廣泛地應(yīng)用于消費(fèi)類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機(jī)系統(tǒng)面臨著電磁干擾(EMI)日益嚴(yán)重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機(jī) 電磁兼容

二極管的主要參數(shù)包括最大整流電流、最高反向工作電壓、反向電流、動態(tài)電阻和最高工作頻率等。這些參數(shù)共同決定了二極管的性能和應(yīng)用范圍。在選擇二極管時(shí),應(yīng)根據(jù)實(shí)際電路的需求來綜合考慮這些參數(shù),以選擇最適合的二極管型號。

關(guān)鍵字: 二極管 電子元器件

以下內(nèi)容中,小編將對單片機(jī)的相關(guān)內(nèi)容進(jìn)行著重介紹和闡述,希望本文能幫您增進(jìn)對單片機(jī)的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機(jī) 復(fù)位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C(jī)的相關(guān)報(bào)道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機(jī) 異常復(fù)位
關(guān)閉