?? main.lst
字號:
C51 COMPILER V7.50 MAIN 04/25/2007 16:01:12 PAGE 1
C51 COMPILER V7.50, 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 V7.50 MAIN 04/25/2007 16:01:12 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 V7.50 MAIN 04/25/2007 16:01:12 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 + -