《单片机课程设计信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计信号发生器的设计.docx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机课程设计信号发生器的设计摘要随着信息技术的高速进展,单片机在生活以及工业生产中担当着越来越重要的角色,因而把握好单片机的学问对我们信息专业的学生来说格外重要。本文介绍一种用 AT89C52 单片机接一个数模转换器构成的单片机波形发生器,可产生较清楚的方波、三角 波、锯齿波和正弦波 4 种波形信号,用示波器可以显示输出的波形,波形的周期可用程序转变,并可依据需要选择单极性输出或双极性输出,信号的周期则通过一个电位器可以调整,可以输出集中频率的波形,本设计电路具有线路简洁、构造紧凑、性能优越等特点。关键词: 信号发生器AT89C52 单片机ADC0808目 录摘要 I第 1 章 绪论 1第
2、2 章 系统设计 22.1 设计思路 22.2 设计功能 2 第 3 章 过程论述 33.1 硬件设计 33.2 软件设计 5 第 4 章 电路实现 10 第 5 章 波形仿真 115.1 正弦波的仿真 115.2 方波的仿真 115.3 锯齿波的仿真 125.4 三角波的仿真 12第 6 章 课程设计总结 13参考文献14附录 源程序清单 15第一章 绪论随着信息技术的飞鼠进展,单片机技术作为计算机技术的一个分支,广泛地应用于工业掌握,智能仪器仪表,机电一体化产品,家用电器等各个领域。成为现代化电子系统中最重要的智能化工具。因而把握肯定的单片机技术对与工科类的学生来说格外重要。信号发生器应用
3、广泛,种类繁多,性能各异,分类也不尽全都。依据频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。依据输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器, 函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。依据信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在肯定范围内连续可调,并且读数准确、稳定、屏蔽良好的中
4、、高档信号发生器。信号发生器是一种常用的信号源,广泛应用于科学争论、生产实践和教学试验等领域。特别是在通信系统的科研试验中,常常需要用到多种不同频率和相位的信号,如正弦波、三角波、方波和锯齿波等,因此多功能信号发生器应用格外广泛。在数字化时代的今日,经典的由模拟电路组成的信号发生器已经渐渐远离了人们, 取而代之的是电路简洁、功能多样、功耗低的数字电路。在以后的时间里,将会有越来越多的数字化的信号发生器运用在各种科学技术领域和工程实践中,给人们的日常生活带来更多的便利。单片机课程设计信号发生器的设计本文是做基于单片机的信号发生器的设计,将承受编程的方法来实现三角波、锯齿波方波、正弦波的发生。依据
5、设计的要求,对各种波形的频率和幅度进展程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断效劳子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出其次章 系统设计2.1 设计思路数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。AT89C52 单片机本身就是一个完整的微型计算机,具有组成微型计算机的各局部部件:中心处理器 CPU、随机存取存储器 RAM、只读存储器 ROM、I/O 接口电路、定时器/计数器以及串行通讯接口等,只要将
6、AT89C52 再配置键盘及其接口、数模转换及波形输出、指示灯及其接口等三局部,即可构成所需的波形发生器,其信号发生器构成原理框图如下图。2图 2.1 原理图单片机课程设计信号发生器的设计2.2 设计功能(1) 本方案利用 4 个独立式按键。其中“K0”号键代表方波输出,“K1”号键代表锯齿波输出,“K2”号键代表三角波输出,“K3” 号键代表正弦波输出。(2) 利用 DAC0808 接变阻器可对信号源幅度的调整,3频率范围:101000Hz。第 3 章 过程论述3.1 硬件设计本系统由单片机、显示接口电路,波形转换D/A电路和电源等四局部构成。硬 件原理方框图如下图。图 3.1 硬件原理方框
7、图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 输出的电量也不是真正能连续可调,
8、而是以其确定区分率为单位增减,是准模拟量的输出。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) 锯齿
9、波程序流程图单片机课程设计信号发生器的设计图 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
10、方波仿真图单片机课程设计信号发生器的设计5.3 锯齿波的仿真图 5.3 锯齿波仿真图5.4 三角波的仿真图 5.4 三角波仿真图单片机课程设计信号发生器的设计第 6 章课程设计总结课程设计熬炼同学们独立动手力量,觉察问题,解决问题的重要环节。对于同学们力量的提高具有很大的作用。一方面他能帮助同学们稳固学过的学问,另一方面又能帮助我们学到一些的学问。因此,它是格外有意义的。在刚拿到这个题目的时候,脑袋里还是一塌糊涂,根本还不知道到底该如何动手,但在教师的细心指导下。觉察他并不是之前想象的那么难。很多大的问题把它化解成小问题,再把小问题逐个解决后,大的问题也就没有了。其中还觉察一个很大的问题:就是
11、很难将书本上的东西敏捷地运用到这里面来,自己的动手力量还有待提高。这次课程设计最终顺当完成了,在设计中遇到了很多问题,这在寻常的学习当中是没有法相的,比方数模转换器的应用以及它的附加电路,寻常就没有和足以 到。这次的课程设计业相当于对自己学过的学问进展了一次比较全面的总结于检 查,他涉及到很多方面的学问,如:电路,汇编语言,单片机等,对学生的动手力量要求比较高。最终我要对在这次课程设计中的指导教师表示感谢同时也对全部帮助过我的同学们表示诚意的感谢!参考文献1 李泉溪,单片机原理与应用实例仿真,北京,北京航空航天大学出版社,20232 江世明,基于 protues 的单片机应用技术,北京,电子工
12、业出版社,20233 张克农,数字电子技术,高等教育出版社,北京,2023附录源程序清单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 00HSTART: MOV P1,#0FFH ;将 P1 初始化为 0FFHMOV P2,#0FFH MOV P3,#0FFHMOV DPTR,#SIN_TAB ;将 DPTR 指向正弦数据表头MAIN: MOV P0,#00H ;将 P0 初始化为 00HJNB
13、 SQU_K,S1 ;检测方波选择端SQU_K,假设 SQU_K=0,程序转向S1 SETB SQU_L ;将 SQU_L 置 1JNB SAW_K,S2 SETB SAW_L JNB TRI_K,S3 SETB TRI_L JNB SIN_K,S4 SETB SIN_L SJMP MAINS1: CLR SQU_L ;去除SQU_LLCALL SQUARE ;调方波子程序SJMP MAINS2: CLR SAW_LLCALL SAWTOOTH ;调锯齿波子程序SJMP MAIN S3: CLR TRI_LLCALL TRIANGSJMP MAIN ;调三角波子程序S4: CLR SIN_LL
14、CALL SINWAVE ;调正弦波子程序SQUARE: MOV R0,#00HJ11: MOV P0,#0FFH ;P0 口输出 0FFH MOV P2,#0FFHMOV A,P2 ;读 P2 口状态CPL A ;取反MOV R3,AL11: DEC R3CJNE R3,#255,L11 ;比较假设 R3 不等于 255,转向 L11 INC R0CJNE R0,#254,J11 ;比较假设 R3 不等于 254,转向 J11 MOV R0,#00H ;R0 清 0J12: MOV P0,#00H ;P0 口输出 00H MOV P2,#0FFHMOV A,P2 CPL A MOV R3,A
15、L12: DEC R3CJNE R3,#255,L12 ;比较假设 R3 不等于 255,转向 L12INC R0CJNE R0,#254,J12 ;比较假设 R0 不等于 254,转向 J12 MOV R0,#00HRETSAWTOOTH: CLR A MOV R7,AJ21: MOV P0,R7 ;P0 口输出 00H MOV P2,#0FFHMOV A,P2 CPL A MOV R3,AL21: DEC R3 CJNE R3,#255,L21 INC R7CJNE R7,#255,J21 RETTRIANG: MOV R7,#00H J31: MOV P0,R7MOV P2,#0FFH
16、MOV A,P2CPL A MOV R3,AL31: DEC R3 CJNE R3,#255,L31 INC R7CJNE R7,#255,J31J32: MOV P0,R7 MOV P2,#0FFH MOV A,P2CPL A MOV R3,AL32: DEC R3 CJNE R3,#255,L32DEC R7 DEC R7CJNE R7,#00,J32 RETSINWAVE: MOV R0,#00H ;R0 指向正弦数据表头K41: MOV A,R0MOVC A,A+DPTR ;查表MOV P0,A ;输出数据INC R0MOV P2,#0FFH MOV A,P2CPL A MOV R3,
17、AL41: DEC R3 CJNE R3,#255,L41CJNE R0,#92,K41 K42: DEC R0 MOV A,R0MOVC A,A+DPTR MOV P0,AMOV P2,#0FFH MOV A,P2CPL A MOV R3,AL42: DEC R3 CJNE R3,#255,L42 CJNE R0,#0,K42 RETSIN_TAB: DB 0,0,0,0,1,1,2,3,4,5,6,8,9,11DB 13,15,17,19,22,24,27,30,33,36,39DB 42,46,49,53,56,60,64,68,72,76,80DB 84,88,92,97,101,105,110,114,119,123DB 128,132,136,141,145,150,154,158,163DB 167,171,175,179,183,187,191,195,199DB 202,206,209,213,216,219,222,225,228DB 231,233,236,238,240,242,244,246,247,249DB 250,251,252,253,254,255,255,255 END
限制150内