📄 main.lst
字号:
C51 COMPILER V7.20 MAIN 04/03/2008 10:27:52 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\setup\keil\C51\BIN\C51.EXE main.c LARGE DEBUG OBJECTEXTEND
line level source
1 /************************** ************************************************
2 Copyright (c) HUST ESRI 1999-2007. All Rights Reserved.
3 文件名: main.c
4
5 摘要:LCD测试程序(RTX51 FULL)
6 作者: turtle
7 完成日期: 2008.03.28
8
9 源版本:
10 **************************************************************************/
11
12 #include "inc\ConstDef.h" //硬件相关常数定义
13 #include "inc\main.h" //硬件相关常数定义
14 uchar temp;
15 void main (void)
16 {
17 1
18 1 //=========系统初始化
19 1 WDTCN = 0xDE;
20 1 WDTCN = 0xAD; //关闭看门狗
21 1
22 1 SysClkInit(); //初始化系统时钟
23 1 PortInit(); //初始化GPIO和交叉开关
24 1 DelayL(10);
25 1 //=========外设与变量初始化
26 1
27 1 P7 = 0x00; //打开指示灯
28 1
29 1 LCD_Reset();
30 1 lcd_initial();
31 1 lcd_clear();
32 1 lcd_regwrite(0x00,0xcD);//打开屏
33 1 temp=lcd_regread(0x00);
34 1 SetXY(4,24);
35 1 lcd_datawrite(0xD1);
36 1 lcd_datawrite(0xEE);
37 1 DelayS(1);
38 1 SetXY(4,56);
39 1 lcd_datawrite(0xE8);
40 1 lcd_datawrite(0xAF);
41 1 DelayS(1);
42 1 SetXY(4,88);
43 1 lcd_datawrite(0xE8);
44 1 lcd_datawrite(0xAF);
45 1
46 1
47 1
48 1 /* lcd_regwrite(0x00,0xc5);
49 1 DelayS(1);
50 1 lcd_photo(tab2);
51 1 */
52 1 while(1)
53 1 {
54 2 if(INT2==0)
55 2 {
C51 COMPILER V7.20 MAIN 04/03/2008 10:27:52 PAGE 2
56 3
57 3 DelayS(200);
58 3
59 3 if(INT2==0)
60 3
61 3 {
62 4 temp=0;
63 4
64 4 while(INT2==0)
65 4 {
66 5 temp=1;
67 5 }
68 4
69 4 // MouseUp();//按键释放时候的操作
70 4
71 4
72 4 }
73 3 }
74 2
75 2 }
76 1 }
77
78
79 // ===============================================================
80 // 子函数
81 // ===============================================================
82 /*-------------------------------------------------------------------
83 * 功能: 长时间延时
84 * 调用: NULL
85 * 输入: NULL
86 * 返回: NULL
87 * 说明: 长时间延时,工作在11.0592M时,此函数近似延时28ms
88 -------------------------------------------------------------------*/
89 void DelayL(uchar Time)
90 {
91 1 uchar i,j,k;
92 1 while(Time--)
93 1 {
94 2 for(k=0; k<CLK_BASE; k++)
95 2 for(j=0; j<100; j++)
96 2 for(i=0; i<100; i++)
97 2 _nop_();
98 2 }
99 1 }
100
101 /*-------------------------------------------------------------------
102 * 功能: 短时间延时
103 * 调用: NULL
104 * 输入: NULL
105 * 返回: NULL
106 * 说明: 工作在11.0592M时,此函数近似延时0.11ms
107 -------------------------------------------------------------------*/
108 void DelayS(uchar Time)
109 {
110 1 uchar i;
111 1 while(Time--)
112 1 {
113 2 for(i=0; i<250; i++)
114 2 {_nop_(); _nop_(); _nop_(); _nop_(); _nop_();}
115 2 }
116 1 }
117
C51 COMPILER V7.20 MAIN 04/03/2008 10:27:52 PAGE 3
118 /*-------------------------------------------------------------------
119 * 功能: 系统时钟初始化
120 * 调用: NULL
121 * 输入: NULL
122 * 返回: NULL
123 * 说明: 切换至11.0592M外部晶振
124 -------------------------------------------------------------------*/
125 void SysClkInit (void)
126 {
127 1 int i;
128 1 OSCXCN = 0x67; // 使用22MHz的外部晶振
129 1 for(i=0; i<3000; i++); // 延时,等待外部晶振起振
130 1 while(!(OSCXCN&0x80)); // 等待外部晶振起振完成
131 1 OSCICN = 0x08; // 启用外部晶振,启用时钟丢失检测器
132 1 }
133
134 /*-------------------------------------------------------------------
135 * 功能: C8051端口初始化
136 * 调用: NULL
137 * 输入: NULL
138 * 返回: NULL
139 * 说明: 配置各端口输入输出状态。如非必要,关闭不相关端口的弱上拉
140 -------------------------------------------------------------------*/
141 void PortInit (void)
142 {
143 1 XBR0 = 0x07; //允许SMBus、UART0、SPI0
144 1 XBR2 = 0x46; //允许交叉开关和弱上拉,允许UART1
145 1
146 1 P0MDOUT = 0x1D; // Output configuration for P0
147 1 P1MDOUT = 0xF9; // Output configuration for P1
148 1 P2MDOUT = 0x0D; // Output configuration for P2
149 1 P3MDOUT = 0xFF; // Output configuration for P3
150 1 P74OUT = 0xF3; // Output configuration for P4-7
151 1
152 1 P1MDIN = 0xFF; // Input configuration for P1
153 1 }
154 /*-------------------------------------------------------------------
155 * 功能: 液晶屏的相关程序
156 * 调用: NULL
157 * 输入: NULL
158 * 返回: NULL
159 * 说明: 对LCD的寄存器和DDRAM
160 -------------------------------------------------------------------*/
161 void lcd_regwr(uchar regnada)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -