单片机课程设计信号发生器的设计
- 格式:doc
- 大小:295.00 KB
- 文档页数:25
单片机课程设计信号发生器的设计
摘要
随着信息技术的高速发展,单片机在生活以及工业生产中担任着越来越重要的角色,因而掌握好单片机的知识对我们信息专业的学生来说非常重要。本文介绍一种用AT89C52单片机接一个数模转换器构成的单片机波形发生器,可产生较清晰的方波、三角波、锯齿波和正弦波4种波形信号,用示波器可以显示输出的波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,信号的周期则通过一个电位器可以调节,可以输出集中频率的波形,本设计电路具有线路简单、结构紧凑、性能优越等特点。
关键词: 信号发生器 AT89C52单片机 ADC0808
目 录
摘要 I
第1章 绪论 1
第2章 系统设计 2 单片机课程设计信号发生器的设计
2.1设计思路 2
2.2设计功能2
第3章 过程论述 3
3.1 硬件设计 3
3.2 软件设计 5
第4章 电路实现 10
第5章 波形仿真 11
5.1正弦波的仿真 11
5.2方波的仿真 11
5.3锯齿波的仿真 12
5.4 三角波的仿真 12
第6章 课程设计总结 13
参考文献……………………………………………………………………14
附录 源程序清单 15 单片机课程设计信号发生器的设计
第一章 绪论
随着信息技术的飞鼠发展,单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能仪器仪表,机电一体化产品,家用电器等各个领域。成为现代化电子系统中最重要的智能化工具。因而掌握一定的单片机技术对与工科类的学生来说十分重要。
信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。
信号发生器是一种常用的信号源,广泛应用于科学研究、生产实践和教学实验等领域。特别是在通信系统的科研实验中,常常需要用到多种不同频率和相位的信号,如正弦波、三角波、方波和锯齿波等,因此多功能信号发生器应用十分广泛。在数字化时代的今天,经典的由模拟电路组成的信号发生器已经渐渐远离了人们,取而代之的是电路简洁、功能多样、功耗低的数字电路。在以后的时间里,将会有越来越多的数字化的信号发生器运用在各种科学技术领域和工程实践中,给人们的日常生活带来更多的便利。 单片机课程设计信号发生器的设计
本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波方波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出
第二章 系统设计
2.1设计思路
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。AT89C52单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将AT89C52再配置键盘及其接口、数模转换及波形输出、指示灯及其接口等三部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图所示。[2]
图2.1 原理图 单片机课程设计信号发生器的设计
2.2设计功能
(1)本方案利用4个独立式按键。其中“K0”号键代表方波输出,“K1”号键代表锯齿波输出,“K2”号键代表三角波输出,“K3” 号键代表正弦波输出。
(2)利用DAC0808接变阻器可对信号源幅度的调节,
(3)频率范围:10~1000Hz。
第3章 过程论述
3.1 硬件设计
本系统由单片机、显示接口电路,波形转换(D/A)电路和电源等四部分构成。硬件原理方框图如图所示。
图3.1 硬件原理方框图
3.1.1 按键接口电路 单片机课程设计信号发生器的设计
图4.1.1为键盘接口电路的原理图,图中“K1”号键控制方波输出,“K2”号键控制锯齿波输出。 “K3”号键控制三角波输出,“K4”号键控制正弦波输出。
图3.2 按键接口图
3.1.2 D/A转换电路
由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0808。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。DAC0808输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0808是电流型输出,在应用时外接运放使之成为电压型输出。如图3.1.2所示 单片机课程设计信号发生器的设计
图3.3 D/A转换图
3.1.3 单片机控制电路
如图4.1.3所示,AT89C52从P3口接收来自按键信号,并通过P0口输出一些控制信号,将其输入到DAC0808输出特定的信号。
图3.4 单片机控制电路图
3.2 软件设计
3.2.1主程序流程图 单片机课程设计信号发生器的设计
图3.5 主程序流程图
3.2.2 子程序流程图
(1)方波程序流程图 单片机课程设计信号发生器的设计
图3.6 方波程序流程图
(2) 锯齿波程序流程图 单片机课程设计信号发生器的设计
图3.7 锯齿波程序流程图
(3)三角波程序流程图 单片机课程设计信号发生器的设计
图3.8 三角波程序流程图
(4)正弦波程序流程图 单片机课程设计信号发生器的设计
图3.9 正弦波程序流程图 单片机课程设计信号发生器的设计
第4章 电路实现
如图4.1 为本设计的电路图
图4.1 总电路图
第5章 波形仿真
5.1正弦波的仿真
如图6.1所示,为正弦波的仿真图,由于电路上的某些缺陷导致信号幅度有时有些跳变。[1] 单片机课程设计信号发生器的设计
图5.1 正弦波仿真图
5.2方波的仿真
如图6.2为方波的仿真图,可以看出,方波的仿真效果较好
图5.2 方波仿真图 单片机课程设计信号发生器的设计
5.3锯齿波的仿真
图5.3 锯齿波仿真图
5.4 三角波的仿真
图5.4 三角波仿真图 单片机课程设计信号发生器的设计
第6章 课程设计总结
课程设计锻炼同学们独立动手能力,发现问题,解决问题的重要环节。对于同学们能力的提高具有很大的作用。一方面他能帮助同学们巩固学过的知识,另一方面又能帮助我们学到一些新的知识。因此,它是非常有意义的。
在刚拿到这个题目的时候,脑袋里还是一塌糊涂,根本还不知道到底该如何动手,但在老师的精心指导下。发现他并不是之前想象的那么难。很多大的问题把它化解成小问题,再把小问题逐个解决后,大的问题也就没有了。其中还发现一个很大的问题:就是很难将书本上的东西灵活地运用到这里面来,自己的动手能力还有待提高。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,这在平时的学习当中是没有法相的,比如数模转换器的应用以及它的附加电路,平时就没有和足以到。这次的课程设计业相当于对自己学过的知识进行了一次比较全面的总结于检查,他涉及到很多方面的知识,如:电路,汇编语言,单片机等,对学生的动手能力要求比较高。最后我要对在这次课程设计中的指导老师表示感谢同时也对所有帮助过我的同学们表示衷心的感谢!
参考文献
[1] 李泉溪,单片机原理与应用实例仿真,北京,北京航空航天大学出版社,2009 单片机课程设计信号发生器的设计
[2] 江世明,基于protues的单片机应用技术,北京,电子工业出版社,2009
[3] 张克农,数字电子技术,高等教育出版社,北京,2009
附录
源程序清单
SQU_K BIT P3.4
SAW_K BIT P3.5
TRI_K BIT P3.6
SIN_K BIT P3.7
SQU_L BIT P1.0
SAW_L BIT P1.1
TRI_L BIT P1.2
SIN_L BIT P1.3
ORG 00H
START: MOV P1,#0FFH ;将P1初始化为0FFH 单片机课程设计信号发生器的设计
MOV P2,#0FFH
MOV P3,#0FFH
MOV DPTR,#SIN_TAB ;将DPTR指向正弦数据表头
MAIN: MOV P0,#00H ;将P0初始化为00H
JNB SQU_K,S1 ;检测方波选择端SQU_K,若SQU_K=0,程序转向S1
SETB SQU_L ;将SQU_L置1
JNB SAW_K,S2
SETB SAW_L
JNB TRI_K,S3
SETB TRI_L
JNB SIN_K,S4
SETB SIN_L
SJMP MAIN
S1: CLR SQU_L ;清除SQU_L
LCALL SQUARE ;调方波子程序 单片机课程设计信号发生器的设计
SJMP MAIN
S2: CLR SAW_L
LCALL SAWTOOTH ;调锯齿波子程序
SJMP MAIN
S3: CLR TRI_L
LCALL TRIANG
SJMP MAIN ;调三角波子程序
S4: CLR SIN_L
LCALL SINWAVE ;调正弦波子程序
SQUARE: MOV R0,#00H
J11: MOV P0,#0FFH ;P0口输出0FFH
MOV P2,#0FFH
MOV A,P2 ;读P2口状态
CPL A ;取反
MOV R3,A