📄 new.lst
字号:
C51 COMPILER V8.05a NEW 11/16/2007 20:45:07 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE NEW
OBJECT MODULE PLACED IN new.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE new.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************/
2 /* Name: LCD12864+DS1302+DS18B20+S52 */
3 /* */
4 /* Designed by :whoami Date:2005/11/13 */
5 /* */
6 /* http://www.mculover.net */
7 /******************************************************************************/
8
9 #include <reg51.h>
10
11 sbit Bell_Out = P1 ^ 7;//闹钟管脚输出
12
13 sbit DQ = P2 ^ 1;//ds1820data
14 sbit clock_clk = P2 ^ 2;//ds1302_clk
15 sbit clock_dat = P2 ^ 3;//ds1302_dat
16 sbit clock_Rst = P2 ^ 4;//ds1302_Rst
17
18 #define Disp_On 0x3f //定义管脚的指令值
19 #define Disp_Off 0x3e
20 #define Col_Add 0x40
21 #define Page_Add 0xb8
22 #define Start_Line 0xc0
23 #define Lcd_Bus P0 //定义数据口
24
25 sbit Mcs = P3 ^ 5; //
26 sbit Scs = P3 ^ 6; //
27 sbit Enable = P1 ^ 5; //
28 sbit Di = P1 ^ 4; //
29 sbit RW = P1 ^ 3; //
30 sbit Lcd_Rst= P3 ^ 7; //
31
32 //键盘扫描
33 sbit Add_Key = P1 ^ 0;//加1键
34 sbit Dec_Key = P1 ^ 1;//减1键
35 sbit OK_Key = P1 ^ 2;//确定键
36
37 //24存储器
38 sbit SCL = P3 ^ 3;
39 sbit SDA = P3 ^ 4;
40 sbit WP = P3 ^ 2;
41
42 #define TRUE 1
43 #define FALSE 0
44 #define Delay2408_TIME 60 //经实验,不要小于50!否则可能造成时序混乱
45
46 //为了编程方便定义的位变量
47 sbit a0 = ACC ^ 0;
48 sbit a1 = ACC ^ 1;
49 sbit a2 = ACC ^ 2;
50 sbit a3 = ACC ^ 3;
51 sbit a4 = ACC ^ 4;
52 sbit a5 = ACC ^ 5;
53 sbit a6 = ACC ^ 6;
54 sbit a7 = ACC ^ 7;
55
C51 COMPILER V8.05a NEW 11/16/2007 20:45:07 PAGE 2
56 bit flag, Bell_Swh,Hourb,Minb,Secb,Kgb;//闪烁标志位
57 bit sec=0,min=0,hour=0,year=0,mon=0,day=0,weekk=0; //闪烁标志位
58 unsigned char id,id2,d,e,S_1302,H_1302,H_2402,S_2402; //
59
60 //Function Definition 函数声明
61 void Delay(int num);
62 void Init_DS18B20(void);
63 unsigned char ReadOneChar(void);
64 void WriteOneChar(unsigned char dat);
65 unsigned int ReadTemperature(void);
66 void clock_out(unsigned char dd);
67 unsigned char clock_in(void);
68 unsigned char read_clock(unsigned char ord);
69 void write_clock(unsigned char ord, unsigned char dd);
70 void Disp(void);
71 void id_case1_key(void);
72 void id_case2_key(void);
73 void Set_time(unsigned char sel,bit sel_1);
74 void Timer0_Init(void);
75 void Init_1302(void);
76 void Set_Bell(unsigned char sel, bit sel_1);
77
78 //24系列
79 void Delay2408(unsigned int t);
80 void I2C_Start(void);
81 void I2C_Stop(void);
82 void SEND_0(void);
83 void SEND_1(void);
84 bit Check_Acknowledge(void);
85 void WriteI2CByte(unsigned char b)reentrant;
86 unsigned char ReadI2CByte(void)reentrant;
87 void Write_One_Byte(unsigned char addr,unsigned char thedata);
88 char Read_One_Byte(unsigned char addr);
89
90 //12864
91 void Delay12864(unsigned int t);
92 void write_com(unsigned char cmdcode);
93 void write_data(unsigned char Dispdata);
94 void frame(void);
95 void Clr_Scr(void);
96 void Disp_Img(unsigned char code *img);
97 void Disp_Digit(unsigned char pag,unsigned char col, unsigned char code *hzk);
98 void Disp_Chinese(unsigned char pag,unsigned char col, unsigned char code *hzk);
99 void Init_lcd(void);
100
101
102 //汉字库及数字符号库
103 unsigned char code nao[32]={0x00,0x00,0xF9,0x12,0x90,0x92,0x96,0xFA,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x0
-0,
104 0x00,0x00,0xFF,0x00,0x1F,0x00,0x00,0x7F,0x00,0x08,0x1F,0x40,0x80,0x7F,0x00,0x00};/*-- 文字: 闹 --*/
105
106 unsigned char code zhong[32]={0x40,0x30,0x2C,0xEB,0x28,0x28,0x00,0xF8,0x08,0x08,0xFF,0x08,0x08,0xF8,0x00,0
-x00,
107 0x01,0x01,0x01,0xFF,0x41,0x21,0x00,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x00,0x00};/*-- 文字: 钟 --*/
108
109 unsigned char code she[32]={0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x0
-0,
110 0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00};/*-- 文字: 设 --*/
111
112 unsigned char code ding[32]={0x00,0x10,0x0C,0xA4,0x24,0x24,0x25,0xE6,0x24,0x24,0x24,0x24,0x14,0x0C,0x04,0x
-00,
113 0x40,0x20,0x18,0x07,0x08,0x10,0x20,0x7F,0x42,0x42,0x42,0x42,0x40,0x40,0x00,0x00};/*-- 文字: 定 --*/
C51 COMPILER V8.05a NEW 11/16/2007 20:45:07 PAGE 3
114
115 unsigned char code kai[32]={0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x0
-0,
116 0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00};/*-- 文字: 开 --*/
117
118 unsigned char code guan[32]={0x00,0x10,0x10,0x10,0x11,0x1E,0x14,0xF0,0x10,0x18,0x17,0x12,0x18,0x10,0x00,0x
-00,
119 0x01,0x81,0x41,0x21,0x11,0x09,0x05,0x03,0x05,0x09,0x31,0x61,0xC1,0x41,0x01,0x00};/*-- 文字: 关 --*/
120
121 unsigned char code shit[32]={0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x
-00,
122 0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00};/*-- 文字: 时 --*/
123 unsigned char code jian[32]={0x00,0xF8,0x01,0x06,0x00,0xF0,0x92,0x92,0x92,0x92,0xF2,0x02,0x02,0xFE,0x00,0x
-00,
124 0x00,0xFF,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04,0x07,0x40,0x80,0x7F,0x00,0x00};/*-- 文字: 间 --*/
125 unsigned char code dao[32]={0x00,0x22,0x72,0x2A,0x26,0xE2,0x2A,0x72,0x22,0x00,0xF8,0x00,0x00,0xFF,0x00,0x0
-0,
126 0x00,0x42,0xC2,0x42,0x22,0x3F,0x22,0x12,0x12,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00};/*-- 文字: 到 --*/
127
128 unsigned char code shi[32]={0x00,0x10,0x2C,0x24,0xA4,0x64,0x25,0x26,0x24,0x24,0xA4,0x24,0x34,0x2C,0x04,0x0
-0,
129 0x40,0x40,0x48,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4B,0x48,0x40,0x40,0x00};//室
130 unsigned char code wen[32]={0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x0
-0,
131 0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00};//温
132 unsigned char code zero[16]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x
-00};//0
133 unsigned char code one[16]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x0
-0};//1
134 unsigned char code two[16]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x0
-0};//2
135 unsigned char code three[16]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0
-x00};//3
136 unsigned char code four[16]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x
-00};//4
137 unsigned char code five[16]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x
-00};//5
138 unsigned char code six[16]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x0
-0};//6
139 unsigned char code seven[16]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0
-x00};//7
140 unsigned char code eight[16]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0
-x00};//8
141 unsigned char code nine[16]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x
-00};//9
142 unsigned char code point[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0
-x00};//小数点
143 unsigned char code maohao[16]={0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,
-0x00};//冒号
144 unsigned char code space[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0
-x00};//空白
145 unsigned char code fh[16]={0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x6F,0x6F,0x00,0x00,0x00
-};//!感叹号
146
147 unsigned char code nian[32]={0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x
-00,
148 0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00};//年
149 unsigned char code yue[32]={0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x0
-0,
150 0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00};//月
151 unsigned char code xing[32]={0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x
-00,
C51 COMPILER V8.05a NEW 11/16/2007 20:45:07 PAGE 4
152 0x00,0x48,0x46,0x41,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x49,0x41,0x40,0x00};//星
153 unsigned char code qi[32]={0x00,0x04,0xFF,0x54,0x54,0x54,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00
-,
154 0x42,0x22,0x1B,0x02,0x02,0x0A,0x33,0x62,0x18,0x07,0x02,0x22,0x42,0x3F,0x00,0x00};//期
155 unsigned char code cone[32]={0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x
-00,
156 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//一
157 unsigned char code ctwo[32]={0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x
-00,
158 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00};//二
159 unsigned char code cthree[32]={0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,
-0x00,
160 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00};//三
161 unsigned char code cfour[32]={0x00,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0xFE,0x00,0
-x00,
162 0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x22,0x7F,0x00,0x00};//四
163 unsigned char code cfive[32]={0x00,0x02,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0xC2,0x82,0x02,0x00,0x00,0
-x00,
164 0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x30,0x20,0x00};//五
165 unsigned char code csix[32]={0x10,0x10,0x10,0x10,0x10,0x91,0x12,0x1E,0x94,0x10,0x10,0x10,0x10,0x10,0x10,0x
-00,
166 0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x00,0x00,0x01,0x02,0x0C,0x78,0x30,0x00,0x00};//六
167 unsigned char code ri[32]={0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00
-,
168 0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00};//日
169 unsigned char code sheshidu[32]={0x00,0x02,0x05,0xE2,0x18,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0x1E,0x0
-0,0x00,
170 0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x18,0x00,0x00};//摄氏度的符号
171 unsigned char code spaces[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,
172 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//汉字空格
173 unsigned char code biaozhi[32]={0x00,0x00,0x00,0x00,0xE0,0xF8,0xFC,0xFC,0xFC,0xFC,0xF8,0xE0,0x00,0x00,0x00
-,0x00,
174 0x00,0x10,0x18,0x3E,0x3F,0x7F,0x5F,0x9F,0x9F,0x5F,0x7F,0x3F,0x3E,0x18,0x10,0x00};//闹钟的图标
175
176 /******************************************************************************/
177 /* 24C08.c*/
178 //调用方式如下:
179 //Write_One_Byte(0x10,0x04);
180 //k=Read_One_Byte(0x10);
181 /********** 函数定义 ************/
182 void Delay2408(unsigned int t) /*延时函数*/
183 {
184 1 while(t!=0)
185 1 t--;
186 1 }
187
188 void I2C_Start(void)
189 {
190 1 /*启动I2C总线的函数,当SCL为高电平时使SDA产生一个负跳变*/
191 1 SDA=1;
192 1 SCL=1;
193 1 Delay2408(Delay2408_TIME);
194 1 SDA=0;
195 1 Delay2408(Delay2408_TIME);
196 1 SCL=0;
197 1 Delay2408(Delay2408_TIME);
198 1 }
199
200 void I2C_Stop(void)
201 {
202 1 /*终止I2C总线,当SCL为高电平时使SDA产生一个正跳变*/
C51 COMPILER V8.05a NEW 11/16/2007 20:45:07 PAGE 5
203 1 SDA=0;
204 1 SCL=1;
205 1 Delay2408(Delay2408_TIME);
206 1 SDA=1;
207 1 Delay2408(Delay2408_TIME);
208 1 SCL=0;
209 1 Delay2408(Delay2408_TIME);
210 1 }
211
212 void SEND_0(void) /* SEND ACK */
213 {
214 1 /*发送0,在SCL为高电平时使SDA信号为低*/
215 1 SDA=0;
216 1 SCL=1;
217 1 Delay2408(Delay2408_TIME);
218 1 SCL=0;
219 1 Delay2408(Delay2408_TIME);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -