- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
方波信号发生器设计波信号发生器设计
单片机最小系统设计报告
课程名称: 基于单片机的方波信号发生器
院 系: 机电工程学院
专业班级: 机械制造及其自动化
学生姓名: 陈静
指导教师: 吴兆华
完成时间: 2010年06月15日
报告成绩:_____ _____________________
目录
一、概述 2
1.1、设计内容 3
1.2、设计目的 3
二、方波发生器设计方案 3
三、系统的硬件设计 4
3.1、单片机最小系统 4
3.2、电路板的制作 5
四、程序流程图 7
五、单片机程序设计清单----------------------------------------------------- 7
六、电路板连接图----------------------------------------------------------- 9
七、调试与性能分析 9
7.1硬件调试 9
7.2软件调试 9
八、设计体会 10
参考文献 11
方波信号发生器设计
一、概述
单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
1.1、设计内容
设计一个频率可调的方波发生器,方波脉宽为2us~10ms,步进100us。
1.2、设计目的
1、通过本次实验,掌握单片机I/O口的使用,4位7段数码管动态显示数据的方法以及DAC0832的用法;
2、通过对单片机的使用和编程,了解单片机的应用编程;
3、掌握单片机C语言设计和分析方法;
4、学会使用并熟练掌握电路绘制软件Protel99SE;
5、掌握电路图绘制及PCB图布线技巧。
二、方波发生器设计方案
在电子技术领域中,实现的方法有很多种,可以采用不同的原理及器件构成不同的电路,但可以实现相同的功能。在此次设计中,本用到定时器此单元电路包括时钟电路、复位电路,具体电路如图1所示:
3.2、电路板的制作
Protel99功能强大,为我们进行电子电路原理图和印制板的设计提供了良好的操作环境。)
电路板的制作过程
(1) 打印:
将生成的PCB图打印到热转印纸上,需注意线不能太窄,墨要加重,否则制板时容易断线,如果在操作过程中断了线,可用电烙铁将锡带过。
(2) 熨烫:
将热转印纸覆在铜板上,用电熨斗进行熨烫,关键要注意熨烫的时间,不能太久,也不能时间太短,否则,太久会把铜板烫坏,不够的话墨迹覆不上去。
(3) 腐蚀:
把铜板放到三氯化铁溶液中腐蚀,需注意溶液浓度要较高,最好用热水配置,这样腐蚀更快,一般3分钟即可。如果时间过长,需剩下的铜线也可能被腐蚀。
(4) 打孔:
打孔时注意钻头尺寸,本次用的钻头大小是0.712mm的,最需注意的地方是集成块的管脚,如果打孔误差大,管座就很难插上。
(5) 放置元件:
放置前应先打磨一下打孔后留下的毛刺,并均匀地涂上松香水(目的是防止铜线氧化,易于焊锡覆着焊盘,但多涂会导致焊接时焊点变黑,影响美观)(6) 焊接:
焊接技术比较难掌握,焊锡、烙铁与焊盘的位置关系,焊锡熔化时间
长短,松香水的浓度,烙铁的温度等等,都是影响焊点美观的因素。
(7) 检查:
检查是否有虚焊,集成块管脚位置是否正确,电源引线位置是否恰当等。检查完毕就能进行调试了。
四、程序流程图
图2 程序流程图
五、单片机设计程序清单
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
uint i,z,T0_cnt,T0_over_num;
sbit pulse_out=P0^1;
void delay(uint z)
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
void timer0() interrupt 1
{ T0_cnt++;
TH0=(65536-1)/256;
TL0=(65536-1)%256;
if( T0_cnt=T0_over_num)
{ T0_cnt=0;
pulse_out=!pulse_out;
文档评论(0)