基于c语言单片机智能电子日历课程设计内容摘要:

一条口线,这种接法简单。 矩阵式键盘也称行列式键 盘,因为键的数目较多,所以键按行列组成矩阵。 本设计中键盘数目较少,且为安装方便,因此在本设计中采用独立式接法。 如图所示。 控制电路 按从一个键到键的功能被执行主要应包括两项工作:一是键的识别,即在键盘中找出被按的是哪个键,另一项是键功能的实现。 第一项工作是使用接口电路实现的,而第二项工作则是通过执行中断服务程序来完成。 9 四、程序总体思路和分析 1. 程序总体思路和分析 主函数的流程图 : 开始 星期加一 日期加一 判断星期是否 7 判断闰年和日期数是否超过 月数加一 ,日期清零 判断月数是否超过 年数加一,日期清零 判断年 数是否超过 星期数清零 N Y N Y N Y Y N 全部清零 10 2. 程序清单 include include unsigned int time=0。 unsigned char num=0。 unsigned char key=0。 unsigned char time_key=0。 /*********************************/ unsigned int year=1。 //年 unsigned char yue=1。 //月 unsigned char day=1。 //日 unsigned char week=1。 /*********************************/ unsigned char LED=0。 unsigned char flag_led=0。 unsigned char strl_led[] = {0,0,0,0,0,0,0,0}。 unsigned char day_add。 unsigned char SURE。 /*********************************/ unsigned char code str[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff }。 unsigned char su[] = { 10,10,10,10,10,10,10,10 }。 void delay_SMG(unsigned char t) { unsigned char d。 for(。 t0。 t) for(d=0。 d50。 d++)。 } /*********************************/ /*************DIS_LED*************/ void DIS_play() { 11 unsigned char k。 unsigned char dis。 dis = 0x01。 for(k=0。 k8。 k++) { P0 = dis。 P2 |= 0xc0。 P2 amp。 = 0x1f。 if(k==2 || k==4 || k==6)P0 = str[su[k]] amp。 0x7f。 else P0 = str[su[k]]。 P2 |= 0xe0。 P2 amp。 = 0x1f。 dis = dis 1。 delay_SMG(4)。 P0 = 0xff。 P2 |= 0xe0。 P2 amp。 = 0x1f。 } } void init_all() { P0 = 0x00。 P2 = 0xa0。 P2 = 0x00。 P0 = 0x00。 P2 = 0xa0。 P2 = 0x00。 P0 = 0xff。 P2 = 0x80。 P2 = 0x00。 P0 = 0x00。 P2 = 0xc0。 P2 = 0x00。 } void DIS_led() { 12 if(LED == 1) { P0 = 0xfe。 P2 = 0x80。 P2 = 0x00。 } else if(LED == 2) { P0 = 0xfd。 P2 = 0x80。 P2 = 0x00。 } else if(LED == 3) { P0 = 0xfb。 P2 = 0x80。 P2 = 0x00。 } else if(LED == 4) { P0 = 0xf7。 P2 = 0x80。 P2 = 0x00。 } else if(LED == 5) { P0 = 0xef。 P2 = 0x80。 P2 = 0x00。 } else if(LED ==。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。