在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)上電清空RAM區(qū)

            單片機(jī)上電清空RAM區(qū)

            作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
            上電后清空RAM是必須要做的,由于上電后RAM中的數(shù)據(jù)處于不確定的狀態(tài),會(huì)給單片機(jī)的運(yùn)算或者條件判斷帶來(lái)影響,所以是必須必須清空的。清空做的操作也不難,做成子程序后,在程序的開(kāi)始調(diào)用一下就完事了,挺方便。下面分別是 EM78P156 , EM78P259/260 ,EM78P468 等有不同RAM數(shù)的單片機(jī)的清RAM操作。

            本文引用地址:http://www.biyoush.com/article/201611/315481.htm

            編程的基本思想,根據(jù)白皮書(shū)(ELAN的官方說(shuō)明書(shū),咱們習(xí)慣的叫法)R0是間接尋址,R4是RAM選擇,根據(jù)這兩個(gè)的組合就可以完成操作。具體操作和說(shuō)明可以參考白皮書(shū)。

            hint: 根據(jù)我的理解,這里其實(shí)可以很簡(jiǎn)單的,只需要知道,R4放的是寄存器的地址,R0是放對(duì)應(yīng)的那個(gè)寄存器的數(shù)據(jù),就OK了,例如

            MOV A,@0X10

            MOV R4,A

            MOV A,@0X11

            MOV R0,A

            根據(jù)hint里面說(shuō)的,R4放地址,看前兩句,將 0x10移入R4,對(duì)了,表示地址,表示 0x10號(hào)寄存器,而后面將0x11移入R0,這個(gè)就是數(shù)據(jù),放在什么地方?就是放在當(dāng)前R4指向的寄存器里面,也就是說(shuō) 0x10地址放的數(shù)據(jù)是 0x 11,可能開(kāi)始看有點(diǎn)抽象,不過(guò)相信我,那是很簡(jiǎn)單的東西。

            下面的程序都是按照這種思想來(lái)做的 EM78P156 的RAM從 0x10 ~ 0x3f ,如果153的話只有 0x2f,修改一下就行了,而259/260 468 的RAM比較多,ELAN 是以bank來(lái)處理的,也就是分頁(yè)處理,所以在清空的時(shí)候切換一下bank就可以了,關(guān)于bank的操作,看白皮書(shū),說(shuō)到低就是對(duì)R4最高兩位的操作而已。

            有問(wèn)題的話歡迎回帖子,或者發(fā)我郵件 [email protected]

            當(dāng)然如果有更好的思想,或者我的程序里面犯錯(cuò)誤的話,非常歡迎大家指出,大家共同討論,共同學(xué)習(xí)和進(jìn)步,在下不吝賜教。

            ;--------------------------------------------------------------------

            ; 適用于 em78p156 & 153

            ; 如果Em78P153S 將 0x3f 改成 0x2f就可以了

            ;--------------------------------------------------------------------

            clear_all_ram:

            mov a,@0x10 ; 開(kāi)始地址

            mov r4,a

            clr_ram:

            clr r0 ; 清空內(nèi)容

            inc r4 ; 地址加1

            mov a,@0x3f ; 是否達(dá)到最大的地址 ,bank最大為0x3f

            and a,r4

            jbs psw,z

            jmp clr_ram ; 是的話推出,不是的話繼續(xù)循環(huán)

            ret

            ;-------------------------------------------------------------------

            ; 適用于 em78p259/260 等只有2個(gè)bank的mcu

            ; 先做一下宏定義,不同的mcu宏定義可能不同,注意修改一下

            ;-------------------------------------------------------------------

            ;-------------------------macro definition--------------------------

            bank0 macro

            bc 0x04,6 ; R4 的第六位決定是bank0 還是bank1

            endm

            ;------------------------

            bank1 macro

            bs 0x04,6

            endm

            ;----------------------clear rams of all banks----------------------

            clear_all_ram:

            mov a,@0x10

            mov r4,a

            bank0

            call clr_ram

            bank1

            call clr_ram

            ret

            clr_ram:

            clr r0

            inc r4

            mov a,@0x3f

            and a,r4

            jbs psw,z

            jmp clr_ram

            mov a,@0x10

            mov r4,a

            ret

            ;-------------------------------------------------------------------

            ; 適用于 em78p468 4個(gè)bank , 而且本身有bank指令不用宏定義

            ;-------------------------------------------------------------------

            ;----------------------clear rams of all banks----------------------

            clear_all_ram:

            mov a,@0x10

            mov r4,a

            bank 0

            call clr_ram

            bank 1

            call clr_ram

            bank 2

            call clr_ram

            bank 3

            call clr_ram

            jmp clr_ram_end

            clr_ram:

            clr r0

            inc r4

            mov a,@0x3f

            and a,r4

            jbs psw,z

            jmp clr_ram

            mov a,@0x10

            mov r4,a

            clr_ram_end:

            ret



            關(guān)鍵詞: 單片機(jī)上電清空RAM

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉