📄 time.lst
字号:
C51 COMPILER V7.50 TIME 03/21/2007 22:26:54 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE time.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<at89x52.h>
2 #define uchar unsigned char
3 #define SCL P1_0
4 #define SDA P1_1
5
6 #define E1 P1_3
7 #define E2 P1_2
8 #define RS P3_5
9 #define RW P3_6
10 #define E P3_7
11 #define LED_BUS P2
12
13 idata uchar rom_sed[]={0x00,0x56,0x23,0x03,0x21,0x03,0x07,0x00};//秒;分;小时;星期;日;月;年;输出波
14 idata uchar rom_rec[9];
15 bit flag,flag1;
16
17 /******字库*******/
18 code uchar zhifu[][16]={
19 {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},//0
20 {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},//1
21 {0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},//2
22 {0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},//3
23 {0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},//4
24 {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},//5
25 {0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},//6
26 {0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},//7
27 {0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},//8
28 {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00}};//9
29 code uchar xian[]=
30 {0x06,0xC6,0xFE,0xFE,0xC6,0xC6,0x00,0xFE,0x06,0xF6,0xF6,0x06,0xFE,0xFE,0x00,0x00,
31 0x18,0x18,0x1F,0x0F,0x0C,0x6C,0x30,0x1B,0x0C,0x07,0x3F,0x7C,0x63,0x73,0x70,0x00};/*"现",0*/
32 code uchar zai[]=
33 {0x00,0x0C,0x8C,0xCC,0xEC,0x3C,0x9F,0x8F,0x8C,0xEC,0xEC,0x8C,0x8C,0x8C,0x0C,0x00,
34 0x02,0x03,0x01,0x7F,0x7F,0x30,0x31,0x31,0x31,0x3F,0x3F,0x31,0x31,0x31,0x30,0x00};/*"在",1*/
35 code uchar shi1[]=
36 {0xFE,0xFE,0xC6,0xC6,0xFE,0xFE,0x00,0x98,0x98,0x18,0x18,0xFF,0xFF,0x18,0x18,0x00,
37 0x1F,0x1F,0x0C,0x0C,0x1F,0x1F,0x00,0x00,0x03,0x03,0x60,0x7F,0x3F,0x00,0x00,0x00};/*"时",2*/
38 code uchar jian[]=
39 {0x00,0xF8,0xFB,0x07,0xF6,0xF0,0x36,0x36,0x36,0xF6,0xF6,0x06,0xFE,0xFE,0x00,0x00,
40 0x00,0x7F,0x7F,0x00,0x0F,0x0F,0x0D,0x0D,0x0D,0x0F,0x2F,0x60,0x7F,0x3F,0x00,0x00};/*"间",3*/
41 code uchar maohao[]=
42 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
43 0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*":",4*/
44 code uchar xin[]=
45 {0x00,0x00,0x00,0x20,0xF0,0xD0,0xD0,0xD0,0xD0,0xD0,0xD0,0xF0,0x00,0x00,0x00,0x00,
46 0x00,0x10,0x14,0x1A,0x17,0x16,0x16,0x1F,0x1F,0x16,0x16,0x16,0x10,0x30,0x30,0x10};/*"星",0*/
47 code uchar qi[]=
48 {0x00,0x00,0x20,0x20,0xF0,0xA0,0xA0,0xF0,0x20,0x00,0xE0,0xA0,0xA0,0xE0,0x00,0x00,
49 0x04,0x04,0x24,0x14,0x0B,0x03,0x05,0x1B,0x12,0x1C,0x07,0x02,0x02,0x3F,0x00,0x00};/*"期",1*/
50 code uchar shi2[]=
51 {0x00,0xF8,0x08,0x08,0x08,0xF8,0x10,0x90,0x10,0x10,0x10,0x10,0xFC,0x10,0x10,0x00,
52 0x00,0x7F,0x82,0x82,0x82,0x7F,0x00,0x00,0x41,0x86,0x88,0x80,0xFF,0x00,0x00,0x00};/*"时",0*/
53 code uchar fen[]=
54 {0x00,0x80,0x80,0xC0,0xB0,0x8C,0x80,0x80,0x80,0x82,0x8C,0x90,0xA0,0x40,0x80,0x00,
55 0x00,0x80,0x80,0x40,0x20,0x18,0x07,0x00,0x80,0x80,0x80,0x80,0x7F,0x00,0x00,0x01};/*"分",1*/
C51 COMPILER V7.50 TIME 03/21/2007 22:26:54 PAGE 2
56 code uchar miao[]=
57 {0x00,0x44,0x44,0xFC,0x44,0x44,0x40,0xF0,0x00,0x00,0xFE,0x00,0x00,0x70,0x80,0x00,
58 0x10,0x0C,0x03,0xFF,0x03,0x04,0x83,0x80,0x80,0x80,0x5F,0x20,0x10,0x0E,0x01,0x00};/*"秒",2*/
59 code uchar nian[]=
60 {0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00,
61 0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00};/*"年",0*/
62 code uchar yue[]=
63 {0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,
64 0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00};/*"月",1*/
65 code uchar ri[]=
66 {0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,
67 0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00};/*"日",2*/
68 /*********************************************************************************************************
-***********/
69 void delay(void){
70 1 uchar i;
71 1 for(i=0;i<6;i++) ;
72 1 }
73 void delay2(){
74 1 uchar k;
75 1 for(k=30000;k>0;k--);
76 1 }
77 /*********************************************************************************************************
-***/
78 /************如果忙则等待****************/
79 void wait_E1( void )
80 {
81 1 E1=0;E2=1;
82 1 LED_BUS=0xff;
83 1 RW=1;
84 1 RS=0; //d0~D7为状态输出
85 1 E=1;
86 1 while(LED_BUS&0x80);
87 1 E=0;
88 1 }
89
90 void wait_E2( void )
91 {
92 1 E1=1;E2=0;
93 1 LED_BUS=0xff;
94 1 RW=1;
95 1 RS=0;
96 1 E=1;
97 1 while(LED_BUS&0x80);
98 1 E=0;
99 1 }
100
101 /************写指令代码数据 *********/
102 void write_code_E1( uchar cod )
103 {
104 1
105 1 wait_E1();
106 1 LED_BUS=cod;
107 1 RW=0;
108 1 RS=0;
109 1 E1=0;E2=1;
110 1 E=1;
111 1 E=0;
112 1 }
113
114 void write_code_E2( uchar cod )
115 {
C51 COMPILER V7.50 TIME 03/21/2007 22:26:54 PAGE 3
116 1 wait_E2();
117 1 LED_BUS=cod;
118 1 RW=0;
119 1 RS=0;
120 1 E1=1;E2=0;
121 1 E=1;
122 1 E=0;
123 1 }
124 /*************向DDRAM中写数据 *********/
125 void write_data_E1( uchar dat )
126 {
127 1 wait_E1();
128 1 LED_BUS=dat;
129 1 RW=0;
130 1 RS=1;
131 1 E1=0;E2=1;
132 1 E=1;
133 1 E=0;
134 1 }
135
136 void write_data_E2( uchar dat )
137 {
138 1 wait_E2();
139 1 LED_BUS=dat;
140 1 RW=0;
141 1 RS=1;
142 1 E1=1;E2=0;
143 1 E=1;
144 1 E=0;
145 1 }
146 /*******************清屏*******************/
147 void clear_lcd()
148 {
149 1 uchar page,i;
150 1 for(page=0xb8;page<0xc0;page++) //x=0(10111000) y=(10111111);
151 1 {
152 2 write_code_E1(page); //设置页地址x=page
153 2 write_code_E1(0x40); //设置列地址y=0
154 2 for(i=0;i<64;i++)
155 2 {
156 3 write_data_E1(0x00); //写0 每写一次y自动加1
157 3 }
158 2 }
159 1 for(page=0xb8;page<0xc0;page++) //x=0(10111000) y=(10111111);
160 1 {
161 2 write_code_E2(page); //设置页地址x=page
162 2 write_code_E2(0x40); //设置列地址y=0
163 2 for(i=0;i<64;i++)
164 2 {
165 3 write_data_E2(0x00); //写0 每写一次y自动加1
166 3 }
167 2 }
168 1 }
169
170
171 /****************初始化液晶****************/
172 void init_lcd()
173 {
174 1 wait_E1();
175 1 write_code_E1(0x3e); // 关显示1
176 1 wait_E2();
177 1 write_code_E2(0x3e); // 关显示2
C51 COMPILER V7.50 TIME 03/21/2007 22:26:54 PAGE 4
178 1 wait_E1();
179 1 write_code_E1(0x3f); // 开显示1
180 1 wait_E2();
181 1 write_code_E2(0x3f); // 开显示2
182 1 wait_E1();
183 1 write_code_E1(0xc0); //(11 000000) 设置显示起始行z=0
184 1 wait_E2();
185 1 write_code_E2(0xc0); //(11 000000) 设置显示起始行z=0
186 1 clear_lcd();
187 1 }
188
189 void write_char_N_16( uchar *p_char,uchar page,uchar column,uchar N )
190 {
191 1 uchar i;
192 1 if( column<= 0x38)
193 1 {
194 2 write_code_E1(page|0xb8); //设置页地址
195 2 write_code_E1(column|0x40); //设置列地址
196 2 for(i=0;i<N;i++)
197 2 write_data_E1(p_char[i]);
198 2 write_code_E1(page+1|0xb8); //设置页地址
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -