久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機程序該如何寫-基礎篇

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年01月25日   【字體:

校園網真的很不爽。刷網頁真TM的慢。剛才看了下鵬友們交的作業。呵呵,看的我汗噠噠的流。不過,情有可原。大家可能對單片機編程還不是很熟悉。下面我先就大家交的作業中的一些問題,說下自己的看法。歡迎拍磚。
    單片機的C語言編程是不同于傳統的C語言的編程的,這是與它本身的體系結構有關。單片機編程是軟硬件結合比較精密的。如果沒有一些硬件方面的知識可能大家很難編出正確的程序。
    如有的同學的主程序是類似這樣的結構
void main(void)
    {
        P0 = 0xff ;
        sleep(1000) ;
        P0 = 0x00 ;
        sleep(1000) ;
}
仿真的時候可能會看到燈是閃爍的。但事實上這樣的程序是不對的。也有同學發現了這個問題,我看到他都把匯編代碼貼出來了。
分析下上面的程序的流程  P0口輸出高電平---->延時一會兒----->P0口輸出低電平----->延時一會兒。 這樣接在P0口上的LED就會亮暗的閃爍。如果要一直這樣循環閃爍下去呢?看到這里大家發現問題了沒有?
問題就在這里了,我們想讓它循環閃爍,但是回過頭來看看我們的主程序,有循環的地方嗎?
之所以這樣的程序仿真的時候還是正確的,那是因為編譯器在生成匯編代碼的時候已經自動加上了跳轉語句,主程序執行完了之后就重新跳轉到初始化處重新執行。
所以上面這段程序的流程是這個樣子的:

初始化(內部RAM,堆棧初始化,由編譯器自動生成相應代碼) --------> 跳轉到用戶的主程序-------->主程序執行完畢---->再次跳轉到初始化處,重新執行。

上面這個流程是我們不想要的。因為初始化是只需要在開機的時候(系統上電)時候初始化一次的時候。想想看如果你的手機每次開機完成之后如果沒有按鍵按下去或者收到短信電話什么的,就會重新初始化一次,是什么后果:) 估計你肯定會扔了那手機,罵道這是誰寫的程序呀。

我們希望初始化完成之后,程序就會跳入到主程序(main函數)中去,并且始終循環執行里面的代碼(哪怕沒有任務,只在那里空跳轉循環) 因為只有那里面的代碼(中斷函數同樣屬于)才是屬于我們用戶編寫的有用代碼,是希望按照我們的意圖去執行的。所以我們希望的正確流程是如下的:

初始化(內部RAM,堆棧初始化,由編譯器自動生成相應代碼) --------> 跳轉到用戶的主程序-------->主程序執行完畢---->
繼續執行主循環里面的用戶代碼。

理解了上面的那個流程,我們正確的函數應該是如下的。
void main(void)
{
        while(1)        //循環條件,永遠為真,下面復合語句里面的內容會一直循環執行
        {
            P0 = 0xff ;
            sleep(1000) ;
            P0 = 0x00 ;
           sleep(1000) ;

        }
}

當然循環語句的寫法不止這一種,我在第十三課 C51循環語句里有詳細的介紹 :http://www.zg4o1577.cn/mcuteach/136.html
小結一下:基于單片機的程序是一個死循環。所有的代碼和函數調用都應該在這個循環里面,(中斷函數例外,在進入循環之前可以調用其它的一些初始化的函數或者是其它只需要在系統上電調用一次的函數或者代碼)。

基本框架如下

void main(void)
{
     // 初始化函數,根據實際系統情況編寫

     while(1)      //死循環  也可以用for(;;;)形式或其它形式
     {
            //任務函數1
            //任務函數2
            ..........
     }

}

先寫到這里。

關閉窗口

相關文章

主站蜘蛛池模板: www.久久 | 久久成人精品 | 黄网站免费在线观看 | 精品一区二区三区四区 | 精品国产视频在线观看 | 伊人色综合久久久天天蜜桃 | 日韩在线视频一区 | 国产精品综合视频 | 日操操夜操操 | 精品三区 | 可以在线看的黄色网址 | 日韩一区二区三区精品 | 自拍偷拍一区二区三区 | 黄色免费网站在线看 | 免费看国产精品视频 | 精品久久久久久久久久久久 | 中文字幕在线视频网站 | 亚洲一一在线 | 日韩电影中文字幕 | 性做久久久久久免费观看欧美 | 第一区在线观看免费国语入口 | 久久久久久国模大尺度人体 | 91精品国产91综合久久蜜臀 | 久久精品亚洲欧美日韩精品中文字幕 | 午夜精品久久久久久久久久久久久 | 国产视频久久久久 | 日韩成人在线视频 | 国产精品极品美女在线观看免费 | 少妇一级淫片aaaaaaaaa | 日本高清aⅴ毛片免费 | 久久在线看 | 亚洲国产成人精品久久久国产成人一区 | 中文字幕日韩专区 | 久久男人 | www.日本国产 | 亚洲一区成人 | 国产精品99久久久久久久久久久久 | 日本精品久久久久 | 国产在线精品一区二区三区 | 做a视频| 999精品在线观看 |