实验三思考题:

若系统时钟频率为12MHz,编写软件实现:按一下K键,产生一次外部中断1中断信号,启动T2定时,使P1.1输出周期为2秒的方波。


定时器T2,reg52.h没有T2MOD寄存器,regx55.h有T2MOD寄存器而且sbit已经定义。
因此头文件用reg55.h。

参考代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <regx55.h>
#define uint unsigned int
#define uchar unsigned int
sbit P11=P1^1;
uchar num=0;
void main(){
T2MOD=0x00;
TH2=(65536-50000)/256;
TL2=(65536-50000)%256;
RCAP2H=(65536-50000)/256;
RCAP2L=(65536-50000)%256;
IE=0xa4;
while(1){
if(TF2){
num++;
TF2=0;
}
if(num==20){
P11=~P11;
num=0;
}
}
}
void INTer1() interrupt 2
{
TR2=1;
}

因为简单,所以没有注释。


运行结果:

代码工程及仿真


评论