日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 單片機(jī)入門 >> 51單片機(jī)軟件復(fù)位

51單片機(jī)軟件復(fù)位

關(guān)鍵字:單片機(jī)復(fù)位 作者:admin 來(lái)源:不詳 發(fā)布時(shí)間:2018-05-08  瀏覽:4

我們知道51單片機(jī)可以把數(shù)據(jù)放在程序存儲(chǔ)器里面,也就是程序和數(shù)據(jù)沒有本質(zhì)區(qū)別,都是一些特定的數(shù)據(jù)。如果我們將一段程序,以數(shù)組數(shù)據(jù)的形式存儲(chǔ)在程序存儲(chǔ)器里面,那么是不是也可以執(zhí)行呢?答案是肯定的。言歸正傳,先來(lái)看看這個(gè)數(shù)組數(shù)據(jù) 0xe4,0xc0,0xe0,0xc0,0xe0,0x22,中Keil的匯編窗口看出,它其實(shí)是四條匯編語(yǔ)句:

CLR A              ;編譯后為 0XE4

PUSH ACC           ;編譯后為 0XC0 0XE0

        PUSH ACC           ;編譯后為 0XC0 0XE0
        RET                ;函數(shù)返回 編譯后為 0X22可以看出,其實(shí)這就是51單片機(jī)的匯編復(fù)位指令。其實(shí)這里只是C復(fù)位代碼的寫法難看而已,rst是一個(gè)指向程序存儲(chǔ)器的字節(jié)指針,我們把它轉(zhuǎn)換為指向返回為空的函數(shù)的指針,返回為空的函數(shù)指針的格式為:void (*)(),這個(gè)表達(dá)式比較復(fù)雜因運(yùn)算符優(yōu)先級(jí)關(guān)系,用括號(hào)括號(hào)括起來(lái),就成了(void (*)())rst,這樣rst就成函數(shù)指針了,再來(lái)看看求函數(shù)指針的一般格式(*p)(),把p代換成(void (*)())rst括起來(lái)就成了(*((void (*)())rst))(),這說(shuō)將這個(gè)復(fù)位的全部面紗揭開了。以下為測(cè)試,驗(yàn)證程序:#include <AT89X51.h>
main()
{
        unsigned char code rst[6]={0xe4,0xc0,0xe0,0xc0,0xe0,0x22};//定義一個(gè)code類型的數(shù)組,一定要為code類型
        while(1)//循環(huán)測(cè)試
        {
                TMOD=5;//測(cè)試用可以是任何語(yǔ)名
                TI=1;
                P1=0;
                P1=1;
                P2=2;
                P3=3;
                (*((void (*)())rst))();//復(fù)位
                SCON=0x50;
        }
}

編輯:admin  最后修改時(shí)間:2019-08-05

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

南部县| 重庆市| 瑞丽市| 寿阳县| 隆昌县| 延长县| 遵化市| 米泉市| 梁河县| 子洲县| 肥乡县| 读书| 南京市| 武邑县| 绍兴县| 卓资县| 昭通市| 通辽市| 西华县| 彩票| 崇仁县| 屏南县| 镇远县| 靖州| 南木林县| 称多县| 章丘市| 新建县| 福安市| 公安县| 巨野县| 娄底市| 三明市| 舞钢市| 麻阳| 鱼台县| 阜南县| 舒兰市| 麦盖提县| 安平县| 宁南县|