简易多路信号发生器设计报告含程序总电路调试无误Word格式.docx
《简易多路信号发生器设计报告含程序总电路调试无误Word格式.docx》由会员分享,可在线阅读,更多相关《简易多路信号发生器设计报告含程序总电路调试无误Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
波形和频率的改变通过软件控制,幅度的改变通过硬件实现。
该信号发生器具有体积小、价格低、性能稳定的优点。
多路信号发生器有两个按键,一个按键控制信号类型,按下键一依次改变信号类型和停止产生波形;
另一个按键改变信号频率。
一、设计内容及要求:
1、设计内容:
本课题要求设计一个简易多路信号发生器。
2、设计要求:
1.通过单片机控制74LS138译码器,对DAC0832进行片选控制;
2.能够产生正弦波、矩形波、锯齿波等基本波形信号,并通过修改程序能够产生任意波形的信号;
3.通过两个按键控制波形类型和频率,一个按键控制信号类型,按下键一依次改变信号类型和停止产生波形;
另一个按键改变信号频率;
4.有一个LED显示是否有波形输出;
灯亮为有波形输出,灯灭表示无波形输出;
二、电路工作原理:
电路由单片机最小系统、译码电路、DAC转换电路、放大输出电路、LED显示电路、按键组成。
当启动电源时,系统正常工作,通过最小系统控制DAC转换电路片选信号,正常产生波形信号。
当按下按键1时依次切换输出波形类型和停止转换,按下按键2可在一定频率范围内改变波形频率。
三、选定系统设计方案,画出系统框图
四、单元电路设计参数计算及元器件选择
1.单片机最小系统
●51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
●51单片机最小系统晶振Y1采用11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
●51单片机最小系统起振电容C2、C3一般采用15~33pF(30pF),并且电容离晶振越近越好,晶振离单片机越近越好
●P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。
单片机最小系统电路图
2.74LS138译码电路:
该电路是由单片机P2口控制,主要是利用74LS138芯片,对三位输入信号译码,本电路由Y7口对DAC0832进行片选控制。
74LS138芯片真值表和电路图如下:
●当一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
比如:
A2A1A0=110时,则Y6输出端输出低电平信号。
●
利用E1、E2和E3可级联扩展成24线译码器;
若外接一个反相器还可级联扩展成32线译码器。
●若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
●可用在8086的译码电路中,扩展内存。
3.DAC0832转换电路:
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
本电路8位数据有P0口输出,片选CS由74LS138控制,其电路图如下:
DAC0832是20引脚的双列直插式芯片。
各引脚的特性如下:
CS——片选信号,和允许锁存信号ILE组合来决定是否起作用,低有效。
ILE——允许锁存信号,高有效。
WR1——写信号1,作为第一级锁存信号,将输入资料锁存到输入寄存器(此时,必须和、ILE同时有效),低有效。
WR2——写信号2,将锁存在输入寄存器中的资料送到DAC寄存器中进行锁存(此时,传输控制信号必须有效)低有效。
XFER——传输控制信号,低有效。
DI7~DI0——8位数据输入端。
IOUT1——模拟电流输出端1。
当DAC寄存器中全为1时,输出电流最大,当DAC寄存器中全为0时,输出电流为0。
IOUT2——模拟电流输出端2。
IOUT1+IOUT2=常数。
Rfb——反馈电阻引出端。
DAC0832内部已经有反馈电阻,所以,RFB端可以直接接到外部运算放大器的输出端。
相当于将反馈电阻接在运算放大器的输入端和输出端之间。
VREF——参考电压输入端。
可接电压范围为±
10V。
外部标准电压通过VREF与T型电阻网络相连。
VCC——芯片供电电压端。
范围为+5V~+15V,最佳工作状态是+15V。
AGND——模拟地,即模拟电路接地端。
DGND——数字地,即数字电路接地端。
4.放大输出电路:
5.LED显示电路:
ED显示电路结构比较简单,主要由电源、三极管、限流电阻、LED灯构成,三极管基极通过一个非门接DAC0832的片选端,以检测DAC0832是否启动转换,从而达到显示是否有波形输出的效果。
电路结构图如下:
6.按键:
本系统采用了两个按键,分别产生两个外部中断信号,所以分别接到单片机的P3.2和P3.3口,电路结构如图:
五、总电路
六、参考文献
1.荣君雅等主编,数字电子技术,机械工业出版社
2.标准集成电路数据手册TTL电路,电子工业出版社
3.康华光主编,电子技术基础(数字部分),高等教育出版社
4.黄继昌等主编,数字集成电路应用300例,人民邮电出版社
5.肖景和编著,数字集成电路应用精粹,人民邮电出版社
七、系统需要的元器件清单:
QuantityDescriptionReference_IDPackage
=====================================================================
1RESISTOR,10kOhm_5%R7RES0.5
6RESISTOR,1.0kOhm_5%R6,R5,R4,R3,R1,R2RES0.5
1TIMER,LM555CHU1H08C
2CAPACITOR,1.0uFC2,C1cap5
4SWITCH,SPSTJ1,J2,J3,J4SPST
174LS,74LS192NU12NO16
774LS,74LS21DU3,U4,U5,U6,U10DO14
U11,U19
274LS,74LS32DU7,U8DO14
1SWITCH,SPDTJ5SPDT
174LS,74LS175DU2DO16
1BUZZER,BUZZERU21BUZZER
八、调试过程中遇到的问题及解决方法
设计心得体会
附录:
源程序
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitcsda=P2^2;
sbitwr=P2^1;
sbits1=P3^2;
sbits2=P3^3;
uchark=0,p=0,delay=0;
ucharbxxz=0;
pinglv=0;
uchara=1,b=0,c=0,d=0,e=0;
ucharcodesin[64]={
135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,243,237,230,222,213,204,193,182,170,158,
146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,114,128
};
ucharcodejuxing[64]={
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ucharcodejuchi[64]={
0,4,8,12,16,20,24,28,32,36,40,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,130,134,138,142,
146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,215,219,223,227,231,235,239,243,247,251,255
ucharcodetixing[64]={
0,13,26,39,52,65,78,91,104,117,130,143,156,169,182,195,208,221,234,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
247,247,247,247,247,247,247,242,229,216,203,190,177,164,151,138,125,112,99,86,73,60,47,34,21,8
ucharcodesanjiao[64]={
0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,
248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0
voiddelay1()//延时函数
{
inta,b;
for(a=1;
a>
0;
a--)
for(b=122;
b>
b--);
}
voidint0()interrupt0//外部中断0
{
EX0=0;
delay1();
if(s1==0){
bxxz++;
if(bxxz==5)
bxxz=0;
switch(bxxz)
{
case0:
{a=1,b=0,c=0,d=0,e=0;
break;
case1:
{a=0,b=1,c=0,d=0,e=0;
case2:
{a=1,b=0,c=1,d=0,e=0;
case3:
{a=0,b=0