⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yy2.lst

📁 UCOSII源码,三星4510下面的uCOSII源码.
💻 LST
📖 第 1 页 / 共 5 页
字号:
  31      =2  //    其中:SMOD=0,1;Fosc=晶体或晶振频率;Bound=波特率
  32      =2  //    本例中,SMOD=0;Fosc=20*10E6;Bound=300,所以TH1=0x52。
  33      =2  //**********************************************************************************
  34      =2  //书写风格:
  35      =2  //        1.带yy前缀标志的函数为杨屹改写的等效C库函数。
  36      =2  //        2.单个单词用小写,yy定义为前缀,不算一个单词。
  37      =2  //        3.多个单词(2个及以上),每个单词首字母大写。(有时变量名第一个单词首字母小写)
  38      =2  //        4.采用内缩风格,每次缩进8个空格。
  39      =2  //**********************************************************************************
  40      =2  
  41      =2  void InitSerial() reentrant;//串口初始化
  42      =2  void InitSerialBuffer(void) reentrant;//串口缓冲区初始化
  43      =2  bit  yygetch(unsigned char *ch) reentrant;//从串口缓冲区读1字节数据
  44      =2  void PrintChar(unsigned char ch) reentrant;//显示字符
  45      =2  void PrintCh(unsigned char ch) reentrant;//内部使用,不建议用户使用。
  46      =2  void PrintByte(unsigned char Byte) reentrant;//以十六进制格式显示1个字节数据
  47      =2  void PrintWord(unsigned int Word) reentrant;//以十六进制格式显示1个字数据
  48      =2  void PrintLong(unsigned long LongWord) reentrant;//以十六进制格式显示1个长字数据
  49      =2  void PrintStr(unsigned char *str) reentrant;//显示字符串
  50      =2  void clrscr() reentrant;//清屏
  51      =2  
  52      =2  void serial(void) reentrant;//串口中断服务子程序
  53      =2  
  54      =2  //收发缓冲区长度
C51 COMPILER V7.50   YY2                                                                   03/26/2006 08:30:32 PAGE 13  

  55      =2  #define LenTxBuf        2000    //Don't too small,because it will cause display abnormal.
  56      =2  #define LenRxBuf        50
  57      =2  
  58      =2  #define MaxLenStr       100     /*buf[MaxLenStr+1] for '\0'*/
  59      =2  
  60      =2  #define TABNum          4       //TAB键移动长度
  61      =2  
  25      =1  #include    <reg51.h>
   1      =2  /*--------------------------------------------------------------------------
   2      =2  REG51.H
   3      =2  
   4      =2  Header file for generic 80C51 and 80C31 microcontroller.
   5      =2  Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
   6      =2  All rights reserved.
   7      =2  --------------------------------------------------------------------------*/
   8      =2  
   9      =2  #ifndef __REG51_H__
  10      =2  #define __REG51_H__
  11      =2  
  12      =2  /*  BYTE Register  */
  13      =2  sfr P0   = 0x80;
  14      =2  sfr P1   = 0x90;
  15      =2  sfr P2   = 0xA0;
  16      =2  sfr P3   = 0xB0;
  17      =2  sfr PSW  = 0xD0;
  18      =2  sfr ACC  = 0xE0;
  19      =2  sfr B    = 0xF0;
  20      =2  sfr SP   = 0x81;
  21      =2  sfr DPL  = 0x82;
  22      =2  sfr DPH  = 0x83;
  23      =2  sfr PCON = 0x87;
  24      =2  sfr TCON = 0x88;
  25      =2  sfr TMOD = 0x89;
  26      =2  sfr TL0  = 0x8A;
  27      =2  sfr TL1  = 0x8B;
  28      =2  sfr TH0  = 0x8C;
  29      =2  sfr TH1  = 0x8D;
  30      =2  sfr IE   = 0xA8;
  31      =2  sfr IP   = 0xB8;
  32      =2  sfr SCON = 0x98;
  33      =2  sfr SBUF = 0x99;
  34      =2  
  35      =2  
  36      =2  /*  BIT Register  */
  37      =2  /*  PSW   */
  38      =2  sbit CY   = 0xD7;
  39      =2  sbit AC   = 0xD6;
  40      =2  sbit F0   = 0xD5;
  41      =2  sbit RS1  = 0xD4;
  42      =2  sbit RS0  = 0xD3;
  43      =2  sbit OV   = 0xD2;
  44      =2  sbit P    = 0xD0;
  45      =2  
  46      =2  /*  TCON  */
  47      =2  sbit TF1  = 0x8F;
  48      =2  sbit TR1  = 0x8E;
  49      =2  sbit TF0  = 0x8D;
  50      =2  sbit TR0  = 0x8C;
  51      =2  sbit IE1  = 0x8B;
  52      =2  sbit IT1  = 0x8A;
  53      =2  sbit IE0  = 0x89;
  54      =2  sbit IT0  = 0x88;
C51 COMPILER V7.50   YY2                                                                   03/26/2006 08:30:32 PAGE 14  

  55      =2  
  56      =2  /*  IE   */
  57      =2  sbit EA   = 0xAF;
  58      =2  sbit ES   = 0xAC;
  59      =2  sbit ET1  = 0xAB;
  60      =2  sbit EX1  = 0xAA;
  61      =2  sbit ET0  = 0xA9;
  62      =2  sbit EX0  = 0xA8;
  63      =2  
  64      =2  /*  IP   */ 
  65      =2  sbit PS   = 0xBC;
  66      =2  sbit PT1  = 0xBB;
  67      =2  sbit PX1  = 0xBA;
  68      =2  sbit PT0  = 0xB9;
  69      =2  sbit PX0  = 0xB8;
  70      =2  
  71      =2  /*  P3  */
  72      =2  sbit RD   = 0xB7;
  73      =2  sbit WR   = 0xB6;
  74      =2  sbit T1   = 0xB5;
  75      =2  sbit T0   = 0xB4;
  76      =2  sbit INT1 = 0xB3;
  77      =2  sbit INT0 = 0xB2;
  78      =2  sbit TXD  = 0xB1;
  79      =2  sbit RXD  = 0xB0;
  80      =2  
  81      =2  /*  SCON  */
  82      =2  sbit SM0  = 0x9F;
  83      =2  sbit SM1  = 0x9E;
  84      =2  sbit SM2  = 0x9D;
  85      =2  sbit REN  = 0x9C;
  86      =2  sbit TB8  = 0x9B;
  87      =2  sbit RB8  = 0x9A;
  88      =2  sbit TI   = 0x99;
  89      =2  sbit RI   = 0x98;
  90      =2  
  91      =2  #endif
  26      =1  
  27      =1  //用户头文件加在最后面
  28      =1  //Your head file add here.
   2          
   3          
   4          void TaskStartyya(void *yydata) ;
   5          void TaskStartyyb(void *yydata) ;
   6          void TaskStartyyc(void *yydata) ;
   7          void TaskStartyy(void *yydata) ;
   8          
   9          
  10          OS_STK TaskStartStkyya[MaxStkSize];//注意:我在ASM文件中设置?STACK空间为40H即64。
  11          OS_STK TaskStartStkyyb[MaxStkSize];
  12          OS_STK TaskStartStkyyc[MaxStkSize];
  13          OS_STK TaskStartStkyy[MaxStkSize];
  14          
  15             
  16             sbit LED0=P1^0;
  17              sbit LED1=P1^1;
  18                   sbit LED2=P1^2;
  19                    sbit LED3=P1^3;
  20                     sbit LED4=P3^3;
  21                      sbit LED5=P3^4;
  22                           sbit LED6=P3^5;
  23                           int i=0;
C51 COMPILER V7.50   YY2                                                                   03/26/2006 08:30:32 PAGE 15  

  24          
  25                  OS_EVENT *sem1;
  26          void main(void)
  27          {
  28   1          OSInit();
  29   1           LED0=0;
  30   1              sem1 = OSSemCreate(0);
  31   1          InitTimer0();
  32   1          InitSerial();
  33   1          InitSerialBuffer();
  34   1          
  35   1        OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],8);
  36   1        OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],3);
  37   1       // OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],4);
  38   1       //          OSTaskCreate(TaskStartyy, (void *)0, &TaskStartStkyya[0],2);
  39   1          OSStart();
  40   1              
  41   1              
  42   1      
  43   1      
  44   1      }
  45          
  46          
  47          /*
  48          void TaskStartyya(void *yydata) reentrant
  49          {
  50              yydata=yydata;
  51              clrscr();
  52              PrintStr("\n\t\t*******************************\n");
  53              PrintStr("\t\t*     Hello! The world.       *\n");
  54              PrintStr("\t\t*******************************\n\n\n");
  55            
  56              for(;;)
  57                  {
  58                  PrintStr("\tAAAAAA111111 is active.\n");
  59                  OSTimeDly(OS_TICKS_PER_SEC);    
  60              }    
  61          }
  62          
  63          void TaskStartyyb(void *yydata) reentrant
  64          {
  65              yydata=yydata; 
  66              
  67              for(;;)
  68                  {
  69                  PrintStr("\tBBBBBB333333 is active.\n");
  70                  OSTimeDly(3*OS_TICKS_PER_SEC);    
  71              }    
  72          }
  73          
  74          void TaskStartyyc(void *yydata) reentrant
  75          {
  76              yydata=yydata; 
  77              
  78              for(;;)
  79                  {
  80                  PrintStr("\tCCCCCC666666 is active.\n");
  81                  OSTimeDly(6*OS_TICKS_PER_SEC);    
  82              }    
  83          }
  84          
  85          
C51 COMPILER V7.50   YY2                                                                   03/26/2006 08:30:32 PAGE 16  

  86          
  87            void TaskStartyy(void *yydata) 
  88          {
  89              INT8U err;
  90              unsigned char *msg;
  91              
  92              while(1)
  93                  {
  94                                  
  95                          msg = OSSemPend(CommQ, 0, &err);
  96                          
  97                          LED0=1;
  98                      OSTimeDly(6*OS_TICKS_PER_SEC);
  99                      LED0=0;
 100                      OSTimeDly(6*OS_TICKS_PER_SEC);
 101           
 102              }    
 103          }
 104          
 105            */
 106          
 107           void TaskStartyya(void *yydata) 
 108          {
 109   1                      //int i=2;
 110   1               //unsigned char a[2]={1,2,3}   ;
 111   1                      yydata =yydata;
 112   1                 while(1)
 113   1                 {
 114   2                              OSTimeDly(30);
 115   2                      OSSemPost(sem1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -