c51简易函数信号发生器

上传人:豆浆 文档编号:30731994 上传时间:2018-02-01 格式:DOCX 页数:14 大小:209.16KB
返回 下载 相关 举报
c51简易函数信号发生器_第1页
第1页 / 共14页
c51简易函数信号发生器_第2页
第2页 / 共14页
c51简易函数信号发生器_第3页
第3页 / 共14页
c51简易函数信号发生器_第4页
第4页 / 共14页
c51简易函数信号发生器_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c51简易函数信号发生器》由会员分享,可在线阅读,更多相关《c51简易函数信号发生器(14页珍藏版)》请在金锄头文库上搜索。

1、浙江传媒学院课程设计(实训)报告学 院 电子信息学院 专 业 电子信息工程 班 级 学 号 8888888 姓 名 88 课 题 88888888888指导教师 88 报告成绩 _ _日 期:2013 年 12 月 5 日目 录1、设计目的 .12、设计任务与要求 .13、设计原理分析 .14、设计内容 .14.1 资源分配 .14.2 硬件原理图 .24.3 软件流程图 .35、 调试运行 .36、 设计结果 .47、设计心得体会及建议 .4附录 1 程序清单 .4附录 2 参考文献 .121、 设计目的1) 巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决实际课题设计的能

2、力。2) 培养针对课题需要,选择和查阅有关手册、图表及文献资料的能力,提高组成系统、编程、调试的动脑动手能力。3) 通过对课题设计方案的分析、选择、比较,熟悉运用单片机系统开发、软硬件设计的方法内容及步骤。4) 掌握 DAC0832,LM324 的接口电路,及使用方法。5) 熟悉掌握函数信号发生器的工作原理。2、 设计任务与要求任务:设计一个具有调频、显示和计算频率、显示四种波形四种功能的简易函数信号发生器系统要求:利用单片机延时控制函数信号的频率,通过粗略计算用 LCD0832 显示频率值。3、 设计原理分析利用单片机的 P2、P3 口的几个端口与数字开关相连接,来模拟按键,通过改变数字开关

3、状态来改变端口的状态,从而达到波形以及波形显示的控制要求。sbit key7=P27; /左移 45sbit key6=P26; /右移 45sbit key5=P22; /减少取样点数sbit key4=P21; /增加取样点数sbit key3=P20; /控制显示sbit key2=P34; /加频率sbit key1=P33; /减频率sbit key0=P32; /选择波形4、 设计内容4.1 资源分配本设计中用到以下资源:四个 P 口,数字开关、LCD1602、DAC0832,LM324。1) 晶振采用 11.0592MHZ。2) sbit key7=P27;/左移 45sbit

4、key6=P26; /右移 45sbit key5=P22; /减少取样点数sbit key4=P21; /增加取样点数sbit key3=P20; /控制显示sbit key2=P34; /加频率sbit key1=P33; /减频率sbit key0=P32; /选择波形sbit rs=P35;/ RS 为寄存器选择sbit rw=P36;/ RW 为读写信号线sbit lcden=P37;/ E(或 EN)端为使能(enable)端3) P0 口与 DAC0832 的 D0-D7 数据输入端相连。P24 用来控制 DAC0832 的输入寄存器选择信号 CS。P25 用来控制 DAC083

5、2 的 8 位 DAC 寄存器读写信号 WR。P1 口用来控制 LCD1602 的数据写入。1 硬件原理图4.3 软件流程图开始显示 LCD 初始KEY3=0LCD显示频率和波形名显示波形KEY5频率粗调KEY1频率微调KEY2频率微调KEY4频率粗调否是5、 调试运行本函数信号发生器通过单片机程序代码运行时间计算出波形频率,误差还是很大。正弦波 三角波结束 锯齿波 方波6、 设计结果经过调试,能够顺利运行,符合设计要求,通过改变数字开关 key3 可以控制 LCD 显示和波形显示,key0 选择波形,key1、key2、key4、key5、key6 、key7 控制频率和相位的变化。7、 设

6、计心得体会及建议本次的设计中利用 AT89C51 和 DAC0832 以及放大器完成电路的设计,用开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终可以通过示波器观察。在这次的软件设计中,程序设计采用的是 C 语言。C 语言简洁高效,是最贴近硬件的高级编程语言,经过多年的发展,现在已成熟为专业水平的高级语言。函数信号发生器程序在编写的时候,因此还是有很多问题的,尤其是波形和LCD1602 同时显示不能兼顾,只能通过 key3 键来选择,以及波形频率的计算总是误差很大。通过这次课程设计,我进一步了解了波形发生器的原理,在实际动手操作过程中,使我接触了许多我以前没接触过的

7、元件,使我学得了许多知识,使我获益匪浅。这次课程设计,使我的动手能力得到了很大的提高,更使我们懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是我们得到的理论知识得到验证,更能增加对理论知识的理解。附录 1 程序清单#include#define uchar unsigned char#define uint unsigned int#define M 0.9 /11.0592MHzsbit key7=P27; /左移sbit key6=P26; /右移 45sbit key5=P22; /减少取样点数sbit key4=P21; /增加取样点数sbit key3=P20

8、; /控制显示sbit key2=P34; /加频率sbit key1=P33; /减频率sbit key0=P32; /选择波形/*sbit led0=P20;sbit led1=P21;sbit led2=P22;sbit led3=P23;*/sbit CS1= P24; / 控制 DAC0832 的 8 位输入寄存器,仅当都为 0 时,可以输出数据(处于直通状态),否则,输出将被锁存sbit WR1= P25; / 控制 DAC0832 的 8 位 DAC 寄存器,仅当都为 0 时,可以输出数据(处于直通状态),否则,输出将被锁存char flag; /波型输出标置变量uchar i,

9、j;uchar num ;uchar d;uchar xy;uchar code lcd_hang1=Sine Wave Triangle Wave sawtooth Wave Square Wave Select Wave: press No.1 key! ;uchar idata lcd_hang216=f= Hz ;void delay(int z) /延时 z 毫秒int x,y;for(x=z;x0;x-)for(y=124;y0;y-); void delay1us(int z) /延时 20*z us ?int y;for(y=z;y0;y-); uchar sin(uchar

10、x)/正弦波unsigned code sine_tab256=/输出电压从 0 到最大值(正弦波 1/4 部分)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,0xf

11、6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,/输出电压从最大值到 0(正弦波 1/4 部分)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,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号