5.2.使用定时器定时来让led闪烁

来源:互联网 发布:js写的网站怎么做seo 编辑:程序博客网 时间:2024/06/06 09:52

5.2.使用定时器定时来让led闪烁

实验目的:使用定时器让led闪烁

开发板最长定时多长时间,内部时钟频率是1MHz,时钟周期是1us,最多定时65535(16位定时器),也就是说最大定时时间为65535*1us=65.35ms。如果定时过长,则无法定时,可以多次设置定时

实验分析:
第一步:先配置定时器。
第二步:打开定时器。

实验代码分析:
第一步:设置定时器

    TMOD = 0x01;        // T0设置工作在定时器模式下,16位定时器    TL0 = 50000 % 256;      TH0 = 50000 / 256;    TR0 = 1;            // 开启计数器,开始计数了    ET0 = 1;            // 开启T0中断    EA = 1;             // 开启中断总开关

第二步:编写中断服务程序

void timer0_isr(void) interrupt 1 using  1{    /*写入定时时间*/    TL0 = 50000 % 256;      TH0 = 50000 / 256;          // 手工重载计数值    if (count-- == 0)    {        // 说明已经中断了10次了,500ms到了,就执行下面的程序。        LED = !LED;             // LED取反        count = 10;         //重置 计数标志    }}

当我们确定了思路以后再写代码就很简单了,第一步配置寄存器,第二步编写中断处理函数就ok了。

0 0