📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 03/05/2007 10:04:33 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 main.c BROWSE DEBUG OBJECTEXTEND OBJECT(.\output\main.obj)
line level source
1 /************************************************************************************
2 * Copyright (c) 2004,西安铭朗电子科技有限责任公司
3 * All rights reserved.
4 *
5 * 文件名称: main.c
6 * 文件标识: none
7 * 适用器件: C8051F120
8 *
9 * 摘 要: 本文件是延时测试程序;LED灯每隔1秒亮1秒;使用外部22.1184MHz晶振,
10 * 应用PLL倍频到100MHZ.
11 *
12 * 当前版本:1.2
13 * 作 者:张宁强
14 * 完成日期:2006年1月10日
15 *
16 * 历史版本:1.0
17 * 原作者 : 李林利 卢阳
18 * 完成日期:2005年6月1日
19 *************************************************************************************/
20 /************************************************************************************/
21 // 引用外部头文件
22
23 #include "c8051f040.h" // SFR declarations
24 #include "Const.h"
25 #include <INTRINS.H>
26 #include "Delay.h"
27 #include "lcd.h"
28
29 sbit LED = P2^3; // LED='1' means ON
30 /************************************************************************************
31 // 系统初始化功能子程序
32 *************************************************************************************/
33
34 /***********************************************************************************
35 * 函数名称:SYSCLK_Init;
36 *
37 * 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源,using the PLL;
38 * This routine initializes the system clock to use an external 22.1184 MHz
39 * crystal oscillator multiplied by a factor of 9/2 using the PLL as its
40 * clock source. The resulting frequency is 22.1184 MHz * 9/2 = 100(99.6) MHz
41 *
42 * 输入参数:none;
43 *
44 * 返回数据:none;
45 *
46 * 注意: none;
47 ************************************************************************************/
48
49 void SYSCLK_Init (void)
50 {
51 1 int i; // delay counter
52 1
53 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
54 1
55 1 SFRPAGE = CONFIG_PAGE; // set SFR page
C51 COMPILER V7.50 MAIN 03/05/2007 10:04:33 PAGE 2
56 1
57 1 OSCXCN = 0x67; // start external oscillator with
58 1 // 22.1184MHz crystal
59 1
60 1 for (i=0; i < 256; i++) ; // Wait for osc. to start up
61 1
62 1 while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
63 1
64 1 CLKSEL = 0x01; // Select the external osc. as
65 1 // the SYSCLK source
66 1
67 1 OSCICN = 0x00; // Disable the internal osc.
68 1
69 1
70 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
71 1 }
72
73 /***********************************************************************************
74 * 函数名称:PORT_Init;
75 *
76 * 函数功能描述:配置端口初始化,配置交叉开关和端口;
77 *
78 * 输入参数:none;
79 *
80 * 返回数据:none;
81 *
82 * 注意: none;
83 ************************************************************************************/
84 void PORT_Init (void)
85 {
86 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
87 1
88 1 SFRPAGE = SFR_PAGE_F; // set SFR page F
89 1
90 1 XBR0 = 0x07; //设置XBR0
91 1 XBR1 = 0x14; //设置XBR1
92 1 XBR2 = 0x44; //打开交叉开关和弱上拉
93 1
94 1 P0MDOUT = 0x95; //设置P0口输出
95 1 P1MDOUT = 0x01; //设置P1口输出
96 1 P2MDOUT = 0xfc; //设置P2口输出
97 1 P3MDOUT = 0x00; //设置P3口输出
98 1 P3MDIN = 0x00;
99 1
100 1 P4MDOUT = 0xff; //设置P4口输出
101 1 P5MDOUT = 0x0f; //设置P5口输出
102 1 P6MDOUT = 0xff; //设置P6口输出
103 1 P7MDOUT = 0xff; //设置P7口输出
104 1 P4 = 0xe0; //P4口置0
105 1
106 1 SFRPAGE = SFR_PAGE_0; // set SFR page 0
107 1
108 1 EMI0CF=0x2f; //外部存储器接口配置
109 1 EMI0TC=0xff; //外部存储器时序控制
110 1
111 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
112 1 }
113
114
115 /************************************************************************************
116 // 主循环程序
117 *************************************************************************************/
C51 COMPILER V7.50 MAIN 03/05/2007 10:04:33 PAGE 3
118
119 void main(void)
120 {
121 1 //禁止看门狗定时器
122 1 WDTCN=0xDE;
123 1 WDTCN=0xAD;
124 1 //初始化
125 1 PORT_Init();
126 1
127 1 lcd_init();
128 1 dis_clr();
129 1 dis_start0();
130 1
131 1 SYSCLK_Init();
132 1
133 1 while(1) //LED每隔1秒闪烁1次
134 1 {
135 2 LED=1;
136 2 Delay_s(1);
137 2 LED=0;
138 2 Delay_s(1);
139 2 }
140 1 }
141
142 /***********************************************************************************/
143 // 文件结束
144 /***********************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 129 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -