时钟计时器的课程设计.doc_第1页
时钟计时器的课程设计.doc_第2页
时钟计时器的课程设计.doc_第3页
时钟计时器的课程设计.doc_第4页
时钟计时器的课程设计.doc_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

目录第一章 课程设计目的. 2第二章 设计原理与分析. 2第三章 所选原件清单. 6第四章 课程设计程序7第五章 课程设计心得14 第六章 参考文献. 14第一章 课程设计目的 1. 掌握stc89c52编程原理。a.掌握stc89c52可编程并行接口的工作原理及初始化方法,验证各种工作方式的功能。b.掌握用stc89c52扩展pc机并行接口的方式。c.了解stc89c52工作在方式1时,利用应答信号控制数据传输的过程。2.了解键盘电路的工作原理。 矩阵键盘又称为行列式键盘,它是用4条i/o线作为行线,4条i/o线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中i/o口的利用率。3.掌握键盘接口电路的编程方法。 设计人机界面接口,要求在微机屏幕上动态地显示当前实验的内容和实验的结果,包括stc89c52的工作方式,输入的数据和输出的结果 设计人机界面接口,要求在微机屏幕上,以菜单方式列出并行接口stc89c52原理实验的内容,并根据实验内容设置好工作方式选择跳线开关,用户可以通过键盘选择实验的内容。第二章 设计原理与分析2.1、实验原理: 为了实现led显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口要复杂些,又考虑到时钟显示只有6位,且系统没有其他复杂的处理任务,所以决定采用动态扫描法实现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的小蜂鸣器,用于按键发音及定时提醒、整点到时提醒等;为了提供共阳led数码管的列扫描驱动电压,用三极管9012做电源驱动输出;采用12mhz晶振,可提高秒计时的精确性。 图3-1实验电路图软件设计主程序本设计中计时采用定时器t0中断完成,秒表使用定时器t1中断完成。主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。其主程序执行流程如下图显示子程序时间显示子程序每次显示6个连续内存单元的十进制bcd码数据,首地址在调用显示程序时现指定。定时器t0中断服务程序定时器t0用于时间计时。定时溢出中断周期设为50ms,中断进入后先进行定时中断初值校正,当中断里累计20次时,对秒计数单元进行加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 reload_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,0x0a,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);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;discode5=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:cnthour-; if(cnthour=-1) cnthour=23; break; case 0x7e: cnthour+; break; 附 录b;作品实物图片 第五章 课程设计心得 在此次设计中,我们得到以下体会:一、 在这次时钟计时器设计的过程让我进一步熟悉keil及proteus的使用。 二、重新复习并进一步学习了单片机,明确了研究目标。 三、在后的设计中,既要想到电路器件的联合使用,又要灵活变通,举一反三。四、在焊接方面,我们了解到焊接某些器件时,要先消去电烙铁上的静电,防止静电对芯片特别是放大器件造成伤害,焊接二极管、三极管等芯片时要快,防止持续高温损坏芯片。我们在焊接时争取一次性焊接成功,当焊接好时再去检查时非常困难,所以要非常的仔细。第六章 参考文献1 李泉溪单片机原理

温馨提示

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

评论

0/150

提交评论