单片机小系统构建报告.docx
《单片机小系统构建报告.docx》由会员分享,可在线阅读,更多相关《单片机小系统构建报告.docx(15页珍藏版)》请在冰豆网上搜索。
![单片机小系统构建报告.docx](https://file1.bdocx.com/fileroot1/2023-4/16/e8a5997e-c0c4-46c0-a411-420f48f5a14e/e8a5997e-c0c4-46c0-a411-420f48f5a14e1.gif)
单片机小系统构建报告
单片机小系统构建报告
摘要
本系统以AT89S52为核心,通过外部扩展加入以下模块:
外部数据存储区,外部程序存储区,AD/DA转换模块,人机交互模块,数据显示模块,并设计了总线扩展口,打印机接口,串行数据通信口,从而构建了单片机最小系统.本系统可对各种数据进行采集处理并显示,实现实时日历钟的显示,同时通过串行接口可与外部进行通信,并可通过总线扩展口与外接芯片进行连接从而使功能更加全面.
关键词:
单片机小系统,AD/DA,总线扩展口,串行通信接口
一.系统分析
1.明确系统要求
根据系统设计要求,我们确定了本系统应该包括的功能模块:
●32Kx8BSRAM,256BEEPROM,实时日历钟
●前向模拟通道,8bit/1M电压型并行A/D
●后向模拟通道:
2CH,8bit并行D/A,带低通滤波及功率输出.
●通讯接口:
三线制TTL电平,经驱动后支持RS232,SPI,I2C,CAN等.
●扩展电路:
centronics并行打印口,总线扩展口,8bitI/O口
2.系统框图设计.
针对以上模块我们设计功能框图如下
二.芯片选型
在完成了对系统功能框图的设计后,我们开始对芯片进行选型
1.MCU
根据以往构建系统经历,我们选择AT89S52作为MCU,以其为基础扩建系统.
At89s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器.使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容.片上Flash允许程序存储器在系统可编程,亦适于常规编程器.在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案.AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路.另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式.空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作.掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止.8位微控制器8K字节在系统可编程.
2.AD/DA芯片
●AD芯片我们选用TI公司的TLC0820,TLC0820采用先进的lincmos工艺制作是一款单通道,8位AD转换芯片,具有转换速度快(〈2.5μS),接口电路简单,无需外部时钟等优点.该芯片采样率最高可达20M/S,可以满足系统需求.
TLC0820的控制信号主要有WR,RD,INT,MODE等,其中MODE脚可以用来决定工作在READMODE或者WRITEREADMODE.WR为转换开始信号,当WR由高变低时,转换开始.RD为读信号,当RD为低时,MCU将转换完成的数据读回.INT为转换完成标志信号,当一次转换完成后,INT由高变低,可将INT脚作为中断使用.
在实际应用中,由89S52发出转换开始信号,由于0820转换时间短,故不再使用INT脚,经过短暂延时后发出读信号,读回数据即可.
●DA芯片我们选用TI公司的TLC7528,它是电压输出型DA转换器,输入阻抗为20K,其采样频率可达10MHz.ADC7528C是双路,8位数字-模拟转换器,它们设计成具有单独的片内数据锁存器,其特点包括非常紧密的DAC至DAC(DAC-to-DAC)一致性.数据通过公共8位输入口传送至两个DAC数据锁存器的任一个.控制输入端DACA/DACB决定哪一个DAC被装载
固定输入电压(Vref)与模拟输出电压之间的关系为:
Vo=-Vi×(D/256)(2-1)
式中:
Vo为模拟输出电压
Vi为固定输入电压(Vref)
D为转换至十进制的数字输入代码
在实际应用中,只需产生7528的写信号,即可将数据写入并进行DA转换
3.外部数据存储器SRAM
系统要求有32K的外部数据扩展,为此我们选用62256作为扩展芯片.
62256是32K*8位的静态随机存储器.它是应用高性能、高可靠性的CMOS技术制造,适用于高密度、高速的系统应用.单一5V电源供电.快速存取时间8/10/12/15ns.低运转功率消耗80mA.全静态运转.三态输出.所有的输入、输出与TTL相兼容.
当CS=0,OE=0,WE=1时,数据读出,read有效.当CS=0,WE=0时,数据写入.
4.外部数据存储器EEPROM(日历钟)
我们选用PCF8583作E
PROM.PCF8583是实时日历钟电路基于一个2048-bit静态CMOSRAM,具有256字节(8-bit).地址和数据通过2条双向的
总线串行传输.当每个字节被读或写后,内置字节地址寄存器自动增加.地址管脚A0用于编程硬件地址,在不添加其他硬件的情况下,允许连接2个设备到地址总线.内置32.768K的晶振和前8字节的RAM用于4年时钟和计数功能.余下8字节用于报警寄存器.最后的240字节用于低电压RAM.
总线接口运转电压为2.5-6V.具有通用定时器报警和溢出标志.
5.键盘及数码管显示接口芯片
为了达到节省IO口从而实现更多扩展功能的目的,我们使用ZLG7289A作为键盘与数码管的接口芯片.
ZLG7289具有SPI串行接口功能的可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可管理多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能.
ZLG7289A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐,闪烁,左移,右移,段寻址等.
指令结构有3种类型:
不带数据的纯指令;带有数据的指令;读取键盘数据指令.
在使用了7289后,仅需3个IO口即可完成对16位键盘及8位8段显示数码管的管理.
6.串行通信接口芯片
MAX232是双驱动/接收器.采用LinBICMOS处理技术.包含电容性电压发生器,由单一5V电源提供EIA-232电平.每一个接收器将EIA-232输入转化为5VTTL/CMOS电平.这些接收器具有典型的1.3V极限电压及典型迟滞电压0.5V,可以接受
的输入.每一个驱动器将TTL/CMOS电平转化为EIA-232电平.
鉴于以后应用中可能使用RS232标准进行通信,我们选用MAX232作为串口通信接口芯片.
7.锁存器
在对外部程序与数据存储器进行读或写操作时,或对打印机接口进行写操作时,都需要先将地址信号锁存起来.
选用74HC573作数据总线的驱动器.具有闭锁使能端和输出使能端,由闭锁使能端控制信号的转换,当闭锁使能端变低时,对信号进行锁存.当输出使能端变高时,输出高阻状态.
我们选用74HC377作打印机驱动芯片.它由8个D型触发器构成.在时钟使能端有效时,时钟上升沿触发,将数据输入转化为输出.时钟使能端的应用避免了错误的时钟触发.时钟使能端无效时,数据仍然锁存在74HC377的输出端,用于打印机输出.
8.运算放大器
鉴于我们设计最小系统需要功率输出,而TL082C和TL084C具有功率输出的功能,因此选用TL082C和TL084C作本小系统的运算放大器.
这些低成本的JFET输入运算放大器联合两种巧妙的线性技术在单块集成电路中.每一内部补偿运算放大器都能与高电压JFET输入设备的低输入偏移电压相匹配.这种BIFET技术为低输入偏置电流,输入偏移电流和输出电流提供了宽带宽(4MHz)和快速回转率(13V/us).
9.显示装置
为了增强系统显示功能,我们采用lcd1602液晶显示器作为显示芯片.它是一种工业型液晶,可显示16(行)×2(列)的字符,包括阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等.
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”.
因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’.
三.系统硬件框图及地址分配
1.在完成芯片的选型后,我们画出硬件框图如下
2.系统地址分配表
采用74138对各芯片进行地址分配,分配表如下
芯片
地址
芯片
地址
62256
0000H-7FFFH
DA7528
8000H-8FFFH
AD0820A
9000H-9FFFH
AD0820B
0A000H-0AFFFH
打印机
0B000H-0BFFFH
1602
0C000H-0CFFFH
ZLG7289
0D000H-0DFFFH
EXP(扩展)
0F000H-0FFFFH
四.系统电路设计
1.电源及滤波电路
本系统采用双路电源(DC5V-GND,DC12V--12V)供电,为了防止人为原因造成电源接反,电源使用对称设计,如下
为了给各芯片提供稳定的工作电压,系统中构建了滤波电路来消除噪声信号对Vcc的影响,形成了滤波电路如下
其中各滤波电容应尽量靠近其对应芯片Vcc处,图中为展示电路而将电容排在一起,在实际印制电路板的过程中要注意滤波电容的位置。
2.总线形成电路及单片机外部电路(晶振,复位)
●总线的形成
本系统工作方式为三总线控制,包括:
数据总线D0-D7,地址总线A0-A15,控制信号。
其中P0口作为数据线与地址低位线,P2口作为地址高位线,P3口用于输出控制信号,剩下P1口作为基本IO口。
利用74573作地址信号锁存,把A0-A7与其输入端相连,将ALE与闭锁输出端连接,当单片机往外发送地址信号时,ALE输出高电平,地址信号发送完毕,ALE变低,将地址信号锁存,将74573的输出端与62256的A0-A7相连。
将A8-A15与62256的A8-A15相连来构成对32KSRAM的选址,D0-D7与D0-D7相边来构成数据的传送。
电路形式如下
利用74LS138作为地址选择芯片,对其余芯片进行片选,电路如下
各芯片的数据端可直接与单片机P0口相连,控制信号也可直接相连,电路形式不再描述。
●单片机外部电路
单片机外部电路是给单片机提供上电复位以及振荡信号的电路,形式较为简单,如下:
3.键盘及数码管控制电路
键盘和数码管统一分配给ZLG7289A管理。
ZLG7289A的管脚分布如下:
主要管脚功能如下:
●/CS:
片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据,但其为高电平时,仍然可以检测到中断。
●CLK:
同步时钟输入端,向芯片发送数据及读取键盘数据时,引引脚电平上长沿表示数据有效,即在上长沿取数据。
●DATA:
串行数据输入端,向芯片发送指令时,此引脚为输入端;当读取键盘数据时,此引脚在“读”指令最后一个时钟的下降沿变成输出端。
●/KEY:
按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变成低电平。
●SG-SA,DP:
对数码管的8位进行驱动.
●DIG0-DIG7:
数字0-数字7驱动输出。
在了解了其引脚功能后,我们连接电路如下
我们由P1.6脚发出CLK信号,并从P1.7脚发送指令或者数据,来控制7289以达到读取键盘输入及控制数码管的目的。
7289A的指令分为纯指令和带数据的指令两部分,只需通过正确的时序写入正确指令,即可完成键盘的读入,数码管由0-9ABCDEFHLP的显示。
4.AD/DA转换电路
●AD部分
AD转换要有前向调理电路的存在,主要功能是对信号进行增益调整,偏置调整,平滑,滤波处理,为此,系统中使用了TL084构成调理电路如下:
电路中前一部分为增益调整,偏置调整电路,增益调整主要靠KW302来实现,通过如下公式计算:
k=20*lg|(RW302/R301)|,但这并不能作为整个调理电路的增益,因为在后级平滑电路中还有增益。
电位器KW301用来调整偏置,ADVREF为2.5V,DAVREF为-2.5V,电位器最大阻值为50KΩ,调整精度为(2.5-(-2.5))*5/50K=0.5mv.
电路后一部分为滤波电路,主要对信号进行平滑处理,滤去高频杂波,由公式计算可以得到其截止频率为1/(2*π*10K*1nf)=159KHZ
为了更好地得到电路的性能指标,我们使用仿真软件对其进行了模拟,其模拟结果如下:
AD芯片接口电路如下,由74138进行地址的分配,LM366-2.5提供稳定的2.5V参考电压,AT89S52的WR/RD与/RD/WR相连,作为读写信号,我们在软件的设计中采用延时读入数字信号的方案,故可以将INT悬空,OFLW用来作为模拟信号超出限定值的报警指示,D0-D7直接与S52的D0-D7相连即可。
●DA部分
由于DA部分要求功率输出且进行滤波处理,故在后输出接上由TL082构成的运放电路如下。
电路截止频率计算如AD部分。
对电路进行仿真分析结果如下:
DA芯片接口电路如下:
由74ls138引出地址信号进行片选,由S52的WR引脚发出写命令信号来写入数字信号,/DACA与DBCB为通道选择信号,在实际使用中,只要将数据放在数据线上,发出写信号即可进行DA转换。
5.串行接口电路
接口电路如图:
使用MAX232构成RS232串行通信,T2IN与S52上的TXD相连,构成输出通道,R2OUT与S52上的RXD相连,构成输入通道。
6.日历钟电路
7.总线扩展及打印机电路
8.LCD接口电路
9.其余电路