📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 04/16/2008 22:07:29 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "lcd.h"
2 #include "delay.h"
3 #include "key.h"
4 #include "warn.h"
5 #include "eeprom.h"
6 #include "time.h"
7 static uchar keyval;
8 static uchar NumMenu=0,Menuflag=0,Passflag=0,setflag=0;
9 bit whiteflag1=0,whiteflag2=0;
10 static uchar GetTimeBuf[7],SetTimeBuf[7];//={0x00,0x00,0x00,0x14,0x04,0x01,0x08},GetTimeBuf[7];
11 static code char Menu[8][9]={"时间设置","密码修改","事件查询","布防设置","增加模块","删去模块","显示模块",
-"修改模块"};
12 static uchar ReadPass[6],PassBuf[6]={0},EnterBuf[6],PassBit=0,pass[6]={1,2,3,4,5,6};
13 void DisplayTime(uchar TimeBuf[6])
14 {
15 1 uchar tmh,tml;
16 1 WriteCommand(0x90);
17 1 // WriteData(0x32);
18 1 // WriteData(0x30);//显示20
19 1 tmh=TimeBuf[6] & 0x10;
20 1 tmh=(tmh>>4)+0x30; //0-9在液晶中高4位地址0x30 ASCII码
21 1 WriteData(tmh);
22 1 tml=TimeBuf[6]& 0x0f;
23 1 tml=tml+0x30;
24 1 WriteData(tml);
25 1 WriteData(0x2d);
26 1 tmh=TimeBuf[4] & 0x10; //显示月份
27 1 tmh=(tmh>>4)+0x30; //0-9在液晶中高4位地址0x30 ASCII码
28 1 WriteData(tmh);
29 1 tml=TimeBuf[4]& 0x0f;
30 1 tml=tml+0x30;
31 1 WriteData(tml);
32 1
33 1 WriteData(0x2d); //2d=00101101地址在液晶中是符号"-"
34 1
35 1 tmh=TimeBuf[3] & 0x30; //显示日期
36 1 tmh=(tmh>>4)+0x30;
37 1 WriteData(tmh);
38 1 tml=TimeBuf[3]& 0x0f;
39 1 tml=tml+0x30;
40 1 WriteData(tml);
41 1
42 1 WriteData(0x20);//20=00100000地址在液晶中的符号是" "
43 1 WriteData(0x20);
44 1 tmh=TimeBuf[2] & 0x30; //显示时
45 1 tmh=(tmh>>4)+0x30;
46 1 WriteData(tmh);
47 1 tml=TimeBuf[2]& 0x0f;
48 1 tml=tml+0x30;
49 1 WriteData(tml);
50 1
51 1 WriteData(0x3a); //3a=00111010地址在液晶中的符号是":"
52 1
53 1 tmh=TimeBuf[1] & 0x70; //显示分
54 1 tmh=(tmh>>4)+0x30;
C51 COMPILER V8.02 MAIN 04/16/2008 22:07:29 PAGE 2
55 1
56 1 WriteData(tmh);
57 1 tml=TimeBuf[1]& 0x0f;
58 1 tml=tml+0x30;
59 1
60 1 WriteData(tml);
61 1 }
62
63 void ReadPassWord(void)
64 {
65 1 ReadPass[0]=read24c16(PASS0); //#define PASS0 21
66 1 ReadPass[1]=read24c16(PASS1);
67 1 ReadPass[2]=read24c16(PASS2);
68 1 ReadPass[3]=read24c16(PASS3);
69 1 ReadPass[4]=read24c16(PASS4);
70 1 ReadPass[5]=read24c16(PASS5);
71 1 }
72 void WritePassWord(uchar pass[6])
73 {
74 1 write24c16(PASS0,pass[0]);
75 1 delay_1ms(10);
76 1 write24c16(PASS1,pass[1]);
77 1 delay_1ms(10);
78 1 write24c16(PASS2,pass[2]);
79 1 delay_1ms(10);
80 1 write24c16(PASS3,pass[3]);
81 1 delay_1ms(10);
82 1 write24c16(PASS4,pass[4]);
83 1 delay_1ms(10);
84 1 write24c16(PASS5,pass[5]);
85 1 }
86
87 void SetPage()
88 {
89 1 uchar tmh,tml;
90 1 //PassBit=0;
91 1 LcmClearTXT();
92 1 //v_BurstR1302T(GetTimeBuf);
93 1 WriteCommand(0x80);
94 1 WriteData(0x32);
95 1 WriteData(0x30);
96 1 tmh=GetTimeBuf[6] & 0x10;
97 1 tmh=(tmh>>4)+0x30; //0-9在液晶中高4位地址0x30 ASCII码
98 1 WriteData(tmh);
99 1 tml=GetTimeBuf[6]& 0x0f;
100 1 tml=tml+0x30;
101 1 WriteData(tml);
102 1 WriteData(0x2d);
103 1 tmh=GetTimeBuf[4] & 0x10; //显示月份
104 1 tmh=(tmh>>4)+0x30; //0-9在液晶中高4位地址0x30 ASCII码
105 1 WriteData(tmh);
106 1 tml=GetTimeBuf[4]& 0x0f;
107 1 tml=tml+0x30;
108 1 WriteData(tml);
109 1 WriteData(0x2d); //2d=00101101地址在液晶中是符号"-"
110 1 tmh=GetTimeBuf[3] & 0x30; //显示日期
111 1 tmh=(tmh>>4)+0x30;
112 1 WriteData(tmh);
113 1 tml=GetTimeBuf[3]& 0x0f;
114 1 tml=tml+0x30;
115 1 WriteData(tml);
116 1 WriteCommand(0x90);
C51 COMPILER V8.02 MAIN 04/16/2008 22:07:29 PAGE 3
117 1 tmh=GetTimeBuf[5] & 0x30; //显示星期
118 1 tmh=(tmh>>4)+0x30;
119 1 WriteData(tmh);
120 1 tml=GetTimeBuf[5]& 0x0f;
121 1 tml=tml+0x30;
122 1 WriteData(tml);
123 1 WriteData(0x20);//20=00100000地址在液晶中的符号是" "
124 1 WriteData(0x20);
125 1 tmh=GetTimeBuf[2] & 0x30; //显示时
126 1 tmh=(tmh>>4)+0x30;
127 1 WriteData(tmh);
128 1 tml=GetTimeBuf[2]& 0x0f;
129 1 tml=tml+0x30;
130 1 WriteData(tml);
131 1 WriteData(0x3a); //3a=00111010地址在液晶中的符号是":"
132 1 tmh=GetTimeBuf[1] & 0x70; //显示分
133 1 tmh=(tmh>>4)+0x30;
134 1 WriteData(tmh);
135 1 tml=GetTimeBuf[1]& 0x0f;
136 1 tml=tml+0x30;
137 1 WriteData(tml);
138 1 WriteData(0x3a); //3a=00111010地址在液晶中的符号是":"
139 1 tmh=GetTimeBuf[0] & 0x70; //显示分
140 1 tmh=(tmh>>4)+0x30;
141 1 WriteData(tmh);
142 1 tml=GetTimeBuf[0]& 0x0f;
143 1 tml=tml+0x30;
144 1 WriteData(tml);
145 1 //timeflag=1;
146 1 WriteCommand(0x0f);//开光标,光标位置闪烁显示
147 1 WriteCommand(0x81);
148 1
149 1 }
150 void FirstMenu(void)
151 {
152 1 if(NumMenu==0&&Menuflag==0){
153 2 LcmClearTXT();
154 2 WriteCommand(0x80);
155 2 WriteCommand(0x0C); //显示ON,游标OFF,游标位反白OFF
156 2 Passflag=0;
157 2 LcmClearTXT();
158 2 WriteCommand(0x80);
159 2 WriteData(0x31);
160 2 WriteData(0x3a);
161 2 WriteCommand(0x90);
162 2 WriteData(0x32);
163 2 WriteData(0x3a);
164 2 PutStr(0,1,Menu[NumMenu]);
165 2 PutStr(1,1,Menu[NumMenu+1]);
166 2 Menuflag=1;
167 2 if(whiteflag1==0){
168 3 White(0x00);
169 3 whiteflag1=~whiteflag1;
170 3 }
171 2 else{
172 3 White(0x00);
173 3 White(0x00);
174 3 }
175 2 }
176 1 // else if(Menuflag==2){
177 1 // }
178 1 }
C51 COMPILER V8.02 MAIN 04/16/2008 22:07:29 PAGE 4
179
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -