时钟计时器的课程设计.doc

上传人:西安人 文档编号:5023337 上传时间:2020-01-29 格式:DOC 页数:14 大小:1.11MB
返回 下载 相关 举报
时钟计时器的课程设计.doc_第1页
第1页 / 共14页
时钟计时器的课程设计.doc_第2页
第2页 / 共14页
时钟计时器的课程设计.doc_第3页
第3页 / 共14页
时钟计时器的课程设计.doc_第4页
第4页 / 共14页
时钟计时器的课程设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《时钟计时器的课程设计.doc》由会员分享,可在线阅读,更多相关《时钟计时器的课程设计.doc(14页珍藏版)》请在三一文库上搜索。

1、目录第一章 课程设计目的. 2第二章 设计原理与分析. 2第三章 所选原件清单. 6第四章 课程设计程序7第五章 课程设计心得14 第六章 参考文献. 14第一章 课程设计目的 1. 掌握stc89c52编程原理。a.掌握stc89c52可编程并行接口的工作原理及初始化方法,验证各种工作方式的功能。b.掌握用stc89c52扩展PC机并行接口的方式。c.了解stc89c52工作在方式1时,利用应答信号控制数据传输的过程。2.了解键盘电路的工作原理。 矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的

2、个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。3.掌握键盘接口电路的编程方法。 设计人机界面接口,要求在微机屏幕上动态地显示当前实验的内容和实验的结果,包括stc89c52的工作方式,输入的数据和输出的结果 设计人机界面接口,要求在微机屏幕上,以菜单方式列出并行接口stc89c52原理实验的内容,并根据实验内容设置好工作方式选择跳线开关,用户可以通过键盘选择实验的内容。第二章 设计原理与分析2.1、实验原理: 为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口要复杂些,又考虑到时钟显示只有6位,且系统没有其他复

3、杂的处理任务,所以决定采用动态扫描法实现LED的显示。 单片机采用易购的AT89S52系列,这种单片机具有足够的空余硬件资源,可以实现其他的扩充功能。如果考虑使用电池供电,则可采用LV系列单片机。时钟计时器电路系统的总体设计框图如下所示stc89S52 P0单片机控制器 P2 P26位LED显示器4*4键盘 列驱动蜂鸣器2.2、实验电路:硬件设计时钟计时器的硬件电路如图所示。该电路采用AT89S52单片机最小化应用实际;采用共阳7段LED显示器;P0口输出段码数据;P2.0P2.5口作列扫描输出;P1.0、P1.1、P1.2、和P1.3口接4个按键开关,用于调时及功能设置;P1.7端口接5v的

4、小蜂鸣器,用于按键发音及定时提醒、整点到时提醒等;为了提供共阳LED数码管的列扫描驱动电压,用三极管9012做电源驱动输出;采用12MHZ晶振,可提高秒计时的精确性。 图3-1实验电路图软件设计主程序本设计中计时采用定时器T0中断完成,秒表使用定时器T1中断完成。主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。其主程序执行流程如下图显示子程序时间显示子程序每次显示6个连续内存单元的十进制BCD码数据,首地址在调用显示程序时现指定。定时器T0中断服务程序定时器T0用于时间计时。定时溢出中断周期设为50ms,中断进入后先进行定时中断初值校正,当中断里累计20次时,对秒计

5、数单元进行加1操作。时钟计数单元地址分别在70H71H、76H77H、78H79H中,最大计时值为23时59分59秒。7AH单元内存放“熄灭符“数据(#0A),用于时间调整时的闪烁功能。在计数单元中,采用十进制BCD码计数,满10进位。流程图如下 第三章 所选元件清单元件数量共阳四位数码管最小型2S8550三极管81K电阻8150851最小系统1第四章 课程设计程序附 录A;源程序#include#define uchar unsigned char#define uint unsigned int#define RELOAD_H ( 65536-50000)/256; #define REL

6、OAD_L ( 65536-50000)%256;uchar thour,bhour,tmin,bmin,ts,bs,i,key;uint cntnum,cntflag,cnt1s,cnt1min,cnthour;bit flag1ms,flag2ms;uchar code disbuf= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff;uchar code discs= 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f ;unsigned char DisCode = 0x0b,0x0b,0

7、x0a,0x0b,0x0b,0x0a,0x0b,0x0b;void timer0init() TMOD=0X01; TL0=RELOAD_L; TH0=RELOAD_H; EA=1; ET0=1; TR0=1; void timer()if(cnt1s=60) cnt1s=0; cnt1min+; if(cnt1min=60) cnt1min=0; cnthour+;if(cnthour=24) cnthour=0; void timer0isr() interrupt 1 TL0=RELOAD_L;TH0=RELOAD_H;cntnum+; /flag1ms=1; if(cntnum=2);

8、flag2ms=1;if(cntnum=20) cntnum=0;cnt1s+; void main() i=0; cntnum=0;cnt1s=0; cnt1min=0;cnthour=0xc; timer0init(); while(1) timer();thour=cnthour/10; bhour=cnthour%10; tmin=cnt1min/10; bmin=cnt1min%10; ts=cnt1s/10; bs=cnt1s%10;DisCode0=thour; DisCode1=bhour;DisCode2=0x0a;DisCode3=tmin;DisCode4=bmin;Di

9、sCode5=0x0a;DisCode6=ts; DisCode7=bs;P2=0xff; P0=0xff; /while(flag1ms=1) /flag1ms=0;if(i=8) ;i=0;P2=discsi; P0=disbufDisCodei; i+;/ while(flag2ms=1) flag2ms=0; P1=0xfe; key=P1; key=key&0xf0; key=P1; switch(key) case 0xee:cnt1min-;if(cnt1min=-1) cnt1min=59; break; case 0xde:cnt1min+; break; case 0xbe

10、:cnthour-; if(cnthour=-1) cnthour=23; break; case 0x7e: cnthour+; break; 附 录B;作品实物图片 第五章 课程设计心得 在此次设计中,我们得到以下体会:一、 在这次时钟计时器设计的过程让我进一步熟悉KEIL及Proteus的使用。 二、重新复习并进一步学习了单片机,明确了研究目标。 三、在后的设计中,既要想到电路器件的联合使用,又要灵活变通,举一反三。四、在焊接方面,我们了解到焊接某些器件时,要先消去电烙铁上的静电,防止静电对芯片特别是放大器件造成伤害,焊接二极管、三极管等芯片时要快,防止持续高温损坏芯片。我们在焊接时争取一次性焊接成功,当焊接好时再去检查时非常困难,所以要非常的仔细。第六章 参考文献1 李泉溪单片机原理与应用实例仿真,北京航空航天大学出版社20092 李光飞 楼然苗.单片机课程设计指导,北京航空航天大学出版社,20073 崔光照 单片机原理与接口技术,北京邮电大学出版社,20074 杜树春 单片机应用系统开发实例详解,机械工业出版社,20075 王宜怀 单片机原理及其嵌入式应用教程,北京希望电子出版社,2002 14

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1