单片机波形发生器51.docx
- 文档编号:23860080
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:31
- 大小:2.17MB
单片机波形发生器51.docx
《单片机波形发生器51.docx》由会员分享,可在线阅读,更多相关《单片机波形发生器51.docx(31页珍藏版)》请在冰豆网上搜索。
单片机波形发生器51
安徽工程大学机电学院本科
课程设计说明书
专业:
计算机科学与技术
题目:
数字式波形发生器
学生姓名:
刘志国
指导教师:
谢永宁
2012年6月6日
附录……………………………………………………………………………………3
前言……………………………………………………………………………………4
课程设计任务书………………………………………………………………………5
第一章系统总体设计思路…………………………………………………………6
1.1总体设计思路…………………………………………………………6
1.2总体框图………………………………………………………………6
1.3硬件设计组成……………………………………………………………6
第二章接口技术及相关芯片介绍………………………………………………………7
2.1键盘接口电路……………………………………………………………7
2.2显示电路…………………………………………………………………7
2.3电源电路…………………………………………………………………7
2.4波形转换(D/A)电路…………………………………………………8
2.5芯片介绍…………………………………………………………………9
第三章程序编写…………………………………………………………………13
第四章系统调试与测试结果……………………………………………………19
4.1.硬件调试………………………………………………………………19
4.2.软件调试………………………………………………………………19
4.3调试结果………………………………………………………………19
第五章设计心得与参考文献……………………………………………………21
5.1实验心得………………………………………………………………21
5.2参考文献………………………………………………………………22
元件清单
11K电阻·····················································6个
222uF电解电容···············································4个
3104瓷片电容················································3个
433pF·······················································2个
50.1uF·······················································1个
615K电阻····················································2个
77.5K电阻···················································1个
812Mhz晶振·················································1个
9轻触开关····················································3个
1089C52单片机芯片···········································一片
11DAC0832数模转换芯片······································1片
12TL082运放芯片·············································1片
13发光二极管················································2个
14上拉电阻···················································1个
151602液晶显示···············································1个
16双面板·····················································一块
17排针······················································若干
前言
随着微型计算机的普及和广泛应用,接口技术成为十分重要、十分关键的计术。
因为计算机的强大的功能往往是由接口能力和处理外界信息的能力表现的。
所谓接口就是微处理器CPU与外设的连接电路,是CPU与外界进行通信信息交换的中转站。
只有通过接口连接键盘、显示器、打印机,计算机处理的信息才能显现;通过接口连接软磁盘和硬磁盘,才可极大地扩充计算机的存储空间;通过接口连接多个微型计算机组成分布式系统,其多机并行运算可以达到数亿次以上;计算机只有通过接口连接各种各样的自然界模拟信号,才能应用到控制与测试等领域,实现机电仪一体化;将计算机配上接口组成计算机网,实现信息资源共享,使社会信息化。
由于计算机应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂。
微机接口采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换。
因此,接口技术是硬件与软件的综合技术。
波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
通过对函数波形发生器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波的函数波形发生器。
本次开发时在8086的平台上,利用AT89C51和DAC0832芯片利用系统内置的8255扩展接口连接电路实现的。
可产生方波、三角波,也可以根据内部程序设定的参考值调节波形的频率、幅值,利用开关控制相应的操作,具有线路简单、结构紧凑等优点。
安徽工程大学机电学院
本科课程设计任务书
2009届机电学院
计算机科学与技术专业
Ⅰ课程设计题目:
数字式波形发生器
Ⅱ原始资料
应用计算机技术,通过巧妙的软件设计和简易的硬件电路,实现数字式的波形发生器。
具有显示输出波形类型、及其粗调频率和幅度的功能。
基本要求:
、设计实验电路(要求利用实验仪的硬件资源)
、分析实验原理
、列出实验接线表
、采用汇编语言编写实验程序
、通过实验验证功能的实现
、编写课程设计说明书
Ⅲ原理:
1.方波形成原理
方波就是在一个波形输出周期内输出一个高电平和一个低电平,通常是每半个周期输出一个高电平,另半个周期输出低电平。
输出的高低电平的宽度由定时器B确定,定时器的初值由波形频率确定,即定时的时间是波形周期的一半。
先输出高电平并启动定时器,定时到则输出低电平并再次启动定时器,定时到则输出高电平并在启动定时器……。
2、三角波形成原理
可以用数学上分割的思想,将斜线分割成很多小段,每一小段用直线代替,这样三角波的上升沿和下降沿由很多个小阶梯构成,由于阶梯很多则阶梯就很小,看上去三角波的上升沿和下降沿可以近似为直线,那么这样的波形便可以近似为三角波。
按照这种原理,三角波的形成就可以转换成与方波类似的原理解决,即用定时输出,每个阶梯进行定时并输出对应的电平。
这里和方波不同的地方在每次定时完后不是在高低电平两者切换,而是输出的电平是按一定的步进值进行递增和递减。
指导老师(签字)
接受任务书学生签字
完成日期年月日
第一章总体设计思路
1.1总体设计思路
结合以前所做的实验以及对相关芯片的理解和认识,按照题目要求,经过仔细考虑,充分考虑各种因素,制定整体设计方案:
以STC89C52单片机为控制核心,P1口接DAC0832信号输入并书面转换,程序控制方波的产生,通过P2口接3个按键,控制幅值电压和频率,由按键选择波形的复制电压和频率输出,由TL082运放实现DAC0832输出电流到电压的转换。
在LCD1602上实时显示频率和幅值。
1.2总体框图
1.3硬件设计组成
本系统由单片机、波形转换(D/A)电路、显示接口电路、键盘接口电路等部分组成。
所需设备
单片机最小开发系统,1602液晶屏一块,DAC0832一片,Tl082集成运放一片,PC机一台,其他器件任选。
功能与基本原理
STC89C52外接12M晶振作为时钟频率,并采用电源复位设计。
产生方波程序设计思路:
根据定时器溢出的时间,将频率值换算为定时器溢出的次数,使用变量暂存定时器溢出的次数,当达到规定的次数时,将输出管脚的状态进行改变达到方波的产生。
另外采用查询的方式实现案件的扫描和LCD液晶的显示,中断服务程序实现方波的产生和连续按键的计时功能。
第二章接口技术及相关芯片介绍
2.1键盘接口电路
本设计中有三个按键,分别为总控制按键、频率转换按键、幅值转换按键。
其与单片机的连接如图所示。
2.2显示电路
功能:
驱动LCD1602液晶显示,扫描按钮
由LCD1602液晶显示器和三个按钮组成。
当第一个按键按下一次后,程序开始扫描,再由第二个按键控制显示幅值,第三个按键控制显示频率。
有单片机的P0口和P2口将数字信号发送到LCD1602。
LCD1602是专门用于显示字母、数字、符号等点阵式LCD,它的外接电压也是5V.扫描利用软件程序实现,其与单片机的连接如图所示。
显示电路图
2.3电源电路
单片机采用5V电源,DAC基准电压为15V,运放TL082采用正负15V供电。
因此都采用外接电源供电。
其电路图如图。
2.4波形转换(D/A)电路
功能:
将波形样值的编码转换成模拟值,完成波形输出。
由一片0832和TL082运放组成。
DAC0832是具有20条引线的CMOS器件,它内部具有两级数据寄存器,完成8为电流D/A转换,固不需要外加电路,输出波形为正负电压,0832是电流输出型,示波器上显示的波形,通常需要电压信号,电流信号到电压信号的额转换可以由运算放大器TL082实现。
在D/A转换电路中,很重要的一个参数就是基准电压(参考电压),设计中要求的最大幅值电压为12V,系统可以选用正负15V作为运算放大器供电的电源,同时用正15V作为DAC0832的基准电压。
单片机向0832发送数字编码,产生不同的输出。
利用采样定理,8位D/A转换器对应-15V~15V的电压输出,其输入数字量应为00H~FFH。
在-15V~15V的电压范围内产生波形,方波一个周期分成两个点,一个时钟中断向89C51送一个点,经过D/A转换后输出就可以得到方波。
数字编码0x7f,0x90,0xa1,0xb2,0xc3,0xd4,0xe5分别对应D/A输出的0V,2V,4V,6V,8V,10V,12V。
单片机的晶振控制输出周期的速度,也就是控制输出的波形频率。
这样输出的方波幅值和频率都得到控制。
2.5芯片功能介绍
8位D/A转换器DAC0832简介:
DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。
这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位DA转换电路及转换控制电路构成。
1、DAC0832的引脚及功能:
DAC0832芯片是一种具有两个输入数据寄存器的8位DAC,它能直接与MCS51单片机接口,其主要特性参数如下:
·分辨率为8位;
·电流稳定时间1us;
·可单缓冲、双缓冲或直接数字输入;
·只需在满量程和下调整其线性度;
·单一电源供电(+5V~+15V);
·低功耗,200mW。
为便于DAC0832的使用,特将其应用特性总结如下:
·DAC0832是微处理器兼容型D/A转换器,可以充分利用微处理器的控制能力实现对D/A转换的控制。
这种芯片有许多控制引脚,可以和微处理器控制线相连,接受微处理器的控制,如ILE、/CS、/WR1、/WR2、/XFER端。
·有两级锁存控制功能,能够实现多通道D/A的同步转换输出。
·DAC0832内部无参考电压源;须外接参考电压源。
·DAC0832为电流输入型D/A转换器,要获得模拟电压输出时,需要外加转换电路。
DAC0832的引脚图及逻辑结构如下图:
图1DAC0832结构框图及引脚排列
DAC0832各引脚的功能如下:
DI0~DI7:
数据输入线。
ILE:
数据允许锁存信号,高电平有效;
/CS:
输入寄存器选择信号,低电平有效。
/WR1为输入寄存器的写选通信号。
输入寄存器的锁存信号/LE1由ILE、/CS、/WR1的逻辑组合产生。
当ILE为高电平、/CS为低电平、/WR1输入负脉冲时,在/LE1产生正脉冲;/LE1为高电平,输入锁存器的状态随数据输入线的状态变化,/LE1的负跳变将数据线上的信息锁入输入寄存器。
/XFER:
数据传送信号,低电平有效。
/WR2为DAC寄存器的写选通信号。
DAC寄存器的锁存信号/LE2,由/XEFR、/WR2的逻辑组合产生。
当/XFER为低电平,/WR2输入负脉冲,则在/LE2产生正脉冲;/LE2为高电平是时,DAC寄存器的输出和输入寄存器的状态一致,/LE2负跳变,输入寄存器的内容打入DAC寄存器。
VREF:
基准电源输入引脚。
Rfb:
反馈信号输入引脚,反馈电阻在芯片内部。
IOUT1、IOUT2:
电流输出引脚。
电流IOUT1、IOUT2的和为常数,IOUT1、IOUT2随DAC寄存器的内容线性变化。
VCC:
电源输入引脚。
AGND:
模拟信号地
DGND:
数字地。
2、DAC0832三种数据输入方式:
(1)双缓冲方式:
即数据经过双重缓冲后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。
这种方式可在D/A转换的同时,进行下一个数据的输入,可提高转换速率。
更为重要的是,这种方式特别适用于要求同时输出
多个模拟量的场合。
此时,要用多片DAC0832组成模拟输出系统,每片对应一个模拟量。
(2)单缓冲方式:
不需要多个模拟量同时输出时,可采用此种方式。
此时两个寄存器之一处于直通状态,输入数据只经过一级缓冲送入D/A转换电路。
这种方式只需执行一次写操作,即可完成D/A转换。
(3)直通方式:
此时两个寄存器均处于直通状态,因此要将
、
、
和
端都接数字地,ILE接高电平,使LE1、LE2均为高电平,致使两个锁存寄存器同时处于放行直通状态,数据直接送入D/A转换电路进行D/A转换。
这种方式可用于一些不采用微机的控制系统中或其他不须0832缓冲数据的情况。
89C52单片机简介
89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。
89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。
1.2时钟电路
本次设计采用的是内部时钟方式,即C52内部有一个用于构成震荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体震荡器和微调电容,就构成一个稳定的自激震荡器,图3.2是C52内部时钟方式的震荡器电路。
图3.2C51内部时钟方式的震荡器电路
电路中电容C1和C2典型值通常选择为30pF左右,晶振的振荡频率的范围通常是在1.2MHz~12MHz之间,晶振的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。
复位电路
89C51的复位是由外部的复位电路来实现的,复位结构如图3.3所示。
图3.3复位结构
复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来控制噪声,在每个机器周期的S5P2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
第三章程序编写
源代码:
#include
#include
#include"LCD_1602_H.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineDAdataP1
ucharcodea[6][7]={"1000.00",//频率显示
"0100.00",
"0010.00",
"0001.00",
"0000.10",
"0000.05"};
ucharcodeSquaretab[7][2]={//输出的幅度数组
{0x7f,0x7f},//0V
{0x90,0x6e},//正负2V
{0xa1,0x5d},//正负4V
{0xb2,0x4c},//正负6V
{0xc3,0x3b},//正负8V
{0xd4,0x2a},//正负10V
{0xe5,0x19}};//正负12V
ucharcodedisp1[]={"Voltage:
000V"};
ucharcodedisp2[]={"Frq:
0000000.00Hz"};
uinti,num,k,freq=0;
ucharcount,s;
ucharkeytemp=0,keytemp2=0;
sbitDA=P2^3;
sbitWR1=P2^4;
sbitkey1=P2^5;
sbitkey2=P2^6;
sbitkey3=P2^7;
voiddelay(uintz)
{
uinti,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
voidT0_time()interrupt1
{
TH0=(65536-1000)/256;//定时器装初值精确到1mS
TL0=(65536-1000)%256;
num++;
}
voidkey1_ctr_frq()//调频控制按键
{
if(key1==0)
{
TR0=0;
_nop_();
if(key1==0)
{
keytemp++;
while(!
key1)
{
TR0=1;
if(keytemp==1)//通过按键按下的次数控制频率
{
freq=1;//选择频率1KHz
}//while
if(keytemp==2)//选择频率100Hz
{
freq=10;
}
if(keytemp==3)//选择频率10Hz
{
freq=100;
}
if(keytemp==4)//选择频率1HZ
{
freq=1000;
}
if(keytemp==5)//选择频率0.1Hz
{
freq=10000;
}
if(keytemp==6)//选择频率0.05HZ
{
freq=20000;
}
if(keytemp>=6)keytemp=1;
write_1602_com(0xc0+7);
for(k=0;k<7;k++)
{
write_1602_data(a[keytemp][k]);
delay
(2);
}//FOR
}
}
}
}
voidkey2_ctr_vol()//调幅控制按键
{//控制幅值分别为0V、2V、4V、6V、8V、10V、12V
ucharshi,ge,vol;
if(key2==0)//功能按键
{TR0=0;
_nop_();//精确延时1uS
if(key2==0)
{
keytemp2++;
while(!
key2)
{
TR0=1;
vol=keytemp2*2;
shi=vol/10;
ge=vol%10;
write_1602_com(0x80+12);
write_1602_data(0x30+shi);
write_1602_data(0x30+ge);
if(keytemp2>=7)
{
keytemp2=0;
}
}
}
}
}
voidkey3_ctr()//总控制按键
{
if(key3==0)//功能按键
{
TR0=0;
_nop_();//精确延时1uS
if(key3==0)
{
delay
(2);
while(!
key3)
{
s++;
//if(s==2)DA=1;
if(s>=2)s=1;
}
}
}
}
voidinit()
{
TMOD=0X01;//设定定时器0为工作方式1
TH0=(65536-1000)/256;//进行1ms的精确定时
TL0=(65536-1000)%256;//定时器装初值
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;
init_1602();
}
voidmain()
{
DAdata=0x00;
DA=0;
WR1=0;
init();
display_1602(0x80,disp1);
_nop_();
display_1602(0x80+0x40,disp2);
_nop_();
while
(1)
{
key3_ctr();//if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 波形 发生器 51