微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > HOLTEK ht67f50单片机timer0定时

HOLTEK ht67f50单片机timer0定时

时间:11-25 来源:互联网 点击:
1.HOLTEK该款单片机还是很不错的,功能基本齐全,就是没有uart,让我很头疼,不过其他的性能不错,尤其是定时器功能可所谓一应俱全。

下面是我实验timer0的基础定时,按照数据手册上的来弄是很简单的:

#include "HT67F50.h"
#pragma vector isr_14 @ 0x24//时基中断服务程序 修改

#define Loud _1d_5 //蜂鸣器定义 PB5修改

unsigned long count;

void initial() //IO初始化
{

// _intc1 = 0x02; //关闭时基中断
// _intc0 = 0x01;//允许全局中断和定时器0中断

//**蜂鸣器********************
_pbc &= 0xcf;
_pb &= 0xcf;

//**led********************
_pec = 0x00;
_pe = 0x00;

//*****按键初始化*********
// _cp0c = 0x00;
//_cp1c = 0x00;
//_tmpc0= 0x00;
//_acerl= 0x00; //pa口其他的不能占用

}
void time0_init()
{
_tmpc0=0x00; // time 输出脚不使能TP1A,TP1B_2,TP1B_1,TP1B_0,TP0_1,TP0_0
_tmpc1=0x00; // time 输出脚不使能TP3_1,TP3_0,TP2_1,TP2_0
_tm0c0=0x00; //run,Fsys/4, off
_tm0c1=0xc1; //定时计数模式 CCRA
_tm0al=0xff;
_tm0ah=0x03; //最大为3
_mf0e=1; //多功能中断0使能
_t0ae=1; //TM0 A匹配中断控制位
_emi=1; //开总中断
_t0on=1; //开定时器
}
#pragma vector isr_timer0 @ 0x14//定时器计数器0
void isr_timer0()
{
_t0af=0; //标志必须清零
if(count>3000)
{
count=0;
_pe=~_pe;
}
else count++;
}
void DelayMs(unsigned long number) //延时
{
unsigned char temp;
for(;number!=0;number--)
{
for(temp=60;temp!=0;temp--);
_clrwdt();
}
}

void main()
{
initial();
time0_init();
while(1)
{
;
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top