1. 掌握定时器编程的初始化设置;
2. 掌握定时器查询和中断两种不同的编程思路。
练习内容
1、用T1作为信号发生器来使用,要求从P1.0产生周期性(周期值自定)方波;
2、分别采用查询方式一和中断方式二来实现。
一、练习程序编写:
查询方式
#includesbit P20=P2^0; void main() { char i=100; TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1; while(1) { for(;i>0;i--) { while(!TF0); TF0=0; TH0=(65536-500)/256; TL0=(65536-500)%256; } P20=!P20; i=10; } }
中断的
#includesbit P20=P2^0; unsigned char i=100; void main() { IE=0x82; TMOD=0x01; TR0=1; TH0=(65536-500)/256; TL0=(65536-500)%256; while(1); } void INTO_(void) interrupt 1 { TH0=(65536-500)/256; TL0=(65536-500)%256; i--; if(i<=0){P20=~P20;i=10;} }
二、如果晶振频率调整为24MHz,如果要求周期不变,则定时器初始值怎么计算?
计算过程:12*(1/24)=0.5us
一个机器周期为0.5us
若要2ms周期,即1ms翻转一次
THL=(65535-2000)/256;
THL=(65535-2000)%256
| 结果 分析 | 查询和 中断俩种方式都可以完成脉冲的形成。 |



