52单片机定时器2使用C语言程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用标准文案 精彩文档 HYPERLINK /article/27 52单片机定时器2使用(C语言程序) HYPERLINK /article/author/xqlu \o 由 水寒 发布 水寒 HYPERLINK /article/category/mcu \o 查看 8051 中的全部文章 8051 1,128 views HYPERLINK /article/27 \l respond \o 《52单片机定时器2使用(C语言程序)》上的评论 0 Comments HYPERLINK /article/27 \l respond#respond 发表评论   本文是关于52单片机定时器计数器2做为普通的16位自动重装定时器使用,类似于定时器计数器0和定时器计数器1工作在方式1下。以下程序在Keil 2和Keil 3下调时通过,下载在本校的实验板上达到预期效果。AT89C52及其以上、AT89S52及其以上、STC89C52及其以上测试正常运行。 源代码: HYPERLINK /article/27 \l viewSource#viewSource \o view source view source HYPERLINK /article/27 \l printSource#printSource \o print print HYPERLINK /article/27 \l about#about \o ? ? 001 /*********************************************************** 002 程序功能:52系列单片机定时器计数器2使用 003 程序设计:燕山大学 鲁信琼 004 晶振选择:24MHz, 如果晶振不匹配,请修改延时函数参数;P2^6口接数码管段选控制位; P2^7口接数码管位选控制位; P1^7口作为测试指示灯 005 本实验注意事项: 006 1. 定时器2的中断使能为IE^6位,也就是ET2; 中断服务程序标号为5。 007 2. 定时器2工作在16为自动重装模式下,不需要在中断服务程序中重新赋初值,在程序初始化的时候我们应该给RCAP2L和RCAP2H赋值,TH2和TL2将会在中断产生时自动使TH2=RCAP2H,TL2=RCAP2L。 008 3. 定时器2的中断标志位TF2不能够由硬件清零,所以要在中断服务程序中将其清零,为了使定时尽量准确,我们常在终端服务程序中第一步就使TF2=0。 009 4. 使定时器2产生中断的有两个中断源,如果EXEN2(定时器2外部使能标志)置1的话,使定时器2进入中断的有可能是定时器2计数溢出,也可能是捕获到T2EX(单片机P1^1口)有负跳变,所以需要在中断服务程序中判断EXF2是否为1。 010 ?? 011 承接51单片机、PIC单片机程序、VB/VC++上位机程序、电子产品软硬件设计开发工作 012 ?? 013 EMail: xqlu(at)?? QQ: 9790335 014 ***********************************************************/ 015 ?? 016 #include 017 #include 018 #define uchar unsigned char 019 #define uint unsigned int 020 #define LED_DATA P0 021 sbit DULA=P2^6; 022 sbit WELA=P2^7; 023 sbit LED=P1^7; 024 uchar timer2_ctr,num; 025 uchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x40, 0}; 026 ?? 027 //24MHz晶振延时x毫秒函数 028 void delay_ms(uint xms) 029 { 030 ????uint x,y; 031 ????for(x=xms; x0; x--) 032 ????????for(y=248; y0; y--); 033 } 034 ?? 035 //初始化主函数 036 void init_main() 037 { 038 ????DULA=0;???????????? //关闭数码管显示 039 ????WELA=0; 040 ?? 041 ????RCAP2H=(0xFFFF-50000)/256

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档