2.3 软件流程总体设计
软件系统由按键、单片机、D/A转换、放大电路等模块组成。波形的产生是通过AT89C51 执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形,再通过放大器放大即可得到相应的波形。
程序流程框图如图3-5:
3 硬件电路的设计
该设计是以AT89C51单片机作为数据处理以及控制的核心,是波形发生系统的关键部位。通过软件编程实现对信号的控制再配以适当的外围电路就能很好的完成设计要求。
3.1 主控电路
AT89C51单片机是整个发生器的主控部分,通过对程序的改写,可以产生各种不同的波形,也可对同种波形进行频率的变化。当单片机的数字信号经过转换后变为相应的模拟信号,就能显示出所要的波形。
3.1.1 主控MCU的选择
AT89C51从P1口接收来自键盘的信号,并通过P1口输出数字信号,输入到数模转换器中,设计中主要采用AT89C51型单片机,是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器。该芯片具有优异的性价比,集成度高,体积小,可靠性强,控制功能强等优点。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51的P0口做为D/A转换芯片0832的接口。用定时/计数器作为中断源。不同的频率值对应不同的定时初值,允许定时器溢出中断。定时器中断的特殊功能寄存器设置如下:
定时控制寄存器TCON=20H;
工作方式选择寄存器TMOD=01H;
中断允许控制寄存器IE=82H。
3.1.2 AT89C51主要特性
(1)兼容性能强
(2)4K字节可编程FLASH存储器
(3)全静态工作:0Hz-24MHz
(4)128×8位内部RAM
(5)32可编程I/O线
(6)两个16位定时器/计数器
(7)5个中断源
(8)可编程串行通道
(9)低功耗的闲置和掉电模式
(10)片内振荡器和时钟电路
图3-1-2 AT89C51引脚图
管脚说明如下描述:
VCC:供电电压。
GND:接地。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
P0口:P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P0口是一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示: AT89C52单片机多功能信号发生器+电路图+源程序(4):http://www.youerw.com/tongxin/lunwen_14687.html