main.c
上传用户:tzjinxin1
上传日期:2022-08-08
资源大小:272k
文件大小:2k
开发平台:

Visual C++

  1. /*
  2. www.mcu123.net/bbs
  3. 学习论坛
  4. 本例程ucOS-II 版本为2.51
  5.  注:
  6.  此例程运行于内RAM > 1024 Byte的51内核的单片机即可。
  7.  比 如 :  SST89E564RD ,STC89C516RD 等
  8. S */
  9. #include "includes.h"
  10. #include "serial.h"
  11.  sbit LED1=P1^5;
  12.  sbit LED2=P1^6;
  13.  unsigned char xdata strbuf[8];
  14. OS_STK TaskStartStk1[MaxStkSize],TaskStartStk2[MaxStkSize],TaskStartStk3[MaxStkSize];
  15. void Task1(void *nouse) reentrant;
  16. void Task2(void *nouse) reentrant;
  17. void Task3(void *nouse) reentrant;
  18. void DecTochar(unsigned int n,unsigned char *buf) 
  19. { unsigned char i;
  20. unsigned char buffer[8];
  21. for(i=0;i<5;i++)
  22. {
  23. buffer[i]=n%10+0x30;
  24. n=n/10;
  25. if(n==0)break;
  26. }
  27. for(;i>0;i--)*buf++=buffer[i];
  28. *buf++=buffer[i];
  29. *buf='r';
  30. buf++;
  31. *buf='n';
  32. }
  33. void main(void)
  34. {
  35.     OSInit();
  36.     InitHardware();
  37.     OSTaskCreate(Task1, (void *)0, &TaskStartStk1[0],2);
  38.     OSTaskCreate(Task2, (void *)0, &TaskStartStk2[0],3);
  39. OSTaskCreate(Task3, (void *)0, &TaskStartStk3[0],4);
  40.     OSStart();
  41. }
  42. void Task1(void *nouse) reentrant
  43. {
  44.    unsigned char const Str0[]="Welcome to MCU123.COM rn";
  45.   unsigned char const Str1[]="Task1 is running! LED1=ON rn";
  46.   unsigned char const Strv[]="uCosII_Ver";
  47. nouse=nouse;
  48.     
  49.     SendStr(Str0, sizeof(Str0));
  50. DecTochar(OSVersion(),strbuf);
  51. SendStr(Strv,sizeof(Strv));
  52. SendStr(strbuf, sizeof(strbuf));
  53.     for(;;)
  54.     {
  55. LED1 = 0;
  56.         SendStr(Str1, sizeof(Str1));
  57.         OSTimeDly(OS_TICKS_PER_SEC*2);
  58.     }    
  59. }
  60. void Task2(void *nouse) reentrant
  61. {  unsigned char const Str2[]="Task2 is running! LED2=ON rn";
  62.     nouse=nouse;
  63.     for(;;)
  64.     {
  65. LED2 = 0;
  66.         SendStr(Str2, sizeof(Str2));
  67.         OSTimeDly(OS_TICKS_PER_SEC*2);
  68.     }
  69. }
  70. void Task3(void *nouse) reentrant
  71. {  unsigned char const Str3[]="Task3 is running! LED1=OFF LED2=OFF rn";
  72.     nouse=nouse;
  73.     for(;;)
  74.     {
  75. LED1 = 1;
  76. LED2 = 1;
  77.         SendStr(Str3, sizeof(Str3));
  78.         OSTimeDly(OS_TICKS_PER_SEC);
  79.     }
  80. }