单片机实验装置.docx
- 文档编号:18100730
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:36
- 大小:336.74KB
单片机实验装置.docx
《单片机实验装置.docx》由会员分享,可在线阅读,更多相关《单片机实验装置.docx(36页珍藏版)》请在冰点文库上搜索。
单片机实验装置
设计任务书
设计题目:
单片机实验装置
设计要求:
1、确定合理工艺方案
2、确定材料
3、在实验装置的设计中最好有创新
4、设计要全面阐述单片机实验装置的工作原理
5、内容丰富、文字精练、讲述详细、实用价值高
6、设计有效地体现出实用的特色
设计进度要求:
第一周:
查阅、收集资料
第二周:
主要部分的设计与理顺、选择芯片
第三周:
采集数据、电路图、程序源等
第四周:
论文的整体设计
第五周:
校核、修改、上交论文
第六周:
论文答辩
指导教师(签名):
摘要
本文论述了基于测控技术的高精度电流、电压测量与定标仪的硬件和监控软件方案设计实现,采用51系列单片机89C52和四位半AD7135系统设计技术,能够对电流电压进行数据采集和处理。
本系统为使用者提供了LED显示模块、键盘控制、大容量存储器件、RS-232串行接口,使得智能化程度更高,结构更紧凑、功能更丰富。
关键词:
89C52,AD7135,RS-232,数据采集
目录
摘要II
1功能与设计方案1
1.1硬件设计方案1
1.2软件设计方案2
2硬件电路设计3
2.189C52端口介绍3
2.2LED显示器及接口设计9
2.3A/D转换器件713511
2.4系统部分单元电路设计14
3软件设计17
3.1软件设计方案17
3.2软件调试17
结论22
致谢23
参考文献24
附录25
中文翻译:
29
1功能与设计方案
电流、电压测量是工业测量中很重要的部分,根据采用的测量元件和测量方法的不同,其精度也不同,因而对数据采集(A/D转换)的精度也不同,对测量结果的定标要到专业的计量部门才能进行,这样就给现场测量带来了很大的不便,我们在电流、电压测量的研究和设计过程中查阅了大量的资料和成果,结合测控专业的特点,提出了能实现电流、电压和电路故障报警的系统设计方案。
1.1硬件设计方案
本单元采用89C52单片机和四位半AD7135系统设计技术对输出的模拟量进行数据采集和处理,并为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置、RS-232串行接口电路,具有智能化程度高、结构更紧凑、功能丰富、技术继承性好等特点。
该系统的粗略框图如图1.1所示,模拟量通过传感器经过信号调理电路变为0~5V,再由A/D转换器变为数字信号后,送给单片机。
EPROM用于存放程序和表格,RAM用于暂存数据,8255连接键盘。
结构框图如下:
图1.1实用电流电压数据采集系统的硬件结构
我们采用89C52单片机作为中央处理器,以27256作为外部程序存储器,从外部ROM取址时,P0口用作地址、数据分时复用总线,存储器的低8位地址(A0~A7)经其端口输出,ALE的下降沿将其打入74LS373锁存器锁存,与高7位地址(经由P2.0~P2.6输出)形成对32K外部存储空间的寻址。
1.2软件设计方案
对于软件,本系统设计的要求是设计并实现有关的监控程序和演示程序。
监控程序模块组成:
(1)系统初始化程序模块
(2)键盘控制程序
(3)A/D转换控制模块
(4)LED显示控制模块
(5)内存检测程序
图1.2数据采集系统软件流程图:
否
是
图1.2
2硬件电路设计
本单元采用89C52单片机和四位半AD7135系统设计技术对输出的模拟量进行数据采集和处理,并为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置,RS-232串行接口电路,具有智能化程度高、结构更紧凑、功能丰富、技术继承性好等特点。
该系统的粗略框图如图1.1所示,模拟量通过传感器经过信号调理电路变为0~5V,再由A/D转换器变为数字信号后,送给单片机。
EPROM用于存放程序和表格,RAM用于暂存数据,8255连接键盘。
下面较详细地叙述系统各部分。
2.189C52端口介绍
2.1.1芯片的特点:
80C51核心处理单元;
(1)片内FLASH程序存储器;
(2)速度可达成协议33MHz;
(3)全静态操作;
(4)RAM可扩展到64K字节;
(5)4个中断优先级;
(6)6个中断器;
(7)4个8位I/O口;
(8)全双工增强型UART;帧数据错误检测;自动地址识别;
(9)电源控制模式;时钟可停止或恢复;空闲模式;掉电模式;
(10)可编程时钟输出;
(11)异步端口复位;
(12)双DPTR寄存器;
(13)低EMI(禁止ALE);
(14)3个16位定时器;
(15)掉电模式可通过外部中断唤醒。
1.P0.0~P0.7:
P0口是开漏双向口,可以写为1使其状态为悬浮,用作高阻输入。
P0口也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉传送1。
2.P1.0~P1.7:
P1口是内部上拉的双向I/O口,向P1口写入1时,P1口被
内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。
P1口的第二功能:
T2(P1.0),定时/计数器2的外部计数输入/时钟输出;T2EX(P1.1),定时/计数器2重装载/捕捉/方向控制。
3.P2.0~P2.7:
P2口是带内部上拉的双向I/O口,向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。
在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址,此时通过内部强上拉传送1。
当使用8位寻址方式访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。
4.P3.0~P3.7:
P3口是带内部上拉的双向I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P3口会因为内部上拉而输出电流。
P3口脚具有以下特殊功能:
RxD(P3.0):
串行输入口
TxD(P3.1):
串行输出口
(P3.2):
外部中断0
(P3.3):
外部中断1
T0(P3.4):
定时器0外部输入
T1(P3.5):
定时器1外部输入
(P3.6):
外部数据存储器写信号
(P3.7):
外部数据存储器读信号
5.RST:
复位。
当晶振在运行过程中,只要复位管脚出现2个机器周期高电平即可复位,内部有扩展电阻连接到Vss,仅需要外接一个电容到Vss即可实现上电复位。
6.ALE:
地址锁存使能。
在访问外部存储器时,输出脉冲锁存地址的敌字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。
并可用作外部时钟或定时,注意每次访问外部数据时一个ALE脉冲将被忽略。
ALE可以通过置位SFR的auxlilary.0禁止,置位后ALE只能在执行MOVX指令时被激活。
7.
:
程序存储使能,读外部程序存储。
当从外部读取程序时,
每
个机器周期被激活两次,在访问外部数据存储器
无效,访问内部程序存储器时
无效。
8.
/Vpp:
外部寻址使能/编程电压。
在访问整个外部程序存储器时,
必须外部置低。
如果
为高时,将执行内部程序,除非程序计数器可以大于0FFFH(4K器件),1FFFH(8K器件),3FFFH(16K器件),7FFFH(32K器件)。
当RST释放后EA脚的值被锁存,任何时序的改变都将无效。
该引脚在对FLASH编程时接12V编程电压(Vpp)。
9.XTAL1:
晶体1。
晶振和内部时钟输入。
10.XTAL2:
晶体2。
晶振输出。
2.1.2芯片的功能
振荡器特性
XTAL1和XTAL2分别为一个反相放大器的输入﹑输出端。
它能作为一定形式被振荡器使用,无论是石英晶体还是陶瓷都可能被使用。
为了驱动一个外部时钟装置,XTAL1被驱动,而XTAL2断开,外部时钟循环任务没有必要条件,因为内部时钟电路系统是通过一个二次跳动的装置输入的,但是必须注意到最大和最小电压高低的时间范围。
空闲模式:
在空闲模式中,CPU使它自己进入睡眠状态而周围其它装置保持运作状态,用软件来运作此方式。
在此方式中,RAM装置的内容和所有的特殊功能保持不变,通过中断能力或硬件重启则能停止空闲模式。
注意到,空闲模式由硬件重新启动后被停止,然后标准的设备开始重新执行中断程序。
在内部重启算法得到控制之前,达到两个机器周期。
在这个事件中,硬件装置禁止接近内部的RAM,但是接近其周围则不被限制。
当空闲模式被重启,所停止排除意外的可能性就写在这个引脚上,而跟着运行的空闲方式之后的程序,则不能被写在这个引脚上或外部存储器上。
2.1.3掉电方式
在掉电时,振荡器是停止的,并且程序运行能维持到执行完,RAM装置和特
殊功能装置保持他们的值,直到节电方式停止。
节电方式仅存在于硬件重启时,重启重新定义SFR,但不能改变RAM,重启不能被启动在Vcc恢复它的正常运行标准且要运行较长的时间能够为了使振荡器重新启动和稳定工作。
存储程序锁定二进制数
89C52有三个锁定二进制数,它可以不被编程(U)或能被编程(P)且获得了额外的特性,在下表中表示:
2.1.4锁定二进制数模式
程序锁定二进制
LB1LB2LB3
保护类型
1
U
U
U
无程序锁定特性
2
P
U
U
MOVC通过外部程序存储器执行程序,不能得到内存储器的代码,EA是一个取样和加锁在重启的时候。
下一个程序电擦写存储器无效。
3
P
P
U
同模式2一样,被证明无效
4
P
P
P
同模式3一样,但外部执行仍然无效
表2.1.4
当锁定是编程,在重启中非算术性的运作标准在EA中是一个取样和加锁,如果装置的能源下降没有重启,最初是对一个随机值的加锁并且保持这个值,直到重启开始,加锁EA的值必须由当前的非算术性的运作标准同意,是为了装置适当的功能。
2.1.5FLASH编程模式
89C52在擦去状态和准备端是一个标准的,能和FLASH相匹配的载体,编写程序使其接受高电压(12伏)或低电压(Vcc),协调能源信号,为低电压程序模式提供一个方便的方法去执行89C52内部的使用系统,是高电压程序模式能够带动的,第三部分FLASH和EPROM程序相一致。
89C52既是高电压也是低电压程序模式的载体,最大面标记和装置重要的代码分别在表中体现:
89C52代码程序是字节-字节的排列在FLASH存储器中,任何程序的空字节
的存储必须被擦写模式完全抹去,
2.1.6程序算法
在运行89C52前,地址数据和控制信号能被开始,根据FLASH编程模式表9,执行89C52,按以下步骤执行:
(1)请求输入存储器当前的地址线
(2)输入合适的数据字节在数据线上
(3)启动正确的控制信号连接
(4)在高电压程序模式中,将EA/VPP升到12V
(5)在闪存排列或锁定二进制数中开始记下ALE/PROG的脉冲程序字节,字节循环被写在自身的时间内且通常超过了1-5ms。
重新开始1到5步,改变地址和数据重新全部排列直至目标文件全部到达完成。
2.1.7数据轮流检测
89C52的数据轮流检测的特性只是循环写入的结束,在循环写入时,如果想尝试读到最后一个写入字节,将会导致在写入数据时有额外的数据,P0.7口一旦写入循环完成了,真实的数据是在所有的输入端是正确的,并且下一个循环将开始,一个写入循环开始后,数据轮流检测可能开始于任何时侯。
字节执行进程也能被RDX/BSY输出信号所控制,P3.4口在ALE变为高电平之后其变成低电平,在程序表明繁忙时,当程序表明准备时,P3.4口又变为高电平。
2.1.8程序验证
如果锁定二进制数LB1和LB2不能被执行,这个程序的代码数据能够被读信号返回,经由地址数据线证实,锁定二进制数不能被直接证明,证明二进制数的实现是通过观察它们的特性。
2.1.9擦写模式
完全的内部FLASH排列被电擦写是通过合适的信号连接和让ALE/PROG保持10ms的低电平,写全部代码排列时,只需要1s,擦除操作必须被执行在代码存储编程之前。
2.1.1089c52的复位电路
本系统的复位电路是上电和按键复位的组合电路。
在系统加电瞬间R、C电路充电过程中出现负脉冲,经过74LS04反相后为正脉冲,使89c52复位;当用户需要手动复位时,按下复位键,产生负脉冲,经反相后出现正脉冲(10ms的高电平),使89c52复位,电路如下图:
图1.1.989c52的复位电路
2.1.1189c52振荡电路
89c52的XTAL1和XTAL2接石英振荡器,构成时钟电路,为89c52提供6MHZ的时钟频率。
2.1.1289C52译码及外部扩展电路
89C52外部译码采用3~8译码器74LS138,为存储器和各端口提供8根片选信号(译码输入线采用地址高三位(AB11~AB13)和RD、WR及AB14、AB15做片选);为系统提供从8000H~BFFFH共32KB的数据/程序及I/O接口器件的访问地址。
具体地址分配如下:
片选
器件
地址范围
供用户使用资源
CS0
8255
8000H-87FFH
键盘接口电路
CS1
8800H-8FFFH
CS2
AD7135
9000H-97FFH
AD转换电路
CS3
9800H-9FFFH
CS4
A000H-A7FFH
CS5
A800H-AFFFH
CS6
B000H-B7FFH
CS7
B800H-BFFFH
电路原理图如下:
图1.1289C52外部扩展电路
2.2LED显示器及接口设计
在这一节里将详细介绍本系统的LED显示器
2.2.1ED显示器结构
LED显示器是由发光二极管显示字段组成的显示器,有7段和“米”字段之分。
这种显示器有共阳极和共阴极两种。
共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮相应的段被显示。
同样,共阳极LED显示器的发光二极管的阳极被连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接地时,发光二极管被点亮,相应的段被显示。
每一种LED又有不同的发光颜色。
例如,BS202型中,BSG202发绿光;BS212型中,BSR212发红光,BSG212发绿光。
一般的,发红光的LED每段流过的5mA的平均电流,就可以有较满意的亮度,7mA电流会更亮些。
10mA以上也不会再亮多少,但长期运行于10mA以上会缩短其寿命。
最大电流平均值不得超过30mA。
LED显示器允许的反向电压最大值为5V,此时的反向电流一般小于10μA。
小尺寸的LED显示器每段只有一个发光二极管,其正向压降为1.5V,一般不大于2V。
大尺寸的LED显示器每段可能由数个发光二极管串联,每段压降也要增大。
2.2.2静态显示与动态显示
显示器有静态和动态两种显示方式。
所谓静态显示就是需要显示的字符的各字段连续通过电流,因而所显示的字段连续发光。
所谓动态显示就是所需显示的字段断续通以电流,因而其发光也是不连续的。
例如,在需要多个字符同时显示时,可以轮流给每一个字符通以电流,逐次把所需要显示的字符显示出来。
在每点亮一个显示器后,必须持续通电一段时间,使之发光稳定,然后再点亮另一个显示器,如此巡回扫描显示器。
由于巡回速度较快,每秒可重复多次(为了不闪烁,可以每秒扫描20次左右)。
虽然在同一时刻只有一个显示器通电,但是由于人眼的视觉暂留现象和发光二极管的余辉效应,因此在人们看来认为每个显示器都在稳定的显示。
这种巡回扫描显示器的操作要靠程序控制。
动态显示的亮度随电流平均值的增大而增强,其亮度大体上等同于通过同样大的直流电流的静态显示器的亮度。
2.2.3LED显示器的接口设计
本系统采用静态显示方式,静态显示时每一个接口驱动器件驱动一个显示器。
用于静态显示时,CPU把数据写到借口驱动电路后,CPU不需要再干预,显示器便会持续显示,因此,接口驱动电路应该有锁存数据的功能。
所有TTL和COMS电路中的CD14547均无锁存功能,因此在电路设计时应附加锁存功能,而TTL器件比COMS器件动作快。
所以,我选用了TTL器件的74LS164。
接口连接图如下:
当串行口工作于方式0时,在“串行输入并行输出”芯片74LS164的配合下,即可通过串行口扩展89C52的输出口,其中89C52的RXD引脚接74LS164芯片的串行数据输入端,TXD引脚接74LS164芯片的移位脉冲CLK。
串行数据输出过程概括如下:
在发送中断标志TI为0(即无效)情况下,执行写串行数据输出缓冲器SBUF指令(如MOVESBUF,A)即可将SBUF寄存器中内容由低位到高位依次输出到RXD引脚,同时TXD引脚输出移位脉冲,使外接的串行输入并行输出芯片逐一接收来自RXD引脚上的串行数据。
当8位数据发送结束后,发送中断标志TI自动置1,输出数据(即SBUF内容)也就出现在74LS164芯片的并行输出端。
这样在执行写SBUF寄存器操作后,可通过查询TI标志来确定发送过程是否完成。
当然,在中断处于开放状态下(串行中断允许ES为,中断允许EA为1),当TI有效时,将产生串行中断请求。
不过值得注意的是CPU响应串行中断后,不会自动清除TI,需要用“CLRTI”指令清除TI,以便输出新的串行数据。
2.3A/D转换器件7135
ICL7135的国产型号叫CH7135.它是四位半高精度积分式ADC器件,输入为差分信号输出为BCD码,其分辨率为两万分之一,及分辨率为0.005,完全满足本系统要求,如果要进一步提高分辨率,可以对变送器进行零点迁移,使其在最关心的浓度范围内对应的输出范围变小.ICL7135内部没有时钟电路,必须全部外接,必须外接基准电压,单端输入,其基准电压为满量程的一半,其输出不是三状态的,不可直接与总线相连.ICL7135每次转换结束立即输出新的转换结果,不需特别控制,有专门的极性显示,过量程显示和欠量程显示引脚,使用起来比较方便.下面对ICL7135作详细的介绍.
2.3.1管脚功能及有关参数选择
28脚封装如下图所示:
图3.128脚封装
图中:
●V+:
电源正,+5V(以数字地DGND为基准)
●V_:
电源负,-5V(以DGND为参考点)
●INLO:
差分信号输入负端.单端输入时,INLO可与模拟地(AGND)相连
●INHI:
差分信号输入正端.应保证V+-0.5≥(INHI和INLO)≥V-+1V.模拟输入信号:
V1=INHI-INLO的范围为0~±VFS
●AGND:
模拟地,是VREF和模拟输入基准点.
●DGND:
数字地,是V+和V-的基准点.
●VREF:
基准电压接线端,以AGND为基准,VREF=VFS/2,VFS为满量程.若VFS=2V,则VREF=1V,若VFS=200mV,则VREF=100mV
●R/H:
运行/保持端.当R/H=1或悬空时,ICL7135连续进行A/D转换,即没40002个时钟周期开始一次A/D转换.当R/H=0时,转换一次完成后,数据被保持,直至R/H重新变为1时再开始A/D转换.
●CLK:
时钟脉冲输入端.
●AZ:
自较零端,接自动稳零电容CZ,CZ应足够大,以便减小干扰的影响,一般取1uF且选优质电容.
●CR+和CR-:
基准电容CREF接线端,CREF应足够大,可以忽略寄生电容,一般可取CREF=1uF且选优质电容.
●INT:
积分器输出脚,外接积分电容CINT,一般取CINT=0.1~0.47uF
●BUF:
缓冲器输出端,接积分电阻RINT,RINT=VFS/20uA,例如VFS=2V,则RINT=100K欧
●BUSY:
忙输出脚,若BUSY为高表示正在进行A/D转换,若为低表示A/D转换已经结束.
●B8,B4,B2,B1:
BCD码输出脚,B8是最高位,B1是最低位,高电平为1,低电平为0.
●D5,D4,D3,D2,D1:
位驱动输出脚,在一次A/D转换结束后,多次顺序在D5~D1发出宽度为200个时钟周期的正脉冲,
●STB:
脉冲选通,在每完成一次A/D转换后,在STB端发出5个宽度为1/2时钟脉冲周期的负脉冲,每个STB脉冲分别位于第一次出现的位驱动信号D5~D1的中间,因此第一个STB负脉冲可作为结束信号.
●UR:
欠量程输出端,若输入模拟信号ⅠV1Ⅰ=ⅠINHI-INLOⅠ<0.179VFS(读数小于1800),则在A/D转换结束后,UR=1.
●OR:
过量程信号输出端,若ⅠV1Ⅰ>VFS.则在A/D转换结束后OR=1.UR和OR供数字仪表作量程转换用.
●POL:
极性输出脚,当V1>O时,POL=1,反之POL=0.
2.3.2ICL7135与单片机的接口
图2.3.2ICL7135与单片机的接口视图
上图是本系统中所用的ICL7135与89C52单片机的接口电路,下面详细的分析该电路.
ICL7135内部没有时钟发生器,必须外加时钟信号到CLK,本系统中利用计数器74LS161进行分频,VR是一个精密电源,用精密电位器将它调到1V,R1,C1端所接积分电阻和电容也是精密电阻和精密电容,R/H端接高电平,芯片处于自动连续转换的工作状态,时钟电路的输出频率为1MHz,BCD码的输出端和符号位接在单片机的P1口.
2.3.3体会与总结
7135是一种高精度AD器件,其转换的精度与变送器有很大关系,即理论上分辨率为0.005,完全满足本系统要求,如果要进一步提高分辨率,可以对变送器进行零点迁移,使其在最关心的浓度范围内对应的输出范围小.不过这样对软件的要求比较高.
7135内部没有时钟电路,必须全部外接,需外接基准电压,其基准电压是满量程的一半,本系统是通过可调电阻实现的.其输出不是三状态的,不可直接与总线相连,本系统是通过外插接口来解决的,7135除了上述接口方法外,还有一种三线制接法,即只用POL,CLK,BUSY三根线,这样在走线上是很方便的,在此,就不多介绍了。
.
2.4系统部分单元电路设计
前几节已介绍了本系统用到的主要芯片,接下来在这一节里将详细介绍本系统的单元模块电路的设计。
2.4.18255键盘设计
键盘是利用可编程控制器8255的PC口进行扩展,键盘为4×4共8个键,PC0~PC3作为行扫描线,PC4~PC7作为列检测线,每根列检测线节+5V的电源,并且节4.7K的上拉电阻,对8255进行初始化时,设定PC0~PC3为输出,PC4~PC7为输入,当每个键按下去,便对应一个唯一的键值。
电路如图所示:
图4.1电路图
2.4.2存储单元电路设计
本系统为用户提供了32K的外部数据存储器62256和程序存储器27256,其寻址范围均为0000H——7FFFH,分别由WR、RD和PSEN来控制。
电路图如下所示:
图4.2电路图
2.4.3RS-232串行通信接口电路
RS-232标准信号为负逻辑,设计电路的关键是实现TTL电平与RS-232电平的转换。
本系统选用ICL232CPE,实现了TTL电平与TS-232电平的转换。
ICL232CPE的优点是其内部有电压倍增电路和转换电路,仅需要+5伏电源供电,使用十分方便。
如右电路图:
3软件设计
3.1软
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 装置