单片机原理与应用电子时钟设计_第1页
单片机原理与应用电子时钟设计_第2页
单片机原理与应用电子时钟设计_第3页
单片机原理与应用电子时钟设计_第4页
单片机原理与应用电子时钟设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖南工程学院课 程 设 计课程名称 单片机原理与应用 课题名称 电子时钟设计 专 业 电子科学与技术 班 级 学 号 姓 名 指导教师_ 2011年7月 4日湖南工程学院课 程 设 计 任 务 书课程名称 单片机原理与应用 课题名称 电子时钟设计 专业班级 电科0802 学生姓名 学 号 08 指导老师 审 批 任务书下达日期 2011年 6月 27 日任务完成日期 2011年 7月 24 日设计内容与设计要求设计内容:本课题以单片机为核心,利用其定时器和6位数码管,设计一个电子时钟。要求有以下功能:开机时,显示00:00:00的时间开始计时;要求有秒,分,时的调节。具有复位功能。设计要求:1

2、)确定系统设计方案; 2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)进行单元电路及应用程序的调试;6)写出使用说明书主 要 设 计 条 件1、mcs-51单片机实验操作台1台;2、pc机及单片机调试软件;3、单片机应用系统板1套;4、制作工具1套;5、系统设计所需的元器件。 说 明 书 格 式1. 课程设计任务书2. 目录3. 说明书内容1)课题的设计要求、目的、意义2)系统总体方案选择与说明3)系统结构框图与工作原理4)各单元硬件设计说明及计算方法5)软件设计与说明(包括流程图)6)调试结果与必要的调试说明7)使用说明8)程序清单9)总结10)参考文献

3、附录附录a 系统原理图附录b 程序清单评分表进 度 安 排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍 下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五、各硬件模块设计第二周星期一、各硬件模块设计星期二、各软件模块设计星期三、各软件模块设计星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资料,答辩参 考 文 献1王迎旭.单片机原理与应用.机械工业出版社.2005.82李全利、迟荣强.单片机原理及接口技术.高等教育社.2004.13孙和平、杨宁、白晶.单片微机原理与接口技术m.冶金工业出版社 2003 目

4、录封面1课程设计任务书1目录5第1章 课题要求,目的及原理框图61.1 课题要求61.2 课题原理61.3 原理框图6第2章 硬软件件设计说明72.1 硬件说明72.2 软件说明72.3 流程图8第3章 使用说明8第4章 程序清单9第5章 总结 14第6章 参考文献 14第1章 课题要求,目的及原理框图1.1,课题要求本课题以单片机为核心,利用其定时器和6位数码管,设计一个电子时钟。要求有以下功能:开机时,显示00:00:00的时间开始计时;要求有秒,分,时的调节。具有复位功能。1.2,课题原理根据单片机的中断计数功能设计电子时钟,在单片机板上,采用动态扫描方式,用数码管显示出来1.3,原理框

5、图闹钟定时 暂停电子时钟清零图1,原理框图第2章 软硬件说明2.1 硬件说明本系统硬件包括三个单稳态开关(用于数字钟对时),三个自锁开关(电源开关、闹钟定时与正常时间显示切换、闹钟开关)、pcb集成电路板一个、12mhz晶振一个,89c51单片机一个、蜂鸣器一个(闹钟报警)、电源接口两个个(电路供电)、四位一体八段数码管两个(显示时间)、1k排阻一个、发光二极管两个(电源指示灯、闹钟指示)。2.2 软件说明程序用tab数组来定义共阴数码管的显示状态;用定时器1来实现电子钟的走时;用外部键盘扫描来实现电子钟的校准,查询方式如下:定义电子钟的初始值为00:00:00。2.3 流程图开始初始化t1设

6、置为16位计数器模式允许t1及外部中断显示程序外部按键中断功能程序图2,程序流程图第3章 使用说明本时钟为二十四小时制带有闹钟功能的电子表,可以校对时间和定闹钟,并可以开启和关闭闹钟。各组件主要功能如下:数码管:主要是用来显示时钟正常时间和闹钟定时时间。按键:s1:复位开关 s2:时间时位加一 s3:时间分位加一 s4:闹钟开关 s5:闹钟定时与正常时间显示切换蜂鸣器(ls1):闹铃报警数码管:d1:闹钟开关指示 d2:电源指示第4章 程序清单#include#include#define uint unsigned int #define uchar unsigned char sbit d

7、uan=p26; /段选sbit wei=p27; /位选sbit tf=p34;sbit ts=p35;sbit zd=p36;sbit ql=p37;sbit fm=p23;uchar num1,num2,num3,tt,i,miao1,miao2,fen1,fen2,shi1,shi2,z,temp,zt,num4,num5,fen11,fen22,shi11,shi22,xs;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00; /段码

8、void display(uchar miao1,uchar miao2,uchar fen1,uchar fen2,uchar shi1,uchar shi2); / 显示void delay(uint z); / 用于显示的延时void init(); /初始化void main() /主函数init();while(1) p3=0xfe;temp=p3;temp=temp&0xf0;while(temp!=0xf0) /键盘扫描delay(5);temp=p3;temp=temp&0xf0;while(temp!=0xf0)temp=p3;switch(temp)case 0xee:nu

9、m1=0;num2=0; num3=0;breakcase 0xde:zt=zt;break;case 0xbe:num2+; if(num2=60) num2=0;break;case 0x7e:num3+;if(num3=24) num3=0;break;while(temp!=0xf0)temp=p3;temp=temp&0xf0;if(tt=20 ) /电子钟的开始计数 tt=0; if(zt=0) num1+; if(num1=60 )num1=0;num2+; if(num2=60) num2=0;num3+; p3=0xfd;temp=p3;temp=temp&0xf0;whil

10、e(temp!=0xf0)delay(5);temp=p3;temp=temp&0xf0;while(temp!=0xf0)temp=p3;switch(temp)case 0xed:num4+;if(num4=60) num4=0;break;case 0xdd:break;case 0xbd:xs+;if(xs=3) xs=0;break; case 0x7d: num5+;if(num5=24) num5=0;break;while(temp!=0xf0)temp=p3;temp=temp&0xf0; miao1=num1%10; /数值转换把数值在数码管上显示出来miao2=num1/

11、10;fen1=num2%10;fen2=num2/10;shi1=num3%10;shi2=num3/10;fen11=num4%10;fen22=num4/10;shi11=num5%10;shi22=num5/10;if(num2=num4)&(num3=num5)fm=0;else fm=1;switch(xs) /用于选择显示电子钟还是定时case 0:display(16,16,16,16,16,16);break;case 1:display(0,0,fen11,fen22,shi11,shi22); break;case 2:display(miao1,miao2,fen1,f

12、en2,shi1,shi2);break;void dinshi() interrupt 1 th0=(65536-50000)/256;tl0=(65536-50000)%256;tt+;void init()wei=0;duan=0;num1=0;num2=0;num3=0;num4=1;num5=1; zt=0;xs=2;tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256;ea=1;et0=1;tr0=1; void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void

13、display(uchar miao1,uchar miao2,uchar fen1,uchar fen2,uchar shi1,uchar shi2) duan=1;p0=tablemiao1;duan=0;p0=0xff;wei=1;p0=0xdf;wei=0;delay(1);duan=1;p0=tablemiao2;duan=0;p0=0xff;wei=1;p0=0xef;wei=0; delay(1); duan=1;p0=tablefen1;duan=0;p0=0xff;wei=1;p0=0xf7;wei=0;delay(1);duan=1;p0=tablefen2;duan=0;

14、p0=0xff;wei=1;p0=0xfb;wei=0;delay(1);duan=1;p0=tableshi1;duan=0;p0=0xff;wei=1;p0=0xfd;wei=0;delay(1);duan=1;p0=tableshi2;duan=0;p0=0xff; wei=1;p0=0xfe;wei=0;delay(1);第4章 总结由于很久没有接触单片机了,所以,对单片机的硬件不是很熟悉,这使我在编程时遇到很多麻烦,所以,我花了一部分时间去熟悉单片机pcb板,在程序编写过程中,遇到的问题主要有两个,一个是闹钟无法加入,另一个是数字钟不精确。刚开始写的程序中显示部分只有一部分动态扫描,

15、及正常时间的显示。这时候的数字钟其实只是一个秒表,因为无法进行闹钟定时。后来想到利用两组动态扫描程序,一组显示正常时间一组显示闹钟定时显示。但当我将正常时间显示程序复制加上用作闹钟定时显示时发现切换到闹钟定时时显示的时间仍然在一秒一秒的增加跟正常时间显示一摸一样。后来才知道闹钟定时所用的时分秒变量不能跟正常时间显示所用的变量相同。后来,这个问题解决了,然而,闹钟的加入还依旧是一个问题,不过,经过我仔细的思考,一步一步的编程,这个问题也得到了解决第5章 参考文献1王迎旭.单片机原理与应用.机械工业出版社.2005.82李全利、迟荣强.单片机原理及接口技术.高等教育社.2004.13孙和平、杨宁、白晶.单片微机原理与接口技术m.冶金工业出版社 2003电气信息学院课程设计评分表项 目评 价优良中及格差设计方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论