📄 led.lst
字号:
C51 COMPILER V7.50 LED 09/28/2008 21:00:12 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN LED.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE LED.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #include "intrins.h"
3 typedef unsigned char uint8;
4 typedef unsigned int uint16;
5 #define LED_Y P2
6 #define LCD_DATA 1
7 #define LCD_COMMAND 0
8 #define WORDNUU 11
9 sbit Ser_STB=P2^5;
10 sbit LED_EN=P2^4;
11 sbit LCD_RS=P1^5;
12 sbit LCD_RW=P1^6;
13 sbit LCD_EN=P1^7;
14 sbit RTC_SDA=P3^6;
15 sbit RTC_SCL=P3^5;
16 sbit RTC_RST=P3^4;
17 sbit KEY1=P1^0;
18 sbit KEY2=P1^1;
19 sbit KEY3=P1^2;
20 sbit KEY4=P1^3;
21 sbit DQ=P1^4;
22 uint8 TEMP_ERR;
23 #define LCD_PORT P0
24 uint8 WORDNUM,WORDNUMBER;
25 uint8 Temp_Value;
26 uint8 LCD_NO;
27 uint16 i1,i2;
28 uint8 bdata AA;
29 sbit AA7 = AA^7;
30 #define READ_SECOND 0x81
31 #define WRITE_SECOND 0x80
32 #define READ_MINE 0x83
33 #define WRITE_MINE 0x82
34 #define READ_HOUR 0x85
35 #define WRITE_HOUR 0x84
36 #define READ_DAY 0x87
37 #define WRITE_DAY 0x86
38 #define READ_MONTH 0x89
39 #define WRITE_MONTH 0x88
40 #define READ_WEEK 0x8b
41 #define WRITE_WEEK 0x8a
42 #define READ_YEAR 0x8d
43 #define WRITE_YEAR 0x8c
44 uint8 DATE[16];
45 uint8 TIME[16];
46
47 uint8 const code HZ[][32]=
48 {
49 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
-,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
50 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
-,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
51
52 {0xFD,0xFF,0xFE,0xFF,0x80,0x01,0xBE,0xFB,0x7E,0xF7,0xFE,0xFF,0x80,0x03,0xFC,0x7F,0xFA,0x7F,0xFA,0xBF,0xF6,
-0xDF,0xEE,0xEF,0xDE,0xF1,0xBE,0xFB,0xFE,0xFF,0xFF,0xFF},/*"宋",0*/
C51 COMPILER V7.50 LED 09/28/2008 21:00:12 PAGE 2
53
54 {0xDF,0xFF,0xEE,0xEF,0xEE,0xEF,0x76,0xEF,0xB4,0x03,0xAE,0xEF,0xEE,0xEF,0xEE,0xEF,0xDE,0xEF,0xD0,0x01,0x1E,
-0xDF,0xDE,0xEF,0xDD,0xF7,0xDD,0xF3,0xDB,0xFB,0xD7,0xFB},/*"洪",1*/
55
56 {0xFB,0xBF,0xFB,0xBF,0xFB,0xBF,0xFB,0xBB,0xBB,0xB9,0xDB,0xB3,0xDB,0xB7,0xEB,0xAF,0xE3,0xAF,0xEB,0x9F,0xFB,
-0xBF,0xFB,0xBF,0xFB,0xBB,0x00,0x01,0xFF,0xFF,0xFF,0xFF},/*"业",2*/
57
58 {0xEF,0xFF,0xEE,0x07,0xEE,0xF7,0x02,0x07,0xEE,0xF7,0xEE,0x07,0xE7,0xFF,0xC8,0x03,0xAF,0xBF,0x6D,0xBF,0xED,
-0x83,0xED,0xBF,0xE9,0xBF,0xEA,0x3F,0xA7,0x81,0xDF,0xFF},/*"提",3*/
59
60 {0xFF,0xFF,0x01,0x03,0xD7,0x7B,0xD7,0x03,0x01,0x7B,0x55,0x03,0x55,0xDF,0x55,0x5F,0x51,0x03,0x3C,0xDF,0x01,
-0xDF,0x7D,0x03,0x7D,0xDF,0x01,0xDF,0x7E,0x01,0xFF,0xFF},/*"醒",4*/
61
62 {0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x7F,0xFD,0x7F,0xFD,0xBF,0xFB,
-0xBF,0xFB,0xDF,0xF7,0xEF,0xEF,0xE7,0xDF,0xF1,0xBF,0xFB},/*"大",5*/
63
64 {0xFD,0xFF,0xFE,0xFF,0xC0,0x01,0xBF,0xFB,0xA0,0x17,0xFE,0xFF,0xFD,0xFF,0xF0,0xDF,0x8D,0x4F,0xFB,0x3F,0xE6,
-0x3F,0x99,0x4F,0xE7,0x71,0x9F,0x7B,0xFA,0xFF,0xFD,0xFF},/*"家",6*/
65
66 {0xFF,0xFF,0x00,0x07,0xED,0xF7,0xED,0xB7,0xED,0xB7,0xED,0xB7,0x81,0xB7,0xED,0xB7,0xED,0xB7,0xED,0x57,0xE3,
-0x5F,0x1E,0xDD,0xFE,0xDD,0xFD,0xDD,0xFB,0xE1,0xF7,0xFF},/*"现",7*/
67
68 {0xFD,0xFF,0xFD,0xFF,0x80,0x01,0xFB,0xFF,0xFB,0xFF,0xF7,0xBF,0xE7,0xBF,0xE8,0x03,0xCF,0xBF,0xAF,0xBF,0x6F,
-0xBF,0xEF,0xBF,0xEF,0xBF,0xE8,0x01,0xEF,0xFF,0xFF,0xFF},/*"在",8*/
69
70 {0xFF,0xFF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0F,0xFF,0xFF,0x00,0x01,0xFE,0xFF,0xF6,0xFF,0xF6,
-0x07,0xF6,0xFF,0xEA,0xFF,0xDC,0xFF,0xBF,0x01,0xFF,0xFF},/*"是",9*/
71 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
-,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
72 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
-,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",1*/
73 0x55,0xaa,
74 };
75 uint8 const code NUM[][16]=
76 {
77 {0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF},/*"0",0*/
78 {0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF},/*"1",1*/
79 {0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0xFF,0xFF},/*"2",2*/
80 {0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"3",3*/
81 {0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF},/*"4",4*/
82 {0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"5",5*/
83 {0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF},/*"6",6*/
84 {0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF},/*"7",7*/
85 {0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF},/*"8",8*/
86 {0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF},/*"9",9*/
87 };
88 uint8 const code DATETMP[][32]=
89 {
90 {0xF7,0xFF,0xF0,0x03,0xEF,0x7F,0xEF,0x7F,0xDF,0x7F,0xB0,0x07,0x77,0x7F,0xF7,0x7F,0xF7,0x7F,0xF7,0x7F,0x00
-,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F},/*"年",0*/
91 {0xF8,0x0F,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xF8,0x0F,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xF8,0x0F,0xFB,0xEF,0xF7
-,0xEF,0xF7,0xEF,0xEF,0xEF,0xDF,0xAF,0xBF,0xDF,0xFF,0xFF},/*"月",1*/
92 {0xFF,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF
-,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xFF,0xFF,0xFF,0xFF},/*"日",2*/
93 {0xFE,0xFF,0xFE,0xFF,0xFE,0x07,0xFE,0xFF,0xFE,0xEF,0xE0,0x07,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF
-,0xEF,0xFE,0xEF,0xD7,0x77,0xDB,0xBB,0xBB,0xBB,0xFF,0xFF},/*"点",3*/
94 {0xF7,0x7F,0xF3,0x7F,0xF7,0xBF,0xEF,0xDF,0xEF,0xCF,0xDF,0xE7,0xBF,0xF1,0x60,0x1B,0xFB,0xDF,0xFB,0xDF,0xFB
-,0xDF,0xFB,0xDF,0xF7,0xDF,0xEF,0x5F,0xDF,0xBF,0xBF,0xFF},/*"分",4*/
95 {0xFF,0xFF,0xE0,0x07,0xEF,0xF7,0xE0,0x07,0xEF,0xF7,0xE0,0x07,0xFE,0xFF,0xEE,0xFF,0xE0,0x03,0xDE,0xFF,0xDE
-,0xFF,0xB0,0x07,0xFE,0xFF,0xFE,0xFF,0x80,0x01,0xFF,0xFF},/*"星",5*/
96 {0xDD,0xFF,0xDD,0x83,0x80,0xBB,0xDD,0xBB,0xC1,0xBB,0xDD,0x83,0xC1,0xBB,0xDD,0xBB,0xDD,0xBB,0x00,0x83,0xFF
-,0xBB,0xDB,0x7B,0xDD,0x7B,0xBC,0xEB,0x7E,0xF7,0xFF,0xFF},/*"期",6*/
C51 COMPILER V7.50 LED 09/28/2008 21:00:12 PAGE 3
97 {0xE0,0x07,0xFE,0xFF,0x80,0x01,0xBE,0xFB,0xE2,0x8F,0xFE,0xFF,0xE2,0x8F,0xFD,0x7F,0xFB,0x9F,0xE5,0xE1,0x1E
-,0xF7,0xE0,0x1F,0xFF,0xBF,0xFD,0x7F,0xFE,0xFF,0xFE,0xFF},/*"零",7*/
98 {0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x07,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE
-,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x80,0x01,0xFF,0xFF},/*"上",8*/
99 {0xD8,0x03,0xDE,0xEF,0xDE,0x0F,0x06,0xEF,0xDE,0x0F,0xD6,0xE3,0xC8,0x0F,0x9F,0xEF,0x50,0x41,0xDB,0x5D,0xDC
-,0xEB,0xDE,0xF7,0xDD,0x67,0xDB,0x99,0x56,0x7B,0xBF,0xFF},/*"摄",9*/
100 {0xFF,0xFF,0xFF,0x07,0xC0,0xFF,0xDE,0xFF,0xDE,0xFF,0xDE,0xFF,0xC0,0x03,0xDF,0x7F,0xDF,0x7F,0xDF,0x7F,0xDF
-,0xBF,0xDF,0xBF,0xDB,0xDB,0xD7,0xEB,0xCF,0xF3,0xDF,0xFB},/*"氏",10*/
101 {0xFE,0xFF,0xFF,0x7F,0xC0,0x01,0xDD,0xDF,0xDD,0xDF,0xD0,0x03,0xDD,0xDF,0xDC,0x1F,0xDF,0xFF,0xD8,0x07,0xDD
-,0xEF,0xDE,0xDF,0xDF,0x3F,0xBE,0xCF,0xB9,0xF1,0x67,0xFB},/*"度",11*/
102 } ;
103 uint8 const code WEEK[][32]=
104 {
105 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0x80,0x01,0xFF,0xFF,0xFF,0xFF,0xFF
-,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"一",0*/
106 {0xFF,0xFF,0xFF,0xEF,0xC0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
-,0xFF,0xFF,0xFB,0x80,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"二",1*/
107 {0xFF,0xFF,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF
-,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0xFF,0xFF},/*"三",2*/
108 {0xFF,0xFF,0x80,0x03,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x7B,0xB7,0x7B,0xB7,0x83,0xAF
-,0xFB,0x9F,0xFB,0xBF,0xFB,0x80,0x03,0xBF,0xFB,0xFF,0xFF},/*"四",3*/
109 {0xFF,0xFF,0x80,0x07,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xDF,0xC0,0x0F,0xFB,0xDF,0xFB,0xDF,0xFB
-,0xDF,0xFB,0xDF,0xFB,0xDB,0x00,0x01,0xFF,0xFF,0xFF,0xFF},/*"五",4*/
110 {0xFB,0xFF,0xFC,0xFF,0xFE,0x7F,0xFE,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFB,0x7F,0xF9,0xBF,0xFB,0xDF,0xF7
-,0xEF,0xF7,0xE7,0xEF,0xF3,0xDF,0xF3,0xBF,0xF7,0xFF,0xFF},/*"六",5*/
111 {0xFF,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF
-,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xFF,0xFF,0xFF,0xFF},/*"日",6*/
112 };
113 void TEMP_Delay(uint16 i)
114 {
115 1 while(i--);
116 1 }
117 void TEMP_INITIALIZE()
118 {
119 1 DQ=1;
120 1 TEMP_Delay(8);
121 1 DQ=0;
122 1 TEMP_Delay(80);
123 1 DQ=1;
124 1 TEMP_Delay(14);
125 1 TEMP_ERR=DQ;
126 1 TEMP_Delay(20);
127 1 }
128
129 uint8 TEMP_Read_Char()
130 {
131 1 uint8 i;
132 1 uint8 dat;
133 1 for(i=0;i<8;i++)
134 1 {
135 2 DQ=0;
136 2 dat>>=1;
137 2 DQ=1;
138 2 if(DQ)
139 2 dat|=0x80;
140 2 TEMP_Delay(4);
141 2 }
142 1 return dat;
143 1 }
144
145 void TEMP_Write_Char(uint8 dat)
146 {
C51 COMPILER V7.50 LED 09/28/2008 21:00:12 PAGE 4
147 1 uint8 i;
148 1 for(i=0;i<8;i++)
149 1 {
150 2 DQ=0;
151 2 DQ=dat&0x01;
152 2 TEMP_Delay(5);
153 2 DQ=1;
154 2 dat>>=1;
155 2 }
156 1 }
157
158 void TEMP_Read()
159 {
160 1 uint8 a,b;
161 1 TEMP_INITIALIZE();
162 1 TEMP_Write_Char(0xcc);
163 1 TEMP_Write_Char(0x44);
164 1 TEMP_Delay(100);
165 1 TEMP_INITIALIZE();
166 1 TEMP_Write_Char(0xcc);
167 1 TEMP_Write_Char(0xbe);
168 1 TEMP_Delay(100);
169 1 a=TEMP_Read_Char();
170 1 b=TEMP_Read_Char();
171 1 Temp_Value=b<<4;
172 1 Temp_Value+=(a&0xf0)>>4;
173 1 }
174
175 void RTC_Write(uint8 dat)
176 {
177 1 uint8 i;
178 1 for(i=0;i<8;i++)
179 1 {
180 2 RTC_SDA=(bit)(dat&0x01);
181 2 RTC_SCL=1;
182 2 RTC_SCL=0;
183 2 dat>>=1;
184 2 }
185 1 }
186
187 uint8 RTC_Read()
188 {
189 1 uint8 i;
190 1 for(i=0; i<8; i++)
191 1 {
192 2 AA >>=1; //相当于汇编中的 RRC
193 2 AA7 = RTC_SDA;
194 2 RTC_SCL = 1;
195 2 RTC_SCL = 0;
196 2 }
197 1 return AA;
198 1 }
199
200 void RTC_Write_Byte(uint8 addr,uint8 dat)
201 {
202 1 RTC_RST=0;
203 1 RTC_SCL=0;
204 1 RTC_RST=1;
205 1 RTC_Write(addr);
206 1 RTC_Write(dat);
207 1 RTC_SCL=1;
208 1 RTC_RST=0;
C51 COMPILER V7.50 LED 09/28/2008 21:00:12 PAGE 5
209 1 }
210
211 uint8 RTC_Read_Byte(uint8 addr)
212 {
213 1 uint8 dat;
214 1 RTC_RST=0;
215 1 RTC_SCL=0;
216 1 RTC_RST=1;
217 1 RTC_Write(addr|0x01);
218 1 dat=RTC_Read();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -