赞
踩
1. 掌握定时器编程的初始化设置;
2. 掌握定时器查询和中断两种不同的编程思路。
练习内容
1、用T1作为信号发生器来使用,要求从P1.0产生周期性(周期值自定)方波;
2、分别采用查询方式一和中断方式二来实现。
一、练习程序编写:
查询方式
- #include <REGX52.H>
- sbit 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;
- }
- }
中断的
- #include <REGX52.H>
- sbit 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
结果 分析 | 查询和 中断俩种方式都可以完成脉冲的形成。 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。