本文是关于52单片机定时器计数器2做为普通的16位自动重装定时器使用,类似于定时器计数器0和定时器计数器1工作在方式1下。以下程序在Keil 2和Keil 3下调时通过,下载在本校的实验板上达到预期效果。AT89C52及其以上、AT89S52及其以上、STC89C52及其以上测试正常运行。

/***********************************************************
程序功能:52系列单片机定时器计数器2使用
程序设计:燕山大学 鲁信琼
晶振选择:24MHz, 如果晶振不匹配,请修改延时函数参数;P2^6口接数码管段选控制位; P2^7口接数码管位选控制位; P1^7口作为测试指示灯
本实验注意事项:
1. 定时器2的中断使能为IE^6位,也就是ET2; 中断服务程序标号为5。
2. 定时器2工作在16为自动重装模式下,不需要在中断服务程序中重新赋初值,在程序初始化的时候我们应该给RCAP2L和RCAP2H赋值,TH2和TL2将会在中断产生时自动使TH2=RCAP2H,TL2=RCAP2L。
3. 定时器2的中断标志位TF2不能够由硬件清零,所以要在中断服务程序中将其清零,为了使定时尽量准确,我们常在终端服务程序中第一步就使TF2=0。
4. 使定时器2产生中断的有两个中断源,如果EXEN2(定时器2外部使能标志)置1的话,使定时器2进入中断的有可能是定时器2计数溢出,也可能是捕获到T2EX(单片机P1^1口)有负跳变,所以需要在中断服务程序中判断EXF2是否为1。承接51单片机、PIC单片机程序、VB/VC++上位机程序、电子产品软硬件设计开发工作EMail: xqlu(at)ysu.net.cn  QQ: 9790335
***********************************************************/#include
#include
#define uchar unsigned char
#define uint unsigned int
#define LED_DATA P0
sbit DULA=P2^6;
sbit WELA=P2^7;
sbit LED=P1^7;
uchar timer2_ctr,num;
uchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x40, 0};//24MHz晶振延时x毫秒函数
void delay_ms(uint xms)
{uint x,y;for(x=xms; x>0; x--)for(y=248; y>0; y--);
}//初始化主函数
void init_main()
{DULA=0;               //关闭数码管显示WELA=0;RCAP2H=(0xFFFF-50000)/256;RCAP2L=(0xFFFF-50000)%256; //24MHz晶振下定时25ms,自动重装TH2=RCAP2H;TL2=RCAP2L;            //定时器2赋初值T2CON=0;          //配置定时器2控制寄存器,这里其实不用配置,T2CON上电默认就是0,这里赋值只是为了演示这个寄存器的配置T2MOD=0;            //配置定时器2工作模式寄存器,这里其实不用配置,T2MOD上电默认就是0,这里赋值只是为了演示这个寄存器的配置IE=0xA0;          //1010 0000开总中断,开外定时器2中断,可按位操作:EA=1; ET2=1;TR2=1;               //启动定时器2
}//数码管显示3位数:0-255
void display(uchar num)
{uchar gw,sw,bw;bw=num/100;sw=num%100/10;gw=num%10;LED_DATA=0XFE;       //1111 1110WELA=1;_nop_();_nop_();WELA=0;LED_DATA=table[bw];DULA=1;_nop_();_nop_();DULA=0;delay_ms(3);LED_DATA=0XFD;      //1111 1101WELA=1;_nop_();_nop_();WELA=0;LED_DATA=table[sw];DULA=1;_nop_();_nop_();DULA=0;delay_ms(3);LED_DATA=0XFB;      //1111 1011WELA=1;_nop_();_nop_();WELA=0;LED_DATA=table[gw];DULA=1;_nop_();_nop_();DULA=0;delay_ms(3);
}void main()
{init_main();while(1){display(num);}
}void timer2() interrupt 5
{//!!!注意!!! 定时器2必须由软件对溢出标志位清零,硬件不能清零,这里与定时器0和定时器1不同!!!TF2=0;timer2_ctr++;//定时25ms×40=1000ms即1秒钟,这里模拟一个60秒秒表if(timer2_ctr>=40){timer2_ctr=0;LED=~LED;num++;if(num>=60){num=0;}}
}

52单片机定时器2使用(C语言程序)相关推荐

  1. 52单片机led灯闪烁c语言程序,单片机LED灯闪烁程序

    原标题:单片机LED灯闪烁程序 点亮 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点 ...

  2. 52单片机led灯闪烁c语言程序,单片机 LED 灯闪烁程序

    点亮 LED 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁 ...

  3. 洗衣机洗涤部分c语言程序,51单片机洗衣机控制板及C语言程序

    51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣.经济洗衣.单独洗衣以及排水四种洗衣等四种方式,有强洗.弱洗及运行/暂停.显示及报警功能, ...

  4. 液晶显示屏的C语言编码,单片机液晶汉字显示c语言程序

    单片机液晶汉字显示c语言程序 单片机液晶汉字显示c语言程序 /*液晶屏分为4行*12列汉字,全部使用模拟接口方式. /* TGLCMLIMIT64A接口程序(模拟方式) ;************** ...

  5. 超声波c语言程序,51单片机超声波模块的C语言程序.doc

    51单片机超声波模块的C语言程序.doc 超声波模块程序 超声波模块程序 Trig P20 Echo P32 include define uchar unsigned char define uin ...

  6. c语言打铃器单片机程序,51单片机自动打铃C语言程序

    51单片机自动打铃C语言程序: #include "reg51.h" #include "intrins.h" #define uchar unsigned c ...

  7. 定时器计数器实验C语言程序,实验二 单片机定时器和计数器编程

    仲恺农业工程学院实验报告纸 信息学院 (院.系)专业班组单片机原理及接口技术课实验二单片机定时器/计数器编程 一.实验目的 1.掌握单片机定时器/计数器的工作方式: 2.掌握单片机定时器/计数器的编程 ...

  8. 单片机消抖c语言程序,基于单片机定时器软件消抖C51程序研究

    向兵 杨述凯 摘 要:随着电子技术的发展,单片机的应用在教学及科技开发中越来越普遍,而针对单片机的开发环境而言,大多采用C51语法进行设计.按键的使用在大多数硬件设计里相当频繁,而按键的干扰处理可以使 ...

  9. 定时器计数器实验C语言程序,单片机定时器计数器实验报告.docx

    单片机定时器计数器实验报告 单片机定时器计数器实验报告 篇一:单片机计数器实验报告 计数器实验报告 ㈠ 实验目的 1. 学习单片机内部定时/计数器的使用和编程方法: 2. 进一步掌握中断处理程序的编程 ...

最新文章

  1. 知识图谱还有哪些方向值得深入研究?这 6 篇最新论文给你答案
  2. 没有朋友,一个人旅行是什么感受?
  3. 要使一个问题能够用计算机解决,如何正确并解决在使用计算机中的问题?
  4. 中小型研发团队架构落地实践18篇,含案例、代码
  5. zeppelin 连接hive 认证方式_HIVE的学习之路(六)Hive的分组Join排序
  6. 基于js alert confirm样式弹出框
  7. Unity 风吹草的实现
  8. 中国数据开放共享的“道”与“术”
  9. Animation 动画介绍和实现
  10. mysql 横向分表_mysql横向和纵向的数据库分表
  11. python在姓名的左右_怎样用Python给宝宝取个好名字?
  12. Android九宫格解锁的实现
  13. 利用SPSS箱线图与Z分数法判别异常值的比较
  14. 图文详解 新版VMware Workstation 7.0的最大特色
  15. 美观实用!吹爆这个中文排版开源项目
  16. 九、逻辑回归介绍-恶性乳腺癌肿瘤预测
  17. oracle OMF
  18. (2011.09始)大二全学期学习计划
  19. C++ —— 调用微软语音接口(SAPI),实现文字转语音播放
  20. 服务型移动机器人如何实现室内路径全覆盖清扫给你一个清爽干净的家

热门文章

  1. 微信们正在成为“被模仿者”!中国互联网现状及趋势报告
  2. 面试稳了!集齐几千名程序员精选的 100 道前端面试题!
  3. 30 秒?!Chrome 插件带你速成编程学习 | 程序员硬核评测
  4. 微信“再罚”今日头条;马云:没有女性就没有阿里;有赞强推 996 工作制 | 极客头条...
  5. 90 后篮球运动员成功转型 iOS 开发,过程超刺激
  6. 作为程序员,制霸了 Stack Overflow 是一种怎样的体验?
  7. 想为 iPhone X 做交互设计?你需要读这篇文章
  8. 金三银四大厂面经总结,mysql创建视图的sql语句
  9. 第 3 章 MybatisPlus 注入 SQL 原理分析
  10. jira导出HTML,JIRA Software 7.4.x 版本说明