简易万年历的设计 设计要求:1、数字显示年、月、小时、分钟、秒钟; 2、具有日期时间设置功能; 3、显示农历年、月、日; 4、用数码管或LCD将时间显示; 5、具备掉电保护功能; 备注:本题须设计出显示部分硬件实物,文档须写出部分设置时间的程序代码
这道题是我出给大2年级的学生做电子设计的选拔题,呵呵,没难度的,望高手们不笑话,因为大2的还没怎么学MCU。。。
程序是大2的学生叫上来电子文档。。。 你着摸下,不懂再问,我也没怎么看。。。
//====================时间读取部分代码============================= //读取1302的时间序列 存入 j[] ; void read_serial(uchar j[8]) { uchar i; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; write_1302(0xbf);//连续读出命令 for(i=0;i<8;i++) { j = read_1302(); } DS1302_CLK = 1; DS1302_RST = 0; } //===========================时间显示====================================== // void ShowNumber(uchar lin,uchar column,uchar num) ; 数字显示函数 (行,列,数字) //void ShowChina(uchar lin,uchar column,uchar num) ;文字显示函数 (行,列,文字编号) ShowNumber(2,0,j[2]>>4&0x03); // j[] 为ds1302读出的时间序列 ShowNumber(2,8, j[2]&0x0f); ShowChina(2,16,3); // xx 年 ShowNumber(2,32,j[1]>>4&0x07); ShowNumber(2,40, j[1]&0x0f); ShowChina(2,48,4); //xx 月 ShowNumber(2,64,j[0]>>4&0x07); ShowNumber(2,72, j[0]&0x0f); ShowChina(2,80,5); // xx 日 ShowNumber(4,0,j[6]>>4&0x0f); // xx 时 ShowNumber(4,8, j[6]&0x0f); ShowChina(4,16,0); ShowNumber(4,32,j[4]>>4&0x01); // xx 分 ShowNumber(4,40, j[4]&0x0f); ShowChina(4,48,1); ShowNumber(4,64,j[3]>>4&0x03); //xx 秒 ShowNumber(4,72, j[3]&0x0f); ShowChina(4,80,2); ShowChina(4,104,6); // 周 x ShowNumber(4,120,j[5]&0x07); //===========================================时间设置==================================================== if(KEY1==0) //按键1 时间设置和返回 { delay10(); if(KEY1==1) { delay10(); flag_2=~flag_2; } } if(KEY2==0) //按键 2 选择设置时间的项目 { delay10(); if(KEY2==1) { delay10(); choose++; if(choose==8) choose=0x01; } } if(KEY3==0) //按键3 时间设定。。。 { delay10(); if(KEY3==1) { delay10(); switch(choose) { case 1: j[6]++; j[6]=conver(j[6],0xa0,0x00);break;//?ê case 2: j[5]++; j[5]=conver(j[5],0x07,0x00);break;//?ü case 3: j[4]++; j[4]=conver(j[4],0x13,0x01);break;//?? case 4: j[3]++; j[3]=conver(j[3],0x32,0x01);break;//è? case 5: j[2]++; j[2]=conver(j[2],0x24,0x00);break;//ê± case 6: j[1]++; j[1]=conver(j[1],0x60,0x00);break;//?? case 7: j[0]++; j[0]=conver(j[0],0x60,0x00);break;//?? } } }
|