我是靠谱客的博主 勤劳水杯,最近开发中收集的这篇文章主要介绍基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、本例使用定时器T0的定时中断来控制P1.0端口的LED闪烁,定时周期为100MS,LED点亮50MS,熄灭50ms。
2、实现方法:首先将定时器设置为定时方式,然后选择工作方式,在使用定时中断前要先打开总中断,然后再打开定时中断。定时的初值根据计算好的值进行设置,在定时中断中还要重新装载定时初值。
3、在keil c51中新建工程ex45,编写如下程序代码,编译并生成ex45.hex文件
#include <reg51.h>   //包含头文件
 sbit LED=P1^0;      //端口位定义
 //主函数
 void main(void)
 {
   EA = 1;     //开总中断
 ET0 = 1;    //定时器T0中断允许
 TMOD = 0x01;   // 设置定时器的工作方式
 TH0 = (65536-46083)/256;    //定时器赋初值
 TL0 = (65536-46083)%256;
 TR0 = 1;       //开启定时器
 LED = 1;       //关闭LED
 while(1)
 {
 }
 }
 //定时器0的定时中断服务函数
 void Time0(void) interrupt 1 using 0 
 {
   LED = ~LED;     // 断口点评取反
 TH0 = (65536-46083)/256;    //定时器重新赋初值
 TL0 = (65536-46083)%256;
 }
 
4、 在proteus中新建仿真文件ex45.dsn,电路原理图如下所示:

 
5、将ex45.hex文件载入at89c51中,启动仿真,按动按键,观察程序运行结果,下图是某一时刻程序运行结果

最后

以上就是勤劳水杯为你收集整理的基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例的全部内容,希望文章能够帮你解决基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部