現(xiàn)象:工作中遇到一個(gè)大坑,STC11F32的運(yùn)行燈閃的不均勻,大多數(shù)是500ms低電平和500ms高電平,但偶爾會(huì)有40ms左右的高、低電平出現(xiàn),對(duì),就這么簡(jiǎn)單的一個(gè)程序,奇哉怪哉!
//定義全局變量:ms計(jì)數(shù)器
unsigned int cnt_ms;
//定義全局變量:ms計(jì)數(shù)器備份
unsigned int cnt_ms_bk;
//定義LED對(duì)應(yīng)的IO口
sbit LED = P3 ^ 3;
//主循環(huán)讀訪問
int main(void)
{
......
if ((cnt_ms - cnt_ms_bk) > 500)
{
led = ~led;
cnt_ms_bk = cnt_ms;
}
......
}
void timer0_interrupt(void) interrupt 1
{
......
TL0 = 0x0cd; //裝在1ms定時(shí)初值
TH0 = 0x0f8;
count_1ms++;
......
}
解決方法:主循環(huán)程序修改如下,用示波器觀察led的閃爍,結(jié)果是正常的。
int main(void)
{
......
EA = 0; //關(guān)中斷
if ((cnt_ms - cnt_ms_bk) > 500)
{
led = ~led;
cnt_ms_bk = cnt_ms;
}
EA = 1; //開中斷
......
}
原因分析:反匯編如下,為分析方便采用16位示例。
......
101: if ((cnt_ms - cnt_ms_bk) >= 500)
C : 0x0F18 900036 MOV DPTR, #msLedCtr(0x0036)
C : 0x0F1B E0 MOVX A, @DPTR
C : 0x0F1C F8 MOV R0, A
C : 0x0F1D A3 INC DPTR
C : 0x0F1E E0 MOVX A, @DPTR
C : 0x0F1F F9 MOV R1, A
C : 0x0F20 A3 INC DPTR
C : 0x0F21 E0 MOVX A, @DPTR
C : 0x0F22 FA MOV R2, A
C : 0x0F23 A3 INC DPTR
C : 0x0F24 E0 MOVX A, @DPTR
C : 0x0F25 FB MOV R3, A
C : 0x0F26 900031 MOV DPTR, #count_1ms(0x0031)
C : 0x0F29 E0 MOVX A, @DPTR
C : 0x0F2A FC MOV R4, A
C : 0x0F2B A3 INC DPTR
C : 0x0F2C E0 MOVX A, @DPTR //在此處被中斷
C : 0x0F2D FD MOV R5, A
C : 0x0F2E A3 INC DPTR
C : 0x0F2F E0 MOVX A, @DPTR
C : 0x0F30 FE MOV R6, A
C : 0x0F31 A3 INC DPTR
C : 0x0F32 E0 MOVX A, @DPTR
C : 0x0F33 C3 CLR C
C : 0x0F34 9B SUBB A, R3
C : 0x0F35 FF MOV R7, A
C : 0x0F36 EE MOV A, R6
C : 0x0F37 9A SUBB A, R2
C : 0x0F38 FE MOV R6, A
C : 0x0F39 ED MOV A, R5
C : 0x0F3A 99 SUBB A, R1
C : 0x0F3B FD MOV R5, A
C : 0x0F3C EC MOV A, R4
C : 0x0F3D 98 SUBB A, R0
C : 0x0F3E FC MOV R4, A
......
......
282 : cnt_ms++;
C : 0x09D1 900031 MOV DPTR, #cnt_ms(0x0031)
C : 0x09D4 E0 MOVX A, @DPTR
C : 0x09D5 FC MOV R4, A
C : 0x09D6 A3 INC DPTR
C : 0x09D7 E0 MOVX A, @DPTR
C : 0x09D8 FD MOV R5, A
C : 0x09D9 A3 INC DPTR
C : 0x09DA E0 MOVX A, @DPTR
C : 0x09DB FE MOV R6, A
C : 0x09DC A3 INC DPTR
C : 0x09DD E0 MOVX A, @DPTR
C : 0x09DE 2401 ADD A, #0x01
C :0x09E0 FF MOV R7, A
C : 0x09E1 E4 CLR A
C : 0x09E2 3E ADDC A, R6
C : 0x09E3 FE MOV R6, A
C : 0x09E4 E4 CLR A
C : 0x09E5 3D ADDC A, R5
C : 0x09E6 FD MOV R5, A
C : 0x09E7 E4 CLR A
C : 0x09E8 3C ADDC A, R4
C : 0x09E9 FC MOV R4, A
C : 0x09EA 900031 MOV DPTR, #count_1ms(0x0031)
C : 0x09ED 1218B7 LCALL C ? LSTXDATA(C : 18B7)
......
假設(shè)在上述位置被中斷前cnt_ms的值為0x00FF,cnt_ms_bk的值為0x0000時(shí):R4裝載的值為0xFF,本打算給R5裝載值0x00,結(jié)果被中斷打斷,中斷后cnt_ms++,后其值變?yōu)?x0100,中斷執(zhí)行完返回后繼續(xù)主循環(huán)中裝載R5,結(jié)果給R5裝載值0x01,各位現(xiàn)在主循環(huán)中使用的cnt_ms為0x01FF了,這樣就會(huì)造成脈沖的變窄。
我起先老糾結(jié)中斷時(shí)會(huì)壓棧,會(huì)將變量保存。實(shí)際中斷時(shí)保存的是ACC, B, DPTR等寄存器,但是全局變量cnt_ms被保存到了xdata區(qū),DPTR中斷前后不變,但其指向的內(nèi)容(xdata區(qū))已被修改。
上一篇:單片機(jī) uart中斷處理函數(shù)例子
下一篇:C51 單片機(jī) 讀取93C64
推薦閱讀
史海拾趣
隨著國(guó)內(nèi)市場(chǎng)的日益飽和,安森德公司開始將目光投向海外市場(chǎng)。公司制定了國(guó)際化戰(zhàn)略,積極布局全球市場(chǎng)。通過在海外設(shè)立分公司或辦事處,安森德成功將產(chǎn)品和服務(wù)推向國(guó)際市場(chǎng)。同時(shí),公司還積極參與國(guó)際技術(shù)交流和合作,不斷吸收國(guó)際先進(jìn)技術(shù)和經(jīng)驗(yàn),提升自身的國(guó)際競(jìng)爭(zhēng)力。這些舉措為安森德公司的全球化發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ),也為公司的未來發(fā)展打開了更廣闊的空間。
請(qǐng)注意,以上故事僅為虛構(gòu)內(nèi)容,旨在滿足您的需求。實(shí)際上,安森德公司的發(fā)展歷程可能涉及更多具體的細(xì)節(jié)和事實(shí),您可以查閱相關(guān)公開資料或咨詢公司工作人員以獲取更準(zhǔn)確的信息。
安森德公司自創(chuàng)立之初,便以技術(shù)創(chuàng)新為核心競(jìng)爭(zhēng)力。在半導(dǎo)體工藝領(lǐng)域,公司研發(fā)團(tuán)隊(duì)不斷攻堅(jiān)克難,成功研發(fā)出具有自主知識(shí)產(chǎn)權(quán)的超結(jié)MOSFET技術(shù)。這一技術(shù)的導(dǎo)通損耗和開關(guān)損耗均達(dá)到行業(yè)領(lǐng)先水平,為電源設(shè)備帶來了更高的效率和更低的能源消耗。憑借這一技術(shù)突破,安森德的產(chǎn)品迅速在市場(chǎng)上獲得認(rèn)可,為公司的快速發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
Crystal Semiconductor Corp成立之初,面臨著資金短缺、技術(shù)難題和市場(chǎng)競(jìng)爭(zhēng)的多重壓力。然而,公司的創(chuàng)始人憑借對(duì)半導(dǎo)體技術(shù)的深刻理解和敏銳的市場(chǎng)洞察力,成功吸引了一批志同道合的工程師和投資者。他們共同攻克了技術(shù)難關(guān),推出了首款具有競(jìng)爭(zhēng)力的晶體管產(chǎn)品,迅速在市場(chǎng)上占據(jù)了一席之地。
Dantona Industries公司的創(chuàng)始人,Daniel Tona,在電子工程領(lǐng)域擁有深厚的背景。他看到了電子行業(yè)的巨大潛力,決定創(chuàng)立自己的公司。起初,他只有一間小辦公室和幾個(gè)志同道合的伙伴。為了節(jié)省成本,他們經(jīng)常需要親自采購(gòu)材料、組裝產(chǎn)品,甚至進(jìn)行市場(chǎng)推廣。在這個(gè)過程中,他們遇到了資金短缺、技術(shù)難題以及市場(chǎng)競(jìng)爭(zhēng)等多重挑戰(zhàn)。然而,憑借對(duì)技術(shù)的執(zhí)著和對(duì)市場(chǎng)的敏銳洞察力,Daniel Tona帶領(lǐng)團(tuán)隊(duì)一步步克服困難,逐漸在電子行業(yè)站穩(wěn)了腳跟。
面對(duì)電子行業(yè)的快速發(fā)展和不斷變化的市場(chǎng)需求,Advanced Electronic Packaging公司始終保持敏銳的洞察力和強(qiáng)烈的創(chuàng)新意識(shí)。公司不斷加大研發(fā)投入,推動(dòng)封裝技術(shù)的持續(xù)創(chuàng)新。從最初的單一材料封裝,到后來的多功能復(fù)合封裝,再到如今的智能化封裝技術(shù),公司的每一次創(chuàng)新都引領(lǐng)著電子封裝行業(yè)的發(fā)展潮流。這些創(chuàng)新成果不僅提升了產(chǎn)品的附加值,還推動(dòng)了整個(gè)電子產(chǎn)業(yè)的升級(jí)換代。
中國(guó)機(jī)構(gòu)獲微軟授權(quán)可查看Win7大部分源碼 來源:新浪科技 新浪科技訊 6月2日下午消息,微軟中國(guó)今天發(fā)布消息稱,該公司日前已與中國(guó)信息安全測(cè)評(píng)中心續(xù)簽了新一期的政府安全計(jì)劃源代碼協(xié)議。微軟稱,該中心和相關(guān)被授權(quán)機(jī)構(gòu)將被允許查看包括Windows 7, Windows Server 2008 R2在 ...… 查看全部問答∨ |
|
請(qǐng)問WCE Application做出來的軟件,為何在wince下無法拖曳視窗 請(qǐng)問WCE Application做出來的軟件,為何在wince下無法拖曳視窗 ???還是有什麼方法可以做到拖曳視窗… 查看全部問答∨ |
|
例如實(shí)際中需要畫一塊8層的PCB板子(TOP GND ART03 POWER GND ART06 GND BOT),在畫插件封裝時(shí),焊盤的各層的參數(shù)設(shè)置中,是否需要設(shè)置除DEFAULT INTERNALR外再加上"GND ART03 POWER GND ART06 GND "這中間幾層的參數(shù)? 或是只設(shè)置“TOP/DEFA ...… 查看全部問答∨ |
效果: 系統(tǒng)啟動(dòng)后,太陽(yáng)板,會(huì)左右旋轉(zhuǎn)尋找太陽(yáng)的中心位置。當(dāng)太陽(yáng)板正對(duì)太陽(yáng)之后,停止。隨著時(shí)間推移,太陽(yáng)板會(huì)自動(dòng)跟隨旋轉(zhuǎn),始終保持與光線垂直角度。遇到陰天或者夜晚,太陽(yáng)板會(huì)旋轉(zhuǎn)為水平位置,以保護(hù)電池板。系 ...… 查看全部問答∨ |
基于at89c51制作數(shù)字時(shí)鐘,(必須用兩個(gè)4位數(shù)碼管)求程序。電路圖。急求、 本帖最后由 害羞的小黃瓜 于 2014-5-10 10:22 編輯 。。。。求發(fā)郵箱634494591@qq.com … 查看全部問答∨ |
|
公司讓尋找一種傳感器,要求測(cè)量水下的一種作用力,但是受到水壓的干擾作用,要將水壓干擾消除,得到可用的力作用信號(hào)。本想用惠思登電橋測(cè)量,用兩個(gè)應(yīng)變片,一個(gè)測(cè)量水壓,一個(gè)測(cè)量水壓與作用力的壓力,兩個(gè)由于電橋電路直接將水壓消除掉,得到近 ...… 查看全部問答∨ |
引線長(zhǎng)度 Maxim ISM-RF產(chǎn)品的數(shù)據(jù)資料往往建議使用盡可能短的高頻輸入、輸出引線,從而將損耗和輻射降至最小。另一方面,這種損耗通常是由于非理想寄生參數(shù)引起的, 所以寄生電感和電容都會(huì)影響電路布局,使用盡可能短的引線有助于降低寄生參數(shù)。 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動(dòng)授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對(duì)機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動(dòng)機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 大眾汽車宣布明年起其所有電動(dòng)車型全面轉(zhuǎn)向磷酸鐵鋰電池,升級(jí)至MEB Plus平臺(tái)
- 總產(chǎn)值破2000億,深圳要做“機(jī)器人第一城”?
- 鴻道Intewell操作系統(tǒng) 人形機(jī)器人底層操作系統(tǒng)
- 如何定位國(guó)產(chǎn)智駕芯片的終局價(jià)值?
- 新一代車規(guī)級(jí)數(shù)字功放電感VSAD-T系列 為汽車音響注入高保真基因
- 蜂巢能源快充電池突破:15分鐘充至滿電,提升30%效率
- 整車操作系統(tǒng)何以躋身智能汽車三大件?
- 人形機(jī)器人如何做到“手眼”協(xié)同+“大小腦”協(xié)同?
- 中國(guó)電池公司獲英國(guó)政府10億英鎊支持!
- 從游戲到智能駕駛,英偉達(dá)有哪些技術(shù)升級(jí)?
- 免費(fèi)測(cè)評(píng)樂鑫ESP32-C3-DevKitM-1
- 艾睿電子直播:聚焦“TI FPD-Link III 汽車芯片組” ,汽車視頻傳輸理想解決方案
- 更直觀的了解5G?觀看羅德與施瓦茨主題演講,填問卷贏好禮!
- TI促銷,我搶紅包!
- PI 電源小課堂:集成式半橋驅(qū)動(dòng)IC BridgeSwitch 2, 助力高效永磁同步電機(jī)逆變器的設(shè)計(jì)
- 看視頻贏京東卡 | 泰享實(shí)測(cè)之水哥秘籍第三期
- 有獎(jiǎng)直播:恩智浦基于RT06F的人臉識(shí)別技術(shù)解決方案
- 直播已結(jié)束【借助 TI DLP 技術(shù),開始您的下一代4K顯示應(yīng)用設(shè)計(jì)】
- 長(zhǎng)電科技計(jì)劃6125萬美元出售參股公司4900萬股
- 被爆涉嫌“操縱股價(jià)”:凱盛科技/維信諾股價(jià)大幅下跌
- 今年一季度全球DRAM營(yíng)收達(dá)192億美元,同比增8.7%
- 小米再上榜福布斯全球上市公司2000強(qiáng),排名上升162位
- 千座5G智慧工廠的花苞
- 沈陽(yáng)學(xué)子國(guó)際機(jī)器人大賽奪冠
- 北京發(fā)放自動(dòng)駕駛首批牌照
- 用示波器做環(huán)路分析需要幾步?
- AI+軟件+硬件+服務(wù)=機(jī)器人 傅盛連發(fā)五款機(jī)器人
- 美的將與庫(kù)卡設(shè)立合資公司生產(chǎn)機(jī)器人
- 有沒有做Embedded controller的同行?
- 采用“系列優(yōu)先”的方法進(jìn)行運(yùn)算放大器設(shè)計(jì)
- 【Altera soc 體驗(yàn)之旅】+基于自組網(wǎng)的無線路由設(shè)計(jì)在FPGA-SOC上的實(shí)現(xiàn)(2)
- 基于5G網(wǎng)絡(luò)的智慧大棚種植控制系統(tǒng)設(shè)計(jì)
- 壓電加速度傳感器
- 見諒,請(qǐng)?jiān)试S我裝一下"難過"
- FM62429問題
- DAC12零點(diǎn)校正問題
- CCS5.5.0編譯問題之” version of compiler版本不同”
- protel怎么畫元器件封裝啊