在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機實用框架-1

汽車電子技術 ? 來源:玩轉單片機 ? 作者:Julian ? 2023-02-10 14:28 ? 次閱讀

項目盡量不要出現delay(uchar data),但是有些協議是需要使用延遲來實現協議時序;前后臺框架在一定程度上提高了時效性,但是如果如果一個主函數中多次使用就會對整個軟件架構的時效性大打折扣,給個反面教材......

//主循環
while1)
{
  //上電進入主程序 或 觸發觸摸屏
  Function1();//播放提示語音
  Delay();//等待播放完畢


  //讀取M1卡信息
  Function2();
  Delay();//等待讀卡數據返回


  //播放提示語音
 Function3();
  Delay();//等待播放完畢


  //M1卡數據交互,判定下一步操作及提示
 Function4();
  Delay();//等待數據處理完畢


  ……
  ……
}

提出“switch 外加定時中斷”理論,主要方便初學者理解單片機程序大概的“邏輯框架”。switch 是一個萬能語句,它外加 while 與 for 循環就可以做任何復雜的算法,比如,搜索算法,運動算法,提取關鍵詞算法,等等。它外加定時中斷,就可以搭建一個系統的基本框架。比如,做通信的程序框架,人機界面的程序框架,按鍵服務的程序框架,等等。switch 的精髓在于“根據條件進行步驟的靈活切換”。

#include 


sbit led0 = P0^0;


uinsigned char time_500ms_flag = 0; //500ms標志位


uinsigned char led_state = 0;       //狀態緩存


void initT0()
{
    TMOD |= 0x01;    //使用方式1,16位定時器
    TH0 = (65536-50000)/256;    //給TH1和TL1初初值,計數器由15536開始計數,到65535溢出
    TL0 = (65536-50000)%256;    //外部晶振為12MHz,對應的延時時間為50ms
    EA = 1;      //總中斷打開
    ET0 = 1;      //定時器中斷打開
    TR0 = 1;      //定時器開關打開
}


void main()
{
    //初始化定時器
    initT0();
    initT1();
    //初始化led燈
    led0 = 0;
    while(1)
    {
        switch(led_state)
        {
          case 0:
              if( time_500ms_flag  )
              {
                  time_500ms_flag  = 0;
                  led_state = 1;
                  //=========任務========
                  led0 = 1;
                  //---------------------
              }
              break;
           case 1:
              if( time_500ms_flag  )
              {
                  time_500ms_flag  = 0;
                  led_state = 0;
                   //=========任務========
                  led0 = 0;
                  //---------------------
              }
              break;
            default: break;
        }
    }
}
//===============================
//t0定時器中斷服務程序
//每隔50ms進入一次該程序
//===============================
void t0Intr() interrupt 1
{
    static unsigned int num;

    TH0 = (65536-50000)/256;
    TL0 = (65536-50000)%256;

    if( !time_500ms_flag )
    {
        num++;
        if( num >= 10 )
        {
            num = 0;
            time_500ms_flag = 0xff;
        }
    }
}
//--------------------------------

用個小程序說明這框架的主要思路,這框架可拓展性很強,時效性有保證,可以滿足很多項目的需求,但是這框架最致命的是遇到需要長時間關閉單片機所有中斷的項目,因為有些協議是不能被中斷打斷,有興趣的可以留意后續推文。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 協議
    +關注

    關注

    2

    文章

    602

    瀏覽量

    39223
  • 函數
    +關注

    關注

    3

    文章

    4331

    瀏覽量

    62618
  • 軟件架構
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10287
  • Delay
    +關注

    關注

    0

    文章

    10

    瀏覽量

    10893
收藏 人收藏

    評論

    相關推薦

    侃侃單片機裸奔的程序框架

    [url=]侃侃單片機裸奔的程序框架[/url]
    發表于 01-29 13:52

    單片機程序框架的相關資料分享

    單片機程序框架
    發表于 11-22 07:46

    CAFrame單片機程序框架分享

    CAFrame單片機程序框架簡介程序運行優先級CAFrame配置通用事件應用FLowchart流程圖簡介CAFrame 單片機C語言程序開發框架可用于不同的
    發表于 11-24 07:18

    單片機,單片機是什么意思

    單片機,單片機是什么意思 1、什么是單片機 單片機是一種集成在電路芯片,是采用超大規模集成電路技術把具有數據處理
    發表于 03-11 09:12 ?8939次閱讀

    PIC單片機程序結構框架

    為了快速掌握PIC單片機源程序的基本結構,這里給出一個典型的程序結構框架
    發表于 06-27 13:41 ?5574次閱讀

    原創分享:自制輕量級單片機UI框架

    原創分享:自制輕量級單片機UI框架框架元素用戶接口代碼開源平時常看csdn,但是從來沒有自己寫過。正好這幾天需要用單片機做一個簡易的ui界面,于是自己寫了一個輕量級的ui
    發表于 11-05 15:20 ?29次下載
    原創分享:自制輕量級<b class='flag-5'>單片機</b>UI<b class='flag-5'>框架</b>

    單片機程序框架

    單片機程序框架
    發表于 11-13 14:21 ?16次下載
    <b class='flag-5'>單片機</b>程序<b class='flag-5'>框架</b>

    單片機裸機程序框架

    單片機裸機程序框架##單片機裸機開發時,要處理多個任務程序框架:輪詢系統int main(void){ init_something(); while(
    發表于 11-13 19:21 ?12次下載
    <b class='flag-5'>單片機</b>裸機程序<b class='flag-5'>框架</b>

    51單片機如何跳出wile循環_基于proteus的51單片機開發實例(1

    的基本框架;4、了解LED發光二極管的特性。1.2. 設計思路電路設計思路:將一個發光二極管的一端連接到51單片機的一個I/O端口(P1端口)上,發光二極管的另一端連接到電源正極。程序設計思路:編寫程序...
    發表于 11-23 16:23 ?4次下載
    51<b class='flag-5'>單片機</b>如何跳出wile循環_基于proteus的51<b class='flag-5'>單片機</b>開發實例(<b class='flag-5'>1</b>)

    單片機學習筆記————51單片機實現判斷數據尾來接收一串數據的串口通用程序框架

    單片機學習筆記————51單片機實現判斷數據尾來接收一串數據的串口通用程序框架
    發表于 11-23 17:06 ?8次下載
    <b class='flag-5'>單片機</b>學習筆記————51<b class='flag-5'>單片機</b>實現判斷數據尾來接收一串數據的串口通用程序<b class='flag-5'>框架</b>

    單片機學習筆記————51單片機實現在串口接收中斷里即時解析數據頭的特殊程序框架

    單片機學習筆記————51單片機實現在串口接收中斷里即時解析數據頭的特殊程序框架
    發表于 11-23 17:06 ?16次下載
    <b class='flag-5'>單片機</b>學習筆記————51<b class='flag-5'>單片機</b>實現在串口接收中斷里即時解析數據頭的特殊程序<b class='flag-5'>框架</b>

    單片機學習筆記————51單片機(利用return)實現判斷數據頭來接收一串數據的串口通用程序框架

    單片機學習筆記————51單片機(利用return)實現判斷數據頭來接收一串數據的串口通用程序框架
    發表于 11-23 17:06 ?17次下載
    <b class='flag-5'>單片機</b>學習筆記————51<b class='flag-5'>單片機</b>(利用return)實現判斷數據頭來接收一串數據的串口通用程序<b class='flag-5'>框架</b>

    淺談單片機裸機系統程序框架

    淺談單片機裸機系統程序框架
    發表于 11-23 17:51 ?12次下載
    淺談<b class='flag-5'>單片機</b>裸機系統程序<b class='flag-5'>框架</b>

    單片機基礎到程序框架

    單片機應用的核心技術是什么?是按鍵,數碼管,流水燈,串口。是它們的程序框架。按鍵和數碼管是 輸入是人機界面,把它們的程序框架研究透了,以后做彩屏或者更花銷的顯示界面,程序框架也可以通
    發表于 09-07 14:45 ?9次下載

    單片機中使用的RTOS代碼框架

    在這次開發中,也是遇到了很多的問題,主要的感想是關于代碼的框架。在單片機開發中,特別是使用了RTOS的時候,一個良好的代碼框架真的是相當的必要的。
    的頭像 發表于 02-10 14:21 ?1137次閱讀
    主站蜘蛛池模板: 伦理片日本韩国电影三级在线观看| 久久精品视频观看| 国产精品视频你懂的| 手机看片福利久久| 又粗又大又猛又爽免费视频| 特级毛片免费视频观看| 国产三级日本三级美三级| 美女天天干| 在线播放交视频| 狠狠做久久深爱婷婷97动漫| 美女牲交视频一级毛片| 中文字幕在线色| 黄色a毛片| 白浆喷射| 四虎永久免费地址在线网站| www.97色| 亚洲一区二区三区免费| 日本三级黄色录像| 在线观看视频高清视频| 一区二区三区四区视频在线| 色多视频| 2021天天操| 日本三级电影在线观看| 天天插天天干| 中国成人免费视频| 国产精品高清一区二区三区不卡| 69ww免费视频播放器| 四虎影院永久免费| 亚色中文字幕| 国产精品免费一级在线观看| 一级毛片子| 成人在线天堂| 黄色小网站在线观看| 女生张开腿让男人桶| 狠狠操狠狠操| 四虎影在线永久免费观看| 午夜精品久久久久| 真实偷清晰对白在线视频| 丁香婷婷综合五月综合色啪| 加勒比精品久久一区二区三区| 婷婷资源综合|