日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
改造成品單片機(jī)系統(tǒng)的方法
改造成品單片機(jī)系統(tǒng)的方法
 更新時(shí)間:2008-8-4 4:05:03  點(diǎn)擊數(shù):12
【字體: 字體顏色


    制作微機(jī)監(jiān)控系統(tǒng)時(shí),若受監(jiān)控對(duì)象本身也是一個(gè)微機(jī)系統(tǒng),且又沒(méi)有電路圖、程序等資料時(shí),如何采集對(duì)象的內(nèi)部數(shù)據(jù)(如CPU狀態(tài)等),如何修改對(duì)象的程序方不至令原系統(tǒng)運(yùn)行不穩(wěn)定和崩潰,如何充分利用監(jiān)控對(duì)象的資源,是一個(gè)帶有普遍性的問(wèn)題! 」P者研制的“數(shù)字實(shí)驗(yàn)監(jiān)控系統(tǒng)”,其主要功能是采集30臺(tái)學(xué)生實(shí)驗(yàn)機(jī)狀態(tài)和過(guò)程信息,送往中心主機(jī)顯示。監(jiān)控對(duì)象是一臺(tái)型號(hào)為DLES的數(shù)字電路實(shí)驗(yàn)機(jī),這是某公司的產(chǎn)品,除簡(jiǎn)單的用法說(shuō)明書外別無(wú)其它資料。該機(jī)的核心是單片機(jī)8031,帶6位鍵盤和數(shù)碼管顯示、并行口8155等,可選擇CPU工作方式產(chǎn)生各種實(shí)驗(yàn)信號(hào)。

1 用雙端口RAM采集數(shù)據(jù) 

監(jiān)控系統(tǒng)的首要任務(wù)是獲取受控對(duì)象的各種狀態(tài)信息。用IO線取得的只是其外部信息,且當(dāng)高頻時(shí)容易遺漏。要取得重要的內(nèi)部信息,必須設(shè)法使監(jiān)控對(duì)象的CPU自動(dòng)送出信息,即采用雙CPU通訊。無(wú)論用并行通訊還是串行通訊,都要大幅修改原機(jī)程序,且要占用原機(jī)CPU很多等待、檢測(cè)通訊口的時(shí)間,很容易破壞原機(jī)的固有時(shí)序。較好的方法是采用共享存貯器方式,只要在原機(jī)程序的適當(dāng)位置插入一段程序,令其定時(shí)將自身的重要信息(例如片內(nèi)RAM的256字節(jié)內(nèi)容)送到共享存貯器就可以了。 本系統(tǒng)采用雙端口存貯器IDT7132來(lái)實(shí)現(xiàn)兩CPU的通訊。雙口存貯器有2套獨(dú)立的IO電路,可供2個(gè)CPU在不同時(shí)刻讀寫各個(gè)存貯單元。但同時(shí)訪問(wèn)同一存貯單元會(huì)產(chǎn)生沖突。IDT7132有一套沖突仲裁電路,使先到一方獲得優(yōu)先權(quán)實(shí)現(xiàn)讀寫操作,而向另一方發(fā)出一個(gè)沖突信號(hào)BUSY! 

沖突發(fā)生時(shí),訪問(wèn)存貯器失敗的一方要將剛失敗的一句指令再執(zhí)行一次,本系統(tǒng)是將BUSY線接到單片機(jī)的中斷線INT0,電路見(jiàn)圖1。但單片機(jī)的程序指針PC不能直接被讀寫,而中斷的發(fā)生又是隨機(jī)的,無(wú)法掌握其出現(xiàn)的時(shí)刻,要重復(fù)執(zhí)行中斷前的一句指令殊不容易。為實(shí)現(xiàn)這功能,用了一點(diǎn)技巧:因?yàn),中斷服?wù)程序執(zhí)行前,PC值必自動(dòng)壓入堆棧,可在中斷服務(wù)程序中將該P(yáng)C值出棧,作減3處理后再入棧,則中斷結(jié)束出棧的PC值已退回指向到中斷前的一句指令了。

原實(shí)驗(yàn)機(jī)已經(jīng)使用了5條高位地址線,若要增加2KB容量的IDT7132,將超過(guò)8031單片機(jī)最大64K存貯空間的限制。為此,利用單片機(jī)一條懸空的中斷口引腳INT1充當(dāng)IDT7132的片選控制線,CPU要訪問(wèn)IDT7132就不能僅用常規(guī)的MOVX指令,而必須在讀寫存貯器的前后各增加一條使INT1變低電平然后變高電平的指令,該指令如下:

CLRINT1MOVXA,@DPTR  SETBINT1

2 原系統(tǒng)已用資源的查找  

要改造別人的系統(tǒng),難點(diǎn)之一是要了解原系統(tǒng)對(duì)各種資源的使用情況。單片機(jī)的內(nèi)部讀寫存貯器RAM只有128字節(jié),而要增改原機(jī)程序必須使用這些片內(nèi)RAM,從而可能造成資源沖突。為了解原系統(tǒng)對(duì)片內(nèi)RAM的使用情況,借用了文字編輯軟件的搜索功能。因?yàn)閱纹瑱C(jī)對(duì)片內(nèi)RAM的尋址方式只有2種:(1)直接尋址,此時(shí),可將RAM的直接地址作為搜索關(guān)鍵字,調(diào)用編輯軟件的搜索功能,在原實(shí)驗(yàn)機(jī)程序中逐個(gè)顯示該地址出現(xiàn)的地方;(2)以R0和R1為指針的間接尋址,這時(shí),可分別以@R0和@R1為關(guān)鍵字搜索原程序,在出現(xiàn)的地方分析R0和R1的變化情況及范圍! ∪粢陨蟽煞椒▌蛭凑业剿P(guān)注的RAM單元,則可以肯定原系統(tǒng)未使用該資源。若該單元同時(shí)又是可位尋址的,而位地址只有直接尋址一種方式,故必須采用上述的第(1)種方式搜索一次,結(jié)論也是非常明確的。

3 修改和插入程序的方法  如果監(jiān)控對(duì)象的信號(hào)是軟件方式產(chǎn)生的(本實(shí)驗(yàn)機(jī)就是這樣),修改、增加程序時(shí)在時(shí)間開銷上要非常小心,否則會(huì)導(dǎo)致原機(jī)時(shí)序出錯(cuò)。以下是兩種常用的可行方法:  (1)在原程序的延時(shí)過(guò)程中,刪除其延時(shí)指令,插入執(zhí)行時(shí)間大致同其原延時(shí)時(shí)間相當(dāng)?shù)男鲁绦。例如,原?shí)驗(yàn)機(jī)為數(shù)碼管顯示而設(shè)的延時(shí)子程序就被用于將適當(dāng)個(gè)字節(jié)的信息傳遞到雙端口存貯器。 。2)在原程序中等待某些事件發(fā)生的過(guò)程中,插入新程序。例如等待鍵盤按鍵時(shí),可以控制程序跳往新的功能模塊,執(zhí)行適當(dāng)時(shí)間后再返回。

4 監(jiān)視定時(shí)器WDT的處理  在大部分微機(jī)控制系統(tǒng)中,WDT(看門狗,在6800系列中是COP)都是首選的抗干擾措施之一,其作用是以軟件和硬件方式設(shè)置一個(gè)定時(shí)器,定時(shí)強(qiáng)制系統(tǒng)復(fù)位,以防止程序失控“跑飛”。  

修改舊程序時(shí)必須留意查看原系統(tǒng)有無(wú)WDT,否則可能導(dǎo)致系統(tǒng)崩潰。若有,則首先要找到WDT的定時(shí)時(shí)間。硬件WDT的時(shí)間值一般是固定的,可查資料得到。例如8096系列是64K個(gè)狀態(tài)周期。軟件WDT要先找到所用的定時(shí)器,可循2個(gè)途徑:(1)芯片自身的定時(shí)器。這可以在定時(shí)器中斷服務(wù)程序中查找,例如8051系列的二個(gè)定時(shí)器的中斷服務(wù)程序入口地址分別是000BH和0001BH,查看這2段程序可知哪一個(gè)是用于WDT的,然后進(jìn)一步在主程序的初始化設(shè)置中查看對(duì)該定時(shí)器的設(shè)置,便可找到定時(shí)時(shí)間;(2)外圍芯片(例如8155)的定時(shí)器,要將之用于WDT必須將定時(shí)器溢出線接到單片機(jī)的某外部中斷線上,查看這些外部中斷服務(wù)程序就可以找到相應(yīng)的定時(shí)器,再查看主程序中對(duì)該定時(shí)器的設(shè)置,也能找到定時(shí)值! 

知道了WDT的溢出時(shí)間后,就可以在修改或增加的程序中,每隔規(guī)定的時(shí)間插入一段指令清除定時(shí)器以使WDT不對(duì)系統(tǒng)復(fù)位。例如對(duì)8096系統(tǒng),若不使用乘除指令,可以每執(zhí)行約4K條指令插入以下2條指令: MOV0AH,#1EH  MOV0AH,#E1H5 借用監(jiān)控對(duì)象的資源  

充分利用監(jiān)控對(duì)象的資源,可以降低成本,最主要是可以使學(xué)生不必耗費(fèi)時(shí)間多學(xué)習(xí)一臺(tái)儀器的使用方法。本監(jiān)控系統(tǒng)借用了原實(shí)驗(yàn)機(jī)上的鍵盤和數(shù)碼管顯示器! 

原實(shí)驗(yàn)機(jī)以掃描IO口方式擴(kuò)展6位鍵盤,每個(gè)鍵盤都賦予了固定的鍵值和鍵功能,以及固定的鍵處理程序段。為了利用原實(shí)驗(yàn)機(jī)的鍵盤使其執(zhí)行新的鍵功能,又不破壞原來(lái)的功能,采用了這樣的方法:改寫原機(jī)的鍵盤掃描程序段,定義當(dāng)某2個(gè)鍵(是在原機(jī)中沒(méi)有用到的)同時(shí)按下時(shí),就跳出原程序轉(zhuǎn)往一個(gè)新編寫的程序模塊。在該新模塊中,所有鍵功能都可以被任意重新定義,當(dāng)處理完新按鍵后再轉(zhuǎn)回原機(jī)程序中執(zhí)行。  

要利用原機(jī)的數(shù)碼管顯示器,可以有兩種方法: (1)編寫新的顯示程序;(2)利用原程序的顯示功能,將要顯示的內(nèi)容嵌入原程序中。因后者能很好地兼容原機(jī)程序,不易導(dǎo)致系統(tǒng)出錯(cuò)或崩潰,故選用之。通過(guò)研究和測(cè)試,知原機(jī)的顯示機(jī)理是將顯示數(shù)據(jù)送緩沖區(qū),由專用顯示模塊轉(zhuǎn)為八段數(shù)碼管顯示值。但其轉(zhuǎn)換算法非常復(fù)雜繁鎖。為不占用原機(jī)CPU太多時(shí)間及不易出錯(cuò),將所有可能的數(shù)據(jù)逐個(gè)送入緩沖區(qū),測(cè)出一張數(shù)據(jù)同顯示式樣的對(duì)照表,在增加的新程序中,將顯示數(shù)據(jù)查表轉(zhuǎn)換后送緩沖區(qū)就可以了。

  • 上一篇: 利用新的邏輯分析工具加快調(diào)試和驗(yàn)證
  • 下一篇: 一種智能型兆歐表的設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1