这个学期的最后一个月,我们正式进入课程设计实验。本次我选择了基于单片机的信号发生器设计的这个课程设计,因为相对比较简单,就一个89C51和D/A0832就搞定。余老师还是比较好的,像他们软件的要焊接,额,密密麻麻的一大堆线,看着就烦。呵呵,好了,以下要谈谈这次设计的过程了。
首先,本次设计的要求是以单片机为基础,利用D/A转换器,编程能产生锯齿波、方波、正弦波、三角波四种波形,使波形可变且频率可调的信号发生器。主要难度是波形进行变化和频率可调,好,先准备实验要求的设备, PC机一台(并安装Keil 模拟仿真器软件)实验箱一个、导线落干根,示波器一台。本来我是想用伟福来进行仿真的,可惜没下载器,一切就绪,马上开始,下面是本次报告中的一部分。
一、 设计思路 利用Keil C51 系列仿真系统实现。主要利用其中89C51,D/A0832,拨位开关、按键等模块。
1、 波形选择:利用8051分别实时地对P1.0、P1.1两口进行扫描,如果发现两口对应相应的数值,即有四种状态:00,01,10,11,根据四种状态跳到对应的波形程序。
2、 三种波形的实现:方波:由8051对P0口不断交替输出00H和0FFH,有D/A0832转换成模拟量实现; 三角波:由8051对P0口输出00H,在每一个时钟到来时对输出值加一;当加至0FFH时,继而在时钟来临时减一,这样往复执行,最终输出近似连续的三角波; 正弦波:将00H到0FFH按照正弦波波形的变化趋势分成255个间断的点,形成一个正选波取值表,用8051在每一个时钟到来时取表值通过P0口送至D/A0832转换输出。 锯齿波:和三角波相似,当加至0FFH时,由从00H开始加,这样往复执行,最终得到连续的锯齿波。
3、 频率调节:利用中断方式,当-INT0接收到一个负脉冲时,使延时程序中时间常数加一,进而实现频率加;当-INT1接收到一个负脉冲时,使延时程序中时间常数减一,实现频率减。
下面是实验代码