您所在的位置:e-works首页 > 产品创新数字化(PLM) >

2010产品创新数字化峰会征文: 基于Proteus的MCS-51定时器控制仿真

发表时间:2010/11/19 刘涛 来源:e-works
本文首先介绍了MCS-51单片机的定时器/计数器,又设计了使用定时器T1控制LED间隔一秒闪烁的汇编程序,进而介绍了Proteus软件的基本情况,设计了本系统的Proteus电路。最后给出了本系统的仿真结果。

 1 引言

    MCS-51系列的单片机一般有两个内部的16位定时器/计数器,分别称为T0和T1.这两个计数器分别是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536。

    单片机中的定时器和计数器是复用的,计数器是记录外部脉冲的个数,而定时器则是由单片机提供的一个非常稳定的计数源。定时器是由单片机的晶振经过12分频后获得的一个脉冲源。当单片机的晶振为12MHZ时,计数值1代表的时间就是1us。计数器的容量是16位,也就是最大的计数值到65536,因此计数计到65536就会产生溢出。当定时器/计数器溢出时,就会使得相关的寄存器标志产生变化,单片机将由此而产生定时中断,在中断服务程序中处理定时到而需要完成的任务。

2 程序设计

    本例晶振采用12M Hz,定时器采用工作方式2,即8位自动重装方式,定时器100 us中断一次,对中断计数10000次控制灯亮灯灭,即时间间隔为1s。主程序与定时器中断服务程序如图1与图2所示。

图1 主程序

图1 主程序

图2 定时器中断服务程序
 
图2 定时器中断服务程序

    程序代码如下:

本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:许小倩