外部中断与定时器中断——T2定时器
2017-10-19 14:53
471 查看
问题描述:
若系统时钟频率为12MHz,编写软件实现:按一下K键,产生一次外部中断1中断信号,启动T2定时,使P1.1输出周期为2秒的方波。
解决方案:
假设方波信号的占空比为50%,时钟频率为12MHZ,则机器周期为1us,那么选用T2定时,采用工作方式1,2^16=65536us<1s,
采取定时10ms,中断100次,形成1s时间。T2计算初值X=65536-10000=55536=D8F0。
采用T2定时器,应留意与T0和T1定时器的差别,再设置相应寄存器的位数和状态,即可解决。
C语言:
#include <reg52.h> #define uchar unsigned char uchar COUNT=0X64; //软件记数 sbit P11=P1^1; sfr T2MOD=0XC9; sfr IPH=0XB7; void main() { //设置相应寄存器的状态 SP=0X60; T2MOD=0X00; T2CON=0X00; TH2=0XD8; TR2=0; TL2=0X0F0; TH2=0XD8; RCAP2H=0XD8; RCAP2L=0X0F0; IE=0XA4; IP=0X04; while(1) { } } void timer1int() interrupt 5 { TF2=0; switch(COUNT) { case 0: { P11=!P11; COUNT=0X64; break; } default: COUNT--; break; } } void int1_int() interrupt 2 { TR2=1; }
相关文章推荐
- AVR单片机使用外部中断和定时器的NEC红外解码程序
- 实验二:外部中断与定时器/计数器中断实验
- 51单片机定时器0中断时执行外部中断0
- AVR之最简单外部中断、定时器0、定时器1程序
- 单片微机原理P2:80C51外部中断与定时器系统
- 参考10定时器 成功外部中断 IRQ_EINT1 没有底半部
- 参考 10定时器 成功外部中断 IRQ_EINT1 有底半部 workqueue
- 参考 10定时器 成功外部中断 IRQ_EINT1 有底半部 workqueue 使用 copy_to_user()显示 中断次数 成功!
- 用定时器0控制切换流水灯顺序,用外部中断控制两种数码管显示方式
- 外部中断0嵌套定时器中断
- STM32外部中断及定时器编程示例
- AVR之最简单外部中断、定时器0、定时器1程序
- ARM6410Uboot +LCD +触摸屏 +定时器 +外部中断
- ARM7测试外部方波信号(利用GPIO口和定时器中断)
- (C51学习四)外部中断和定时器中断
- 单片机学习笔记--外部中断,定时器,串口中断
- 嵌入式学习--step12 外部中断与定时器中断学习
- PIC 定时器中断1+外部中断0
- 外部中断与定时器中断实验
- 外部中断与定时器中断实验(修改)