- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
河南理工大学
《微机原理与单片机接口技术》
课程设计报告
2012年01月15日摘要
本设计是本设计是通过软件对键盘输入的频率数值进行处理,处理结果送与D/A转换部分实现数/模转换,输出的电流再经过电流/电压转换环节,进而形成模拟电压波形,最后经过过载保护电路输出。信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是利用分立元件组成的体积大,可靠性差,准确度低。课程设计需要各个波形的基本输出,这些波形的实现的具体步骤:方波的产生过程是通过定时器产生一个方波半周期的定时信号,每到这个信号产生,就改变一次D/A输出的数据,这两个数据值由事先给定的峰峰值计算出,方波的实现是比较简单的。而三角波,则每次累加1,当达到峰值时,则改为每次累减1,这个过程需要根据峰峰值算出增加及减小的步数,以及根据频率算出步进间隔,由此间隔算出定时器重装值,以精确定时。锯齿波的产生与三角波类似,但相对简单,同样要算出步数及步进时间间隔,产生精确定时信号,不同的是锯齿波从谷值增加至峰值只是单一方向的增长。该设计使用的是STC单片机构成的发生器,可产生三角波、方波、正弦波等多种波形,波形的频率可用程序控制改变。在单片机上加外围器件独立式开关,通过开关控制波形的选择。在单片机的输出端口接DAC0832进行DA转换,再通过运放进行波形调整,最后输出波形接在示波器上显示. 同时在数码管内显示该频率数值。波形的切换可以通过按键直接实现。
关键词:信号发生器 单片机 三角波 锯齿波 方波
目录
1 概述 4
1.1 系统框图 4
1.2基本要求 4
1.3主要设计思想 4
2 系统总体方案及硬件设计 5
2.1芯片功能介绍 5
3 软件设计 6
3.1、方波的实现过程 6
3.2、锯齿波实现过程 6
3.3、三角波的实现过程 6
4 Proteus软件仿真 6
5课程设计体会 7
6参考文献 8
附1 源程序代码 8
附2 系统原理图 28
1 概述
1.1 系统框图
1.2基本要求
(1)具有产生方波、三角波周期性波形的功能。(2)输出波形的频率范围为100Hz~kHz;频率步进间隔≤100Hz。()输出波形幅度范围0~5V,可按步进0.1V(峰-峰值)调整。()具有显示输出波形的类型、周期和幅度的功能。DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。当输入全为1时Iout1最大。
Iout2: 电流输出线。其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻.#includestc10.h
#define uint unsigned int
#define uchar unsigned char
#define MAIN_FOSC 11.0592
#define DIV (5.0/128)
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,
0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,
0x87,0xFF,0xEF}; //数码管编码
sbit l1=P0^5; //按键行列定义
sbit l2=P0^6;
sbit l3=P0^7;
sbit h1=P3^6;
sbit h2=P3^7;
sbit cs=P4^4;
sbit wr=P4^5;
uchar frq; //频率
uchar vpp; //峰峰值
uchar v_h,v_l; //正负向的峰值
uchar step,step_z,step_f,t_step,add_step; //步数,正向步数,负向步数,时间间隔,增值间隔
uchar dac_dat; //转换数据
uchar timer0_load; //定时器重装值
uchar key_value;
uchar out_type; //输出波形
uchar count;
bit up; //三角波增长方向变量
bit change;
bit key_flag;
void type_set();
void amp_set();
void frq_set();
void tri_init();
void saw_init();
void sq
文档评论(0)