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

📄 main.lst

📁 UCOS操作系统在C8051F上移植程序代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   MAIN                                                                  01/08/2009 16:11:56 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\output\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE source\main.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\output\main.lst) OBJE
                    -CT(.\output\main.obj)

line level    source

   1          /************************************************************************************
   2          *  Copyright (c) 2004,西安铭朗电子科技有限责任公司
   3          *            All rights reserved.
   4          *
   5          * 文件名称: main.c
   6          * 文件标识: none
   7          * 适用器件: c8051f020
   8          * 
   9          * 摘 要: 本文件是ucos-ii test 程序;
  10          * 
  11          * 当前版本:1.0
  12          * 作 者:李林利
  13          * 完成日期:2004年12月12日
  14          *
  15          * 历史版本:0.9 
  16          * 原作者 : 李林利
  17          * 完成日期:2004年1月1日
  18          *************************************************************************************/
  19          
  20          /************************************************************************************/
  21          // 引用外部头文件
  22          #include        "..\config\common.h"
  23          #include        "..\driver\driver.h"
  24          #include        "os.h"
  25          #include        "..\ucos-ii\ucos_ii.h"
  26          /************************************************************************************/
  27          /************************************************************************************
  28          // 常量及全局变量定义
  29          *************************************************************************************/
  30          sbit  A_LED = P3^1;
  31          sbit  B_LED = P3^2;
  32          sbit  C_LED = P3^3;
  33          
  34          unsigned char code  ASCII[16] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,\
  35                                                                           0x41,0x42,0x43,0x44,0x45,0x46};
  36          /************************************************************************************/
  37          #define  A_TASK_PRIO            1
  38          #define  B_TASK_PRIO            2
  39          #define  C_TASK_PRIO            3
  40          #define  START_TASK_PRIO        4
  41          
  42          
  43          void Task_A(void *yydata); //reentrant;
  44          void Task_B(void *yydata); //reentrant;
  45          void Task_C(void *yydata); //reentrant;
  46          
  47          void TaskStart (void *ddata);// reentrant;
  48          
  49          
  50          void display_num(unsigned char type,unsigned char bits,unsigned long value);
  51          
  52          
  53          OS_STK TaskStartStk_A[MaxStkSize];//注意:我在ASM文件中设置?STACK空间为40H即64。
  54          OS_STK TaskStartStk_B[MaxStkSize];
C51 COMPILER V8.08   MAIN                                                                  01/08/2009 16:11:56 PAGE 2   

  55          OS_STK TaskStartStk_C[MaxStkSize];
  56          
  57          OS_STK TaskStartStk[MaxStkSize];
  58          
  59          signed long buf[256];
  60          signed long bufb[256];
  61          /************************************************************************************
  62          //  系统初始化功能子程序
  63          *************************************************************************************/
  64          
  65          /***********************************************************************************
  66          * 函数名称:SYSCLK_Init;
  67          *
  68          * 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源;
  69          *              
  70          * 输入参数:none;
  71          *
  72          * 返回数据:none;
  73          *
  74          * 注意:    none;
  75          ************************************************************************************/
  76          
  77          void SYSCLK_Init (void)
  78          {
  79   1         int i;                              // 延时计数器
  80   1      
  81   1         OSCXCN = 0x67;                      // 使用外部22.1184MHz晶振
  82   1      
  83   1         for(i=0; i<256; i++);               // 等待1ms
  84   1      
  85   1         while(!(OSCXCN & 0x80));            // 等待外部振荡器稳定
  86   1      
  87   1         OSCICN = 0x88;                      // 切换到外部晶振
  88   1      }
  89          
  90          /***********************************************************************************
  91          * 函数名称:PORT_Init;
  92          *
  93          * 函数功能描述:配置端口初始化,配置交叉开关和端口;
  94          *              
  95          * 输入参数:none;
  96          *
  97          * 返回数据:none;
  98          *
  99          * 注意:    none;
 100          ************************************************************************************/
 101          void PORT_Init (void)
 102          {
 103   1              XBR0    = 0x1F;         //设置XBR0
 104   1              XBR1    = 0x1E;         //设置XBR1
 105   1              XBR2    = 0x44;         //打开交叉开关和弱上拉   
 106   1              P0MDOUT = 0x15;                 //设置P0口输出
 107   1              P0         |= 0xEA;                     //P0口的输入脚高阻态
 108   1              P1MDIN  = 0x00;                 //设置P1口输入信号类型
 109   1              P1MDOUT = 0x00;                 //设置P1口输出
 110   1              P1              = 0xFF;                 //P1口高阻态
 111   1              P2MDOUT = 0x01;                 //设置P2口输出
 112   1          P2     |= 0xFE;                     //设置P2口输出
 113   1              P3MDOUT = 0xFE;                 //设置P3口输出
 114   1              P3         |= 0x01;                     //设置P3口输出
 115   1              P3         &= 0xEF;                     //P3.4口置0,禁铃
 116   1      
C51 COMPILER V8.08   MAIN                                                                  01/08/2009 16:11:56 PAGE 3   

 117   1          P74OUT  = 0xF7;                     //设置P4-P7口输出
 118   1          P5     |= 0xF0;                     //键盘输入P5口高4位高阻态
 119   1          //EMI0CF    = 0x2D;                 //外部存储器接口配置
 120   1          //EMI0TC    = 0x9E;                 //外部存储器时序控制
 121   1      }
 122          
 123          void display_num(unsigned char type,unsigned char bits,unsigned long value)
 124          {
 125   1              unsigned char i;
 126   1              unsigned short k;
 127   1      
 128   1              if (type==0)
 129   1              {
 130   2                      Uart0_SendByte('0');
 131   2                      Uart0_SendByte('x');
 132   2      
 133   2                      if (bits==8)
 134   2                      {
 135   3                              i = value&0x000000ff;
 136   3      
 137   3                              Uart0_SendByte(ASCII[i>>4]);
 138   3                              Uart0_SendByte(ASCII[i&0x0f]);
 139   3                      }
 140   2                      else if (bits==16)
 141   2                      {
 142   3                              k = value&0x0000ffff;
 143   3      
 144   3                              Uart0_SendByte(ASCII[k>>12]);
 145   3                              Uart0_SendByte(ASCII[(k>>8)&0x0f]);
 146   3                              Uart0_SendByte(ASCII[(k>>4)&0x0f]);
 147   3                              Uart0_SendByte(ASCII[k&0x0f]);
 148   3                      }
 149   2      
 150   2                      else if (bits==32)
 151   2                      {
 152   3                              k = (value>>16)&0x0000ffff;
 153   3      
 154   3                              Uart0_SendByte(ASCII[k>>12]);
 155   3                              Uart0_SendByte(ASCII[(k>>8)&0x0f]);
 156   3                              Uart0_SendByte(ASCII[(k>>4)&0x0f]);
 157   3                              Uart0_SendByte(ASCII[k&0x0f]);
 158   3      
 159   3                              k = value&0x0000ffff;
 160   3                              Uart0_SendByte(ASCII[k>>12]);
 161   3                              Uart0_SendByte(ASCII[(k>>8)&0x0f]);
 162   3                              Uart0_SendByte(ASCII[(k>>4)&0x0f]);
 163   3                              Uart0_SendByte(ASCII[k&0x0f]);

⌨️ 快捷键说明

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