单片机矩形波发生器

更新时间:2023-11-02 01:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机系统应用设计

题目:周期脉宽可控式矩形波发生器

(AT89C51)

摘要:矩形波发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本次设计使用AT89C51单片机构成产生矩形波信号,波形的周期和脉宽可以用程序改变,具有线路简单,结构紧凑等优点。本设计添加了按钮控制和显示功能,可通过按钮设定周期和脉宽,并通过数码管显示出周期和脉宽。设计中如有不足之处请指导老师给与指正。

关键词:51单片机 矩形波 周期 脉宽

功能介绍:

(1)矩形波发生器技术指标

波形:矩形波 幅值电压:5V 最小脉宽:10ms 最大周期:2s

(2)操作设计:上电后,系统初始化,脉宽数码显示4个0,周期数码管显示4个0,四个按钮分别控制脉宽的加10ms减10ms,和周期的加10ms减10ms,数码管即时显示当前脉宽和周期。

设计思路:方波信号由P3.0引脚发出,分别用AT89C51单片机的两个定时器T0和T1控制方波的脉宽和周期,设置两定时器均为工作方式1,同样写入计数初值0D8F0H,开放中断,允许T0和T1中断,使定时器定时10ms产生定时中断,另外分别用R3和R4寄存器存放定时中断次数,初始状态设P3.0为高电平,定时器T0溢出R3次后信号变为低电平,定时器T1溢出R4次后信号变为高电平,通过两个按钮对R3和R4进行加一和减一操作,实现脉宽和周期的增减,脉宽增按钮接在P0.0引脚,脉宽减按钮接在P0.1引脚,周期增按钮接在P0.2引脚,周期减按钮接在P0.3引脚。在P1和P2口接八个数码管,动态显示脉宽和周期,用查表指令使各数码管显示0~9的十进制数,其中P1口产生控制位选信号,P2口产生控制段码信号。

2

具体设计:

1、硬件设计,见硬件结构图。

单片机的内部时钟用12MHZ的晶振电路产生,这样没一个机器周期为1微秒。复位信号由TL7705芯片产生。EA引脚接高电平。P0口第四位分别接四个控制按钮,各串联10K ,上拉电阻,当按键按下,先P0引脚输入高电平。按钮MU接P0.0,控制脉宽增加,按钮MD接P0.1,控制脉宽减少,按钮ZU接P0.2,控制周期增加,按钮ZD接P0.3,控制周期减少。P2引脚接八个数码管的公共端,用于产位选信号,八个数码管的段引脚并联在P2口,P2口产生段选信号。

P1.0~P1.3接的四位数码管显示脉宽,P1.4~P1.7接的四位数码管显示周期。

3

2、软件设计

(1)主程序和初始化程序的设计

单片机上电或复位后由入口地址进入主程序,主程序指定了单片机运行的流程。首先要条用初始化程序,对单片机进行初始化,然后指定P3.0信号输出的初始状态为高电平,启动定时器,然后调用键盘子程序和数码显示子程序,不断循环扫描。

初始化程序中要设置堆栈空间,设置T0和T1于工作方式1,初值均设08DF0H,开放中断,允许T0和T1中断,设置P0,P1和P2的初始状态为各位全0,设置T0和T1的中断次数初值R3=0,R4=0,再另八个数码管全部显示0。

指定片内单元存放要显示的数字0,设置40H~43H存放脉宽显示数,45H~47H存放周期显示,将40H~47H全部清零,定义TAB表格存放0~9十个数的共阳极显示段码,用查表指令取0的显示段码,送P2口显示,用静态显示显示0。

4

主程序:

ORG 00H

LJMP MAIN ORG 0BH LJMP INT0_SUB ORG 1BH LJMP INT1_SUB ORG 0100H

MAIN:LCALL CSH_SUB ;调用初始化至程序 SETB P3.0 ;设置输出信号初始状态 SETB TR0

SETB TR0 ;启动定时器

SM_SUB:LCALL KS_SUB LCALL DISP_SUB

LJMP SM_SUB ;扫描键盘和显示数码

5

本文来源:https://www.bwwdw.com/article/nwv2.html

Top