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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1667|回復: 2
打印 上一主題 下一主題
收起左側

狀態機程序在51單片機上正常運行

[復制鏈接]
跳轉到指定樓層
樓主
ID:731890 發表于 2023-12-30 17:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對于51單片機由于其內部資源的限制,運行一個打操作系統是比較困難的,但是我們可以使用一個狀態機來運行不同的任務,這樣可以大減輕51單片機內部資源的負擔,也實現了多任務的架構。

單片機源程序如下:

  1. #include <reg52.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include "delay.h"
  5. #include "timer0.h"
  6. #include "usart1.h"


  7. #define   Task_Size      8
  8. unsigned char Event_List[8];
  9. unsigned char Task_PQH;
  10. void (*Task_List[Task_Size])(void);

  11. void Task0()
  12. {
  13.   Uart1_SendString("Task0\r\n");
  14.         delay_ms(250);
  15. }

  16. void Task1()
  17. {
  18.   Uart1_SendString("Task1\r\n");
  19.         delay_ms(250);
  20. }

  21. void Task2()
  22. {
  23.         Uart1_SendString("Task2\r\n");
  24.         delay_ms(250);
  25. }

  26. void Task3()
  27. {
  28.         Uart1_SendString("Task3\r\n");
  29.         delay_ms(250);
  30. }

  31. void Task4()
  32. {
  33.         Uart1_SendString("Task4\r\n");
  34.         delay_ms(250);
  35. }

  36. void Task5()
  37. {
  38.         Uart1_SendString("Task5\r\n");
  39.         delay_ms(250);
  40. }


  41. void Task6()   
  42. {
  43.         Uart1_SendString("Task6\r\n");
  44.   delay_ms(250);        
  45. }

  46. void Task7()       //空閑任務
  47. {
  48.   Uart1_SendString("Task7\r\n");
  49.         delay_ms(250);
  50. }


  51. void main()
  52. {
  53.         Uart1_Init();//串口初始化
  54.         Init_timer0();      //定時器0初始化
  55.         Task_List[0]=Task0;     //初步化任務表
  56.   Task_List[1]=Task1;
  57.   Task_List[2]=Task2;
  58.   Task_List[3]=Task3;
  59.   Task_List[4]=Task4;
  60.   Task_List[5]=Task5;
  61.   Task_List[6]=Task6;
  62.   Task_List[7]=Task7;
  63.         
  64.         for(Task_PQH=0;Task_PQH<Task_Size;Task_PQH++)   //初始化事件
  65. {
  66.    Event_List[Task_PQH]=0;
  67. }
  68.   while(1)
  69. {
  70.                  for(Task_PQH=0;Task_PQH<Task_Size-1;Task_PQH++)   //查找最高優先級任務
  71.                  {
  72.                          if(Event_List[Task_PQH]>0)                   //有事件發生
  73.                          break;
  74.                  }

  75.                  Task_List[Task_PQH]();           //執行任務
  76. }
  77. }
復制代碼
原理圖: 無
仿真: 無
代碼: 狀態機.7z (19.26 KB, 下載次數: 33)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:145357 發表于 2024-1-17 22:45 來自手機 | 只看該作者
感謝樓主分享,認真學習一下
回復

使用道具 舉報

板凳
ID:1064915 發表于 2024-1-18 08:21 | 只看該作者
       狀態機,一般指有限狀態機(英語:finite-state machine,縮寫:FSM)又稱有限狀態自動機(英語:finite-state automaton,縮寫:FSA),是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學計算模型。有限狀態機是在自動機理論和計算理論中研究的一類自動機。
       有限狀態機歸屬于自動機理論范疇,從自動機理論的領域分層圖可以看出,越往外層,概念越復雜。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产精品久久久久久 | 精品一区av | 国产91在线播放精品91 | 国产精品69毛片高清亚洲 | eeuss国产一区二区三区四区 | 亚洲欧洲一区二区 | 欧美日韩1区2区 | 91污在线 | 成人在线观看黄 | 97久久国产| 国产97色 | 国产精品国产三级国产aⅴ浪潮 | 综合色在线 | 男女精品网站 | 国产精品18久久久久久白浆动漫 | 久久久久久久一区二区三区 | 国产视频中文字幕在线观看 | 午夜久久久 | 精品国产三级 | 免费成人高清在线视频 | 欧美一级黄色片免费观看 | 国产欧美一区二区三区另类精品 | 国产精品一区二区福利视频 | 成人欧美一区二区三区视频xxx | www.国产精品 | 成人一区二区三区 | 碰碰视频 | av大片 | 人人人人干 | 久久性色| 欧美日韩黄色一级片 | 日本色婷婷 | 国产精品视频www | 一区二区三区四区在线视频 | 99热精品在线 | 精品视频一区二区三区在线观看 | 国产精品美女久久久久久免费 | 日韩一级免费观看 | 在线观看成人免费视频 | 欧美一区2区三区4区公司二百 | 综合国产 |