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