占空比可调的方波发生器
图3-2 LED显示电路
通过P0口和P2口显示相应的数据。由于P0口的内部没有上拉电阻,不能输出高电平,故在P0口上串接一个排阻。
3.3 时钟电路的设计
AT89C51单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图3-3所示。
电容C1、C2对振荡频率有稳定作用,其容量的选择为30pF,振荡器选择频率为6MHz的石英晶体。
图3-3 时钟电路
7
占空比可调的方波发生器
3.4 按键接口电路
图3-4为键盘接口电路的原理图,。
图3-4 键盘接口电路
图中K1与P3.2相连,控制占空比变化步进为1,K2与P3.3相连,控制占空比变化步进为5。
3.5 复位电路
如图3-5所示为复位电路。 加一个(大于两个机器周期的)高电平使单片机复位。图中为按键加上电复位电路。在复位状态下,程序指针PC=0000H。
图3-5 按键加上电复位电路
8
占空比可调的方波发生器
第4章 系统的软件设计
4.1 主程序设计
本系统中下位机(单片机89C51)的主要功能就是实现占空比可调、产生方波并通过LED显示器和示波器显示出来。其主程序流程如图4-1所示。
初始化:设定时器0工作方式为方式1,定时器1工作方式为方式2 产生方波 判断是否有 中断标志 N 开始 Y
等待 定时器1溢出
图4-1 主程序流程图
4.2 定时器中断子程序
定时器中断子程序中有定时器0和定时器1中断,定时器0控制占空比变化步进为1,如图4-2[7],定时器1控制占空比变化步进为5,如图4-3。
9
占空比可调的方波发生器
定时器0中断入口 TR1=1 重装定时初值 低电平时,结合P1.2占空比变化步进为1 结束 图4-2定时器0中断流程图
定时器1中断入口
TR1=0
重装定时初值 低电平时,结合P1.2占空比变化步进为5 结束 图4-3定时器1中断流程图
4.3 按键及显示子程序设计
按键及显示子程序设计流程图如图4-4所示。
10
占空比可调的方波发生器
开始 关中断 延时消抖 N 是否有键按下 Y 键处理 判断按键号 N 占空比是否超界 Y 赋初值
计算定时初值 关中断
结束
图4-4 按键及显示子程序设计流程图
11