- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
..
基于51单片机的多功能信号发生器设计
设计目的和意义
随着电子技术的发展,信号发生器经常要用在各种科学技术领域和工程实践中。选择适当的嵌入式处理器、DA转换芯片,放大器,设计出一种基于单片机的多功能信号发生器的设计,能够实现键盘控制下输出正弦波、方波、三角波等波形。
设计原理
利用51单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产1Hz—3kHz的波形。通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分。
详细设计步骤
总体框架
主 控 芯 片
主 控 芯 片
D/A转换
放大输出
按键控制
显示模块
图1 系统总体框架
2.单片机最小系统设计
51单片机是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图2所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:
(1) 有可供用户使用的大量I/O口线。
(2) 内部存储器容量有限。
(3) 应用系统开发具有特殊性。
图2 51单片机最小系统
3.波形产生模块
由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。
开始
开始
置DAC0832口地址4000H
A赋值为#00H
(A)0823输出
A=F0H
A=A+1
图3锯齿波产生流程图
锯齿波产生首先将DAC0832口地址置为4000H,然后将00H送入寄存器A中,DAC0832输出A的内容,当A中的内容等于F0H返回开始,当A中的内容不为0FH时,A的内容累加,从而输出波形。
开始
开始
置DAC0832口地址为4000H
A赋值为00H
(A)经0832输出
A=A+1
(A)=0
(A)=0
A=A-1
(A)经0832输出
A赋值为FFH
图4 三角波产生流程图
三角波产生首先将DAC0832口地址置为4000H,通过A中数值的加1递增,当A中的内容为0FFH时,A中的内容减1递减,从而循环产生三角波。
开始
开始
取表格初值00H到R1
置DAC0832口地址4000H
查表格取数输出
A=A+1
R1=R1+1
图5 正弦波产生流程图
正弦波的设计通过查表得
开始
开始
将A赋值为00H
输出对应模拟量
延时
将A赋值为FFH
置DAC0832口地址4000H
延时
图6方波产生流程图
首先将DAC0832口地址置为4000H,通过A中内容为0时,输出对应模拟量,然后延时,当A中的内容为0FF时,同样输出对应模拟量,再延时,从而得到方波。
4.按键及显示模块
主要实现利用按键来控制不同的波形的输出,采用外接按键,当检测到有按键按下,判断是选择波形方式的按键被按下,还是更改频率的按键被按下,在选择波形方式中,当按键1按下时,函数发生器就输出锯齿波,当按键2按下时,函数发生器就输出三角波,当按键3按下时,函数发生器就输出正弦波,当按键4按下时就输出方波。通过按键可以任意循环方式输出不同波形。
显示模块可直接接入示波器观测,还可外接一个1602来显示当前的频率,以观测增减变化。
开始
开始
初始化
有键按下
设置波形
设置频率
按键1
按键2
按键3
按键4
频率增大
频率减小
显示
显示
显示
显示
显示
显示
锯齿波产生程序
B1: MOV A,#00H
LP1:SETB P1.5
SETB P1.6
SETB P1.7
CLR P1.4
MOV DPTR,#4000H
MOVX @DPTR,A
CJNE A,#0F0H,MORE
JNB KEY2,B2
JNB KEY3,B3
JB KEY4,D0
LJMP B4
D0: SJMP B1
MORE:INC A
SJMP LP1
三角波产生程序
B2: MOV A,#00H
LP1:SETB P1.4
SETB P1.6
SETB P1.7
CLR P1.5
MOV DPTR,#4000H
MOVX @DPTR,A
INC A
JNZ UP1
DOWN1:DEC A
MOVX @DPTR,A
JNZ DOWNN1
JNB KEY1,B1
JNB KEY3,B3
JB KEY4,C0
LJMP B4
C0: SJMP UP1
正弦波产生程序
B3: MOV R1,#00H
LOOP1:SETB P1.4
SETB P1.5
SETB P1.7
CLR P1.6
MOV A,R1
MO
文档评论(0)