1.P1.7 驱动 LED 亮一秒灭一秒地闪烁。设置时钟频率为 6MHZ.
一、分析:
由题意,相当于产生周期为 2s 的等宽连续方波,则可在 P1.7 端以 1s 为周期交替输
出高低电平即可,可以考虑用 T1 或 T0 定时,由于定时时间最大为:
t=2^16*12/振荡频率
此题中时钟频率为 6MHZ,则振荡频率为 12MHZ,即最大定时时间为 65536 微秒。由于
无法达到 1 秒=1000000 微妙,所以需采用两个定时/计数器 T0,T1.
其中、
定时器 T0 采用非门控方式 1 定时,并采用中断方式访问。
定时器 T1 采用非门控方式 2 计数,并采用查询方式访问;
由此可知,要使 P1.7 一秒翻转一次,则可以使 T0 定时 50000 微秒,T1 计负跳变 5
次,即为 1 秒。
二、初始化:
①T1 计算计数初值:设待求计数初值为 x,
则: x=256-5=251D
=0FBH
所以: (TH1)=OFBH;
(TL1)=0FBH。
T0 计算定时初值:使用 12MHZ 晶振,一个机器周期为 1 微秒,定时 50000 微妙。
设待求计数初值为 y,
则: y=2^16-5*10^(-2)*12*10^6/12 =15536
=3CB0H
所以: (TH0)=3CH;
(TL1)=B0H。
②TMOD 寄存器初始化:
定时器 T1 采用非门控方式 2 计数,则:D7~D4=0110B
定时器 T0 采用非门控方式 1 定时,则:D3~D0=0001B
所以:(TMOD)=01100001B=61H
三、程序设计: