基于AT89C51单片机的数字式简易低频信号发生器.docx
《基于AT89C51单片机的数字式简易低频信号发生器.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的数字式简易低频信号发生器.docx(16页珍藏版)》请在冰豆网上搜索。
![基于AT89C51单片机的数字式简易低频信号发生器.docx](https://file1.bdocx.com/fileroot1/2023-2/22/f20c45fe-c075-4fac-8cc4-61b27f723e06/f20c45fe-c075-4fac-8cc4-61b27f723e061.gif)
基于AT89C51单片机的数字式简易低频信号发生器
电子设计应用软件训练总结报告
一、任务说明:
本次课设的任务是基于AT89C51单片机的数字式简易低频信号发生器的设计,要求实现用程序产生方波、正弦波、锯齿波、阶梯波四种信号,并可以键控切换,而且需在Proteus电子设计平台上对设计方案进行仿真。
本次设计采用
了AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832来实现模数转换,从而输出正确的波形,设计中还连接了按键电路来实现键控。
波形的频率为200Hz,用调整延时来实现。
设计简单,性能良好,具有一定实用性。
二、原理图绘制说明
1、原理图绘制过程说明
(1)运行proteus7.5进入绘图页面。
图1proteus绘图页面
(2)查找元器件,按动键盘按键P,进入PickDevices页面,在关键字项中输入元
件名称。
如查找AT89C51
的帥|16kBE*.WHt.WsldxbgTW.孩I卓Tne“UMT|
Sffil\^Z.咖此5*加旳Tei.3«iwTw-kUAHT|
M甲口ni^FI耀H*.胸虹刃豪却gTitmi3x1涉Trwr1朗卄眄!
I祸中gc^oftr|^B8.4I»1Hj.Wd^hgTvmiIdTrairUAHT|^■51Hcncrriok|EJkB=ndh.4MHaWdd^bgTm3xltHTrwiELJART|
3CE9li4caca^ftv|EJkB=adh.WddxbgTr»i玉l&biTrwiEUAHT|
士•二*土
艇(QiI
AT85C51RB?
ATSX51RB?
BU6
ATaCSIRW副聲RRbB呻AiS9CElRg-3
A-89C51RD2EUE;
•02*PXhT->«jxWT■□JWl
u«Fiani
zJ
图2查找元件
(3)放置元器件并连线。
2、原理图说明
(1)单片机晶振电路
对于MCS-51—般的晶振可以在1.2MHZ-12MHN间选择,这时电容C1、C2可以选择在10pf-30pf之间。
在本设计中,电容选择25pf,晶振选择12MHZ电路如下图:
图3单片机晶振电路原理图
(2)单片机复位电路
复位时单片机的初始化工作,复位后中央处理器CPU和单片机内部的其他功能部
件都处在一定的初始状态,从这个状态开始工作。
电路如下图:
(3)总线电路
本设计中,将P0并行口作为波形数据输出口,通过数据总线与DAC0832勺D0-D7
38
01
37
g
無
03
35
D4
:
-4
苗
33
D6
32
&7
10
VREFRFB
GND
23
R5
■10k
「F
ycc
ILE(BYVBY2)
WR2
XFER函DIB
I0UT2
I0UT1
13
—17
1505
14
D6
13
07
U2'
WCC
*-*
1问
A1O
A11
A12
A13A14
A15
HD3AQ4
AD5
离呃
a.07
DACQ332
10
15
屋
17
丄
22
——
13
D
D
CS
WR1
DI7
r
11
连接。
P2.7与0832的片选端/CS连接,使用时可由地址译码提供。
P3.6与0832的2管脚外部数据存储器写选通相连。
电路如下图:
图5总线电路
(4)键控电路
本设计中的键控部分引入了外部中断0中断来实现对波形的切换,用按键与P3.2
连接来实现。
在该管脚上加上一10k的上拉电阻,用来提高输出电平,加大输出引脚的驱动能力。
电路如下图:
图6键控电路
(5)DAC0832电路
在本设计中,DAC0832选择了直接工作方式。
0832中的电源电压VCC输入寄存器的锁存信号端ILE、基准电压端VREF接高电平。
模拟电路接地端、数字电路接地端GND写信号2端/WR2传递控制信号端/XFER接地。
D/A输入电流1、2端与反馈信号输入线RFB连接运算放大器。
这里的运算放大器选用了LM324型号。
电源电压设置为-6~+5V
WRg
诃—
grids
4
D25
D1
6
DO.7.
话VCC
GNDWR7
DI3XFER-
DI2DI4
DI1DI5
DIODIG
VREFDI7
RFBI0UT2
GND3T1
1R5
1
19
18
17
花
U2
11
电路图如下:
图7DAC0832电路
三、流程图绘制以及说明:
单片机的内部数据只有0、1之分,所产生的信号也都是离散信号。
为了让单片机输出所需的数字信号,采用对信号采样、量化的方法来实现由单片机产生所需信号。
(1)主函数
主函数调用了各个子程序的初始化,通过对按键次数的判断来实现不同的功能,输入波形。
数值为0、1、2、3时分别输出方波、正弦波、阶梯波、锯齿波。
图8主函数流程图
(2)按键计数函数流程图
在按键计数函数中,对
key进行循环加1的操作,每按一次,数值加1。
数值加
开始
到3时,再按动按键,数值跳回1
在设计中,对正弦信号进行采样,
通过查表来实现输出不同的幅度值。
对于方波,
(3)波形子程序调用函数
赋予初值FFH延时一段时间后,赋值00H,再延时一段时间后,输出FFH以此循环。
在实现阶梯波时,通过查表和延时来实现。
锯齿波则是通过256个采样点赋值依次减1得以实现。
为满足设计要求中输入频率为200hz这一要求,在程序中在对波形各个采样点赋值之外,还设计了相应的延时。
波形子程序的调用就是对这两项进行调用。
四种波形的流程图如下。
图10方波子程序调用流程图
图11正弦波子函数调用流程图
i++
输出阶梯波
图12阶梯波子程序调用
图13锯齿波子函数调用流程图
四、Proteus仿真说明:
连接好原理图后,双击AT89C51芯片,将后缀为.hex的文件添加到单片机中,
点击运行
图14添加程序
正确运行后,示波器中显示正弦波。
频率约为200hz。
波形如下
图15方波波形
按动按键一下,波形转变成正弦波。
皮率约为200hz。
波形如下
Imu
■PpMikin
ClmrinelC
Pofi*liDn
Om-StKt
M
M
Ikiini0ID
Potion
2tl
=1
DigitalOscilloscope
图16正弦波波形
再按动一次按键,波形转换成阶梯波。
频率约为200hz。
波形如下
口E.:
snn
-二*
f*C?
P!
!
Qn
ATT
图17阶梯波波形
再按动一次按键,波形转变成锯齿波。
频率为200hz。
波形如下
S«um
ec0lUlf・T
SnKJT鼻J
CliatHhel〔
ClhkimelD
ChaiKielB
Digit川OseillDseope|^1
图18锯齿波波形
再按动一次按键,波形回到最初显示的方波。
五、体会及合理化建议
通过这次的课设,我熟悉了基于AT89C51单片机的数字式简易低频信号发生器的设计,学会了如何利用数模转换器DAC0832来实现波形,和通过按键控制切换波形。
在这次课程设计的过程中遇到了一些难题,比如键控部分。
起初的构想是用P1口来控制按键,给P1口赋初值01H,输入第一个波形,在对P1口左移一位,输出第二个波形,依次类推。
连接后原理图无法正确运行。
在频率上,编程时设计的延时单元没有很符合要求,仿真时输出的波形的频率与要求不符。
后经多次试验,实现了输出频率为200hz这一要求。
在今后的学习中,我认为应当为大家提供更多的机会亲自动手去完成一些简易的设计,这样不仅可以加深大家对平时学习的理论知识的理解,也可以提高大家的动手实践能力,更会扩宽同学们的视野,拓展专业知识,有益于今后的学习与发展。
参考文献
1.严洁.单片机原理及接口技术.[M]机械工业出版社.2010.146-151页
2.欧伟明、何静、凌云、刘剑.单片机原理及应用系统设计.[M]电子工业出版社.2009.140-143页
3.卢胜利、郝立果、丁峰.单片机原理与应用技术实践.[M]机械工业出版社.2009.227-231页
4.朱定华、戴颖颖、李川香.单片微机原理、汇编与C51及接口技术.[M]清华大学出版社.2010.296-299页
5.张毅刚、刘杰.单片机原理及应用.第三版.[M]哈尔滨工业大学出版社.2010.219-226页
附录I电路原理图
TH
»■•
wsg」<
IA■on
凤一建wl*
「—2
惶罰I4RS?
01寻一空m_og骨舄da曹•£
gx
«>£寸-Ldrd
X3ES:
g-Ld
Lt-・
<07
二
匸吕一
E2
口Q詈詈
創=A巴ul=>蚩
io
e丄
宙庄>
O一d
§
9頁E寸匸密一雲盏E轻导E二爲N畧CJQ-
NUJSCI
D£
9型寸—SISTi■.
■
s-ig-2聶寸口导2密M営备O宰OO5O
£
E
£
£
£
足
S
£
电
CNrl,.
'-As*・
附录II元器件清单
元器件名称及规格
标注
AT89C51
U1
DAC0832
U2
电阻10K
R1
上拉电阻10K
R2
晶体振荡器12M
X1
瓷片电容25Pf
C1,C2
电解质电容10uF
C3
按键开关
K1
直流电源5V
VCC
运算放大器LM324
U3
数字示波器