欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
RTX51_TNY之按鍵控制LED流水燈左右依次點亮,用信號傳遞方式。
[打印本頁]
作者:
jubaolun
時間:
2018-6-13 11:28
標題:
RTX51_TNY之按鍵控制LED流水燈左右依次點亮,用信號傳遞方式。
程序經過實物驗證過的。
程序如下:
/*////////////////////////////////////////////////////
系統:RTX51-TNY
功能:按鍵控制LED流水燈左右依次點亮。用信號傳遞方式。
日期:2018/06/13
/////////////////////////////////////////////////////////*/
#include <rtx51tny.h>
#include <reg52.h>
#define u8 unsigned char
#define u16 unsigned int
// LED依次亮滅控制數組
u8 LED_L[] = {0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00};
u8 LED_R[] = {0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00};
u8 retry = 0;
sbit KEY1=P1^0;
sbit KEY2=P1^1;
void task_start(void) _task_ 0
{
// 創建4個任務
os_create_task(1);
os_create_task(2);
os_create_task(3);
os_create_task(4);
// 創建任務后,刪除自己
os_delete_task(0);
}
void job1(void) _task_ 1 //按鍵開啟任務
{
while(1)
{
if(KEY1==0)
{ //判斷按鍵是否按下
while(!KEY1);
os_send_signal (3);
os_create_task(3);
}
}
}
void job2(void) _task_ 2 //按鍵關閉任務
{
while(1)
{
if(KEY2==0)
{ //判斷按鍵是否按下
while(!KEY2);
P0=0XFF;
os_delete_task (3);
}
}
}
//以下是左右流水任務
void LightOnLed(void) _task_ 3
{
while(1){
// 等待一個信號
os_wait (K_SIG, 0, 0);
// 依次點亮 LED
for(retry=0; retry!=8; ++retry)
{
P0 = LED_L[retry];
os_wait (K_TMO, 8, 0);
}
P0=0xff;
// 給任務3發送一個信號
os_send_signal (4);
}
}
void LightOffLed(void) _task_ 4
{
while(1){
// 等待一個信號
os_wait (K_SIG, 0, 0);
// 依次熄滅 LED
for(retry=0; retry!=8; ++retry)
{
P0 = LED_R[retry];
os_wait (K_TMO, 8, 0);
}
P0=0xff;
// 給任務2發送一個信號
os_send_signal (3);
}
}
復制代碼
main.rar
2018-6-13 11:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
863 Bytes, 下載次數: 28, 下載積分: 黑幣 -5
作者:
小房
時間:
2018-10-14 03:32
連按兩次key1,燈就會亂。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1