用C8051F330实现锯齿波的C程序
来源:百度文库 编辑:神马文学网 时间:2024/05/27 07:45:03
用C8051F330实现锯齿波的C程序(2006-08-25 10:33:36) 分类:单片机编程(我写的哟,呵呵) 锯齿波: #include
#include
//-----------------------------------------------------------------------------
// 定义16位寄存器
//-----------------------------------------------------------------------------
sfr16 DAC0 = 0x96; // 10位DAC寄存器地址
sfr16 TMR3RL = 0xca; // 定时器3数据寄存器地址
sfr16 TMR3 = 0xCC; // 定时器3计数寄存器
//常量赋值
//-----------------------------------------------------------------------------
#define SYSCLK 49000000
#define SAMPLE_RATE 50000
// 定义函数
//------------------------------------------------------------------------------------
void SYSCLK_Init (void);
void PORT_Init (void);
void Timer3_Init (int counts);
void DAC0_Init(void);
void Timer3_ISR (void);
void DAC0_CNVS_DAC0h(void);
// 定义全局变量
//-----------------------------------------------------------------------------long int i=0; // 函数
//------------------------------------------------------------------------------------
void main (void)
{
PCA0MD &= ~0x40; //关闭看门狗
SYSCLK_Init (); //系统时钟初始化
PORT_Init (); //I/O口初始化
Timer3_Init (SYSCLK/SAMPLE_RATE); //定时器3溢出作为DAC的转换启动信号
DAC0_Init();
#include
//-----------------------------------------------------------------------------
// 定义16位寄存器
//-----------------------------------------------------------------------------
sfr16 DAC0
sfr16 TMR3RL
sfr16 TMR3
//常量赋值
//-----------------------------------------------------------------------------
#define SYSCLK
#define SAMPLE_RATE
// 定义函数
//------------------------------------------------------------------------------------
void SYSCLK_Init (void);
void PORT_Init (void);
void Timer3_Init (int counts);
void DAC0_Init(void);
void Timer3_ISR (void);
void DAC0_CNVS_DAC0h(void);
// 定义全局变量
//-----------------------------------------------------------------------------long int i=0;
//------------------------------------------------------------------------------------
void main (void)