实验五——电子秒表显示器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验五——电子秒表显示器

实验课程: 单片机原理及应用 实验名称: 实验五——电子秒表显示器 实验日期: 2013 年 4 月 12 日 一、 实验目的 掌握定时/计数器的工作原理,熟悉定时/计数器中断法编程与调试内容。 二、 实验内容 1、按图绘制实验五电路原理图: 2、采用12MHz晶振,50ms T0定时方式1+中断(20次中断为1s)法编程: 3、实现如下功能程序运行开始时先显示“00”,随后显示数值逐渐增大。待计数到59后,自动从“00”开始。 4、观察仿真结果,完成实验报告。 三、 实验要求 提交的实验报告中应包括电路原理图,T0定时方式1中断原理阐述,源程序(含编程分析与源程序),运行效果图,实验小结。 提交实验报告的电子邮件主题及存盘 1、电路原理图 电路分析上图为实验原理图。电路由80C51芯片,两个开关LED显示器,电阻,还包括时钟电路和复位电路组成。上拉电阻接在P0口,因为P0口内部没有上拉电阻,为使漏极开路有效,必须通过外接上拉电阻与电源连通。 数码管的初始显示值为00:当1s产生时,秒计数器加1: 秒计数到60时清零,并从“00”重新开始,如此周而复始的进行下去。定时器T0每50ms产生一次中断,每产生20次中断时,秒计数器加1并将数值显示在数码管上,其中P0口显示十位,P1口显示个位,定时1s无限循环。 2、T0定时方式1中断原理阐述 当M1M0=01时(定时器的工作与方式1。方式1为16位的定时/计数器,满计数值为2^16,初值不能自动重装。定时器Tx工作于方式1的逻辑结构框图如下图,当Tx工作于方式1时,由THx作为高8位,TLx作为低8位,构成一个16位的计数器。若Tx工作于定时方式1,计数初值位a,则其定时时间按下式计算: 定时时间: t=(2^16-a)*12/fosc (us) 最大计数值为65536。 3、C51程序(含程序流程图与源程序) 源程序, #includereg51.h unsigned char count=0; //定义中断次数计数器,count unsigned char second=0; //定义秒计数器,second unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d ,0x7d,0x07,0x7f,0x6f}; //定义显示字模数组并赋初值)table[ ] timer0() interrupt 1 //T0中断函数声明 { count++; //count增1 if(count==20) { //若count =20, count清零, second增1 count=0; second++; } if(second==60) second=0; //若second =60,second清零 P0=table[second/10]; //P0与P2口分别显示count值 P2=table[second%10]; TH0=0x3c; //T0重装载计数初值 TL0=0xb0; } main() //主函数声明 { TMOD=0x01; //T0定时(50ms)方式1初始化 TH0=0x3c; //T0赋计数初值 TL0=0xb0; P0=table[second/10]; //P0与P2口显示“00”值 P2=table[second%10]; ET0=1; //启动T0 EA=1; //开中断 TR0=1; while(1); //原地循环 } 4、仿真运行效果 如上图所示(数码管的初始显示值为00)当1s产生时(秒计数器加1)秒计数到60时清零(并从“00”重新开始(如此周而复始的进行下去。定时器T0每50ms产生一次中断(每产生20次中断时(秒计数器加1并将数值显示在数码管上(其中P0口显示十位(P1口显示个位(定时1s无限循环。 5、实验小结 通过实验对Protues有了更多的了解(同时了解到计时系统在实际中的更好应用。经过编程操作起来更加熟练(能很快的完成绘图(编程时也更得心应手(能熟练

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档