?? main.lst
字號:
C51 COMPILER V7.02b MAIN 03/06/2006 15:01:38 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\output\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND TABS(3) OBJECT(.\output\main.obj)
stmt level source
1 /************************************************************************************
2 * Copyright (c) 2004,西安銘朗電子科技有限責任公司
3 * All rights reserved.
4 *
5 * 文件名稱: main.c
6 * 文件標識: none
7 * 適用器件: C8051F040
8 *
9 * 摘 要: 本文件是DA測試實驗程序;使用外部22.1184MHz晶振.
10 * 功能:開機顯示"銘朗科技,WWW.MLARM.COM"信息,為待機界面。定義'A'~'F'為功能
11 * 鍵。按"A" 鍵,輸出250HZ的方波,按"B" 鍵,輸出250HZ的正弦波形,按"C"
12 * 鍵,輸出250HZ的三角波,按"D" 鍵,輸出250HZ的鋸齒波,按"reset"返回顯示待
13 * 機界面。
14 *
15 * 當前版本:1.2
16 * 作 者:張寧強
17 * 完成日期:2006年1月10日
18 *
19 * 歷史版本:1.0
20 * 原作者 : 李林利 盧陽
21 * 完成日期:2005年6月1日
22 *************************************************************************************/
23
24 /************************************************************************************/
25 // 引用外部頭文件
26
27 #include "common.h"
28
29 /************************************************************************************/
30
31 /************************************************************************************
32 // 常量及全局變量定義
33 *************************************************************************************/
34
35 unsigned char data sf;
36 unsigned int xdata TABLE[256];
37
38 /************************************************************************************
39 // 系統初始化功能子程序
40 *************************************************************************************/
41
42 /***********************************************************************************
43 * 函數名稱:SYSCLK_Init;
44 *
45 * 函數功能描述:系統時鐘初始化,使用外部22.1184MHz晶振作為時鐘源,using the PLL;
46 * This routine initializes the system clock to use an external 22.1184 MHz
47 * crystal oscillator multiplied by a factor of 9/2 using the PLL as its
48 * clock source. The resulting frequency is 22.1184 MHz * 9/2 = 100(99.6) MHz
49 *
50 * 輸入參數:none;
51 *
52 * 返回數據:none;
53 *
54 * 注意: none;
55 ************************************************************************************/
C51 COMPILER V7.02b MAIN 03/06/2006 15:01:38 PAGE 2
56
57 void SYSCLK_Init (void)
58 {
59 1 int i; // delay counter
60 1
61 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
62 1
63 1 SFRPAGE = CONFIG_PAGE; // set SFR page
64 1
65 1 OSCXCN = 0x67; // start external oscillator with
66 1 // 22.1184MHz crystal
67 1
68 1 for (i=0; i < 256; i++) ; // Wait for osc. to start up
69 1
70 1 while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
71 1
72 1 CLKSEL = 0x01; // Select the external osc. as
73 1 // the SYSCLK source
74 1
75 1 OSCICN = 0x00; // Disable the internal osc.
76 1
77 1
78 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
79 1 }
80
81 /***********************************************************************************
82 * 函數名稱:PORT_Init;
83 *
84 * 函數功能描述:配置端口初始化,配置交叉開關和端口;
85 *
86 * 輸入參數:none;
87 *
88 * 返回數據:none;
89 *
90 * 注意: none;
91 ************************************************************************************/
92 void PORT_Init (void)
93 {
94 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
95 1
96 1 SFRPAGE = SFR_PAGE_F; // set SFR page F
97 1
98 1 XBR0 = 0x07; //設置XBR0
99 1 XBR1 = 0x14; //設置XBR1
100 1 XBR2 = 0x44; //打開交叉開關和弱上拉
101 1
102 1 P0MDOUT = 0x95; //設置P0口輸出
103 1 P1MDOUT = 0x01; //設置P1口輸出
104 1 P2MDOUT = 0xfc; //設置P2口輸出
105 1 P3MDOUT = 0x00; //設置P3口輸出
106 1 P3MDIN = 0x00;
107 1
108 1 P4MDOUT = 0xff; //設置P4口輸出
109 1 P5MDOUT = 0x0f; //設置P5口輸出
110 1 P6MDOUT = 0xff; //設置P6口輸出
111 1 P7MDOUT = 0xff; //設置P7口輸出
112 1 P4 = 0xe0; //P4口置0
113 1
114 1 SFRPAGE = SFR_PAGE_0; // set SFR page 0
115 1
116 1 EMI0CF=0x2f; //外部存儲器接口配置
117 1 EMI0TC=0xff; //外部存儲器時序控制
C51 COMPILER V7.02b MAIN 03/06/2006 15:01:38 PAGE 3
118 1
119 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
120 1 }
121
122 /***********************************************************************************
123 * 函數名稱:sine;
124 *
125 * 函數功能描述:計算正弦波;
126 *
127 * 輸入參數:none;
128 *
129 * 返回數據:none;
130 *
131 * 注意: none;
132 ************************************************************************************/
133
134 void sine(void)
135 {
136 1 unsigned int data y;
137 1 unsigned int data i;
138 1 for(i=0;i<256;i++)
139 1 {
140 2 y=sin(3.1415*2*i/256)*2048+2048;
141 2 if (y>4095)
142 2 y=4095;
143 2 TABLE[i]=y;
144 2 }
145 1 }
146
147 /***********************************************************************************
148 * 函數名稱:saw;
149 *
150 * 函數功能描述:計算鋸齒波;
151 *
152 * 輸入參數:none;
153 *
154 * 返回數據:none;
155 *
156 * 注意: none;
157 ************************************************************************************/
158
159 void saw(void)
160 {
161 1 unsigned int data y;
162 1 unsigned int data i;
163 1 for(i=0;i<256;i++)
164 1 {
165 2 y=16*i;
166 2 if (y>4095)
167 2 y=4095;
168 2 TABLE[i]=y;
169 2 }
170 1 }
171
172 /***********************************************************************************
173 * 函數名稱:triangle;
174 *
175 * 函數功能描述:計算三角波;
176 *
177 * 輸入參數:none;
178 *
179 * 返回數據:none;
C51 COMPILER V7.02b MAIN 03/06/2006 15:01:38 PAGE 4
180 *
181 * 注意: none;
182 ************************************************************************************/
183
184 void triangle(void)
185 {
186 1 unsigned long data y;
187 1 unsigned int data i;
188 1 for(i=0;i<256;i++)
189 1 {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -