波形发生器课程设计说明精品

上传人:无*** 文档编号:74752216 上传时间:2022-04-14 格式:DOC 页数:38 大小:1.08MB
收藏 版权申诉 举报 下载
波形发生器课程设计说明精品_第1页
第1页 / 共38页
波形发生器课程设计说明精品_第2页
第2页 / 共38页
波形发生器课程设计说明精品_第3页
第3页 / 共38页
资源描述:

《波形发生器课程设计说明精品》由会员分享,可在线阅读,更多相关《波形发生器课程设计说明精品(38页珍藏版)》请在装配图网上搜索。

1、单片机技术课程设计说明书 波形发生器 院 、 部: 电气与信息工程学院 学生姓名: 指导教师: 职称 专 业: 电气工程及其自动化 班 级: 电气本1204班 完成时间: 2015年06月08号 湖南工学院课程设计任务书课 程: 单片机技术 课程设计题目: 数字电子钟 数字频率计 数字电压表 交通灯 抢答器 密码锁 波形发生器 数字温度计 计算器 数字式秒表 适 用 班 级: 电气本12012、电气本12034 电气本1205自本1201 时 间: 20142015学年第二学期 指 导 教 师: 单片机技术课程设计任务书一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、

2、波形发生器、数字温度计、计算器、数字式秒表。二、适用班级:电气本11012、电气本11034、电气本1105自本1101三、指导教师:王韧四、设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。五、设计内容与要求 设计内容1、数字电子钟设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子

3、钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。2、数字频率计设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。3、数字电压表设计一个能够测量直流电压的数字电压表。测量电压范围05V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结

4、束键则自动返回“P.”状态。4、交通灯设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。5、抢答器设计一个具有特定功能的抢答器。该抢答器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。主持人按下开始按钮后,抢答开始并限定时间30S;10S内

5、无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。6、密码锁设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状

6、态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。7、波形发生器设计一个具有特定功能的波形发生器。该波形发生器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该波形发生器可以分别产生幅值05V、频率100Hz100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波。8、数字温度计设计一个具有特定功能的数字温度计。该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。测量温度范围099,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。9、计算器设计一个具有特定功能的计算器。该计算器上电或按键复位后能自动显示系

7、统提示符“P.”,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。10、数字式秒表设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。设计要求1、以上课题可以任选其一或多选,学生也可以自拟课题;2、编程语言:汇编或C51;3、计算机打印单片机技术课程设计说明书一份;4、设计时间:一周;5、实物制作;6、人员分组:一人一组一实物。六、单片机技术课程设计说明书正文主要内容参照“单片机技术课程设计说明书正文主

8、要内容”文件。七、单片机技术课程设计说明书书写规范格式 参照“单片机技术课程设计说明书书写规范格式”文件。八、参考资料1、马忠梅,单片机的C语言Windows环境编程宝典M, 北京:北京航空航天大学出版社,2003.6; 2、李光飞,单片机C程序设计指导M,北京:北京航空航天大学出版社,2003.01 ;3、李光飞,单片机课程设计实例指导M,北京:北京航空航天大学出版社,2004.9。电气自动化教研室 2014年2月20日摘 要随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。单片机构成的仪器具有高可靠性,高性价比。单片机技术在智能仪表和自动化等诸多领域

9、有了极为广泛的应用,并用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。只要对电路稍加修改,调整程序,就能实现功能的升级。本系统利用单片机AT89S52采用程序设计方法产生方波锯齿波、三角波、正弦波、梯形波5种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,并通过按键来控制5种波形的类型选择。本次设计主要由信号发生模块、数模转换模块和仿真模块。主要的设计实施过程:首先,选用ATMEL

10、公司的单片机AT89S52,以及选购其他电子元器件。第二步,使用DXP2004设计硬件电路原理图,并设计PCB图完成人工布线。第三步,并且使用 Keil-uVision4软件编写单片机的汇编语言程序、仿真、软件调试。第四部,使用PROTEUS软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次课程设计。 关键词:波形发生器;单片机;DAC0832ABSTRACT With the fast developmentof electronic technology,computerisused more and more widely,based on the designtechno

11、logy ofintelligentinstrument andMCUcontinues to mature.The instrumentconsists of a single chip microcomputerhas the advantages of high reliability,high performance price ratio.SCMtechnology in intelligentinstrumentation and automationand other fieldshavebeen widely applied,andall kinds of household

12、electrical appliancesuse,wide applicationof microcomputer technology,promote the progress of the society.Using single chip computerprogram design method is adoptedto generate waveforms,the lineis relatively simple,compact structure,low price,high frequency stability,strong anti-interference ability,

13、but also can beslightly adjusted,improvedwaveformof waveform,easy toprogram control.As long as the changes,the circuita little adjustmentprogram,can achieve the functionsof theupgrade.The system uses microcontroller AT89C52programming method was used toproduce sawtooth,triangle wave,sine wave,trapez

14、oidalwave four waveforms,then thedigital signal into an analog signal,through D/Aconverter DAC0832filter amplifier,and ultimately by theoscilloscopedisplay,select the type.Implement the design of the main process: first, choose ATMEL companys SCM AT89S52, and other electronic components of choose an

15、d buy. The second step, the use of DXP2004 design hardware circuit principle diagram, and complete the manual wiring design PCB figure. The third step, and use the Keil uVision4 software write MCU assembly language program, simulation, software debugging. Fourth, the use of PROTEUS simulation softwa

16、re and hardware debugging software. Finally, the combination of software and hardware debugging circuit board, to complete the course. Key words waveform generator; single chip microcomputer; dac0832 目 录1 设计任务、功能要求及总体方案介绍41.1 设计任务41.2 总体方案设计4 1.3 总体逻辑框图52 硬件电路设计6 2.1 设计课题硬件系统各模块功能简要介绍6 2.2 波形发生器原理图、

17、CAD图、PCB图、元器件布局图8 2.3 波形发生器元器件清单83 波形发生器软件系统的设计9 3.1 单片机资源使用情况 93.2 软件系统各模块功能简要介绍94 调试与仿真结果17结束语21致谢22参考文献23附录24 附录A24 附录B25 附录C26 附录D27 附录E2831 设计任务、功能要求及总体方案介绍1.1 设计要求 使用单片机AT89S52作为主要控制芯片,设计一个具有特定功能的波形发生器。该波形发生器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该波形发生器可以分别产生幅值05V、频率100Hz100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波

18、。绘制系统硬件连线图,画出程序流程图并编写程序实现系统功能。1.2 总体方案设计 利用AT89C51单片机外接数模转换器和运算放大电路,由用户通过按键选择输出实验室中经常使用到的几种基本波形:方波、锯齿波、正弦波、梯形波和三角波。方波由AT89C51单片机将最大值(255)和最小值(0)输出给进行转换,锯齿波波由AT89C51单片机将由最小到最大的值输出给进行转换,三角波由AT89C51单片机先将由最小到最大的值输出给进行转换,然后将由最大到最小的值输出给进行转换,每送一个值转换后延时一段时间,并由用户通过键盘进行延时长短的调节从而达到波形周期的调节。梯形波则是先将由最小到最大的值输出给进行转

19、换,然后延时一段时间,再将由最大到最小的值输出给进行转换,再延时相同的时间,接着进行下一次转换。正弦波则是在一个正弦波上取256个点送给D/A转换,用正弦函数数据发生器来产生的到的点会精确一点。与微处理器兼容的8位数模转换器DAC0832将数字量转换为模拟量电压信号,通过运放电路得到方波、锯齿波、正弦波、三角波、梯形波信号,波形保证了它的精度、平滑和稳定。调幅则是通过调节运放反馈电阻来改变放大倍数,从而改变幅值。可采用单片机程序产生以上5种波形,并通过一片转换器输出。通过外接键盘来设定波形的类型、幅值和频率,并在数码管上简易的显示波形类型。1.3 总体逻辑框图 总体逻辑框图如图1所示。图1 总

20、体逻辑框图2 硬件电路设计2.1 设计课题硬件系统各模块功能简要介绍(1) AT89S52控制模块 根据功能与设计的任务需要,控制器的功能用于外部键盘信号的接收和识别、复位电路、液晶模块的显示控制等,我采用了AT89S52系列单片机,具有反应速度极快,低功耗,高性能的特点。AT89S52是一种性能比较好的CMOS8位微控制器。Atmel 公司采用密度高不容易丢失性存储器技术制造。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在芯片上,拥有强大的8 位CPU 和可编程的Flash,使它在嵌入式控制领域上提供多功能、灵活的解决方案。(2) 电源电路模块电源电路是由一个1K电阻、一个发

21、光二极管、一个二极管、还有一个开关组成。电源电路的主要功能是给单片机和液晶显示提供电源,保证AT89S52控制模块和12864液晶模块能正常工作。(3) 复位电路模块复位电路是由一个220电阻、一个1K电阻、一个22uF的电解电容还有一个安静来组成。复位电路在这次设计中起到了复位与清零的作用。(4) 下载电路下载电路就由一个下载口组成,目的是让程序经过下载口下载到单片机中。(5) 振荡模块本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,用于构成振荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,外部电路简单,只需要一个晶振和 2个电容即可,电路中的器件选择可以通过计

22、算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是3010pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。(6) 数码管显示模块四位数码管是一种半导体发光器件,其基本单元是发光二极管。能显示4个数码管叫四位数码管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到

23、一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。本设计我采用共阳极四位一体数码管两个,8根段控线并联各自接到单片机P0口线上,位控线通过74HC573接到单片机P2口线上。74HC573包含八进制3态非反转透明锁存器,是一种高性能硅门CMOS

24、器件。这里将LE接VCC,OE接GND,使芯片处于直通状态。(7) 运放模块LM324是四运放集成电路,它采用14脚双列直插塑料封装(DIP14),它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每组运放有5 个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo 的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo 的信号与该输入端的相位相同。由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用

25、在各种电路中。将得到的模拟信号量分别进行放大,以利于对系统的信号量进行观察、读取等研究。由于信号从D/A转换器出来的模拟信号量是比较微弱的,因而需要对所得到的信号量进行放大。 (8) 按键模块在单片机控制系统中,为了实现人对系统的操纵控制及向系统输入参数,都需要为系统设置按键或键盘,实现简单的人机会话。键盘是一组(通常多于8个)按键的集合。键盘所使用的按键一般都是具有一对常开触点的按键开关,平时不按键时,触点处于断开(开路)状态,当按下按键时,触点才处于闭合(短路)状态,而当按键被松开后,触点又处于断开状态。根据键盘上闭合键的识别方法不同,键盘可分为非编码键盘和编码键盘两种。非编码键盘上,闭合

26、键的识别采用软件实现;编码键盘上,闭合键的识别则由专门的硬件译码器产生按键的编号(即键码),并产生一个脉冲信号,以通知CPU接受键码。编码键盘使用较为方便,易于编程,但硬件电路较为复杂,因此在单片机的控制系统中应用较少。而非编码键盘几乎不需要附加什么硬件电路,因此在实际单片机控制系统中较多采用。从键盘的结构来分,键盘可分为独立式和矩阵式两类。当系统操作比较简单,所需键盘较少时,可采用独立式非编码键盘;而当系统操作比较复杂,需要数量较多的按键时,可采用矩阵式非编码键盘。在本课题设计中,采用的是独立式键盘。2.2 波形发生器原理图、CAD图、PCB图、元器件布局图 电路原理图和CAD图(见附录A)

27、 电路PCB图(见附录B) 元器件布局图(见附录C)2.3 波形发生器元器件清单 设计课题元器件清单。(见附录D)3 波形发生器软件系统的设计3.1 单片机资源使用情况本次设计所占用的I/O口资源如下所示:使用P0口接DAC0832芯片的输入信号端和数码管的段控端;使用P1口接独立键盘:使用P2口接HC573芯片控制数码管的位控端;使用P3.6(/WR)接到DAC0832的/CS和/WR。3.2 软件系统各模块功能简要介绍3.2.1 总流程图程序总体流程图如图2所示。图2 程序总体流程图3.2.2 延时函数 延时函数的作用就是产生固定或者带参数的延时,运用在键扫描函数中,用于延时去抖,运用在波

28、形发生函数里,用于控制波形的周期。3.2.3 键扫描函数 件扫描函数的作用是生成并返回键码,在没有按键按下时执行扫描函数的结果是将返回键码置“0”,当有键按下时则生成相应的键码,并返回给定义的变量。键扫描寒暑流程图如图3所示。图3 键扫描函数流程图3.2.4 显示函数 显示函数的作用是,在数码管上显示“P.”,表示准备工作。其流程图如图4所示。图4显示函数流程图3.2.5 方波函数 方波函数的作用是产生方波函数。其流程图如图5所示。图5 方波函数流程图 3.2.6 锯齿波函数锯齿波函数的作用是产生锯齿波。其流程图如图6所示。图6 锯齿波函数流程图3.2.7 三角波函数 三角波函数的作用就是产生

29、三角波,其流程图如图7所示。图7三角波函数流程图3.2.8 梯形波函数 梯形波函数的作用是产生梯形波,其流程图如图8所示。图8 梯形波函数流程图3.2.9 正弦波函数正弦波函数的作用产生正弦波,其流程图如图9所示。图9 正弦波函数流程图4调试与仿真结果 本次的设计主要应用了protues和keilC51软件进行系统设计和仿真,经过仿真后,结果较好,示波器可以正确的输出方波锯齿波、三角波、梯形波、正弦波。 没有按键按下时,波形图如图10所示图10没有按键按下时波形图 当按下K0键时,产生方波,如图11所示图11 按下K0键产生方波当按下K1按键时,产生锯齿波,如图12所示图12 按下K1键产生锯

30、齿波当按下K2按键时,产生三角波,如图13所示图13 按下K2键时产生三角波当按下按键K3时,产生梯形波,如图14所示图14 按下K3产生梯形波当按下K4按键时,产生正弦波,如图15所示图15 按下K4产生正弦波结束语 课程设计是将本学期学到的单片机知识有机的结合起来的一种手段,它的目的是检验并且提高学生的动手和分析问题的能力。本次设计虽然课题较难,但我相信困难是可克服的,只有挑战有一定难度的设计,才能让自己学到更多的东西。设计过程中也的确遇到了很多问题,例如自学独立式键盘和数模转换、编写的程序反复出错等,通过请教同学和查阅网上资料问题也一步一步地得以解决,自己也确实学习了不少的东西。革命尚未

31、成功,生活还在继续,在今后的学习中,只有通过理论联系实际,才能真正的了解自己,才能更全面地学到真本事。致 谢在波形发生器的制作过程中我遇到了很多有挑战和问题,是同学的热情无私的帮助和王韧老师的悉心指导才得以逐一克服。在我完成课程设计论文的过程中,得到了王老师的悉心指导和支持。王老师渊博的学识、教书育人的高尚风范、严谨的治学风格、高度的敬业精神以及热情细致的指导,使我终身受益。无论是论文总体结构还是具体完成,王老师都给予了我大量的帮助,并提供了充足的最新方案资料等。从而使我的理论和实践水平得到较大的提高开阔视野,并总结了很多有意义的经验。这些对于我来说是无比珍贵的知识财富。同时,我的课程设计论文

32、也得以顺利的完成。在此,我衷心地向王老师表示最诚挚的谢意,同时,还要向帮助过的同学衷心的说声谢谢,如果不是王老师的指导和同学们的帮助,我是很难克服这些困难的,谢谢你们!参考文献1李广第,朱月秀.单片机基础M(第三版).北京:北京航天航空大学出版社,2007. Li Guangdi, Zhu Yuexiu. Single chip microcomputers basis M(Third edition).Beiji-ng: Beijing University of Aeronautics and Astronautics,2007.2马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计M.

33、(第四版)北京:北京航空航天大学出版社 Ma Zhongmei, Ji Shunxin, Zhang Kai, Ma Yan. Single chip microcomputers C app-lication design M(Fourth edition).Beijing: Beijing University of Aeronautics and Astro-nautics.3安源.8 位串行模数转换器TLC548、TLC549 的应用J.国外电子元器件,2000,(2):25-26. An Yuan. The 8 serial modulus converter TLC548、TLC5

34、49s applicationJ.Foreign e-lectronic components, 2000, (2):25-26.4张义红.单片机与TLC549 模数转换器的接口设计J.岳阳:湖南理工学院学报(自然科学版),2005,(2):79-82. Zhang Yihong. The interface design of single chip microcomputer and TLC549 mod-ulus converter J. Yue Yang: Journal of Hunan institute of technology (nature science v-ersion

35、), 2005, (2):79-82.5李全利.单片机原理及应用(C51编程)M.北京:高等教育出版社,2012. Li Quanli. The single chip microcomputer principle and application(C51 programmin-g) M. Beijing: Higher education press, 2012.附 录附 录A: 电路原理图和CAD图附录B: PCB图PCB底层图PCB顶层图 附录C:元件布局图附录D:元器件清单 序 号元器件名称规 格 数 目 1AT89S52单片机40P12AT89S52单片机芯片锁紧座40P13四位一体

36、共阳数码管24四位一体共阳数码管插座40P1574HC57320P1674HC573芯片插座20P17晶振12MHz18发光二极管99单排插针55P210三极管9012111蜂鸣器112小按键1513下载口座子114六脚按键电源开关115USB电源线116USB电源线插座117电阻200118电阻470819电阻1K420电解电容22uf221瓷片电容33pf222排阻10k423排阻470124短路冒425PCB板子127USB下载线1 28DAC083220P1 29LM3241 30电阻10K1附录E:程序*项目名称:波形发生器的设计*设计者:张汉武 *指导老师:王韧*设计日期:2014

37、年06月08日*功能要求:设计一个具有特定功能的波形发生器。该波形发生器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该波形发生器可以分别产生幅值05V、频率100Hz100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波*#include/*单片机头文件*/#include/*地址定义头文件*/#define uchar unsigned char#define uint unsigned intsbit ss0=P20; / 数码管四个位控端sbit ss1=P21;sbit ss2=P22;sbit ss3=P23;#define dac XBYTE0x7fff/

38、dac0832地址定义uchar i,j,m,temp,v,a,b,fanhui; uchar ys=5;/延时参数,用于调整频率,初始值为0uchar code Sin256= 0x7F,0x82,0x85,0x88,0x8B,0x8F,0x92,0x95,0x98,0x9B,0x9E,0xA1,0xA4,0xA7,0xAA,0xAD,0xB0,0xB3,0xB6,0xB8,0xBB,0xBE,0xC1,0xC3,0xC6,0xC8,0xCB,0xCD,0xD0,0xD2,0xD5,0xD7,0xD9,0xDB,0xDD,0xE0,0xE2,0xE4,0xE5,0xE7,0xE9,0xEB,

39、0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFB,0xFC,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFC,0xFB,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEB,0xE9,0xE7,0xE5,0xE4,0xE2,0xE0,0xDD,0xDB,0xD9,0xD7,0xD5,0xD2,0xD0,0xCD,

40、0xCB,0xC8,0xC6,0xC3,0xC1,0xBE,0xBB,0xB8,0xB6,0xB3,0xB0,0xAD,0xAA,0xA7,0xA4,0xA1,0x9E,0x9B,0x98,0x95,0x92,0x8F,0x8B,0x88,0x85,0x82,0x7F,0x7C,0x79,0x76,0x73,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x54,0x51,0x4E,0x4B,0x48,0x46,0x43,0x40,0x3D,0x3B,0x38,0x36,0x33,0x31,0x2E,0x2C,0x29,0x27,0x25,0x23,

41、0x21,0x1E,0x1C,0x1A,0x19,0x17,0x15,0x13,0x12,0x10,0x0F,0x0D,0x0C,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0C,0x0D,0x0F,0x10,0x12,0x13,0x15,0x17,0x19,0x1A,0x1C,0x1E,

42、0x21,0x23,0x25,0x27,0x29,0x2C,0x2E,0x31,0x33,0x36,0x38,0x3B,0x3D,0x40,0x43,0x46,0x48,0x4B,0x4E,0x51,0x54,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x73,0x76,0x79,0x7C; /正弦波采样表格uchar Seg=0xf9,0xa4,0xb0,0x99,0x92;/数码管09数字代码表格void delay30ms(void) / 30ms延时 unsigned char a,b; for(b=101;b0;b-) for(a=14

43、7;a0;a-);void delay(m)while(-m); /键扫描函数所用的延时void delay1(void)for(b=1;b0;b-)for(a=2;a0;a-); /调整频率所用延时uchar keyscan() /键扫描函数 uchar tmp; /列号,行号 P1=0xff; /发全行0扫描码 if(P1&0xff)!=0xff) /若有键按下 delay(1000); / 延时去抖 if(P1&0xff)!=0xff) /有键按下 tmp=(P1&0xff); /当需要屏蔽某些位的时候可改变0xff的值 dowhile(P1&0xff)!=0xff);/等待释放tmp=

44、tmp; return (tmp); /还回键值 return (0); /无键按下,还回0void fangbo(void) /方波函数,ys控制延时次数 dac=0x00; for (i=0;iys;i+) delay1(); dac=0xff; for (i=0;iys;i+) delay1();void juchibo(void) /锯齿波函数for(i=0;i255;i+) dac=i;for (j=0;jys;j+)delay1(); void sanjiaobo(void) /三角波函数 for(i=0;i255;i+) dac=i;for (j=0;j0;i-) dac=i;

45、for (j=0;jys;j+)delay1(); void zhengxianbo(void)/正弦波函数for(i=0;i=255;i+) dac=Sini;for (j=0;j0x00;i-) dac=i; for (j=0;jys;j+) delay1(); dac=0x00;delay30ms(); for(i=0x00;i0xff;i+) dac=i; for (j=0;jys;j+) delay1();delay30ms(); void main(void) /主函数 EA=0; /关中断 dac=0; ss0=1; ss1=0; ss2=0; ss3=0; P0=0x0c; /

46、显示P. v=keyscan(); if(v!=0) /当有键按下进入判键循环 while(1) switch(v)case 1:fanhui=1;/恢复值保存用于调整频率后返回while(v=1|v=0)/保持循环,并保证能跳出fangbo();v=keyscan();break; case 2:fanhui=2;while(v=2|v=0)juchibo();v=keyscan();break; case 4:fanhui=4;while(v=4|v=0)sanjiaobo();v=keyscan();break; case 8:fanhui=8;while(v=8|v=0)zhengxianbo();break;case 16:fanhui=16;while(v=16|v=0)tixingbo();v=keyscan();break;case 32:if(ys1)ys-;/用1限制ys比用=0限制更安全v=fanhui;break;case 128:P2=0x01;fanhui=0;/返回值清零防止回跳混乱while(!(v=keyscan();/当有键按下时跳出break;default:v=keyscan();break; 34

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!