当前位置:首页 > 万年历课程设计报告
inf=output_BYTE(); T_CLK=1; T_RST=0;
return (inf); }
void init_1302() {
write_1302(0x8e,0x00);//关闭写保护; // write_1302(0x90,0xaa);//设置充电方式; write_1302(0x80,0x00);//秒寄存器初始化; write_1302(0x82,0x01);//分....... write_1302(0x84,0x10);//时....... write_1302(0x86,0x01);//日........ write_1302(0x88,0x10);//月....... write_1302(0x8a,0x02);//星期...
write_1302(0x8c,0x13);//年...... write_1302(0x8e,0x80);//打开写保护; }
/********************************** 闹钟显示子程序
**********************************/ void show_naozhong(uchar x,uchar y) {
uchar i,x1,x2,y1,y2; x1=x/10; //十位 x2=x;//个位
WriteAddress(0x80+0x0b); //显示闹钟的小时部分 WriteData(table1[x1]); WriteAddress(0x80+0x0c); WriteData(table1[x2]);
y1=y/10; //十位 y2=y;//个位
WriteAddress(0x80+0x0e); //显示闹钟的分钟部分 WriteData(table1[y1]); WriteAddress(0x80+0x0f); WriteData(table1[y2]);
WriteAddress(0x80+0x0d); //显示小时与分钟之间的那个冒号 WriteData(':');
WriteAddress(0x80); //显示字符串:Alarm Clock for(i=0;i<11;i++) {
29
WriteData(table[i]); }
WriteAddress(0x80+0x40); //显示字符串:Today is fine! for(i=0;i<14;i++) {
WriteData(table3[i]); } }
void main(void) {
uchar i;
uchar TL; //储存暂存器的温度低位 uchar TH; //储存暂存器的温度高位 uchar TN; //储存温度的整数部分 uchar TD; //储存温度的小数部分 LcdInitiate(); //将液晶初始化 init_1302();
delaynms(5); //延时5ms给硬件一点反应时间 // if(Init_DS18B20()==1) // display_error(); EA=1;//开总中断
EX1=1;//开外部中断1 IT1=0;//下降沿触发
WriteAddress(0x80+0x10); for(i=0;i<6;i++) {
WriteData(table4[i]); }
WriteAddress(0x80+0x50); for(i=0;i<16;i++) {
WriteData(table5[i]); }
for(i=0;i<16;i++) {
write_com(0x18); delaynms(250); }
delaynms(250); delaynms(250); delaynms(250); write_com(0x01); while(1)
30
// // // //
{
t_sec=read_1302(0x81);//读秒 ; sec1=t_sec&0x0f; sec2=(t_sec>>4);
t_min=read_1302(0x83);//读分 ; min1=t_min&0x0f; min2=(t_min>>4);
t_hour=read_1302(0x85);//读小时 ; hour1=t_hour&0x0f; hour2=(t_hour>>4);
WriteAddress(0x80+0x40+0x08); //显示小时 WriteData(table1[hour2]); WriteAddress(0x80+0x40+0x09); WriteData(table1[hour1]); t_day=read_1302(0x87);//读日; day1=t_day&0x0f; day2=(t_day>>4);
t_mon=read_1302(0x89);//读月 ; mon1=t_mon&0x0f; mon2=(t_mon>>4);
week=read_1302(0x8b);//读星期 ; week1=week&0x0f;
t_year=read_1302(0x8d);//读年 ; year1=t_year&0x0f; year2=(t_year>>4);
WriteAddress(0x80+0x06); WriteData('2');
WriteAddress(0x80+0x07); WriteData('0');
WriteAddress(0x80); //显示星期(0x80~0x80+0x05) for(i=0;i<4;i++) {
WriteData(table2[i]); }
31
WriteAddress(0x80+0x04); WriteData(table1[week1]);
WriteAddress(0x80+0x08);//显示年 WriteData(table1[year2]); WriteAddress(0x80+0x09); WriteData(table1[year1]);
WriteAddress(0x80+0x0a); //显示‘/’ WriteData('/');
WriteAddress(0x80+0x0b);//显示月 WriteData(table1[mon2]); WriteAddress(0x80+0x0c); WriteData(table1[mon1]);
WriteAddress(0x80+0x0d); //显示‘/’ WriteData('/');
WriteAddress(0x80+0x0e);//显示日 WriteData(table1[day2]); WriteAddress(0x80+0x0f); WriteData(table1[day1]); /*第一行在此显示完毕*/
display_dot(); //显示温度的小数点 display_cent(); //显示温度的单位
WriteAddress(0x80+0x40+0x08); //显示小时 WriteData(table1[hour2]); WriteAddress(0x80+0x40+0x09); WriteData(table1[hour1]);
WriteAddress(0x80+0x40+0x0a); //显示':' WriteData(':');
WriteAddress(0x80+0x40+0x0b); //显示分钟 WriteData(table1[min2]); WriteAddress(0x80+0x40+0x0c); WriteData(table1[min1]);
WriteAddress(0x80+0x40+0x0d); //显示':' WriteData(':');
WriteAddress(0x80+0x40+0x0e); //显示秒 WriteData(table1[sec2]);
32
共分享92篇相关文档