#include <stm8s105s4.h> #define uchar unsigned char uchar t;
void init(void) //初始化函数 { CLK_ICKR|=0x08; // 打开芯片内部的低速振荡器LSI while((CLK_ICKR&0x10)==0); // 等待振荡器稳定
TIM2_EGR=0X01; //允许产生更新事件 TIM2_PSCR=0X01; //分频,使频率为1MHz
TIM2_ARRH=0XC3; //更新后计数器的值 TIM2_ARRL=0X50;
TIM2_CR1=0X05; //允许定时器工作 TIM2_IER=0X01; //允许更新中断 _asm("rim"); //汇编语句,启动定时器
}
void main() { uchar i; init(); while(1) { BEEP_CSR=0x26; //一秒2KHz while(t>=20&&t<40) BEEP_CSR=0x2e; //一秒1KHz while(t>=40&&t<60) BEEP_CSR=0x3e; //一秒500Hz while(t>=60&&t<80) BEEP_CSR&=0xdf; //一秒关闭 if(t>=80) t=0; } }
@far @interrupt void TIM2_UP_IRQHandler (void) //中断函数
{ TIM2_SR1 = 0x00; t++; } 各位帮忙看下这个程序哪里出问题了,下载后蜂鸣器不响,中断部分单独测试过,没有问题···
|