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

📄 main.lst

📁 Keilc下的ucosII操作实时系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   MAIN                                                                  08/27/2008 16:58:18 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE Source\main.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\main.lst) OBJECT(
                    -.\obj\main.obj)

line level    source

   1          /*
   2          
   3          www.mcu123.net/bbs
   4          学习论坛
   5          
   6          本例程ucOS-II 版本为2.51
   7          
   8           注:
   9           此例程运行于内RAM > 1024 Byte的51内核的单片机即可。
  10           比     如 :  SST89E564RD ,STC89C516RD 等
  11          
  12          
  13          S
  14          */
  15          
  16          
  17          #include "includes.h"
  18          #include "hc164.h"
  19          #include "at24c64.h"
  20          
  21          sbit SIN=P1^0;
  22          sbit SetKey=P2^0;
  23          sbit AddKey=P2^1;
  24          sbit SubKey=P2^2;
  25          sbit DisLed=P2^4;
  26          sbit SetLed=P2^3;
  27          sbit KT1=P2^6;
  28          sbit KT2=P2^7;
  29          sbit Sk=P3^3;
  30          
  31          sbit Speaker=P0^6;
  32          
  33          bit fDis=0;
  34          bit error=0;
  35          INT8U m=0,b=0,e=0;
  36          INT8U i=0,dat=0,ndis=0,nerr=0,num=0;
  37          INT16U nSet=0,nTimeOut=0;
  38          
  39          void dly10ms(void) 
  40                  { 
  41   1                      unsigned char i,j,k;
  42   1                      for(i=5;i>0;i--) 
  43   1                              for(j=4;j>0;j--)
  44   1                                      for(k=248;k>0;k--);
  45   1        }
  46          void dly1s(void) 
  47                  { 
  48   1                      unsigned char h,i,j,k;
  49   1                      for(h=5;h>0;h--) 
  50   1                              for(i=4;i>0;i--) 
  51   1                                      for(j=116;j>0;j--)
  52   1                                              for(k=214;k>0;k--);
  53   1        }
  54          
C51 COMPILER V8.02   MAIN                                                                  08/27/2008 16:58:18 PAGE 2   

  55          
  56          OS_STK TaskStartStk1[MaxStkSize],TaskStartStk2[MaxStkSize],TaskStartStk3[MaxStkSize];
  57          
  58          void Task1(void *nouse) reentrant;
  59          void Task2(void *nouse) reentrant;
  60          void Task3(void *nouse) reentrant;
  61          INT8U ReadWa(void);
  62          void display(INT8U dat);
  63          void Buzzer(void);
  64          void ErrorBz(void);
  65          
  66          void main(void)
  67          {
  68   1          OSInit();
  69   1          InitHardware();
  70   1          OSTaskCreate(Task1, (void *)0, &TaskStartStk1[0],2);
  71   1          OSTaskCreate(Task2, (void *)0, &TaskStartStk2[0],3);
  72   1      //      OSTaskCreate(Task3, (void *)0, &TaskStartStk3[0],4);
  73   1          OSStart();
  74   1      }
  75          
  76          void Task1(void *nouse) reentrant
  77          {
  78   1              nouse=nouse;
  79   1          for(;;)
  80   1          {           
  81   2              if(Sk==0)
  82   2                      {
  83   3                              KT1=0;
  84   3                              nTimeOut=65535;
  85   3                              while(nTimeOut--)
  86   3                              {
  87   4                                      OS_ENTER_CRITICAL();
  88   4                                      dat=ReadWa();
  89   4                                      OS_EXIT_CRITICAL();
  90   4                                      if(dat>0)
  91   4                                              break;
  92   4                              }
  93   3                              if(dat<ndis&&(dat>0||nTimeOut==0))
  94   3                              {
  95   4                                      error=1;
  96   4                                      ErrorBz();
  97   4                                      nerr=0;
  98   4                                      num++;
  99   4                              }
 100   3                              else
 101   3                                      num=0;
 102   3                              nerr++;
 103   3                              if(error==1&&nerr==2)
 104   3                              {
 105   4                                      if(num>1)
 106   4                                              nerr=1;
 107   4                                      else
 108   4                                              nerr=0;
 109   4                                      error=0;
 110   4                                      KT2=0;
 111   4                              }                               
 112   3                              b++;
 113   3                              if(b>9)
 114   3                                      b=0;
 115   3                              KT1=1;                                  
 116   3                      }
C51 COMPILER V8.02   MAIN                                                                  08/27/2008 16:58:18 PAGE 3   

 117   2                      if(Sk==1)
 118   2                      KT2=1;
 119   2                      OSTimeDly(OS_TICKS_PER_SEC*3);
 120   2          }    
 121   1      }
 122          
 123          void Task2(void *nouse) reentrant
 124          {  
 125   1          nouse=nouse;
 126   1          for(;;)
 127   1          {
 128   2                      OS_ENTER_CRITICAL();
 129   2                      if(SetKey==0)
 130   2                              {
 131   3                                      dly10ms();
 132   3                                      if(SetKey==0)
 133   3                                      {                                               
 134   4                                              while(SetKey==0);
 135   4                                              nSet++;
 136   4                                              if(nSet==1)
 137   4                                              {
 138   5                                                      fDis=0;
 139   5                                                      DisLed=0;
 140   5                                                      SetLed=1;
 141   5                                                      e=0;
 142   5                                                      b=0;
 143   5                                                      m=0;
 144   5                                                      i=AT24c64_read_byte(0x0002);
 145   5                                                      display(i);     
 146   5                                              }
 147   4                                              if(nSet==2)
 148   4                                              {
 149   5                                                      nSet=0;
 150   5                                                      fDis=1;
 151   5                                                      DisLed=1;
 152   5                                                      SetLed=0;
 153   5                                                      e=0;
 154   5                                                      b=0;
 155   5                                                      m=0;
 156   5                                                      ndis=AT24c64_read_byte(0x0000);
 157   5                                                      display(ndis);
 158   5                                                      AT24c64_write_byte(0x0002,dat); 
 159   5                                              }
 160   4                                              Buzzer();                                       
 161   4                                      }

⌨️ 快捷键说明

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