




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书设计题目10:简易波形发生器学生姓名课程名称微处理器与接口技术专业班级地点起止时间2016年12月26日12月30日设计内容硬件设计及样品制作设计参数1.利用单片机实现方波、三角波、正弦波输出。2.测试仪器采用示波器3.能够实现按键选择功能设计进度1. 2016年12月26日27日查阅资料,确定设计方案2. 2016年12月28日29日程序设计和硬件调试3. 2016年12月30日撰写课程设计报告,答辩设计成果1. 设计说明书一份(不少于2000字);2. 样品一套。参考资料1. 楼然苗,李光飞,单片机课程设计指导,北京航空航天大学出版社,20122. 李全利,单片机原理及应用,清华大学出版社,2014说明1本表应在每次实施前由指导教师填写一式2份,审批后所在系(部)和指导教师各留1份。2多名学生共用一题的,在设计内容、参数、要求等方面应有所区别。3若填写内容较多可另纸附后。系(部)分管领导:教研室主任:指导教师: 年 月 日目录第一章 引言1第二章 电路原理22.1基本原理22.2 PCF8951引脚功能22.3 PCF8951电路原理3第三章 程序设计33.1程序设计与分析33.2 主程序流程图8第四章 调试、测试分析及结果84.1程序编译84.2观测波形94.3结果分析10第五章 小结10参考文献11附录1 程序11附录2 电路图16第一章 引言单片机具有良好的控制性能和优秀的嵌入品质,近年来单片机在各种领域都获得广泛的应用:智能仪器仪表、机电一体化产品、实时工业控制、分布系统的前端模块、家用电器、交通运输、航空航天与军事。简易波形发生器这一实验运用到AT89C52单片机、PCF8591芯片的D/A转换功能,用Keil Vision软件进行编程,最后将程序烧写入单片机,单片机连接示波器进行波形的检测。AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。PCF8591是单片、单电源低功耗的8位CMOS数据采集器件,具有一个输出和一个串行I2C总线接口PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0,A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。其功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活。该地址包括固定部分和可编程部分,可编程部分必须根据地址引脚A0、A1和A2来设置,在I2C总线协议中地址必须是起始条件后作为第一个字节发送。地址字节的最后一位是用于设置以后数据传输方向的读/写位,发送到PCF8591的第二个字节将被存储在控制寄存器,用于控制器件功能。控制寄存器的高半字节用于允许模拟输入。Vision集成开发软件是Keil公司的产品,它集编辑、翻译(或汇编)、仿真调试等功能于一体、具有当代典型嵌入式处理器开发的典型页面。常用的版本是Vision3,最新的版本是Vision4,。它支持数百种嵌入式处理器(包括80C51系列、非80C51系列的多种单片机以及ARM处理器等芯片)开发。可以用汇编程序及C51语言的编程。第二章 电路原理2.1基本原理波形指示开关按键输出D/A转换单片机电源图1 基本原理图信号发生器系统主要由CPU、D/A转换电路、基准电压电路、按键和波形指示电路、电源等电路组成。2.2 PCF8951引脚功能VDD、VSS:电源端。(2.56V)SDA、SCL:I2C 总线的数据线、时钟线。OSC:外部时钟输入端,内部时钟输出端。EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。AGND:模拟信号地。AOUT:D/A 转换输出端。VREF:基准电源端。 图2 PCF8591芯片2.3 PCF8951电路原理I2C总线只有两根连线,所以PCF8591只需要两根线连接到单片机,由开发板的电路图可知,AT89C52与之相关的两个I/O口是P1.1和P1.2。只需两根线便可完成数据的传输,这就使得器件间连接电路简单,电路板的体积会有效减小,系统的可靠性和灵活性将大大提高。由PCF8591的数据手册可知发送给PCF8591的第三个字节被存储到DAC数据寄存器,并使用片上D/A转换器转换成对应的模拟电压。D/A转换模拟输出电压由自动清零单位增益放大器缓冲。这个缓冲放大器可通过设置控制寄存器的模拟输出允许标志来开户或关闭。在激活状态,输出电压将保持到新的数据字节被发送。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输,电路简便。在执行A/D转换时,输出模拟电压由下方公式给出:VAOUT=VAGND+(VREF-VAGND256)i=07Di2i在设计是基于已经固化了的硬件电路运用软件编程的手段根据PCF8591的时序图实现D/A转换。为能够实现按键选择功能,定义P3的三个I/O口分别对应s1、s2、s3三个按键,编写每个按键的功能函数,然后定义按键扫描函数写入语句实现处理按键功能。在按键功能函数中,编写程序将数据从SDA引脚输入PCF8591芯片,每一个按键功能函数实现一种波形的产生。当三个按键之一按下时,按键扫描函数会判断被按下的按键并调动其功能函数,向PCF8591输入相应的数据,输出对应的波形。在这些按键功能函数中,用循环语句将预先设计好的数据输入PCF8591芯片中实现数模转换输出模拟量形成波形。电路原理图见附录2。第三章 程序设计3.1程序设计与分析设计参数是利用单片机实现方波、三角波、正弦波输出,测试仪器采用示波器,能够实现按键选择功能。按下按键S1输出三角波,按下按键S2输出方波,按下按键S3输出正弦波。程序设计的主干应有文件包含、宏定义、端口定义、全局变量定义、自定义函数、主函数。三个I/O口分别接一个按键,PCF8591需要两根线连接到单片机,由开发板的电路图可知,单片机与之相关的两个I/O口是P1.1和P1.2,所以端口定义如下:sbitS1=P30;sbit S2=P31;sbit S3=P32;sbitscl=P11;/IIC的时钟线sbitsda=P12;/IIC的数据线。由于用到I2C总线型的PCF8591芯片,因此还得写I2C总线初始化函数,通过观测PCF8591D/A转换的时序图,可以写出IIC的初始化函数、IIC的起始信号函数、IIC的停止信号函数、IIC的应答信号函数、向IIC写一个字节的数据函数、向PCF8591里写入数据(即电压量的数据)的语句。void init(void)/IIC的初始化scl=1;delayus();sda=1;delayus();void start(void)/IIC的起始信号scl=1;sda=1;delayus();sda=0;delayus();scl=0;delayus();void stop(void)/IIC的停止信号sda=0;scl=1;delayus();sda=1;delayus();scl=0;void ack(void)/IIC的应答信号sda=0;scl=1;delayus();scl=0;sda=1;void write_byte(uchar date)/向IIC写一个字节的数据uchari,temp;temp=date;for(i=0;i8;i+)temp=temp1;scl=0;delayus();sda=CY;delayus();scl=1;delayus();scl=0;delayus();sda=1;delayus();void write(ucharadd,ucharsda,uint date)start();write_byte(add);/0x90表示器件地址为000的写操作ack();write_byte(sda);/0x40表示四路单数入00通道无增益的器件控制指ack();write_byte(date);/表示DA数据ack();stop();为能够实现按键选择功能,可采用按键功能函数和按键扫描函数,当开关按下时输出相应的波形。用复位键协助波形切换,即在按下开关切换波形前先按复位键,根据发光二极管的亮灭情况判断功能是否实现。void trag()/输出三角波函数uchar s;init();for(s=0;s34;s+) write(0x90,0x40,sanjiaos);delayus(); void squ()/输出方波函数 uchar f;init();/I2C总线初始化for(f=0;f2;f+) write(0x90,0x40,fangf);delayus(); void sin(void)/输出正弦波函数 uchar x=0;init();for(x=0;x255;x+) write(0x90,0x40,zhengxianx);delayus(); 在这些按键功能函数中,将数据输入PCF8591芯片中。对于方波,只需输入两个数据,可以采用两个极端值0x00和0xff,每一个数据输入后定时一段时间,经过D/A转换后输出的模拟量就可形成方波。对于三角波和正弦波,将一组逐渐升高到某一值又逐渐减低的数据输入但正弦波的数据跳变程度要比三角波的缓慢就可得相应的波形。用查表法(事先将正弦波的数据计算出来,列表放在程序中,运行时直接调取数据)获得256个可形成正弦波的数据,经过查阅资料,我找到了可实现的数据。三角波的数据较为简单,数据的递增和递减呈线性关系即可。在此,我从0x00-0xff的256个数据中每隔14个取一个数据组成实现三角波的34个输入数据。uchar code fang=0x00,0xff; uchar code sanjiao=0x0f,0x1e,0x2d,0x3c,0x4b,0x5a,0x69,0x78,0x87,0x96,0xa5,0xb4,0xc3,0xd2,0xe1,0xf0,0xff,0xff,0xf0,0xe1,0xd2,0xc3,0xb4,0xa5,0x96,0x87,0x78,0x69,0x5a,0x4b,0x3c,0x2d,0x1e,0x0f; uchar code zhengxian=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80;一般开关、按钮的抖动在几毫秒时间以内,因而用延时函数延时10ms即可防止按一次按钮产生多次处理的现象。将上述程序分析整理衔接后就可得到完整的程序,见附录1。开始3.2 主程序流程图YS1按下? N输出三角波YS2按下? N输出方波YS3按下? N输出正弦波图3 程序流程图第四章 调试、测试分析及结果4.1程序编译图4 程序编译结果在Vision软件界面新建一个工程,在工程中新建一个文件,将完整的程序写入,经过反复调试与修改后程序编译结果如图3所示:结果无错误无警告,说明程序有可能能够实现目标结果。4.2观测波形为了验证程序是否能够实现三角波、方波、正弦波的产生,将输出口接入示波器观察。按下S1,示波器显示波形如图5所示,按下复位键再按下S2,示波器显示波形如图6所示,按下复位键再按下S3,示波器显示波形如图7。 图5 示波器显示三角波图6 示波器显示方波图7 示波器显示正弦波4.3结果分析示波器的显示情况程序能够实现三角波、方波、正弦波三种波形的产生,基本达到设计要求,但是得借助硬件上的复位才能实现波形的切换,这是设计的不足之处。如果找到合适程序语句,使能够实现当按下按键是就可直接切换波形,那么将使得硬件电路的设计更简便,降低成本。这个设计方法是基于AT89S51单片机和PCF8591数模转换芯片,通过编写三个独立按键功能函数来分别产生三种波形,由按键扫描函数来处理按键,当三个按键之一按下时,按键扫描函数会判断被按下的按键并调动其功能函数向PCF8591输入相应的数据,输出对应的波形,最终实现简易波形发生器的设计。第五章 小结单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,作为电子工程专业的学生来说掌握单片机的开发技术是十分重要的,学好单片机将对以后的职业生涯将大有帮助。学习单片机要注重理论与实践相结合。一个程序的形成不仅需要有C语言知识,更多需要融入个人的编程思路和算法。编程思路和算法决定一个程序的优劣,是单片机编程的一个难题,只有在实际动手编写的时候才会有深切的感悟。对于初学者来说,在编写程序的过程中会遇到各种问题是正常的,只要坚持下去,遇到问题时查阅资料、与同学讨论、向老师请教寻求解决问题的办法,反复调试(检查、修改思路和算法)。课程设计正是给予我们一个锻炼自身实际应用能力的过程。课程设计是锻炼实践能力的重要环节,是对实际工作能力的具体训练和考察过程。通过这次课程设计我进一步学会使用KeilVision开发环境和简单程序的编辑、编译、与运行方法;强化ifelse语句的应用,51单片机的并行口的使用方法,掌握循环语句的应用,独立按键程序的编写方法。除了专业上的知识,这次课程设计使我明白理论与实际相结合的重要性,只有把所学的理论知识与实践相结合起来,在实践中运用理论强化课堂上所学知识,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力,学会在实践过程中发现自身的不足并力求改正,才会有所进步,造就更强的自己。这次课程设计,我以89C51单片机作为波形发生电路的核心控制器件,结合AD/DA转换芯片PCF8591,利用其D/A转换功能,通过按键的选择分别输出相应的方波、三角波、正弦波三种常用波形,实现简易波形发生器的设计,通过示波器来观察波形,最终实现简易波形发生器的设计。一个成果的产生,不是轻而易举的,需要前期的资料准备,在设计过程中,发现问题要想办法解决,遇到困难要坚持,一个程序的形成需要反复调试和检查并修改直至成功。在今后的C语言以及单片机学习过程中我们要多于老师同学交流。参考文献1.楼然苗,李光飞,单片机课程设计指导,北京航空航天大学出版社,20122.李全利,单片机原理及应用,清华大学出版社,2014附录1 程序#include #include #include #define uchar unsigned char#define uint unsignedintbit flag;sbitscl=P11; / 将p1.0口模拟时钟口sbitsda=P12; / 将p1.3口模拟数据口sbit S1= P30; sbit S2= P31; sbit S3= P32; ucharfl=0;uchar code fang=0x00,0xff; uchar code sanjiao=0x0f,0x1e,0x2d,0x3c,0x4b,0x5a,0x69,0x78,0x87,0x96,0xa5,0xb4,0xc3,0xd2,0xe1,0xf0,0xff,0xff,0xf0,0xe1,0xd2,0xc3,0xb4,0xa5,0x96,0x87,0x78,0x69,0x5a,0x4b,0x3c,0x2d,0x1e,0x0f; uchar code zhengxian=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c, 0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba, 0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4, 0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9, 0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7, 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6, 0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7, 0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1, 0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7, 0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99, 0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c, 0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d, 0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40, 0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27, 0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13, 0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06, 0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02, 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b, 0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33, 0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e, 0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c, 0x6f,0x72,0x76,0x79,0x7c,0x80;void delayms(ucharms)/延时函数 uchari;while(ms-) for (i=0; i123; i+);void delayus(void)/循环一次空语句1秒 ;void init(void)/IIC的初始化scl=1;delayus();sda=1;delayus();void start(void)/IIC的起始信号scl=1;sda=1;delayus();sda=0;de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三方协议书盖章
- 两个变量的相关关系第一课时教学设计
- 2024年七年级语文上册 第四单元 山水清韵 第16课《小石潭记》说课稿 沪教版五四制
- 2023二年级语文下册 第三单元 识字1 神州谣配套说课稿 新人教版
- 五年级信息技术上册 春节贺卡 3 第二课时说课稿 冀教版
- 安全知识培训体会课件
- 中国广电天津市2025秋招笔试行测题库及答案财务审计类
- 铜仁市中石化2025秋招笔试综合知识专练题库及答案
- 中国广电牡丹江市2025秋招笔试行测题库及答案通信技术类
- 安全知识全员培训的作用
- 网络传播概论(彭兰第5版) 课件全套 第1-8章 网络媒介的演变-网络传播中的“数字鸿沟”
- 顾建民高等教育学知识点总结【呕心沥血整理】
- 部编版教材一年级上册语文拼音《jqx》课件
- 清华大学实验室安全教育考试题库(全)
- 项目经理(总监)解锁申请表
- 物业管理存在的问题与对策
- 前列腺等离子电切术护理查房
- 儿童神经心理行为发育
- GB/T 4074.8-2009绕组线试验方法第8部分:测定漆包绕组线温度指数的试验方法快速法
- GB/T 19812.3-2017塑料节水灌溉器材第3部分:内镶式滴灌管及滴灌带
- GB/T 1682-1994硫化橡胶低温脆性的测定单试样法
评论
0/150
提交评论