利用单片机AT89C52采用程序设计方法产生锯齿波.docx
- 文档编号:23653199
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:23
- 大小:194.26KB
利用单片机AT89C52采用程序设计方法产生锯齿波.docx
《利用单片机AT89C52采用程序设计方法产生锯齿波.docx》由会员分享,可在线阅读,更多相关《利用单片机AT89C52采用程序设计方法产生锯齿波.docx(23页珍藏版)》请在冰豆网上搜索。
利用单片机AT89C52采用程序设计方法产生锯齿波
1引言
本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。
通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。
2设计方案
2.1系统硬件设计概述
经过考虑,我们确定方案如下:
利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。
2.2、设计要求
1)、利用单片机采用软件设计方法产生四种波形
2)、四种波形可通过键盘选择
3)、波形频率可调
4)、需显示波形的种类及其频率
2.1.2方案设计与论证
1.2.1信号发生电路方案论证
方案一:
通过单片机控制D/A,输出四种波形。
此方案输出的波形不够稳定,抗干扰能力弱,不易调节。
但此方案电路简单、成本低。
方案二:
使用传统的锁相频率合成方法。
通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。
此方案,电路复杂,干扰因素多,不易实现。
方案三:
利用MAX038芯片组成的电路输出波形。
MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。
但此方案成本高,程序复杂度高。
以上三种方案综合考虑,选择方案一。
1.2.2单片机的选择论证
方案一:
AT89C52单片机是一种高性能8位单片微型计算机。
它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。
方案二:
C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。
除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。
但其价格较贵
以上两种方案综合考虑,选择方案一
1.2.3显示方案论证
方案一:
采用LED数码管。
LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。
由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。
使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。
方案二:
采用LCD液晶显示器1602。
其功率小,效果明显,显示编程容易控制,可以显示字母。
以上两种方案综合考虑,选择方案二。
1.2.4键盘方案论证
方案一:
矩阵式键盘。
矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。
当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。
当某一个键闭合时,该键所对应的行线和列线被短路。
方案二:
独立式键盘。
独立式键盘具有硬件与软件相对简单的特点,其缺点是按键数量较多时,要占用大量口线。
以上两种方案综合考虑,选择方案二。
1.3总体系统设计
该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。
将设计任务分解为按键电路、液晶显示电路等模块。
图
(1)为系统的总体框图
图
(1)总体方框图
2.2系统软件设计概述
本系统采用AT89S52单片机,用编程的方法来产生四种波形,并通过编程
来切换三种波形以及波形频率的改变。
3硬件设计
1.4硬件实现及单元电路设计
1.4.1单片机最小系统的设计
AT89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。
用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图
(2)89C51单片机最小系统所示。
由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
其应用特点:
(1)有可供用户使用的大量I/O口线。
(2)内部存储器容量有限。
(3)应用系统开发具有特殊性。
图
(2)89C51单片机最小系统
1.4.2波形产生模块设计
由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。
其电路图如下:
图(3)波形产生电路
如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。
DAC0832的为八位数据并行输入的,其结构图如下:
图(4)DAC0832的内部结构
1.4.3显示模块的设计
通过液晶1602显示输出的波形、频率,其电路图如下:
图(5)液晶显示
如上图所示,1602的八位数据端接单片机的P2口,其三个使能端RS、RW、E分别接单片机的P1.6—P1.4。
通过软件控制液晶屏可以显示波形的种类以及波形的频率。
1.4.4键盘显示模块的设计
由于本系统所用按键少,所以采用独立键盘,其连接电路图如下:
图(6)键盘
图中独立键盘引出的四根线分别接单片机的P1.0、P1.1、P1.2、P1.3,另一端接地。
各开关的功能如图所示。
4软件设计
本系统采用AT89C52单片机,用编程的方法来产生四种波形,并通过编程来切换四种波形以及波形频率的改变。
具体功能有:
(1)各个波形的切换;
(2)各种参数的设定;(3)频率增减等。
软件调试后,通过编程器下载到AT89C52芯片中,然后插到系统中即可独立完成所有的控制。
软件的流程图如下:
5系统仿真结果
在KeilC应用软件编程环境下,将已经输入的汇编源程序进行编译、汇编与连接之后,与具体的硬件电路相匹配,最后在Proteus应用仿真环境下进行软件的仿真、验证和调试,直至最后仿真结果的正确。
图4至图9分别展示了该设计中不同情况的仿真结果。
2、输出波形的种类与频率的测试
2.1、测量仪器及测试说明
测量说明:
正弦波、矩形波、三角波和方波信号的输出,通过对独立键盘来实现其不同波形的输出以及用拨码开关改变其频率。
2.2测试过程
当程序下进去时经过初始化,液晶屏的上只显示“wave:
”和“f:
”,当开关1按下是此时输出波形为方波,当开关2按下是此时输出波形为锯齿波,当开关3按下是此时输出波形为三角波,当开关4按下是此时输出波形为正弦波。
本系统采用8脚的拨码开关来改变频率。
频率范围如下:
方波:
10——10KHZ
锯齿波:
三角波:
10——HZ
正弦波:
10—3.3KHZ
四种波形的仿真波形图如下:
图(8)方波
图(9)锯齿波
图(10)三角波
图(11)正弦波
6总结
经过将近一周时间的单片机课程设计,我又重新温习回顾了有关8051单片机的基本结构和一些基本的指令,并进一步加深了用单片机进行整个系统硬件和程序设计的方法与步骤,巩固了利用单片机进行系统软件设计时的一些技巧与方法。
就本次所选的设计题目而言,我在设计的过程中,首先通过仔细分析题目,来找到解决问题的突破口,这一步对于后续过程的设计具有指导意义。
其次,根据所分析的结果,综合考虑各种必要条件后,设计出了系统的硬件电路图。
接着,进行系统的软件设计,这一步需要详细分析题中各种情况之间的逻辑关系与其自身的要求,还要综合考虑到实际情况的需要。
在搞清楚这些关系之后,为系统编写汇编程序源代码。
然后,在KeilC应用软件环境下,对汇编源代码进行编译、汇编与连接,并将生成的可执行文件与硬件系统相关联,最后在Proteus仿真环境下进行仿真,调试仿真结果是否正确。
通过此次课程设计,我复习掌握了不仅有关单片机的知识,还收获了一些有关论文写作规范的要求,这对我来说也是受益匪浅的。
7参考文献
[1]李华,王思明,张金敏.单片机原理及应用[M].兰州:
兰州大学出版社,2001.5.
[2]徐爱均.单片机原理实用教程-基于Proteus虚拟仿真[M].北京:
电子工业出版社,2009.1.
[3]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,1994.
[4]房小翠.单片机实用系统设计技术[M].北京:
国防工业出版社,1999.
[5]胡汉才.单片机原理及接口技术.清华大学出版社,1995.
3、附录
源程序:
ORG0000H
AJMMAIN
ORG000BH
LJMPTC0
ORG0030H
MAIN:
MOVDPTR,#9FFFH指向DAC0832
(1)
MOVA,70H
MOVX@DPTR,ADAC0832
(1)输出
MOVDPTR,#7F00H指向8155命令字端口地址
MOVA,#06H设置A口为输入,B口、C口为输出
MOVX@DPTR,A送命令字
MOVDPTR,#7F01H指向A口地址
MOVXA,@DPTR读入A口的开关数据
JNBACC.4,K10H判断是否“4”号键,若是则转输出10Hz信号
JNBACC.5,K100H判断是否“5”号键,若是则转输出100Hz信号
JNBACC.6,K500H判断是否“6”号键,若是则转输出500Hz信号
JNBACC.7,K1K判断是否“7”号键,若是则转输出1KHz信号
AJMPMAIN
LED1:
MOVR3,#06H设置6个LED显示
MOVR2,#01H选通第一位LED数据
MOVR1,#30H送显示缓冲区首址
GN1:
MOVDPTR,#7F03H指向C口地址
MOVA,R2位选通数据送A
MOVX@DPTR,A位选通数据送C口
RLA选通下一位
MOVR2,A位选通数据送R2中保存
MOVA,@R1取键值
MOVDPTR,#TAB送LED显示软件译码表首址
MOVCA,@A+DPTR查表求出键值显示的段码
MOVDPTR,#7F02H指向B口地址
MOV@DPTR,A段码送显示
LCALLLOOP1调延时子程序
INCR1指向下一位显示缓冲区地址
DJNZR3,GN1循环显示6个LED
RET
LOOP1:
MOVR4,#08H延时子程序
LOOP:
MOVR5,#0A0H
DJNZR5,$
DJNZR4,LOOP
RET
K10H:
MOV30H,#00H显示10Hz
MOV31H,#00H
MOV32H,#00H
MOV33H,#00H
MOV34H,#01H
MOV35H,#00H
LCALLLED1调显示子程序
MOVTMOD,#00H
MOVTL0,#15H
MOVTH0,#9EH
AJMPPD
K100H:
MOV30H,#00H显示100Hz
MOV31H,#00H
MOV32H,#00H
MOV33H,#01H
MOV34H,#00H
MOV35H,#00H
LCALLLED1调显示子程序
MOVTMOD,#00H
MOVTL0,#08H
MOVTH0,#0F6H
AJMPPD
K500H:
MOV30H,#00H显示500Hz
MOV31H,#00H
MOV32H,#00H
MOV33H,#05H
MOV34H,#00H
MOV35H,#00H
LCALLLED1调显示子程序
MOVTMOD,#00H
MOVTL0,#01H
MOVTH0,#0FEH
AJMPPD
K1K:
MOV30H,#00H显示1KHz
MOV31H,#00H
MOV32H,#01H
MOV33H,#00H
MOV34H,#00H
MOV35H,#00H
LCALLLED1调显示子程序
MOVTMOD,#00H
MOVTL0,#01H
MOVTH0,#0FFH
PD:
JNBACC.0,KE0判断是否“0”号键按下,若是则转方波输出
JNBACC.1,KE1判断是否“1”号键按下,若是则转正弦方波输出
JNBACC.2,KE2判断是否“2”号键按下,若是则转三角波输出
JNBACC.3,KE3判断是否“3”号键按下,若是则转锯齿波输出
LJMPPD
KE0:
MOVR7,#00H
LCALLLED1调显示子程序
MOVR6,#00H
AJMPGN
KE1:
MOVR7,#02H
LCALLLED1调显示子程序
MOVR6,#00H
AJMPGN
KE2:
MOVR7,#02H
LCALLLED1调显示子程序
MOVR6,#00H
AJMPGN
KE3:
MOVR7,#02H
LCALLLED1调显示子程序
MOVR6,#00H
GN:
SETBTR0
SETBET0
SETBEA
LOP1:
JNBACC.4,K10H判断是否“4”号键,若是则转输出10Hz信号
JNBACC.5,K100H判断是否“5”号键,若是则转输出100Hz信号
JNBACC.6,K500H判断是否“6”号键,若是则转输出500Hz信号
JNBACC.7,K1K判断是否“7”号键,若是则转输出1KHz信号
AJMPLOP1
TC0:
CJNER7,#00H,TC1发送方波程序
MOVDPTR,#TAB1送方波数据表首址
MOVA,R6发送数据寄存器
MOVCA,@A+DPTR
MOVDPTR,#0AFFFH指向DAC0832
(2)
MOVX@DPTR,ADAC0832
(2)输出
MOVA,R6
INCA
MOVR6,A
CJNEA,#32,QL1
MOVR6,#00H
AJMPQL1
TC1:
CJNER7,#01H,TC2发送正弦波程序
MOVDPTR,#TAB2送正弦波数据表首址
MOVA,R6
MOVCA,@A+DPTR
MOVDPTR,#0AFFFH指向DAC0832
(2)
MOVX@DPTR,ADAC0832
(2)输出
MOVA,R6
INCA
MOVR6,A
CJNEA,#32,QL1
MOVR6,#00H
AJMPQL1
TC2:
CJNER7,#02H,QL1发送三角波程序
MOVDPTR,#TAB3送三角波数据表首址
MOVA,R6
MOVCA,@A+DPTR
MOVDPTR,#0AFFFH指向DAC0832
(2)
MOVX@DPTR,ADAC0832
(2)输出
MOVA,R6
INCA
MOVR6,A
CJNEA,#32,QL1
MOVR6,#00H
AJMPQL1
TC3:
:
CJNER7,#03H,QL1发送锯齿波程序
MOVDPTR,#TAB4送锯齿波数据表首址
MOVA,R6
MOVCA,@A+DPTR
MOVDPTR,#0AFFFH指向DAC0832
(2)
MOVX@DPTR,ADAC0832
(2)输出
MOVA,R6
INCA
MOVR6,A
CJNEA,#32,QL1
MOVR6,#00H
QL1:
RETI
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,82H,0F8H,80H
TAB1:
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H
TAB2:
DB80H,83H,86H,89H,8DH,90H,93H,96H
DB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
DB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
DB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
DB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H
DB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
DB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH
DB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
DB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
DB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH
DB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH
DB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H
DB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
DB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H
DB96H,93H,90H,8DH,89H,86H,83H,80H
DB80H,7CH,79H,78H,72H,6FH,6CH,69H
DB66H,63H,60H,5DH,5AH,57H,55H,51H
DB4EH,4CH,48H,45H,43H,40H,3DH,3AH
DB38H,35H,33H,30H,2EH,2BH,29H,27H
DB25H,22H,20H,1EH,1CH,1AH,18H,16H
DB15H,13H,11H,10H,0EH,0DH,0BH,0AH
DB09H,08H,07H,06H,05H,04H,03H,02H
DB02H,01H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,01H,02H
DB02H,03H,04H,05H,06H,07H,08H,09H
DB0AH,0BH,0DH,0EH,10H,11H,13H,15H
DB16H,18H,1AH,1CH,1EH,20H,22H,25H
DB27H,29H,2BH,2EH,30H,33H,35H,38H
DB3AH,3DH,40H,43H,45H,48H,4CH,4EH
DB51H,55H,57H,5AH,5DH,60H,63H,66H
DB69H,6CH,6FH,72H,76H,79H,7CH,80H
TAB3:
DB00H,02H,04H,06H,08H,0AH,0CH,0EH
DB10H,12H,14H,16H,18H,1AH,1CH,1EH
DB20H,22H,24H,26H,28H,2AH,2CH,2EH
DB30H,32H,34H,36H,38H,3AH,3CH,3EH
DB40H,42H,44H,46H,48H,4AH,4CH,4EH
DB50H,52H,54H,56H,58H,5AH,5CH,5EH
DB60H,62H,64H,66H,68H,6AH,6CH,6EH
DB70H,72H,74H,76H,78H,7AH,7CH,7EH
DB80H,82H,84H,86H,88H,8AH,8CH,8EH
DB0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ACH,0AEH
DB0B0H,0B2H,0B4H,0B6H,0B8H,0BAH,0BCH,0BEH
DB0C0H,0C2H,0C4H,0C6H,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 单片机 AT89C52 采用 程序设计 方法 产生 锯齿