②P1口(1脚至8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。
③P2口(21脚至28脚):是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。
④P3口(10脚至17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL负载。
作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。 作为第二功能使用时,各引脚的定义如表所示。
值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
第二功能描述如下:
P3.0 10 RXD(串行输入口) P3.1 11 TXD(串行输出口) P3.2 12 INT0(外部中断0) P3.3 13 INT1(外部中断1) P3.4 14 T0(定时器0外部输入) P3.5 15 T1(定时器1外部输入) P3.6 16 WR(外部数据存储器写脉冲) P3.7 17 RD(外部数据存储器读脉冲)
(1) 波形产生模块设计
由单片机采用编程方法产生三种波形、通过DA转换模块PCF8591之后输出。其电路图如下:
图(3) PCF8591芯片
在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现。 PCF8591是具有I2C总线接口的8位A/D及D/A转换器。有4路A/D转换输入,1路D/A模拟输出。这就是说,它既可以作A/D转换也可以作D/A转换。A/D转换为逐次比较型。
AIN0~AIN3:模拟信号输入端。 A0~A3:引脚地址端。
SDA、SCL:I2C总线的数据线、时钟线。 OSC:外部时钟输入端,内部时钟输出端。
EXT:内部、外部时钟选择线,使用内部时钟时EXT接地。 AGND:模拟信号地。 AOUT:D/A转换输出端。 VREF:基准电源端。
PCF8591采用典型的I2C总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成。飞利蒲公司规定A/D器件地址为1001。引脚地址为A2A1A0,其值由用户选择,因此I2C系统中最多可接23=8个具有I2C总线接口的A/D器件。地址的最后一位为方向位R/ ,当主控器对A/D器件进行读操作时为1,进行写操作时为0。总线操作时,由器件地址、引脚地址和方向位组成的从地址为主控器发送的第一字节。
控制字节用于实现器件的各种功能,如模拟信号由哪几个通道输入等。控制字节存放在控制寄存器中。总线操作时为主控器发送的第二字节。其格式如下所示:
其中:D1、D0两位是A/D通道编号:00通道0,01通道1,10通道2,11通道3 D2 自动增益选择(有效位为1)
D5、D4模拟量输入选择:00为四路单数入、01为三路差分输入、10为单端与差分配合输入、11为模拟输出允许有效
当系统为A/D转换时,模拟输出允许为0。模拟量输入选择位取值由输入方式决定:四路单端输入时取00,三路差分输入时取01,单端与差分输入时取10,二路差分输入时取11。最低两位时通道编号位,当对0通道的模拟信号进行A/D转换时取00,当对1通道的模拟信号进行A/D转换时取01,当对2通道的模拟信号进行A/D转换时取10,当对3通道的模拟信号进行A/D转换时取11。
在进行数据操作时,首先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主控器从被控器读出第一个数据字节,主控器发出应答,主控器从被控器读出第二个数据字节,主控器发出应答…一直到主控器从被控器中读出第n个数据字节,主控器发出非应答信号,最后主控器发出停止信号。
(2)显示模块的设计
通过液晶12864显示输出的波形以及波形的频率和幅度频率,其电路图如下:
图(4) 液晶显示模块
如上图所示,12864的八位数据端接单片机的P0口,其三个使能端RS、RW、E分别接单片机的P2.2—P2.4。通过软件控制液晶屏可以显示波形以及波形的幅度和频率。
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
LCD12864基本特性:
(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点 (3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符 (5)、2MHZ时钟频率 (6)、显示方式:STN、半透、正显 (7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点 (9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选 (11)、内置DC-DC转换电路,无需外加负压 (12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃-+60℃
图(5) 数码管显示模块
通过一位数码管显示波形类型(1-3).
(3)按键显示模块的设计
本系统采用独立按键,其连接电路图如下:
图(6) 按键显示模块
图中四个按键引出的四个线分别接单片机的P3.2—P3.6口,如图KEY1用来切换输出波形、KEY2和KEY3用来调节频率的加减,KEY4和KEY5用来调节幅度的加减。当按KEY2时输出波形的频率增加,按KEY3时输出波形的频率减小。当按KEY4时输出波形的幅度增加,按KEY5时输出波形的幅度减小。
软件设计流程:
本系统采用AT89C51单片机,用编程的方法来产生三种波形,并通过编程 来切换三种波形以及波形频率的改变。
具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。
软件调通后,通过编程器下载到AT89C51芯片中,然后插到系统中即可独立完成所有的控制。
软件的流程图如下:
开始