找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2596|回复: 0
打印 上一主题 下一主题
收起左侧

用单片机定时器T1中断控制两个LED以不同周期闪烁程序

[复制链接]
跳转到指定楼层
楼主
ID:27254 发表于 2020-2-21 08:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
此程序为51单片机用定时器T1中断控制两个LED以不同周期闪烁,可以通过它直观了解如何使用51单片机定时器,对学习串口通讯等有一定帮助。文件内包括仿真。

单片机源程序如下:

  1. #include<reg51.h>  //  包含51单片机寄存器定义的头文件
  2. sbit D1=P2^0;  //将D1位定义为P2.0引脚
  3. sbit D2=P2^1;  //将D2位定义为P2.1引脚
  4. unsigned char Countor1; //设置全局变量,储存定时器T1中断次数
  5. unsigned char Countor2; //设置全局变量,储存定时器T1中断次数
  6. /**************************************************************
  7. 函数功能:主函数
  8. **************************************************************/
  9. void main(void)
  10. {
  11.    EA=1;                  //开总中断
  12.         ET1=1;                 //定时器T1中断允许         
  13.         TMOD=0x10;             //使用定时器T1的模式1
  14.         TH1=(65536-46083)/256; //定时器T1的高8位赋初值
  15.         TL1=(65536-46083)%256; //定时器T1的高8位赋初值
  16.         TR1=1;                 //启动定时器T1
  17.         Countor1=0;            //从0开始累计中断次数
  18.         Countor2=0;            //从0开始累计中断次数
  19.         while(1)//无限循环等待中断
  20.        ;
  21. }
  22. /**************************************************************
  23. 函数功能:定时器T1的中断服务程序
  24. **************************************************************/
  25. void Time1(void) interrupt 3 using 0 //“interrupt”声明函数为中断服务函数
  26.                  //其后的3为定时器T1的中断编号;0表示使用第0组工作寄存器
  27. {
  28.    Countor1++;   //Countor1自加1
  29.         Countor2++;   //Countor2自加1
  30.         if(Countor1==2)  //若累计满2次,即计时满100ms
  31.                 {
  32.                    D1=~D1;     //按位取反操作,将P2.0引脚输出电平取反
  33.                         Countor1=0;  //将Countor1清0,重新从0开始计数
  34.                 }
  35.         if(Countor2==8)  //若累计满8次,即计时满400ms
  36.                 {
  37.                    D2=~D2;     //按位取反操作,将P2.1引脚输出电平取反
  38.                         Countor2=0;  //将Countor1清0,重新从0开始计数
  39.                 }               
  40.           TH1=(65536-46083)/256; //定时器T1的高8位重新赋初值
  41.         TL1=(65536-46083)%256; //定时器T1的高8位重新赋初值
  42. }
复制代码

全部资料51hei下载地址:
ex45.rar (33.91 KB, 下载次数: 12)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表