52单片机定时器2使用C语言程序_第1页
52单片机定时器2使用C语言程序_第2页
52单片机定时器2使用C语言程序_第3页
52单片机定时器2使用C语言程序_第4页
52单片机定时器2使用C语言程序_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精彩文档精彩文档52单片机定时器2使用(C语言程序)水寒80511,128views0Comments发表评论本文是关于52单片机定时器计数器2做为普通的16位自动重装定时器使用,类似于定时器计数器0和定时器计数器1工作在方式1下。以下程序在Keil2和Keil3下调时通过,下载在本校的实验板上达到预期效果。AT89C52及其以上、AT89S52及其以上、STC89C52及其以上测试正常运行。源代码:viewsource冈print?001/***********************************************************002程序功能:52系列单片机定时器计数器2使用003程序设计:燕山大学鲁信琼晶振选择:24MH乙如果晶振不匹配,请修改延时函数参数;P2A6口接数004码管段选控制位;P2A7口接数码管位选控制位;P1A7口作为测试指示灯005本实验注意事项:0061.定时器2的中断使能为圧人6位,也就是ET2;中断服务程序标号为5。定时器2工作在16为自动重装模式下,不需要在中断服务程序中重新赋007初值,在程序初始化的时候我们应该给RCAP2L和RCAP2H赋值,TH2和TL2将会在中断产生时自动使TH2二RCAP2H,TL2二RCAP2L。定时器2的中断标志位TF2不能够由硬件清零,所以要在中断服务程序008中将其清零,为了使定时尽量准确,我们常在终端服务程序中第一步就使TF2=0。使定时器2产生中断的有两个中断源,如果EXEN2(定时器2外部使能标志)置1的话,使定时器2进入中断的有可能是定时器2计数溢出,也可009能是捕获到T2EX(单片机P1T口)有负跳变,所以需要在中断服务程序中判断EXF2是否为1。010承接51单片机、PIC单片机程序、VB/VC++上位机程序、电子产品软硬件011设计开发工作012013EMail:xqlu(at)QQ:9790335014***********************************************************/015016#include017#include018#defineucharunsignedchar019#defineuintunsignedint020#defineLED_DATAP0021sbitDULA二P2人6;022sbitWELA二P2人7;023sbitLED=P1A7;024uchartimer2_ctr,num;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0250x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0};026027〃24MHz晶振延时x毫秒函数028voiddelay_ms(uintxms)029{030uintx,y;031for(x=xms;x>0;x--)032for(y=248;y>0;y--);}033034035//初始化主函数036voidinit_main()037{038DULA=0;//关闭数码管显示039WELA=0;040041RCAP2H=(0xFFFF-50000)/256;RCAP2L=(0xFFFF-50000)%256;〃24MHz晶振下定时25ms启动重042装043TH2=RCAP2H;044TL2=RCAP2L;//定时器2赋初值T2CON=0;//配置定时器2控制寄存器,这里其实不用配置,045T2CON上电默认就是0,这里赋值只是为了演示这个寄存器的配置T2MOD=0;//配置定时器2工作模式寄存器,这里其实不用配046置,T2MOD上电默认就是0,这里赋值只是为了演示这个寄存器的配置IE=0xA0;//10100000开总中断,开外定时器2中断,可按位047操作:EA=1;ET2=1;048TR2=1;//启动定时器2}049050051//数码管显示3位数:0-255052voiddisplay(ucharnum)053{054uchargw,sw,bw;

055056057058059060061062063064065066067068069070071072073bw=num/100;sw=num%100/10;gw=num%10;LED_DATA=0XFE;//11111110WELA=1;_nop_();_nop_();WELA=0;LED_DATA=table[bw];DULA=1;_nop_();_nop_();DULA=0;delay_ms(3);LED_DATA=0XFD;//11111101WELA=1;_nop_();_nop_();WELA=0;LED_DATA=table[sw];

074DULA=1;075_nop_();_nop_();076DULA=0;077delay_ms(3);078079LED_DATA=0XFB;//11111011080WELA=1;081_nop_();_nop_();082WELA=0;083LED_DATA=table[gw];084DULA=1;085_nop_();_nop_();086DULA=0;087delay_ms(3);088}089090voidmain()091{092init_main();093while(1)094{095display(num);096}}097098099voidtimer2()interrupt5100{//!!!注意!!!定时器2必须由软件对溢出标志位清零,硬件不能清零,101这里与定时器0和定时器1不同!!!102103TF2=0;104timer2_ctr++;105〃定时25msx40=10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论