📄 pcf8576d.lst
字号:
100 1 DispBuff[3]=DecodeTab[Weekday]; //将星期译码写到显示缓冲
101 1 DispBuff[4]=WDAYPic; //显示"DOW"--"day of week"
102 1 DispBuff[5]=0; //第六个字节为"0",不显示
103 1 PCF8576Disp(); //调用显示函数
104 1 }
105 //***********************************************************************
106 void PCF8576Alarm() //闹钟设定值显示函数
107 {
108 1 DispBuff[0]=DecodeTab[AlarmHour/10]; //将闹钟小时译码写到显示缓冲
109 1 DispBuff[1]=DecodeTab[AlarmHour%10];
110 1 DispBuff[2]=DecodeTab[AlarmMinute/10]; //将闹钟分钟译码写到显示缓冲
111 1 DispBuff[3]=DecodeTab[AlarmMinute%10];
112 1 if(!AlarmAmpm) DispBuff[4]=AMPic+DOTPic; //根据AlarmAmpm决定显示
113 1 else DispBuff[4]=PMPic+DOTPic; //"AM"还是"PM"
114 1 DispBuff[5]=ALARMPic; //显示"V"做为闹钟模式提示
115 1 PCF8576Disp(); //调用显示函数
116 1 }
117 //***********************************************************************
C51 COMPILER V7.06 PCF8576D 11/09/2004 16:39:45 PAGE 3
118 void PCF8576Temp() //温度显示函数
119 {
120 1 DispBuff[0]=0; //第一个8段不显示
121 1 DispBuff[1]=DecodeTab[(Temp[0]%100)/10]; //将温度整数部分译码写入缓冲
122 1 DispBuff[2]=DecodeTab[Temp[0]%10]|DPPic; //显示"."(DP)
123 1 if((Temp[1]&0x80)==0) //小数部分显示为"0"
124 1 DispBuff[3]=DecodeTab[0];
125 1 else
126 1 DispBuff[3]=DecodeTab[5]; //小数部分显示为"5"
127 1 DispBuff[4]=0; //第五个字节为"0",不显示
128 1 if((Temp[0]&0x80)==0) //判断当前温度是零上还是零下
129 1 DispBuff[5]=PLUSPic+TEMPPic; //如果是正的,显示"+"
130 1 else
131 1 DispBuff[5]=MINUSPic+TEMPPic; //否则显示"-"
132 1 PCF8576Disp(); //调用显示函数
133 1 }
134 //***********************************************************************
135 void PCF8576Modify(uchar b) //修改状态指示函数
136 {
137 1 if(b==1)
138 1 {
139 2 DispBuff[0]=0; //前两个8段不显示
140 2 DispBuff[1]=0; //将温度整数部分译码写入缓冲
141 2 PCF8576Disp();
142 2 }
143 1 else if(b==2)
144 1 {
145 2 DispBuff[2]=0; //后两个8段不显示
146 2 DispBuff[3]=0; //将温度整数部分译码写入缓冲
147 2 PCF8576Disp();
148 2 }
149 1
150 1 }
151
152 //***********************************************************************
153 void PCF8576Mode(bit dot) //模式显示函数
154 {
155 1 switch(Mode)
156 1 {
157 2 case 1: //模式1
158 2 PCF8576Clock(dot); //显示时间
159 2 break;
160 2 case 2: //模式2
161 2 PCF8576Weekday(); //显示星期
162 2 break;
163 2 case 3: //模式3
164 2 PCF8576Date(); //显示日期
165 2 break;
166 2 case 4: //模式4
167 2 PCF8576Year(); //显示年
168 2 break;
169 2 case 5: //模式5
170 2 PCF8576Cdate(); //显示农历日期
171 2 break;
172 2 case 6: //模式6
173 2 PCF8576Cyear(); //显示农历年
174 2 break;
175 2 case 7: //模式7
176 2 PCF8576Alarm(); //显示闹钟
177 2 break;
178 2 case 8: //模式8
179 2 PCF8576Temp(); //显示温度
C51 COMPILER V7.06 PCF8576D 11/09/2004 16:39:45 PAGE 4
180 2 break;
181 2 default: break;
182 2 }
183 1 }
184 //*********************************END***********************************
185
186
187
188
189
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 566 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 1
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -