万年历单片机课程设计百度文库_单片机电子万年历课程设计最终版(样例3)...

《单片机电子万年历课程设计.doc》由会员分享,可免费在线阅读全文,更多与《单片机电子万年历课程设计(最终版)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、D在正确位置显示quot加quot设定好的分数据tem=(fen)*+(fen)%;十进制转换成DS要求的DCB码write_(xe,x);允许写,禁止写保护write_(x,tem);向DS内写分寄存器H写入调整后的分数据BCD码write_(xe,x);打开写保护eak;case:shi++;if(shi==)shi=;城市科技学院课程设计报告LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xs[shi]);hz_LCDDis(,,xs[shi%]);令LCD在正确的位置显示quot加quot设定好的小时数据tem=(shi)*+(shi)%;十进制转换成DS要求的DCB码write_(xe,x);允许写,禁止写保护write_(x,tem);向DS内写小时寄存器H写入调整后的小时数据BCD码write_(xe,x);打开写保护eak;case:week++;if(week==)week=;LCDMcs=;LCDScs=;右显示hz_LCDDis(,,ds[week]);tem=(week)*+(week)%;十进制转换成DS要求的DCB码write_(xe,x);允许写,禁止写保护write_(xa,tem);向DS内写周寄存器aH写入调整后的周数据BCD码wri。

2、LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xfen);hz_LCDDis(,,xzhong);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xxiao);hz_LCDDis(,,xshi);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xxing);hz_LCDDis(,,xqi);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xri);城市科技学院课程设计报告hz_L。

3、_(xe,x);write_(x,x|tem);miao数据写入DSwrite_(xe,x);eak;}}}*加键key*if(keyn!=)当key按下以下。再按以下键才有效(按键次数不等于零){if(key==)上调键{delay();if(key==)城市科技学院课程设计报告buzzer=;delay();buzzer=;蜂鸣器短鸣{while(!key);switch(keyn){case:miao++;设置键按动次,调秒if(miao==)miao=;秒超过,再加,就归零LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xs[miao]);hz_LCDDis(,,xs[miao%]);在LCD的正确位置显示改变后新的秒数tem=(miao)*+(miao)%;十进制转换成DS要求的DCB码write_(xe,x);允许写,禁止写保护write_(x,tem);向DS内写秒寄存器H写入调整后的秒数据BCD码write_(xe,x);打开写保护eak;case:fen++;if(fen==)fen=;LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xs[fen]);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xs[yue%]);;令L。

4、扫描有关函数**********************voidkeyscan(){if(key==)key为功能键(设置键){delay();延时,用于消抖动if(key==)延时后再次确认按键按下{buzzer=;delay();buzzer=;蜂鸣器短鸣while(!key);keyn++;if(keyn==)keyn=;设置按键共有秒、分、时、星期、日、月、年、返回,个功能循环switch(keyn){case:TR=;关闭定时器LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);城市科技学院课程设计报告LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xmiao);hz_LCDDis(,,xshu);hz_LCDDis(,,xjianhao);tem=(miao)*+(miao)%;秒数据写入DSwrite_(xe,x);write_(x,x|tem);miaowrite_(xe,x);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng)。

5、ri]);hz_LCDDis(,,xs[ri%]);hz_LCDDis(,,xri);时间hz_LCDDis(,,xsc[fen%]);hz_LCDDis(,,xmaohao);hz_LCDDis(,,xsc[miao]);hz_LCDDis(,,xsc[miao%]);星期hz_LCDDis(,,xxing);hz_LCDDis(,,xqi);hz_LCDDis(,,ds[week]);气温LCDdelay();keyscan();键盘扫描}}附二:参考文献【】张靖武周灵彬单片机原理、应用与PROTEUS仿真;【】江志红单片机技术与应用系统开发案例精选;城市科技学院课程设计报告【】周润景基于PROTEUS的单片机设计与仿真;【】王守中单片机开发入门与典型实例;【】张齐朱宁西单片机系统设计与开发;【】周立功单片机开发网【】天津锐志单片机开发网【】维纳电子DSB温度传感器中文PDF资料【】ATMEL公司ATS单片机中文PDF资料;【】长沙太阳人电子有限公司通用型液晶PDF资料is(,,xnian);hz_LCDDis(,,xfen);hz_LCDDis(,,xjianhao);eak;case:Clr_Scr();清显示TR=;打开定时器tem=(miao)*+(miao)%;writ。

6、DDis(,,xqi);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xyue);hz_LCDDis(,,xfen);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCD护eak;case:week;if(week==)week=;LCDMcs=;LCDScs=;右显示hz_LCDDis(,,ds[week]);tem=(week)*+(week)%;十进制转换成DS要求的DCB码write_(xe,x);允许写,禁止写保护write_(xa,tem);向DS内写周寄存器aH写入调整后的周数据BCD码write_(xe,x);打开写保护eak;case:ri;if(ri==)ri=;LCDMcs=;LCDScs=;右显示hz_LCDDis。

7、imal(read_(x));yue=BCD_Decimal(read_(x));nian=BCD_Decimal(read_(xd));week=BCD_Decimal(read_(xb));LCDMcs=;LCDScs=;左显示LCDdelay();年月日hz_LCDDis(,,xs[]);hz_LCDDis(,,xs[]);hz_LCDDis(,,xs[nian]);hz_LCDDis(,,xs[nian%]);hz_LCDDis(,,xnian);hz_LCDDis(,,xs[yue]);时间hz_LCDDis(,,xsc[shi]);hz_LCDDis(,,xsc[shi%]);hz_LCDDis(,,xmaohao);hz_LCDDis(,,xsc[fen]);城市科技学院课程设计报告星期气温hz_LCDDis(,,xqi);hz_LCDDis(,,xwen);hz_LCDDis(,,maohao);hz_LCDDis(,,xs[flag]);hz_LCDDis(,,xs[flag%]);hz_LCDDis(,,xdu);LCDMcs=;LCDScs=;右显示年月日hz_LCDDis(,,xs[yue%]);hz_LCDDis(,,xyue);hz_LCDDis(,,xs。

8、LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xfen);hz_LCDDis(,,xzhong);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xxiao);hz_LCDDis(,,xshi);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xxing);hz_LCDDis(,,xqi);hz_LCDDis(,,xjianhao);eak;case:LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xjiahao);hz_LCDDis(,,xtiao);hz_LCDDis(,,xzheng);LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xri);城市科技学院课程设计报告hz_L。

9、,,xs[ri]);hz_LCDDis(,,xs[ri%]);令LCD在正确的位置显示quot加quot设定好的日期数据tem=(ri)*+(ri)%;十进制转换成DS要求的DCB码write_(xe,x);允许写,禁止写保护write_(x,tem);向DS内写日期寄存器H写入调整后的日期数据BCD码write_(xe,x);打开写保护eak;case:yue;if(yue==)yue=;LCDMcs=;LCDScs=;右显示hz_LCDDis(,,xs[yue%]);hz_LCDDis(,,xyue);令LCD在正确的位置显示quot加quot设定好的月份数据tem=(yue)*+(yue)%;十进制转换成DS要求的DCB码城市科技学院课程设计报告write_(xe,x);允许写,禁止写保护write_(x,tem);向DS内写月份寄存器H写入调整后的月份数据BCD码write_(xe,x);打开写保护eak;case:nian;if(nian==)nian=;LCDMcs=;LCDScs=;左显示hz_LCDDis(,,xs[nian]);hz_LCDDis(,,xs[nian%]);令LCD在正确的位置显示quot加quot设定好的年份数据tem=(nian)*+(nian)。

10、;十进制转换成DS要求的DCB码write_(xe,x);允许写,禁止写保护write_(xc,tem);向DS内写年份寄存器cH写入调整后的年份数据BCD码write_(xe,x);打开写保护eak;}}}}}*****************************************************************************函数功能:主程序入口参数:出口参数:*****************************************************************************voidmain(void){城市科技学院课程设计报告LCLight=;开LCD背光init_lcd();Clr_Scr();LCDMcs=;LCDScs=;左、右都显示ds_init();while(){flag=ReadTemerature();将b头文件运行返回的函数结果送到变量FLAG中,用于显示读取秒时分周日月年七个数据(DS的读寄存器与写寄存器不一样):miao=BCD_Decimal(read_(x));fen=BCD_Decimal(read_(x));shi=BCD_Decimal(read_(x));ri=BCD_De。

11、***函数功能:指定位置显示数字*程序入口参数:ag,col,hzk出口参数:*****************************************************************************voidhz_LCDDis(unsignedcharag,unsignedcharcol,unsignedcharcode*hzk){unsignedcharj=,i=;for(j=;jlt;j++){write_com(Page_Add+ag+j);write_com(LCDCol_Add+col);for(i=;ilt;i++)write_data(hzk[*j+i]);}}*****************************************************************************函数功能:指定位置显示数字*程序入口参数:ag,col,hzk出口参数:*****************************************************************************voidhz_LCDDis(unsignedcharag,unsignedcharcol,unsigned 。

12、charcode*hzk){unsignedcharj=,i=;for(j=;jlt;j++){write_com(Page_Add+ag+j);write_com(LCDCol_Add+col);for(i=;ilt;i++)write_data(hzk[*j+i]);}}*****************************************************************************函数功能:指定位置显示数字*程序入口参数:ag,col,hzk出口参数:*****************************************************************************城市科技学院课程设计报告voidhz_LCDDis(unsignedcharag,unsignedcharcol,unsignedcharcode*hzk){unsignedcharj=,i=;for(j=;j;a){IO=ACC;SCLK=;SCLK=;ACC=ACCgtgt;}城市科技学院课程设计报告}ucharread_byte()读一个字节{RST=;for(a=;agt;a){ACC=IO;SCLK=;SCLK=;ACC=ACCg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值