锯齿波波形发生器
一、实验目的:
- 了解C8051F360单片机的DAC功能模块。
- 了解DAC电路的三种刷新模式:①写IDA0H刷新模式;②定时器溢出刷新模式;③外部引脚边沿刷新模式;
- 选择其中的一种模式实现模拟信号的输出,并编写程序在IDA0的引脚上输出波形信号。
- 实验内容:
1、C8051F36X系统概述
C8051F36x器件是完全集成的混合信号片上系统型MCU。具有片内上电复位电路、VDD监视器、看门狗定时器和时钟振荡器的C8051F36x器件是真正能独立工作的片上系统。FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以节省功耗。
C8051F36硬件连接图:
- 实验步骤:
- ★ 在断电的情况下连接电路、改接电路。 ★
将试验箱上的地和示波器上的地相接,将试验箱上波形输出口接入示波器的输入端。
- 使用EC6仿真器将实验箱和计算机的USB端口相连接。开启主副电源。
- 打开IDE仿真软件。
- 编写C51源程序,先在示波器上显示一根横线。
- 再调试波形显示程序。
- 调试程序,实现预定功能。
主程序和部分子程序如下
void main()
{
InitDevice(); //F360初始化
while(1)
{
square();
}
}
/*********************子程序***************
函数功能:输出锯齿波
******************************************************/
void Sawtooth(void)
{
uint x;
for(x=1023;x>=0;x--)
{
IDA0L=(x<<6);
IDA0H=(x>>2);
delay(10);
}
return;
}
void Triangle(void)
{
uint x;
for(x=0;x<=1023;x++)
{
IDA0L=(x<<6);
IDA0H=(x>>2);
delay(1);
}
for(x=1022;x>0;x--)
{
IDA0L=(x<<6);
IDA0H=(x>>2);
delay(1);
}
return;
}
void square(void)
{
IDA0L=0xc0;
IDA0H=0xff;
delay(200);
delay(200);
delay(200);
IDA0L=0x00;
IDA0H=0x00;
delay(200);
delay(200);
delay(200);
}