⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer0_s.c

📁 单片机实现的遥控小汽车的设计研究论文与程序
💻 C
字号:
////////////////////////////////////////////////////////////////////
//文件名:timer0.c
//功能描述:从单片机上定时器中断处理函数等
////////////////////////////////////////////////////////////////////
#include "reg52.h"
#include "timer0_s.h"
#include "dianji_s.h"
#include "chaoshengceju.h"
#include "INTRINS.H"
#include "comm_s.h"


//////////////////////////////////////////////////////////////////
//定时器初始化
void init_timer0(void)
{
        TMOD=0x01;
        TH0=(65536-TIME_OVERLOAD)/256;
        TL0=(65536-TIME_OVERLOAD)%256;
        ET0=1;
        PT0=0;
        EA=1;
        TR0=1;

}

//////////////////////////////////////////////////////////////////
//定时器中断处理函数
//TIME_OVERLOAD=4000,4ms中断一次
void timer0(void) interrupt 1
{
        static data uchar count;
        TH0=(65536-TIME_OVERLOAD)/256;
        TL0=(65536-TIME_OVERLOAD)%256;
        count++;

        //每64ms检测一次前方是否有障碍
        //检测完前方后再过32ms检测一次后方是否有障碍
        if(!(count&0x0f))chaosheng_qian();
        if(!((count+0x08)&0x0f))chaosheng_hou();
        //每4ms调用一次步进电机驱动程序
         driver_dianji();
}

//////////////////////////////////////////////////////////////////////
//延时函数
void delay_ms(uint n)
{
        data uchar i;
        while(n--)
        {
              for(i=100;i>0;i--)
              {
                        _nop_();      //内联函数,对应一条汇编指令NOP
                        _nop_();
                        _nop_();
              }
        }
}

//////////////////////////////////////////////////////////////////////
//延时函数
void delay_100us(uint n)
{
        data uchar i;
        for(;n>0;n--)
        {
              for(i=20;i>0;i--)
              {
                        _nop_();      //内联函数,对应一条汇编指令NOP
                        _nop_();
                        _nop_();
              }
        }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -