方波发生器课程设计报告
- 格式:doc
- 大小:2.76 MB
- 文档页数:7
一、任务说明
本次设计任务为用AT89C51单片机定时/计数器0的定时功能构成一简单的方波发生器,实现周期为400us错误!未找到引用源。的方波输出。若改变定时/计数器0的初值可得到不同周期的方波输出。编写程序,画出程序流程图,并在Proteus下进行仿真,实现相应功能,并使用VSM虚拟示波器观测波形。
二、原理图绘制说明
1、AT89C51芯片
图1 单片机AT89C51
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。它与与MCS-51 兼容。
在设计中,使用单片机AT89C51的定时器功能,根据要求使用定时器0,芯片的18、19管脚为内部时钟工作电路的输入,设为12MHz。EA管脚接高电平,片内寻址;RST管脚接地,复位无效。由P1.0口输出波形。
2、晶振时钟电路
XTAL1
XTAL2
图2 晶振时钟电路
根据题目要求,晶振X1频率设为12MHz,并通过电容C1、C2接地,时钟输入单片机AT89C51的18、19脚。
三、流程图以及说明
开始
初始化
启动计数器
N
判断TF0是否为1?
Y
将P1.0的值取反
标志位TF0清零
程序开始,首先进行初始化,即为寄存器TMOD赋值,并给计数器赋初值,然后
启动计数器。运行中判断计数溢出标志位TF0是否为1,采用查询方式。如果值是0,则继续查询;如果值是1,将P 1.0的值取反,实现电平翻转,输出方波。接下来继续查询TF0的值,并重复上述过程。
源程序:
#include
sbit P1_0=P1^0;
void main(void)
{
TMOD=0x01;
TR0=1;
for( ; ; )
{
TH0=(65336/256);
TL0=(65336%256);
do{ }while(!TF0);
P1_0=!P1_0;
TF0=0;
}
}
四、Proteus仿真说明
图3 运行结果1
将P1.0口接示波器A通道,开始运行。将CH1振幅调至2V,将Timebase旋钮调至200us每格,并适当调节Trigger旋钮,观察波形。如图3所示,可以看到,方波周期为400us,略有误差。
图4 运行结果2
改变计数初值,设周期为2ms,改变计数初值,运行后观察示波器,如图4所示周期为2ms,实现了周期的改变。
五、体会及合理化建议
通过这次课程设计,我进一步掌握了单片机的C语言编程方法,基本达到了熟
练使用C语言语句、语法,设计实现了所需功能。同时,学会了PROTEUS软件的使用方法,能够较熟练的进行仿真。
课程设计这一周时间里,通过认真研究设计课题,到图书馆查资料、确定基本设计方案、对所用电路功能进行查找、计算,我对《单片机原理及应用》这门课程有了更深一步的理解,初次接触单片机,使得我们在掌握起来有一定困难,这就要求我们平时要多学多练,将知识融会贯通、学以致用,这样才能达到学习的目的。
这次课程设计,让我看到了自己的水平和差距,也积累了很多宝贵的经验。同时也感谢老师的指导和帮助,使我能顺利完成此次设计。本次实习有机地结合了理论与实践,既考察了我们对理论知识的掌握情况,还反映出我们查阅课外资料的能力,更主要的是它激起我们创新思维,为今后的进一步学习创下良好条件,为以后的就业打下一个根基。
附录I 电路原理图
参考文献
[1] 苏家健.单片机原理及应用技术.[M]北京:高等教育出版社.2004.P104
[2] 梅丽凤.单片机原理及接口技术.[M]北京:清华大学出版社.2004 .P65
[3] 李全利.单片机原理及应用技术.[M]北京:高等教育出版社.2001.P71
[4] 杨碧石.电子技术实训教程.[M]北京:电子工业出版社.2005.P90
[5] 张义刚.单片机原理及应用.[M]哈尔滨:哈尔滨工业大学出版社.2004.P96
[6] 何立民.单片机应用系统设计.[M]北京:北京航空航天大学出版社.1990.P137