ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:123.81KB ,
资源ID:16896102      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16896102.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(89C51单片机课程设计之秒表设计实验报告Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

89C51单片机课程设计之秒表设计实验报告Word文档格式.docx

1、5 相关查阅资料1. 课程设计的目的和任务1.1单片机秒表课程设计的概述一、课程设计题目秒表系统设计用STC89C52RC设计一个4位LED数码显示“秒表”,显示时间为00.0099.99秒,每10毫秒自动加一,每1000毫秒自动加一秒。二、增加功能增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。三、课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程。四、课程设计内容提要本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、

2、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有两个开关按键:其中key1按键按下去时开始计时,即秒表开始键(同时也用作暂停键),key2按键按下去时数码管清零,复位为“00.00”.五、课程设计的意义1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。2)掌握定时器、外部中断的设置和编程原理。3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现

3、实意义六、课程设计仪器a) 集成电路芯片8051,七段数码管,89C51单片机开发板b) MCS-51系列单片机微机仿真课程系统中的软件(Keil uvision2)。该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.2,P3.5作为按键的入口;定时器T1作为每0.01秒加一的定时器。其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。方框图如下图1:开关MCS-51AT89C52RCLED显示 图1数字秒表设计导向1.3.1 设计

4、指标 。了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、99秒、清零等功能,精确到0.01秒。要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。1.3.2 设计要求1画出电路原理图(或仿真电路图);2软件编程与调试;3电路仿真与调试;2软件与硬件设计单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、IO接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应

5、用程序。在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和IO接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。1

6、1.0592MHz晶振2个独立式的按键电源指示灯电源开关4个数码管显示STC89C52RC 图2系统硬件结构框此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义。其次还有显示程序、按键扫描及处理程序、时钟程序和倒计时程序,系统软件流程图图如图 3所示:开始系统初始化While (1)数码管显示选择按键的扫描及处理图33.1 源程序及注释/*- 名称:数码管显示,按键控制秒表 论坛: 编写:shifang 日期:2009.5 修改:无 内容:中断按键控制,数码管显示,中断0控制计时和停止,中断1清零-*/#include /包含

7、头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义unsigned int msecond,second;/定义全局变量bit GoFlag;/定义停止,计时标志#define DataPort P0 /定义数据端口 程序中遇到DataPort 则用P0 替换sbit LATCH1=P22;/定义锁存使能端口 段锁存sbit LATCH2=P23;/ 位锁存sbit KEY=P32;unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09unsigned c

8、har code dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分别对应相应的数码管点亮,即位码unsigned char TempData8; /存储显示值的全局变量void DelayUs2x(unsigned char t);/函数声明 void DelayMs(unsigned char t);void Display(unsigned char FirstBit,unsigned char Num);void Init_Timer0(void);void CLR(void);/*- 主函数void main (void)un

9、signed char num=0; EX0=1; /外部中断0开 IT0=1; /IT1=0表示边沿触发 EX1=1; /外部中断1开 IT1=1; /IT1=1表示边沿触发 Init_Timer0();while (1) /主循环 TempData0=dofly_DuanMasecond/10;/分解显示信息,如要显示68,则68/10=6 68%10=8 TempData1=dofly_DuanMasecond%10; TempData2=0x40;/ - TempData3=dofly_DuanMamsecond/10; TempData4=dofly_DuanMamsecond%10

10、; /主循环中添加其他需要一直工作的程序 显示函数,用于动态扫描数码管 输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示 如输入0表示从第一个显示。 Num表示需要显示的位数,如需要显示99两位数值则该值输入2void Display(unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort=0; /清空数据,防止有交替重影 LATCH1=1; /段锁存 LATCH1=0; DataPort=dofly_WeiMai+FirstBit; /取位码 LATCH2=1

11、; /位锁存 LATCH2=0; DataPort=TempDatai; /取显示数据,段码 i+; if(i=Num) i=0; 定时器初始化子程序void Init_Timer0(void) TMOD |= 0x01; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 /TH0=0x00; /给定初值 /TL0=0x00; EA=1; /总中断打开 (总中断控制开关) ET0=1; /定时器中断打开 (允许中断0的发生) TR0=1; /定时器开关打开 (定时器T0开始工作) 定时器中断子程序void Timer0_isr(void) interrupt 1 stati

12、c unsigned char num; TH0=(65536-2000)/256; /重新赋值 2ms TL0=(65536-2000)%256; Display(0,8); if(GoFlag) num+; if(num=5) num=0; msecond+; if (msecond=100)/100进1 msecond=0; second+;/秒加1 if(second=100) second=0; 外部中断0程序void ISR_INT0(void) interrupt 0 if(!KEY) /如果检测到低电平,说明按键按下 DelayMs(20); /延时去抖,一般10-20ms i

13、f(!KEY) /再次确认按键是否按下,没有按下则退出 GoFlag=!GoFlag; /利用外部中断打开和关闭定时标志 用于开始和停止计时 外部中断1程序void ISR_INT1(void) interrupt 2if(GoFlag=0)/停止时才可以清零 CLR();/*- 数值清零void CLR(void) /利用外部中断清零void DelayUs2x(unsigned char t) while(-t);void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245);图4按键原理图 图5显示电路图6电源电路原理图通过

14、最后软件对程序的编译,组建,执行,还有最终生成.hex文件,把.hex下载到TX-1C开发板的STC89C52RC单片机上的最终效果图如下:下图: 开始运行,执行自动加1下图为复位后的显示“开始自加”运行,一直加到99秒 以下是我在设计这个秒表过程中所总结的心得,整个过程主要是:设计程序-修正程序 -扩展功能-完善程序,经过自己的独立思考与查阅相关知识,最终完成这个作品.心得体会通过对本次课程的课程设计,使自己深刻的认识到自己的很多不足之处,在实际动手操作能力的不足,在进行程序编程时,自己需要,认真审题,看懂题目的要求!对于软件编程不益太简单或者太难。做到既能把课题完成又能锻炼自己的能力!根据

15、课题要求,复习相关的知识,查询相关的资料。根据课程条件,找到适合的方案,找到需要的元器件及工具,准备课程。根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序和增加额外的功能程序。然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。还要根据课程的实际情况,添加些额外程序来使系统更加的稳定,如开关的去抖(采用延迟)。程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。该课程设计的程序可以参考MCS-51系列单片机,也可自己根据自己熟悉的方法来编程如单片机C语

16、言。在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。这次的单片机课程设计重点是理论与实际的相结合。该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。2011年 12 月 23 日教师评语 年 月 日成绩及签名 年 月 日 5 相关资料查阅【1】孙育才编著.MCS-51系列单片微型计算机及其应用.东南大学出版社.2009.12【2】郭天祥编著.51单片机C语言教程-入门、提高、开发、拓展全攻略.电子工业出版社.2010.05【3】刘刚编著.Protel DXP 2004 SP2原理图与PCB设计.电子工业出版社.2009.07【4】丁峻岭主编.C语言程序设计.中国铁道出版社.2009.12

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1