新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > stm單片機(jī)io管腳翻轉(zhuǎn)實(shí)驗(yàn)

        stm單片機(jī)io管腳翻轉(zhuǎn)實(shí)驗(yàn)

        作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
        這是用匯編寫出來(lái)的效果,可見(jiàn)頻率都一樣,而占空比卻變了
        以下為匯編程序
        org 0000h
        ajmpmain
        org0080h
        main:
        loop: mov p1,#0ffh;全不亮
        mov P1,#000h
        jmp loop
        end
        后來(lái)我又將c語(yǔ)言改成
        void main()
        {
        P1=0xff;
        while(1)
        {
        P1=0xff;
        P1=0;
        }
        }
        編譯后運(yùn)行,結(jié)果和匯編編寫的一樣了,
        這說(shuō)明,循環(huán)程序執(zhí)行到最后一句話以后會(huì)重新跳回第一句話,這個(gè)jmp loop也占一條語(yǔ)句的時(shí)間,所以才有了以上的兩種結(jié)果

        上圖是我又把程序變?yōu)?/div>
        void main()
        {
        P1=0xff;
        while(1)
        {
        P1=0xff;
        P1=0;
        P1=0xff;
        P1=0;
        P1=0xff;
        P1=0;//。。。。。。。
        //好多個(gè)p1=0,p1=0xff
        }
        }
        這個(gè)時(shí)候,頻率變成了333.3kHZ了,說(shuō)明這已經(jīng)是最快的速度了,但問(wèn)題是,占空比還是33.3%,不解中。理論上來(lái)說(shuō),應(yīng)該是50%的占空比才對(duì),也許是芯片內(nèi)部,下降保持的速度大于上升時(shí)保持的速度吧。
        于是我又將程序改為
        void main()
        {
        P1=0xff;
        while(1)
        {
        P1=~P1;
        P1=~P1;
        P1=~P1;//。。。。。。。
        //好多個(gè)P1=~P1;
        }
        }
        這回又有變化了,以下是截圖

        這回效果已經(jīng)非常不錯(cuò)了,達(dá)到250K,而且占空比在50%,但計(jì)算一下可得知,12M的12分頻為1M,也就是說(shuō),他的io翻轉(zhuǎn)速度應(yīng)該在500Kh左右阿,也許是時(shí)鐘的問(wèn)題,不解中。

        從以上效果圖來(lái)看,還可以得出一個(gè)結(jié)論,就是好像取反要比改變管腳狀態(tài)來(lái)得快。

        這是LED與電阻中間的波形,還挺好看,但原因還不知道,先不分析,以后解決。
        下面是STM32F103VE的管腳
        這個(gè)是72M的可比那快多了

        從上面的波形猜測(cè),頻率接近18Mhz,是不是因?yàn)楣苣_速度太快,由于管腳的分布電容電阻引起的波形變化。
        已經(jīng)快接近正弦波了。
        經(jīng)過(guò)驗(yàn)證:芯片的IO翻轉(zhuǎn)速度低于芯片頻率的一半,其原因可能是因?yàn)榫幾g器翻譯出的語(yǔ)句問(wèn)題。

        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 重庆市| 蒙阴县| 连山| 辉南县| 萨嘎县| 广东省| 湛江市| 临洮县| 修水县| 房山区| 西峡县| 白水县| 拜泉县| 乌兰浩特市| 读书| 淳安县| 武冈市| 旺苍县| 横山县| 南华县| 万盛区| 桂阳县| 齐齐哈尔市| 瑞昌市| 金溪县| 沽源县| 留坝县| 洞口县| 临漳县| 荃湾区| 无棣县| 漾濞| 溆浦县| 南宫市| 东阿县| 海淀区| 汤原县| 天门市| 区。| 吉林省| 霞浦县|