版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子工程系项目考核(报告)项目名称:数字时钟项目姓 名 班 级 学 号 课程名称 一、 项目要求:数码管默认显示00:00。数码管1,2 表示小时,数码管 3,4 表示分钟。如此,实现时钟功能。要求能够整点报时、闹钟提示;并附带有秒表功能。按键可以调整时钟时间、切换显示页面和设定闹钟时间等。二、 项目原理分析 在项目用的单片机开发板上单片机的IO 口接四位数码管的各段。同时开发板共阴数码管的阴极由138 译码器的输出端控制。在该项目中我采用了数码管的动态显示,即每位数码管点亮 2ms 时间左右,由于人的视觉暂留现象及发光二极管的余辉效应,只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,
2、不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O 端口,而且功耗更低。在实现了数码管的动态显示的基础上在主程序中通过计算定时器1的中断次数,从而得到计时时间和秒表时间的基准时间。同时在主程序中添加按键处理程序,实现时钟的开始、中断和校时,同时实现闹钟定时和切换显示等功能,还有秒表计时功能。三、 硬件电路图以及原理3.1 硬件电路图如下:3.2硬件原理:该项目中,主要的功能模块有:数码管显示模块;按键模块;蜂鸣器模块。数码管显示模块主要是由芯片PIC16F877A内部的定时器1的定时中断实现数码管的动态显示。按键模块主要利用矩阵式按键实现多按键功能,矩阵式按键原理是在一端加高
3、电平,然后检测另一端是否为高电平来判断按键是否按下,通过不同的定义可以让按键实现不同的功能。蜂鸣器模块通过三极管的开关作用和驱动作用由芯片控鸣叫与否。四、程序说明以及程序流程图该时钟默认显示页面为时钟计时页面,按键SW1 控制时钟、秒表的开始和中断,按按键SW1一次,如果数码管在显示秒表,则开始计秒功能;否则,开始正常计时;再按一次SW1则实现中断功能。按键SW2实现是数码管的选位,从第一个数码管开始,按一次就选中下一位数码管,循环选择。SW3实现的是加1功能,每按一次就在SW2选中的位上加1。SW4是实现数码管切换显示功能,按一次就进入闹钟调时的显示页面,再按一次就进入秒表显示页面,实现数码
4、管显示在时钟计时、闹钟定时和秒表计时这三个不同页面的循环切换显示。图1是时钟、秒表计时开始和中断,以及闹钟提醒的流程图;图2是显示页面的却换流程图;图3是校时和定时流程图。下面就是程序的流程图:上电图1图2上电SW1按下SW4每按一次h加1(1=3)是h=3h=3h=2h=1h=1否闹钟时钟计时 秒表计时显示时钟页面显示时钟页面显示秒表页面整点报时,闹钟提醒上电图3SW1再按下SW2每按一次a加1(1=4) h=3 是a=1a=4a=3a=2否SW3按下SW3按下SW3按下SW3按下 秒表计时中断,时钟正常计时时钟计时中断h=2h=2h=2h=1h=1h=1h=2h=1闹钟分钟十位加1闹钟小时
5、十位加1时钟小时十位加1闹钟分钟个位加1时钟分钟个位加1时钟分钟十位加1闹钟小时个位加1时钟小时个位加1五、程序清单(要求有详尽的注释)main()/主函数int a=1,b,z,h=1;/定义一个标志位a,bints1=0,s2=0,s3=0,s4=0; /时钟小时分钟的十位和个位int n1=0,n2=0,n3=0,n4=0;/闹钟小时分钟的十位和个位int m1=0,m2=0,m3=0,m4=0;/秒表的标志位static bit biaozhi=0;/时钟的静态标志位static bit mbz=0;/秒表的静态标志位ADCON1=0X06;/初始化TRISA=0X00;TRISB=0
6、X01;/外部中断输入PORTB=0X00;TRISD=0X01;/设置RD0输入 PORTD=0X01;/设置RD0输入TRISE=0X00;timer1init();/定时器1初始化INTE=1; /外部中断使能INTEDG=1;/外部中断上升沿RA1=1;/使能138译码器LED1=0;LED2=0;LED3=0; LED4=0;/数码管1显示4while(1)RD4=1;/ 按键SW1一端高电平 if(RD0=1)/ 判断按键是否按下 delay(10);/ 延时10mS去键抖 if(RD0=1)/再次确认按键是否按下 RD2=1;delay(30);RD2=0; /蜂鸣器响30mS
7、if(h=3) /判断是否是秒表显示页面 mbz=!mbz;t=0; /秒表标志位取反,开始计时或中断 else biaozhi=!biaozhi;time=0;/时钟标志位取反,开始计时或中断 while(RD0=1);/等待放手 RD4=0; RD5=1; /按键SW2一端高电平 if(RD0=1)/ 判断按键SW2是否按下 delay(10);/ 延时10mS去键抖 if(RD0=1)/再次确认按键SW2是否按下 RD2=1;delay(30);RD2=0;/蜂鸣器响30mS a+;/位选标志位加1 if(a=5) a=1; if(a=1) b=LED1;/先关闭数码管300毫秒,然后再
8、点亮 LED1=10; delay(300);/延时300毫秒 LED1=b; if(a=2) b=LED2;/先关闭数码管300毫秒,然后再点亮 LED2=10; delay(300);/延时300毫秒 LED2=b; if(a=3) b=LED3;/先关闭数码管300毫秒,然后再点亮 LED3=10; delay(300);/延时300毫秒 LED3=b; if(a=4) b=LED4;/先关闭数码管300毫秒,然后再点亮 LED4=10; delay(300);/延时300毫秒 LED4=b; while(RD0=1);/ 等待放手 RD5=0; RD6=1;/按键SW3一端高电平 if
9、(RD0=1)/ 判断按键SW3是否按下 delay(10);/ 延时10mS去键抖 if(RD0=1)/再次确认按键SW3是否按下 RD2=1;delay(30);RD2=0;/蜂鸣器响30mS if(h=1)/判断显示标志位 LED1=s1;LED2=s2;LED3=s3;LED4=s4;/数码管显示时钟页面 if(a=1) s1+;/如果位选标志位a=1,则小时十位加1 if(a=2) s2+;/如果位选标志位a=2,则小时个位加1 if(a=3) s3+;/如果位选标志位a=3,则分钟十位加1 if(a=4) s4+;/如果位选标志位a=4,则分钟十位加1 if(s1=3)s1=0;
10、/使时钟在校时时也能按计时规则进行 if(s12) if(s2=10)s2=0; if(s1=2) if(s2=4)s2=0; if(s3=6)s3=0; if(s4=10)s4=0; if(h=2)/判断显示标志位 LED1=n1;LED2=n2;LED3=n3;LED4=n4;/数码管显示闹钟定时页面 if(a=1)n1+; /如果位选标志位a=1,则小时十位加1 if(a=2) n2+;/如果位选标志位a=2,则小时个位加1 if(a=3) n3+;/如果位选标志位a=3,则分钟十位加1 if(a=4)n4+; /如果位选标志位a=4,则分钟十位加1 if(s1=3)s1=0; /使闹钟
11、在定时时也能按计时规则进行 if(s1=400)/time为定时器1的中断次数,利用定时器1提供的2.5mS的基准时间计时 time=0; z+;/1秒计算 if(z=60)s4+;z=0; /时钟计时 if(s4=10) s3+;s4=0; if(s3=6) s2+;s3=0; if(s1=40) RD2=0; if(s3=0&s4=0) /整点报时 RD2=1;/蜂鸣器响 if(time=40) RD2=0; if(mbz)/判断秒表标志位 if(t=40)/实现秒表0.1秒精度 t=0;/秒表计时 m4+; if(m4=10) m3+;m4=0; if(m3=10) m2+;m3=0; if(m2=6) m1+;m2=0; if(m1=10) m1=0; 六、心得体会在这次的时钟项目中,我根据一些电子钟的功能要求,在这个时钟项目中集成了较多的功能,包括常用的时钟、闹钟、整点报时、校时和定时功能,另外我还新增了一个秒表的功能;所以这个时钟的功能还是比较强大的。但对于我的设计来说却是一个挑战,因为我还没有编写过多显示页面的程序,后来我通过定义标志位来实现数码管显示页面的切换,但这种方法原理虽然简单,但程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省湛江市重点学校高一入学语文分班考试试题及答案
- 2026年宁夏高职单招(英语)真题试卷及答案
- 潍坊单招试题真题及答案
- 单招试题及答案
- 模拟电网考试题及答案
- 汽车拆解零部件质量检测服务项目可行性研究报告
- 广东汕头市潮阳区棉城中学2025-2026学年高二下学期7月期末语文试题(文字版含答案)
- 陕西宝鸡市陇县2025-2026学年度第二学期期末教学质量检测七年级地理试卷(文字版含答案)
- ISO 30201-2026《人力资源管理体系-要求》之“10改进”条款理解和应用(实施)专业指导材料(雷泽佳编制-2026A0)
- 2026届贵州省黔南布依族苗族自治州高三第一次调研测试语文试卷含解析
- 2025年全国农业综合行政执法大比武历年参考题库含答案详解(5套)
- 地质灾害隐患排查台账
- 项目内部签证管理办法
- 客户信用评级管理制度
- T/CAEPI 61-2023颗粒活性炭吸附-蒸汽脱附溶剂回收装置技术要求
- 充气救援艇救援技术理论标准课程(2024版)
- 某上市公司财务票据管理制度
- DB11 1027-2013 防火玻璃框架系统设计、施工及验收规范
- 2024年江苏省张家港市文化中心管委办招聘3人历年(高频重点复习提升训练)共500题附带答案详解
- YST 63.7-2024《铝用炭素材料检测方法 第7部分:表观密度的测定 尺寸法》
- CJJT146-2011 城镇燃气报警控制系统技术规程
评论
0/150
提交评论