单片机课程设计

发布 2022-10-04 23:29:28 阅读 7751

题目:多功能信号发生器设计。

班级: 姓名:

学号: 指导教师:

设计时间:目录 i

1. 问题分析及解决方案 - 1 -

1.1 题目要求 - 1 -

1.2 题目分析 - 1 -

1.2.1 信号的产生 - 1 -

1.2.2 信号幅度控制 - 1 -

1.2.3 信号频率控制 - 1 -

1.2.4 波形切换 - 2 -

1.3 程序设计流程 - 2 -

1.4 解决方案 - 2 -

2. 单片机选型及硬件配置 - 3 -

2.1 单片机及元件选择 - 3 -

2.2 i/o地址分配 - 3 -

2.3 系统硬件原理图 - 4 -

3. dac0832简介 - 4 -

4. 软件实现 - 6 -

4.1 软件** - 6 -

4.2 程序调试 - 9 -

5. 心得体会 - 14 -

参考书目 - 16 -

多功能信号发生器设计

1)信号发生器能产生50-200hz的正弦波、方波、三角波、锯齿波,数码管显示信号频率;

2)输出哪一种波形由四个按键控制;

3)波形的极性、幅度、周期、占空比可由按键操作设置和修改。

利用8位d/a转换器dac0832,可以将8位数字量转换成模拟量输出。数字量输入的范围是0~255之间,对应的模拟量输出范围在正负参考电压之间。由此,可以利用单片机的并行口输出的数字量,产生波形。

因dac0832的模拟量输出范围在正负参考电压之间,也就是说,当数字量输入为00h时,dac0832的输出是vref-,当数字量输入为ffh时,dac0832的输出是vref+。所以,为了调节输出波形的幅度,只要调节vref即可,可在vref+端接一电位器,调节vref的电压,即可达到调节波形电压的目的。

在单片机的p2口接8位的拨码开关,将其开关状态转换为8位二进制数,作为延时常数,即可调节输入信号的频率。

利用4位dip开关来选择波形,并通过4个led进行指示。

图1 程序设计流程。

由于输出信号的频率较低,可选用at89c51作为控制器,其中方波,锯齿波,三角波只通过一定的延时完成波形的输出,正弦波还需用查表法来,单片机输出的为数字量而生活中用到的为模拟量,故需经过d/a转换器dac0832把数字量变为模拟量输出。而dac0832输出的为电流信号,而我们需要的是电压信号,故采用了一个集成运放将电流信号转换为电压信号,再通过一级集成运放将单极性的电压信号转换为双极性的电压信号。输出波形的类型以及频率均是通过拨码开关来控制的,由于单片机输出四种波形故用了4个拨码开关,这样每一位能够控制一中波形的输出。

波形频率的控制通过8位拨码开关来控制,这样控制精度可以达到1hz,范围为1hz-255hz。输出波形的幅值是通过一个调节dac0832的参考电压来实现的。

表1 单片机及元件选择。

p0口用于输出波形,p0口输出的数字量通过dac0832转换为模拟量,也就是电压信号,然后通过示波器就可以观察单片机输出的波形。

p1.0~p1.3用于点亮不同的led指示灯,从而指示单片机输出波形的类型。

当p1.0=0时第一个led等被点亮表示单片机输出的为方波,当p1.1=0时第二个led等被点亮表示单片机输出的为锯齿波,当p1.

2=0时第三个led等被点亮表示单片机输出的为三角波,当p1.3=0时第四个led等被点亮表示单片机输出的为三角波。

p2口输入8位拨码开关状态控制波形频率,这样输出波得频率可以在1-255hz之间任意选择。

p3.0~p3.3. 用于输出波形类型的控制,主要通过四位拨码开关的输入量的不同让单片机输出相应的波形,拨码开关的四种状态如下:

p3.0=0,p3.1=1,p3.2=1,p3.3=1时输出方波;

p3.0=1,p3.1=0,p3.2=1,p3.3=1时输出锯齿波;

p3.0=1,p3.1=1,p3.2=0,p3.3=1时输出三角波;

p3.0=1,p3.1=1,p3.2=1,p3.3=0时输出正弦波。

p3.6用于给dac0832给写数据信号。

图2 信号发生计硬件原理电路。

dac0832是一个8位d/a转换器。单电源供电,从+5~+15v均可正常工作。基准电压的范围为-10v~+10v;电流建立时间为1us;coms工艺,低功耗20mw。

dac0832转换芯片为20引脚,双列直插式封装。其引脚图如下图:

图3 dac0832引脚图。

d/a转换电路是一个r-2r t型电阻网络,实现8为数据的转换。其引脚信号说明如下:

di0~di7:转换数据输入。

片选信号输入,低电平有效。

ile:数据锁存允许信号输入,高电平有效。

第1写入信号输入,低电平有效。

第2写入信号输入,低电平有效。

数据传送控制信号输入,低电平有效。

电流输出1;

电流输出2;

反馈电阻端。

基准电压,其电压可正可负,范围为-10v~+10v。

dgnd:数字地。

agnd:模拟地。

vcc:芯片工作电源,从+5~+15v均可正常工作。

#include<>

#include<>

#define uchar unsigned char

#define uint unsigned int

#define dac0832 xbyte[0xffff]

sbit squ_k =p3^0; /p3^0-p3^3为拨码开关输入,用来控制输出波形。

sbit saw_k =p3^1;

sbit tri_k =p3^2;

sbit sin_k =p3^3;

sbit squ_l =p1^0; /p1^0-p1^3点亮led灯,用来指示拨码开关的状态。

sbit saw_l =p1^1;

sbit tri_l =p1^2;

sbit sin_l =p1^3;

sbit intad =p3^3;

uchar code sin_tab=

/方波发生函数。

void square()

uchar a,b;

for(a=0;a<127;a++)

for(a=0;a<127;a++)

/锯齿波发生函数。

void sawtooth()

uchar a,b;

for(a=0;a<255;a++)

/三角波发生函数。

void triang()

uchar a,b;

for(a=0;a<254;a=a+2)

for(a=254;a>1;a=a-2)

/正弦波发生函数。

void sinw**e()

uchar a,b;

for(a=0;a<92;a++)

for(a=91;a>0;a--)

dac0832=sin_tab[a];

p2=0xff;

b=p2;

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...