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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7417|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

(開源)基于時(shí)間片輪詢的程序架構(gòu)思想的LED閃爍

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:84566 發(fā)表于 2015-7-21 16:25 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  這兩天失業(yè)在家里,無聊間瀏覽各網(wǎng)站,其實(shí)想想自己的程序?qū)懙膶?shí)在很亂,其實(shí)也很少寫程序 的
看到一篇文章是關(guān)于程序架構(gòu)的文章:“淺談單片機(jī)應(yīng)用程序架構(gòu)(原創(chuàng))”里面關(guān)于程序的架構(gòu)思想很好,
很實(shí)用,博客的主人劉俊先生愿意將這些編程的思想與大家分享,分享構(gòu)建程序的思想,值得大家學(xué)習(xí)
  今天下午運(yùn)用了劉俊先生的思想,做了兩個(gè)LED燈輪流閃爍的思想,讓兩個(gè)LED燈輪流閃爍,與大家分享
也是“從業(yè)十年,手把手教你。。。。。”此文作者的思想差不多!與大家一起分享程序,和大家一起進(jìn)步
在此謝謝劉俊先生的開源思想!

/*****************************
*PROJECT:LED輪流閃爍
*根據(jù)操作系統(tǒng)思想使用時(shí)間片輪詢法實(shí)現(xiàn)LED輪流閃爍
*DATE:2015-7-21
*
*/
#include <reg52.h>
#define uChar unsigned char
#define uInt  unsigned int
//CONFIG
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
sbit LED1 = P0^0;
sbit LED2 = P0^1;
void LedOn(void);
void LedOff(void);
void InitSys(void);//系統(tǒng)初始化
//1.定義一個(gè)結(jié)構(gòu)體
typedef struct _TASK_COMPONENTS
{
uChar Run;                 //程序運(yùn)行標(biāo)志   0-不運(yùn)行  1-運(yùn)行
  uInt Timer;               //計(jì)時(shí)器
uInt ItvTimer;            //任務(wù)運(yùn)行間隔時(shí)間
void (*TaskHook)(void);    //要運(yùn)行的任務(wù)函數(shù)

}TASK_COMPONENTS;
typedef enum _TASK_LIST
{
TAST_LED_ON,
TAST_LED_OFF,
TASKS_MAX        // import
}TASK_LIST;
static TASK_COMPONENTS TaskComps[] =
{
{0,250,250,LedOn},    //  LED on
{0,250,250,LedOff}, //LED OFF

};
/********************************************
*FunctionName    :TaskReMarks()
*Description     :任務(wù)標(biāo)志處理
*EntryParameter  :None
*RetrunValue     :None
*********************************************/
void TaskReMarks(void) //此函數(shù)在中斷中調(diào)用
{
uChar i = 0;

for(i = 0;i < TASKS_MAX; i++)
{
  if(TaskComps[ i].Timer)
  {
   TaskComps[ i].Timer--;
   if(TaskComps[ i].Timer == 0)
   {
    TaskComps[ i].Timer = TaskComps[ i].ItvTimer;
    TaskComps[ i].Run = 1;   //任務(wù)可以運(yùn)行
   }
  }
}
}
//3.程序處理
/**************************
FunctionName    :TaskProcess()
*Description     :任務(wù)標(biāo)志處理
*EntryParameter  :None
*RetrunValue     :None
***************************/
void TaskProcess(void)
{
uChar i = 0;

for(i = 0;i < TASKS_MAX;i++)
{
  if(TaskComps[ i].Run)
  {
   TaskComps[ i].TaskHook();
   TaskComps[ i].Run = 0;
  }
}
}
void main()
{
InitSys();
while(1)
{
  TaskProcess();
}
}

void InitSys(void)//系統(tǒng)初始化
{
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;

TMOD = 0X01;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;
ET0 = 1;
EA = 1;
}
void InterruptTimer0(void) interrupt 1
{
TH0 = 0xFC;  //定時(shí)2MS
TL0 = 0x67;

TaskReMarks();
}
/********************************************
*FunctionName    :void LedOn(void)
*Description     :LED開啟與關(guān)閉
*EntryParameter  :None
*RetrunValue     :None
*********************************************/
void LedOn(void)
{
LED1 = 0;
LED2 = 1;
}
/********************************************
*FunctionName    :void LedOff()
*Description     :LED開啟與關(guān)閉
*EntryParameter  :None
*RetrunValue     :None
*********************************************/
void LedOff(void)
{
LED1 = 1;
LED2 = 0;
}

評(píng)分

參與人數(shù) 1威望 +50 黑幣 +50 收起 理由
admin + 50 + 50 共享資料的積分獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:191542 發(fā)表于 2017-8-5 20:32 | 只看該作者
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4
樓主大人在嗎,這幾句是干嗎的?沒看懂誒
回復(fù)

使用道具 舉報(bào)

板凳
ID:507641 發(fā)表于 2021-8-26 22:41 | 只看該作者

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4看應(yīng)該是三八譯碼器控制端口
回復(fù)

使用道具 舉報(bào)

地板
ID:235200 發(fā)表于 2021-8-27 01:26 | 只看該作者
總是離人淚 發(fā)表于 2017-8-5 20:32
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;

這是移植時(shí)未刪除的部分,在本程序中控制LED1和LED2中不起作用,可忽略
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费视频一区二区 | 精品欧美一区二区三区久久久 | 亚洲欧美一区二区三区视频 | 97精品超碰一区二区三区 | 亚洲一区二区在线电影 | 国产偷录叫床高潮录音 | 99久久精品国产一区二区三区 | 欧美一级在线观看 | 成人综合视频在线观看 | 中文字幕视频一区二区 | 亚洲国产精品久久久 | 久久亚洲一区二区 | 中文字幕国产精品视频 | 97久久久久久| 在线免费看黄 | 色本道| 亚洲精品视频免费观看 | 久久成人高清视频 | 欧美久久久电影 | 国产精品国产三级国产播12软件 | 99re在线视频 | 中文字幕综合 | 成人 在线 | 国产精彩视频 | 亚洲国产精品99久久久久久久久 | 欧美电影一区 | 91污在线| 日韩欧美国产精品 | hitomi一区二区三区精品 | 亚洲视频自拍 | 日本天堂一区 | 成人在线精品 | 国产精品久久久久久久久免费软件 | 久久一级 | 欧美日韩一区在线播放 | 久久久精品国产 | 久久久久久高潮国产精品视 | 欧美黄色网 | 福利一区二区 | 欧美片网站免费 | 国产亚洲精品精品国产亚洲综合 |