1、东 北 石 油 大 学 课 程 设 计课 程 单片机课程设计 题 目 函数波形发生器设计 院 系 电气信息工程学院测控系 专业班级 测控技术和仪器111 学生姓名 任建伟 学生学号 指导老师 路敬祎 张岩 7 月 8日东北石油大学课程设计任务书课程 单片机课程设计 题目 函数波形发生器设计 专业 测控技术和仪器 姓名 任建伟 学号 一、任务 设计一款基于AT89C51单片机函数波形发生器。二、设计要求要求:利用D/A芯片产生峰峰值为5V锯齿波、三角波、梯形波、正弦波和方波。控制功效:使用5个拨动开关进行功效切换。当K0接高电平时输出锯齿波;当K1接高电平输出梯形波;当K2接高电平输出三角波;K
2、3接高电平输出正弦波;K4接高电平输出方波。使用关键元器件:8031、6MHz晶振、74LS373、74LS138、2764、DAC0832、LM324、拨动开关K0、K1、K2、K3、K4等。输出波形验证方法:使用示波器测量输出波形。三、参考资料1陈志旺,李亮。51单片机快速上手。机械工业出版社。2薛定宇。控制系统计算及辅助设计MATLAB语言和应用(第2版)。清华大学出版社。3邹虹。单片机波形发生器设计。重庆邮电学院学报。4毅刚,彭喜元。单片机原理和应用设计。电子工业出版社。5杨素行.模拟电子技术基础简明教程(第三版)M.北京:高等教育出版社, . 6 Altium Designer原理图
3、和PCB设计 M.北京:电子工业出版社. 完成期限 .6.30 至 .7.9 指导老师 路敬祎 张岩 专业责任人 曹广华 6月 30 日目录第一章 绪论11.1课题背景11.2本系统研究中国外现实状况21.3本文关键研究内容和工作2第二章 方案论证32.1方案一 纯硬件设计法32.2方案二纯软件设计法32.3方案三 软硬件结正当4第三章 系统硬件设计53.1内部结构概述53.2 P0P3口结构及功效53.3时钟电路和复位电路63.4系统硬件总体设计83.5 DAC0832引脚及功效83.6 74LS373引脚及功效93.7系统硬件原理9第四章 系统软件设计114.1主程序步骤图114.2波形产
4、生12第五章 系统调试和仿真结果145.1 系统调试145.2 仿真结果14结论15参考文件16附录一 程序17附录二 仿真效果图22第一章 绪论1.1课题背景波形发生器是能够产生大量标准信号和用户定义信号,并确保高精度、高稳定性、可反复性和易操作性电子仪器。函数波形发生器含有连续相位变换、和频率稳定性等优点,不仅能够模拟多种复杂信号,还可对频率、幅值、相移、波形进行动态、立即控制,并能够和其它仪器进行通讯,组成自动测试系统,所以被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。在70年代前,信号发生器关键有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角
5、波、上弦波等多个常见标准波形,产生其它波形时需要采取较复杂电路和机电结合方法。这个时期波形发生器多采取模拟电子技术,而且模拟器件组成电路存在着尺寸大、价格贵、功耗大等缺点,而且要产生较为复杂信号波形,则电路结构很复杂。同时,关键表现为两个突出问题,一是经过电位器调整来实现输出频率调整,所以极难将频率调到某一固定值;二是脉冲占空比不可调整。在70年代后,微处理器出现,能够利用处理器、A/D和D/A,硬件和软件使波形发生器功效扩大,产生愈加复杂波形。这时期波形发生器多以软件为主,实质是采取微处理器对DAC程序控制,就能够得到多种简单波形。90年代末,出现多个真正高性能、高价格函数发生器、不过HP企
6、业推出了型号为HP770S信号模拟装置系统,它由HP8770A任意波形数字化和HP1776A波形发生软件组成。HP8770A实际上也只能产生8中波形,而且价格昂贵。很快以后, Analogic企业推出了型号为Data-多波形合成器, Lecroy企业生产型号为9100任意波形发生器等。到了二十一世纪,伴随集成电路技术高速发展,出现了多个工作频率可过GHzDDS芯片,同时也推进了函数波形发生器发展, , Agilent产品33220A能够产生17种波形,最高频率可达成20M, 产品N6030A能够产生高达500MHz频率,采样频率可达1.25GHz。由上面产品能够看出,函数波形发生器发展很快近几
7、年来,国际上波形发生器技术发展关键表现在以下多个方面:(1)过去因为频率很低应用范围比较狭小,输出波形频率提升,使得波形发生器能应用于越来越广领域。波形发生器软件开发正使波形数据输入变得愈加方便和轻易。波形发生器通常许可用一系列点、直线和固定函数段把波形数据存入存放器。同时能够利用一个强有力数学方程输入方法,复杂波形能够由多个比较简单公式复合成v=f (t)形式波形方程数学表示式产生。从而促进了函数波形发生器向任意波形发生器发展,多种计算机语言飞速发展也对任意波形发生器软件技术起到了推进作用。现在能够利用可视化编程语言 (如Visual Basic ,Visual C等等)编写任意波形发生器软
8、面板这么许可从计算机显示器上输入任意波形,来实现波形输入。(2)和VXI资源结合。现在,波形发生器由独立台式仪器和适适用于个人计算机插卡和新近开发VXI模块。因为VXI总线逐步成熟和对测量仪器高要求,在很多领域需要使用VXI系统测量产生复杂波形,VXI系统资源提供了显著优越性,但因为开发VXI模块周期长,而且需要专门VXI机箱配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。(3)伴随信息技术蓬勃发展,台式仪器在走了一段下坡路以后,又重新繁荣起来。不过现在新台式仪器形态,和几年前己有很大不一样。这些新一代台式仪器含有多个特征,能
9、够实施多个功效。而且外形尺寸和价格,全部比过去类似产品降低了二分之一。1.2本系统研究中国外现实状况早在1978年,由美国Wavetek企业和日本东亚电波工业企业公布了最高取样频率为5MHz,能够形成256点(存放长度)波形数据,垂直分辨率为8bit,关键用于振动、医疗、材料等领域第一代高性能信号源,经过快要30年发展,伴伴随电子元器件、电路、及生产设备高速化、高集成化,波形发生器性能有了飞速提升,变得操作越来越简单而输出波形能力越来越强。波形操作方法好坏,是由波形发生器控制软件质量确保,编辑功效增加得越多,波形形成操作性越好。1.3本文关键研究内容和工作多年来,波形发生器在多种领域中得到越来
10、越广泛应用。本系统关键经过研究51单片机功效,外加D/A转换器等其它器件,进行硬件设计和软件编程,完成锯齿波、梯形波、三角波、方波和正弦波共五种波形形成。波形频率改变由程序来控制,即经过改变定时器初值来改变输出波形相邻两点时间间隔,从而实现波形频率改变。第二章 方案论证2.1方案一 纯硬件设计法波形发生器设计纯硬件法早期,波形发生器设计关键是采取运算放大器加分立元件来实现。实现波形比较单一,关键为正弦波、方波和三角波。工作原理嗍也相对简单:首先是产生正弦波,然后经过波形变换(正弦波经过比较器产生方波,方波经过积分器变为三角波)实现方波和三角波。在多种波形后加上一级放大电路,能够使输出波形幅度达
11、成要求,经过开关电路实现不一样输出波形切换,改变电路具体参数能够实现频率、幅度和占空比改变。经过对电路结构优化及所用元器件严格选择能够提升电路频率稳定性和正确度。纯硬件法中,正弦波设计是基础,实现方法也比较多,电路形式通常有LC、RC和石英晶体振荡器三类。LC振荡器适宜于产生几Hz至几百MHz高频信号;石英晶体振荡器能产生几百kHz至几十MHz高频信号且稳定度高;对于频率低于几MHz,尤其是在几百Hz时,常采取RC振荡电路。RC振荡电路又分为文氏桥振荡电路、双T网络式和移相式振荡电路等类型。其中,以文氏桥振荡电路最为常见。现在,实现波形发生器最简单方法是采取单片集成函数信号发生器。它是将产生多
12、种波形功效电路集成优化到一个集成电路芯片里,外加少许电阻、电容元件来实现。采取这种方法突出优势是电路简单,实现方便,精度高,性能优越;缺点是功效较全集成芯片价格较贵。实际中应用较多单片函数信号发生器有MAX038(最高频率可达40MHz)和ICL8038(最高频率为300kHz)。2.2方案二 纯软件设计法波形发生器设计还能够采取纯软件方法来实现。虚拟仪器鞠使传统仪器发生了革命性改变,是二十一世纪测试仪器领域技术发展关键方向。它以计算机为基础,软件为关键,没有传统仪器那样具体物理结构在计算机上实现仪器虚拟面板,经过软件设计实现和改变仪器功效。比如用图形化编程工具LabVIEW来实现任意波形发生
13、器功效:在LabVIEW软件前面板经过拖放控件,设计仪器功效面板(如波形显示窗口,波形选择按键,波形存放回放等工作界面),在软件后面板直接拖放对应波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功效;完成软件打包后,可脱离编程环境独立运行。实现任意波形发生器功效。采取纯软件虚拟仪器设计思绪能够使设计简单、高效,仅改变软件程序就能够轻松实现波形功效改变或升级。从长远角度来看,纯软件法成本较低。软件法缺点是波形响应速度和精度逊色于硬件法。2.3方案三 软硬件结正当软硬件结合波形发生器设计方法同时兼具软硬件设计优势:既含有纯硬件设计快速、高性能,同时又含有软件控制灵活性、智能性。
14、如以单片机和单片集成函数发生器为关键。辅以键盘控制、液晶显示等电路,设计出智能型函数波形发生器,采取软硬件结合方法能够实现功效较全、性能更优波形发生器,同时还能够扩展波形发生器功效,比如经过软件编程控制实现波形存放、运算、打印等功效,采取USB接口设计。使波形发生器含有远程通信功效等。现在,试验、科研和工业生产中使用信号源大多采取此方法来实现。纯硬件设计法功效较单一,波形改变困难、控制灵活性不够,不含有智能性,其中由运算放大器加分立元件组成波形发生器,除在学生试验训练中使用外。基础不被采取。纯软件设计法实现简单,程序改变及功效升级灵活,但实现波形精度及响应速度不如硬件法高。纯软件法关键适适用于
15、对波形精度、响应速度要求不是很高场所。相比之下,软硬件结合方法能够设计出性能最优、功效扩展灵活、控制智能化新一代波形发生器,能够满足教学、科研、工业生产等各方面对波形发生器性能有较高要求应用场所。综合以上多个设计方案,本设计采取方案三方法软硬件设计法。其方案能够产生很好波形,也易实现。第三章 系统硬件设计3.1内部结构概述经典MCS-51单片机芯片集成了以下多个基础组成部分:1)一个8位CPU;2) 128B或256B单元内数据存放器(RAM);3) 4KB或8KB片内程序存放器(ROM或EPROM); 4) 4个8位并行I/O接口P0P3;5)两个定时/计数器; 6) 5个中止源中端管理控制
16、系统; 7)一个全双工串行I/O口UART(通用异步接收、发送器);8)一个片内振荡器和时钟产生电路。图3-1 单片机引脚图3.2 P0P3口结构及功效3.2.1 P0口结构及功效P0口由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器、输出驱动电路和一个和门及一个反相器组成。P0口含有两种功效:第一, P0口能够用作通用I/O接口;第二, P0口能够用作地址/数据总线。3.2.2 P1口结构及功效P1口是由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成,驱动电路内部设有上拉电阻。 3.2.3 P2口结构及功效P2口由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器、输出驱动
17、电路和一个反相器组成。P2口共有两个功效:第一个功效和上述两组引脚第一功效相同,即可用作通用I/O口;它第二功效和P0口引脚第二功效相配合,作为地址总线用于输出片外存放器高8位。3.2.4 P3口结构及功效 P3口由一个输出锁存器、三个三态输入缓冲器、输出驱动电路和一个和非门组成。P3口有两个功效:第一个功效和其它三个端口第一功效相同;第二功效做控制用,每个引脚功效不一样: P3.0RXD:串行口接收数据输入端P3.1TXD:串行口发送数据输出端P3.2INT0:外部中止申请输入端0P3.3INT1:外部中止申请输入端1 P3.4T0:外部计数脉冲输入端0 P3.5T1:外部计数脉冲输入端1
18、P3.6WR:写外设控制信号输出端P3.7RD:读外设控制信号输出端3.3时钟电路和复位电路单片机时钟信号用来提供单片机内多种微操作时间基准;复位操作则使单片机片内电路初始化,使单片机从一个确定状态开始运行。3.3.1时钟电路单片机时钟信号通常有两种产生方法。一个是内部时钟方法;另一个是外部时钟方法。 图3-2 时钟方法图内部时钟方法只要在单片机XTAL1和XTAL2引脚外接晶振就组成了自激振荡器,并在单片机内部产生时钟脉冲信号。外部时钟方法是把外部已经有时钟信号引入到单片机内,常见于多片单片机同时工作,已使各单片机同时。单片机时序单位:晶振周期为时钟脉冲频率倒数,为最小时序单位,也称T状态;
19、时钟周期包含两个晶振周期,也称S状态;完成一个基础操作所需要时间称为机器周期,由6个时钟周期组成,即12个晶振周期;指令实施时间称为指令周期,通常含有14个机器周期。3.3.2单片机复位状态当MCS-51系列单片机复位引脚RST(全称RESET)出现2个机器周期以上高电平时,单片机就实施复位操作。假如RST连续为高电平,单片机就处于循环复位状态。依据应用要求,复位操作通常有两种基础形式:上电复位和手动复位。上电复位要求接通电源后,自动实现复位操作。手动复位是当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间高电平,从而实现上电或开关复位操作。 单片机复位操作使单片机进入初始化状
20、态,其中包含使程序计数器PC0000H,这表明程序从0000H地址单元开始实施。单片机冷开启后,片内RAM为随机值,运行中复位操作不改变片内RAM区中内容, 21个特殊功效寄存器复位后状态为确定值。3.4系统硬件总体设计波形产生是经过51单片机实施某一波形发生器程序,向D/A转换器输入端按一定规律发生数据,从而在D/A转换电路输出端得到对应电压波形。键盘AT89C51DAC0832运放电路波形输出图3-3 总体设计图3.5 DAC0832引脚及功效DAC0832是双列直插式8位D/A转换器,完成数字量输入到模拟量输出转换。图3-4 DAC0832引脚图DAC0832结构:D0D7: 8位数据输
21、入端, D7为最高位, TTL电平,有效时间应大于90ns(不然锁存器数据会犯错);ILE:数据锁存许可控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ms)有效。由ILE、CS、WR1逻辑组合产生,当LE1为高电平时,数据锁存器状态随输入数据线变换, LE1负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ms)有效。WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ms)有效。由WR1、XFER逻辑组合产生LE2,当LE2为高电平时, DAC寄存器输出随
22、寄存器输入而改变,LE2负跳变时将数据锁存器内容打入DAC寄存器并开始D/A转换。IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。IOUT2:模拟电流输出端2, IOUT2和IOUT1和为一个常数。Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度。Vcc:电源输入端,范围为 (+5+ 15)V。VREF:基准电压输入线,范围为 (-10+10)V; AGND:模拟信号地。DGND:数字信号地。3.6 74LS373引脚及功效74LS373是常见地址锁存器芯片,它实质是一个带三态缓冲输出8D触发器。D0D7:
23、数据输入端; Q0Q7:数据输出端;OE:三态许可控制端,低电平有效;当OE为低电平时, Q0Q7为正常逻辑状态,可用来驱动负载或总线;当OE为高电平时, Q0Q7呈高阻态,既不驱动总线,也不为总线负载,但锁存器内部逻辑操作不受影响。LE:锁存许可端。当锁存许可端LE为高电平时, Q随数据D而变;当LE为低电平时, Q被锁存在已建立数据电平。图3-5 74LS373引脚图3.7系统硬件原理51单片机最小系统最小系统由振荡电路、电源电路、复位电路、EA及应用程序组成。它有三种联接方法。一个是两级缓冲器型,即输入数据经过两级缓冲器型,即输入数据经过两级缓冲器后,送入D/A转换电路。第二种是单级缓冲
24、型,输入数据经输入寄存器直接送入DAC寄存器,然后送D/A转换电路。第三种是两个缓冲器直通,输入数据直接送D/A转换电路进行转换。3.7.1系统原理图图3-6 系统原理图第四章 系统软件设计系统软件由主程序和产生波形子程序组成,软件设计关键是产生多种波形子程序编程。经过编程可得到多种波形。频率改变可采取插入延时子程序方法来实现。4.1主程序步骤图开始初始化读取波形选择开关调波形发生子程序结束波形转换否是否波形判别图4-1 主程序步骤图4.2波形产生4.2.1设计思绪利用中止,当5个开关中有任意一个闭合时,跳转至中止程序,在中止程序中判定是哪一个按键闭合,跳转至对应程序,实施输出波形操作,每输出
25、一个点以后,判定按键是否断开,假如依旧闭合,则继续输出,假如已经断开,则结束中止程序。函数波形发生器K0锯齿波K1梯形波K2三角波K3方波K4正弦波 图4-2 主程序步骤图4.2.2锯齿波产生锯齿波实现过程是首先定义一个初值然后进行加法操作,加步数多少则依据要求频率来进行。然后加到某个数以后就再重新设置为初值,再反复实施刚刚操作,如此循环下去。4.2.3梯形波产生梯形波实现是设置一个初值,然后进行加一,当加到某个数时延时,以后减一,减到初值时在返回到之前操作,继续加一、延时、减一。4.2.4三角波产生三角波实现是设置一个初值,当加到某个值时候,实施减一操作,减到初值时,再加一。4.2.5方波产
26、生方波实现只需开始时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,不过此时时间一定要等于前面那段时间。4.2.6正弦波产生正弦波实现需要查表,每查一次表,输出一个数值,以后查下一个数值继续输出,当一个波形256个数值全部输出以后,从头开始继续输出。第五章 系统调试和仿真结果5.1 系统调试依据系统设计方案,本系统调试共分为三大部分:仿真电路调试,程序调试和程序和仿真电路联调。因为在系统设计中采取模块设计法,所以方便对各电路模块功效进行逐层测试。5.1.1仿真电路调试对各个模块功效进行调试,关键调试各模块能否实现指定功效。调试结果表明,
27、各模块能够实现其预期功效。5.1.2程序调试软件调试采取keil c软件,将编好程序进行调试,关键是检验语法错误。在此过程中,发觉了好多错误。要耐心调试。5.1.3 联调 将调试好仿真电路和程序进行联调,关键调试系统实现功效。只要程序调试完成,线路连好,本步没有困难。5.2 仿真结果在Proteus软件中运行仿真。按下K0键时,示波器输出锯齿波;按下K1键时输出梯形波;按下K2键时输出三角波;按下K3键时输出方波;按下K4键时输出正弦波。具体波形见附录二。结论此次设计中利用AT89C51和DAC0832和放大器完成电路设计,用开关来控制多种波形发生及转换,用单片机输出后,经过模数转换器生成波形
28、,最终能够经过示波器观察。在这次软件设计中,程序设计采取是汇编语言。汇编语言含有速度快,能够直接对硬件进行操作优点,它能够极好发挥硬件功效。不过汇编语言也存在编写代码很难懂,不好维护,很轻易产生bug,难于调试缺点。所以,在大型程序设计中,多采取C语言进行程序编译。C语言简练高效,是最贴近硬件高级编程语言,经过多年发展,现在已成熟为专业水平高级语言。而且,现在单片机产品推出时纷纷配套了C语言编译器,应用广泛。不过就此次课程设计来说,汇编语言还是适用。因为此次是第一次进行课设,有些软件和芯片以前从未接触过,所以还不是很得心应手,所以在设计中碰到了很多问题及难点。比如: proteus软件和wav
29、e6000使用; D/A转换器和锁存器结构、功效等等,这些全部需要自己去查找资料了解这些。经过此次课程设计,我深入了解了波形发生器原理,在实际动手操作过程中,使我接触了很多我以前没接触过元件,提升了自己动手能力。而且在编程时重新温习了刚学很快51单片机和MATLAB语言,不仅让我学习了部分新知识,而且对以前所学内容进行了巩固,让我知道理论知识关键性,没有理论指导一切实际行动全部是盲目标,且实际操作是所学理论知识得到验证,更能加深对理论知识了解,让我受益匪浅。参考文件1陈志旺,李亮。51单片机快速上手。机械工业出版社。2薛定宇。控制系统计算及辅助设计MATLAB语言和应用(第2版)。清华大学出版
30、社。3邹虹。单片机波形发生器设计。重庆邮电学院学报。4毅刚,彭喜元。单片机原理和应用设计。电子工业出版社。5杨素行.模拟电子技术基础简明教程(第三版)M.北京:高等教育出版社, . 6 Altium Designer原理图和PCB设计 M.北京:电子工业出版社. 7谭浩强.C程序设计(第2版) M .北京:清华大学出版社1999. 8陈明义.电子技术教程设计实用教程(第3版)M.长沙:中南大学, . 9马晓.函数信号发生器设计 D.河南.10李华.MCS-51系列单片机实用接口技术 M.11何立民.单片机应用技术选编 M. 12阎石.模拟电子技术基础 M.附录一 程序ORG 0000H LJM
31、P MAIN ORG 0003H 外部中止0 LJMP INT00 ORG 0040H MAIN:MOV SP,60H; 更改堆栈指针,避免堆栈和工作寄存器区发生冲突SETB IT0; 外部中止请求0为下降沿触发方法SETB EA; 中止许可总开关打开SETB EX0; 许可外部中止0中止INT00:CLR EA ; 关中止PUSH PSW; 现场保护PUSH Acc SETB EA; 开中止JNB P1.0,IR0; 假如K0键闭合,则跳转至IR0输出锯齿波 JNB P1.1,IR1; 假如K1键闭合,则跳转至IR1输出梯形波JNB P1.2,IR2; 假如K2键闭合,则跳转至IR2输出三角
32、波JNB P1.3,IR3; 假如K3键闭合,则跳转至IR3输出方波JNB P1.4,IR4; 假如K4键闭合,则跳转至IR4输出正弦波INTIR: CLR EA; 关中止POP Acc; 现场恢复POP PSW SETB EA ; 开中止RETI锯齿波发生子程序以下:IR0:MOV R0,#0FEH 设置端口地址MOV A,#00H LOOP:MOVX R0,A ; 写入JB P1.0,INTIR; 假如k0键已经断开,则返回INC A ; A加一SJMP LOOP; 循环LJMP INTIR; 返回梯形波发生子程序以下: IR1:MOV R0,#0FEH; 设置端口地址MOV A,#00H
33、 UP: MOVX R0,A; 写入JB P1.1,INTIR; 假如k1键已经断开,则返回INC A; A加一JNZ UP ; 循环DEC A; 假如已经溢出,则减一,减一以后A值为255 LCALL DELAY; 延时 JB P1.1,INTIR; 假如k1键已经断开,则返回DOWN:DEC A; MOVX R0,A; 写入JB P1.1,INTIR; 假如k1键已经断开,则返回JNZ DOWN ; 循环SJMP UP; 假如减到0,则跳转至UP,继续实施加一操作LJMP INTIR; 返回DELAY:MOV R7,#100; 延时子程序DELAY1: MOV R6,#10 NOP DEL
34、AY2:DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET三角波发生子程序以下:IR2: MOV R0,#0FEH; 设置端口地址MOV A,#00H UP2:MOVX R0,A; 写入JB P1.2,INTIR; 假如k2键已经断开,则返回INC A; A加一JNZ UP2; 循环DOWN2:DEC A; A减一MOVX R0,A; 写入JB P1.2,INTIR; 假如k2键已经断开,则返回JNZ DOWN2; 循环SJMP UP2; 假如减到0,则跳转至UP2,继续加一操作LJMP INTIR; 返回方波发生子程序以下:IR3: MOV R0,#0FEH; 设置端口地址P
35、OSI: MOV A,#00H; 给A赋值0x00 MOVX R0,A; 写入LCALL DELAY ; 延时JB P1.3,INTIR; 假如k3键已经断开,则返回NEGA: MOV A,#0FFH ; 给A赋值0xFF MOVX R0,A; 写入LCALL DELAY; 延时JB P1.3,INTIR; 假如k3键已经断开,则返回SJMP POSI; 跳转至POSI,继续下一个波形输出LJMP INTIR; 返回正弦波发生子程序以下:IR4: MOV R0,#0FEH; 设置端口地址MOV R1,#00HXX: MOV A,R1 LCALL HANSHU; 调用查表函数MOVX R0,A;
36、 写入JB P1.4,INTIR; 假如k4键已经断开,则返回INC R1 SJMP XX; 继续查表LJMP INTIR ; 返回HANSHU:MOV DPTR,#TAB1 MOVC A,A+DPTR RETTAB1: db 080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aeh db 0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8h db 0dah,0dch,0deh,0e0h,
37、0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h, 0f4h db 0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffh db0ffh,0ffh,0ffh,0ffh,0feh,0feh,0feh,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6h db 0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,0
38、deh, 0dch db 0dah,0d8h,0d5h,0d3h,0d1h,0ceh,0cch,0c9h,0c7h,0c4h,0c1h,0bfh,0bch,0b9h,0b6h,0b3h db0b1h,0aeh,0abh,0a8h,0a5h,0a2h,09fh,09ch,099h,096h,093h,090h,08ch,089h,086h,083h db 080h,07dh,07ah,077h,074h,070h,06dh,06ah,067h,064h,061h,05eh,05bh,058h,055h,052h db 04fh,04dh,04ah,047h,044h,041h,03fh,03ch
39、,039h,037h,034h,032h,02fh,02dh,02bh,028h db 026h,024h,022h,020h,01eh,01ch,01ah,018h,016h,015h,013h,011h,010h,00fh,00dh,00ch db 00bh,00ah,008h,007h,006h,006h,005h,004h,003h,003h,002h,002h,002h,001h,001h,000h db 000h,000h,001h,001h,002h,002h,002h,003h,003h,004h,005h,006h,006h,007h,008h,00ah db 00bh,00
40、ch,00dh,00fh,010h,011h,013h,015h,016h,018h,01ah,01ch,01eh,020h,022h,024h db026h,028h,02bh,02dh,02fh,032h,034h,037h,039h,03ch,03fh,041h,044h,047h,04ah,04dh db 04fh,052h,055h,058h,05bh,05eh,061h,064h,067h,06ah,06dh,070h,074h,077h,07ah,07dh附录二 仿真效果图锯齿波梯形波三角波方波正弦波东北石油大学课程设计成绩评价表课程名称单片机课程设计题目名称函数波形发生器设计学生姓名任建伟学号指导教师姓名路敬祎张岩职称副教授讲师序号评价项目指 标满分评分1工作量、工作态度和出勤率按期圆满完成了要求任务,难易程度和工作量符合课程设计要求,工作努力,遵守纪律,工作作风严谨,善于和她人合作。202课程设计质量课程设计方案选择合理,设计过程简练正确,分析问题思绪清楚,结构严谨,文理通顺,撰写规范,图表完备正确。453创新工作中有创新意识,对前人工作有部分改善或有一定应用价值。54答辩能正确回复指导老师所提出问题。30总分评语:指导老师: 年 月 日