新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STC系列單片機不斷電下載程序應用技術

        STC系列單片機不斷電下載程序應用技術

        作者: 時間:2013-04-25 來源:網絡 收藏

        3.2 定時器的設置
        波特率為9 600 bit·s-1,在串口工作方式2的情況下,根據方式2的波特率=(2SMOD/32)*(T1溢出率)。假設的晶振頻率為11.0 59 2 MHz,經12分頻后得到計數器記—個數的時間為12/11.059 2 MHz,定時器T1溢出一次的時間為(256-X)×12/11 059 200,所以T1的溢出率為11 059 200/[12×(256-X)],因為波特率不需要加倍,所以SMOD=0。根據公式得,9 600=(1/32)×11 059 200/[(256-X)×12],解得X=253,轉換成16進制數為0Xfd。減少了的冗余性,定時器的工作方式設定為2,定時器自動重裝,不必寫定時器中斷子
        3.3 初始化子
        e.JPG
        3.4 用戶自定義命令
        定義語句為:#define seffdecide_download_commond0x8E。0x8E是用戶任意定義的指令,但最多不能超過0xFF,因為ISP_CONTR寄存器只有8位。接著進行ISP_CONTR的地址定義,通過查89C52的用戶手冊,其語句為sfr ISP_CONTR=0xE7。
        3.5 串口接收合法數據程序
        的工作原理是循環掃描,即使不加大循環while語句,用戶程序也總是一遍一遍地執行,所以用戶程序需要時時刻刻掃描是否是合法數據流的出現。
        串口中斷的編號為4,首先要檢驗中斷標志位RI,如果RI置1,說明上位機向的串口發送指令;隨后指令內容被傳送到單片機的SBUF中,判斷SBUF中的命令內容是否和用戶自定義的命令一致。如果一致,直接向ISP_CONTR中賦特定的值使程序指針指到ISP引導區,實現程序的軟復位;如果不一致,使TI清零,以便下一次中斷申請。
        3.6 延時子函數
        串口接收數據有1 s的延時時間,所以需要加延時子函數,代碼如下:
        Void delayl s()
        {
        Int p,q;
        For(p=1000;p>0;p--)
        For(q=100;q>0;q--);
        }

        4 結束語
        介紹了單片機程序的程序設計思路及方法,運用單片機獨有的ISP引導區對軟件模擬硬件復位實現單片機的電下載程序,省去了編程器的頻繁插拔件或者頻繁的手動復位硬件開關。此方法在大的程序編寫調試過程中能節省大量時間,但也降低了串行口的使用效率。本例適合運用在使用串行口較低的情況下,并且在調試的情況下可以省去手動頻繁的復位操作,減少工作量。

        本文引用地址:http://www.104case.com/article/170523.htm
        手機充電器相關文章:手機充電器原理
        激光器相關文章:激光器原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 林周县| 原阳县| 台江县| 邛崃市| 苏尼特左旗| 满城县| 蕉岭县| 石泉县| 上饶市| 都江堰市| 汾西县| 庐江县| 林州市| 花垣县| 普宁市| 惠州市| 郸城县| 邵阳市| 桐乡市| 微山县| 锦州市| 阳城县| 耿马| 简阳市| 福州市| 屯留县| 普宁市| 张北县| 蒙山县| 临西县| 乐业县| 广灵县| 醴陵市| 六枝特区| 长泰县| 巴东县| 德保县| 贺兰县| 抚松县| 兴和县| 漳平市|