正弦波信号发生器
草地悠波球
一、 实验目的
熟悉采用C语言对51单片机进行DA转换、中断程序、键盘、LED显示、定时器/计数器、查表编程。 二、 实验内容
1. 设计一幅值可调,周期固定的正弦波发生器。正弦波幅值的调节范围是Vpp5V ~10V,周期固定为100ms;
2. 正弦波幅值的调节由按键SW1完成,按键每按下一次,幅值增加1V,幅值达到10V后返回到5V,幅值在LED上以V为单位显示;
3. 信号的周期由定时器的计时周期细分并确定;
4. 定时器溢出采用中断模式,熟悉采用C语言中断函数的编写。
参考实验指导书后面的单片机实验平台电路,包括51单片机电路、数码管显示电路、按键电路和DA转换电路。
电池修复器四、 编程说明
1. 包含头文件reg51.h和absacc.h;
试管架
2. usb flash正弦值的获取可以通过matlab软件计算,每3.6度保存一个函数值,一个周期保存100个值,同时定时器定时周期为1ms,每次定时到更新一次DA转换值,这样实现100ms的波形周期;
3. 函数值可以保存为数组的形式,保存在代码区,定义为unsigned char code SINVale[100];
4. 可以定义LED和DAC的接口
#define LED1 XBYTE[0x7FF8]
#define LED2 XBYTE[0x7FF9]
#define LED2 XBYTE[0x7FFA]
#define LED2 XBYTE[0x7FFB]
#define DAC XBYTE[0xEFFF]
访问时如下:
汤杯
LED1=data1
….
DAC=datan
5. 定时器0的中断函数定义如下:
mp3机Void timer0(void) interrupt 1 using 1
{
中断函数体
}
6. 实验板上的时钟频率为11.0592MHz,建议定时器0采用模式1,定时时间1ms。
五、 程序流程图