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

📄 time.c

📁 s12温度控制程序,包括模糊控制和LCD程序
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include "all_head.h"
#include <mc9s12dg128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"


extern char NowChannel;

/************************************************************/
/* timer interrupt & Pulse Accumulator                      */
//TC2作定时器,定时中断,TC0-1,作16位脉冲累加器,累加采样脉冲个数
/************************************************************/
void Time_Ini(void) {
  
  TSCR2_PR = 7;              //预分频选择BUS/128
  TIOS = 0b00000100;         //TC2通道输出比较
  TCTL2 = 0b00010000;        //定时器控制寄存器2设置
  TCTL4 = 0b00001010;        //IOC0-1在下降沿捕捉
  PBCTL_PBEN = 1;            //16位脉冲累加器B系统使能
  PBCTL_PBOVI = 1;           // Enable interrupt overflow
  PBFLG = 2;                 // Reset request flag
  TIE_C0I = 0;               //TC0中断关闭
  TIE_C2I = 1;               //TC2中断使能
  TC2 = 31250;                //TC2定时器设置为输出比较值为625,此时第一次进中断的时间间隔为10ms
/*
-------------------------------------------------
            time  625      6250    31250
  the set of TC2  10ms     0.1s    0.5s
-------------------------------------------------
*/    
  TFLG1_C2F = 1;             //清除标志寄存器
  TSCR1_TEN = 1;             //定时器1使能
}


void Delay(int sec) 
{
  unsigned int i = 0;
  for(;sec>0;sec--) 
  {
    for(i=0;i<50000;i++);
  }
}

/********I/O口初始化函数*********/
void IO_Ini(void) {
  DDRB = 0xff;               //设定PB口为输出
  DDRA = 0xff;               //设定PA口为输出
  DDRH = 0x00;               //设定PH口为输入
  PORTB = 0x01;              //初始化PB口
  PORTA = 0x00;              //初始化PA口
}

/********按键函数********/
void Getkey(void) {
 
  if(PTH_PTH0 == 0)            //按键S3,表示+,连接PTH_PTH0
  {
    delay(10);                 //延时去抖动
    if(PTH_PTH0 == 0){
       PORTB_BIT1 = 0;         //用于调试方便,灯亮
       while(PTH_PTH0 == 0);   //等待按键释放
       NowChannel++;
       if(NowChannel>7)
          NowChannel = NowChannel - 8; 
       Sci0Write_string("picture up");
       Sci0_Sendbyte('\n');
    }
  }
  else 
  {
    PORTB_BIT1 = 1;            //用于调试方便,灯灭
  }
  
  
  if(PTH_PTH1 == 0)           //按键S4,表示-,连接PTH_PTH1
  {
    delay(10);                //延时去抖动
    if(PTH_PTH1 == 0){
       PORTB_BIT2 = 0;        //用于调试方便,灯亮
       while(PTH_PTH1 == 0);  //等待按键释放
       NowChannel--;
       if(NowChannel<0)
          NowChannel = NowChannel + 8;  
    Sci0Write_string("picture dowm");
    Sci0_Sendbyte('\n');
    }
  }
  else 
  {
    PORTB_BIT2 = 1;           //用于调试方便,灯灭
  }


}

⌨️ 快捷键说明

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