毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc

上传人:来看看 文档编号:3943383 上传时间:2019-10-10 格式:DOC 页数:32 大小:965.50KB
返回 下载 相关 举报
毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc_第1页
第1页 / 共32页
毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc_第2页
第2页 / 共32页
毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc_第3页
第3页 / 共32页
毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc_第4页
第4页 / 共32页
毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-89C52单片机系统实现数据采集和处理.doc(32页珍藏版)》请在三一文库上搜索。

1、摘 要本文论述了基于测控技术的高精度电流、电压测量与定标仪的硬件和监控软件方案设计实现,采用51系列单片机89C52和四位半AD7135系统设计技术,能够对电流电压进行数据采集和处理。本系统为使用者提供了LED显示模块、键盘控制、大容量存储器件、RS-232串行接口,使得智能化程度更高,结构更紧凑、功能更丰富。关键词:89C52 AD7135 RS-232 数据采集 AbstractThis essay describes that the hardware and the monitor software project of “High Precision Electric Current

2、 and Voltage Measure Instrument” which is based on measure and control technology. This system designed with MCS-51 series single microcomputer 89C52 and 4.5-bit AD7153, can collect and process the data of Electric Current an Voltage.This system can supply user with LCD display module、 keyboard cont

3、rol、print interface、MSF and RS-232 serial interface. This unit have good intelligent、tightly packed structure、plentiful function、good technical hereditability and so on.KEY WORD:89C52 AD7135 Data Aquisition 目 录绪论.(3)第一章 功能与设计方案.(4)1、 设计方案.(4)2、 软件设计方案.(5)第二章 硬件电路设计.(6)第一节 89C52端口介绍. (6)1、芯片点的特.(6)2、

4、DIP封装及引脚功能.(6)3、芯片功能.(8)第二节 LED显示及接口设计.(12)1、LED显示器结构与原理.(12)2、静态显示与动态显示.(13)3、LED显示的接口设计.(13)第三节 AD转换器件7135.(14)1、功能及参数选择.(15)2、7135与单片机的接口.(16)3、体会与总结.(17)第四节 系统部分单元电路设计.(17)1、8255键盘设计.(18)2、储单元电路设计.(18)3、RS-232串行接口电路.(19)第三章 软件设计.(20)1、软件设计方案.(20)2、软件调试.(20)结束语.(25)附录一:英文资料.(26)附录二:电路原理图.(31)绪论 数

5、据采集技术(Data Acquisition)是信息科学的一个重要分支,它研究信息数据的采集、存贮、处理以及控制等作业。在智能仪器、信号处理以及工业自动控制等领域都存在着数据的测量与控制问题。将外部世界模拟量(Analog Signal)转换为数字信号(Digital signal),再收集到计算机并进一步予以显示、处理、传输与记录这一过程,即称为数据采集。相应的系统即为数据采集系统(Data Acquisition system简称DAS)。数据采集技术已在雷达、边信、水声、遥感、地质勘探、振动工程、元损检测、语声处理、智能仪器、工业自动控制以及生物医学工程等领域有着广泛的应用。应该强调指出

6、的是:科学技术的发展,已在速度、分辨率、精度、接口能力、软件设计以及抗干扰能力等方面向现代数据采集技术提出了越来越高的要求。可以预言:随着大规模集成电路技术与计算机科学技术的发展,数据采集技术的应用领域将更为广阔。数据采集的主要问题是采集速度和精度。采集速度主要与采样频率、A/D转换速度等因素有关,采集精度主要与A/D转换器的位数有关。为此本方案采用51系列单片机89C52和四位半AD7135,能够对电流电压信号进行数据采集和处理。同时此方案还为使用者提供了LED显示模块、键盘控制、大容量存储器件、RS-232串行接口,使得智能化程度更高,结构更紧凑、功能更丰富。本系统的主要技术指标如下:(1

7、) CPU: 89C52(2) 时钟频率:12MHz(3) 存储器: 32K用户RAN数据存储器 32K用户EPROM程序存储器(4) 输入信号接口电路: 四位半A/D转换接口电路; 面板按键+键盘键的接口电路。(5) 输出信号接口电路: LED数码管显示电路; 蜂鸣器报警装置。 RS-232串行接口 其它元电路;(6) 端口扩展地址译码电路单元电路: 系统复位单元。第一章 功能与设计方案电流、电压测量是工业测量中很重要的部分,根据采用的测量元件和测量方法的不同,其精度也不同,因而对数据采集(A/D转换)的精度也不同,对测量结果的定标要到专业的计量部门才能进行,这样就给现场测量带来了很大的不便

8、,我们在电流、电压测量的研究和设计过程中查阅了大量的资料和成果,结合测控专业的特点,提出了能实现电流、电压和电路故障报警的系统设计方案。1、硬件设计方案本单元采用89C52单片机和四位半AD7135系统设计技术对输出的模拟量进行数据采集和处理,并为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置、RS-232串行接口电路,具有智能化程度高、结构更紧凑、功能丰富、技术继承性好等特点。该系统的粗略框图如图1.1所示,模拟量通过传感器经过信号调理电路变为05V,再由A/D转换器变为数字信号后,送给单片机。EPROM用于存放程序和表格,RAM用于暂存数据,8255连接键盘。结构框图

9、如下:图1.1 实用电流电压数据采集系统的硬件结构 我们采用89C52单片机作为中央处理器,以27256作为外部程序存储器,从外部ROM取址时,P0口用作地址、数据分时复用总线,存储器的低8位地址(A0A7)经其端口输出,ALE的下降沿将其打入74LS373锁存器锁存,与高7位地址(经由P2.0P2.6输出)形成对32K外部存储空间的寻址。2、软件设计方案对于软件,本系统设计的要求是设计并实现有关的监控程序和演示程序。监控程序模块组成:(1) 系统初始化程序模块(2) 键盘控制程序(3) A/D转换控制模块(4) LED显示控制模块(5) 内存检测程序演示程序流程:开始系统初始化显示数据处理A

10、D数据采集是否按键? 否退出存储大小值设定中断扫描是图1.2 煤气检 图12 数据采集系统软件流程图第二章 硬件电路设计本单元采用89C52单片机和四位半AD7135系统设计技术对输出的模拟量进行数据采集和处理,并为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置,RS-232串行接口电路,具有智能化程度高、结构更紧凑、功能丰富、技术继承性好等特点。该系统的粗略框图如图1.1所示,模拟量通过传感器经过信号调理电路变为05V,再由A/D转换器变为数字信号后,送给单片机。EPROM用于存放程序和表格,RAM用于暂存数据,8255连接键盘。下面较详细地叙述系统各部分。 第一节 8

11、9C52端口介绍1.1芯片的特点: (1) 80C51核心处理单元;(2) 片内FLASH程序存储器;(3) 速度可达成协议33MHz;(4) 全静态操作;(5) RAM可扩展到64K字节;(6) 4个中断优先级;(7) 6个中断器;(8) 4个8位I/O口;(9) 全双工增强型UART;帧数据错误检测;自动地址识别;(10)电源控制模式;时钟可停止或恢复;空闲模式;掉电模式;(11)可编程时钟输出;(12)异步端口复位;(13)双DPTR寄存器;(14)低EMI(禁止ALE);(15)3个16位定时器;(16)掉电模式可通过外部中断唤醒。3.1.2 DIP封装及引脚功能1. P0.0P0.7

12、:P0口是开漏双向口,可以写为1使其状态为悬浮,用作高阻输入。P0口也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉传送1。2. P1.0P1.7:P1口是内部上拉的双向I/O口,向P1口写入1时,P1口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。P1口的第二功能:T2(P1.0),定时/计数器2的外部计数输入/时钟输出;T2EX(P1.1),定时/计数器2重装载/捕捉/方向控制。3. P2.0P2.7:P2口是带内部上拉的双向I/O口,向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。当

13、作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址,此时通过内部强上拉传送1。当使用8位寻址方式访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。4. P3.0P3.7:P3口是带内部上拉的双向I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P3口会因为内部上拉而输出电流。P3口脚具有以下特殊功能:RxD(P3.0):串行输入口TxD(P3.1):串行输出口 (P3.2):外部中断0 (P3.3):外部中断1T0(P3.4):定时器0外部输入T1(P3.5):定时器1

14、外部输入 (P3.6):外部数据存储器写信号 (P3.7):外部数据存储器读信号5. RST:复位。当晶振在运行过程中,只要复位管脚出现2个机器周期高电平即可复位,内部有扩展电阻连接到Vss,仅需要外接一个电容到Vss即可实现上电复位。6. ALE:地址锁存使能。在访问外部存储器时,输出脉冲锁存地址的敌字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。并可用作外部时钟或定时,注意每次访问外部数据时一个ALE脉冲将被忽略。ALE可以通过置位SFR的auxlilary.0禁止,置位后ALE只能在执行MOVX指令时被激活。7. :程序存储使能,读外部程序存储。当从外部读取程序时,每个机器周期被

15、激活两次,在访问外部数据存储器无效,访问内部程序存储器时无效。8. /Vpp:外部寻址使能/编程电压。在访问整个外部程序存储器时,必须外部置低。如果为高时,将执行内部程序,除非程序计数器可以大于0FFFH(4K器件),1FFFH(8K器件),3FFFH(16K器件),7FFFH(32K器件)。当RST释放后EA脚的值被锁存,任何时序的改变都将无效。该引脚在对FLASH编程时接12V编程电压(Vpp)。9. XTAL1:晶体1。晶振和内部时钟输入。10.XTAL2:晶体2。晶振输出。3.1.3 芯片的功能1. 振荡器特性XTAL1和XTAL2分别为一个反相放大器的输入输出端。它能作为一定形式被振

16、荡器使用,无论是石英晶体还是陶瓷都可能被使用。为了驱动一个外部时钟装置,XTAL1被驱动,而XTAL2断开,外部时钟循环任务没有必要条件,因为内部时钟电路系统是通过一个二次跳动的装置输入的,但是必须注意到最大和最小电压高低的时间范围。空闲模式:在空闲模式中,CPU使它自己进入睡眠状态而周围其它装置保持运作状态,用软件来运作此方式。在此方式中,RAM装置的内容和所有的特殊功能保持不变,通过中断能力或硬件重启则能停止空闲模式。注意到,空闲模式由硬件重新启动后被停止,然后标准的设备开始重新执行中断程序。在内部重启算法得到控制之前,达到两个机器周期。在这个事件中,硬件装置禁止接近内部的RAM,但是接近

17、其周围则不被限制。当空闲模式被重启,所停止排除意外的可能性就写在这个引脚上,而跟着运行的空闲方式之后的程序,则不能被写在这个引脚上或外部存储器上。2. 掉电方式在掉电时,振荡器是停止的,并且程序运行能维持到执行完,RAM装置和特殊功能装置保持他们的值,直到节电方式停止。节电方式仅存在于硬件重启时,重启重新定义SFR,但不能改变RAM,重启不能被启动在Vcc恢复它的正常运行标准且要运行较长的时间能够为了使振荡器重新启动和稳定工作。存储程序锁定二进制数89C52有三个锁定二进制数,它可以不被编程(U)或能被编程(P)且获得了额外的特性,在下表中表示:3. 锁定二进制数模式程序锁定二进制 LB1 L

18、B2 LB3 保护类型 1U U U无程序锁定特性 2 P U U MOVC通过外部程序存储器执行程序,不能得到内存储器的代码,EA是一个取样和加锁在重启的时候。下一个程序电擦写存储器无效。 3 P P U同模式2一样,被证明无效 4 P P P同模式3一样,但外部执行仍然无效当锁定是编程,在重启中非算术性的运作标准在EA中是一个取样和加锁,如果装置的能源下降没有重启,最初是对一个随机值的加锁并且保持这个值,直到重启开始,加锁EA的值必须由当前的非算术性的运作标准同意,是为了装置适当的功能。4. FLASH编程模式89C52在擦去状态和准备端是一个标准的,能和FLASH相匹配的载体,编写程序使

19、其接受高电压(12伏)或低电压(Vcc),协调能源信号,为低电压程序模式提供一个方便的方法去执行89C52内部的使用系统,是高电压程序模式能够带动的,第三部分FLASH和EPROM程序相一致。89C52既是高电压也是低电压程序模式的载体,最大面标记和装置重要的代码分别在表中体现:89C52代码程序是字节-字节的排列在FLASH存储器中,任何程序的空字节的存储必须被擦写模式完全抹去,5. 程序算法在运行89C52前,地址数据和控制信号能被开始,根据FLASH编程模式表9,执行89C52,按以下步骤执行:(1) 请求输入存储器当前的地址线(2) 输入合适的数据字节在数据线上(3) 启动正确的控制信

20、号连接(4) 在高电压程序模式中,将EA/VPP升到12V(5) 在闪存排列或锁定二进制数中开始记下ALE/PROG的脉冲程序字节,字节循环被写在自身的时间内且通常超过了1-5ms。重新开始1到5步,改变地址和数据重新全部排列直至目标文件全部到达完成。6. 数据轮流检测89C52的数据轮流检测的特性只是循环写入的结束,在循环写入时,如果想尝试读到最后一个写入字节,将会导致在写入数据时有额外的数据,P0.7口一旦写入循环完成了,真实的数据是在所有的输入端是正确的,并且下一个循环将开始,一个写入循环开始后,数据轮流检测可能开始于任何时侯。字节执行进程也能被RDX/BSY输出信号所控制,P3.4口在

21、ALE变为高电平之后其变成低电平,在程序表明繁忙时,当程序表明准备时,P3.4口又变为高电平。7. 程序验证如果锁定二进制数LB1和LB2不能被执行,这个程序的代码数据能够被读信号返回,经由地址数据线证实,锁定二进制数不能被直接证明,证明二进制数的实现是通过观察它们的特性。8. 擦写模式完全的内部FLASH排列被电擦写是通过合适的信号连接和让ALE/PROG保持10ms的低电平,写全部代码排列时,只需要1s,擦除操作必须被执行在代码存储编程之前。9、89c52的复位电路本系统的复位电路是上电和按键复位的组合电路。在系统加电瞬间R、C电路充电过程中出现负脉冲,经过74LS04反相后为正脉冲,使8

22、9c52复位;当用户需要手动复位时,按下复位键,产生负脉冲,经反相后出现正脉冲(10ms的高电平),使89c52复位,电路如下图:10、89c52振荡电路89c52 的XTAL1和XTAL2接石英振荡器,构成时钟电路,为89c52提供6MHZ的时钟频率。11、89C52译码及外部扩展电路89C52外部译码采用38译码器74LS138,为存储器和各端口提供8根片选信号(译码输入线采用地址高三位(AB11AB13)和RD、WR及AB14、AB15做片选);为系统提供从8000HBFFFH共32KB的数据/程序及I/O接口器件的访问地址。具体地址分配如下:片选器件地址范围供用户使用资源CS08255

23、8000H-87FFH键盘接口电路CS1 8800H-8FFFHCS2 AD71359000H-97FFHAD转换电路CS39800H-9FFFHCS4A000H-A7FFHCS5A800H-AFFFHCS6B000H-B7FFHCS7B800H-BFFFH电路原理图如下: 第二节 LED显示器及接口设计在这一节里将详细介绍本系统的LED显示器一、 LED显示器结构与原理1. LED显示器结构LED显示器是由发光二极管显示字段组成的显示器,有7段和“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地,当某个发光二极管的阳极为高电平时

24、,发光二极管点亮相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极被连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接地时,发光二极管被点亮,相应的段被显示。每一种LED又有不同的发光颜色。例如,BS202型中,BSG202发绿光;BS212型中,BSR212发红光,BSG212发绿光。一般的,发红光的LED每段流过的5mA的平均电流,就可以有较满意的亮度,7mA电流会更亮些。10mA以上也不会再亮多少,但长期运行于10mA以上会缩短其寿命。最大电流平均值不得超过30mA。LED显示器允许的反向电压最大值为5V,此时的反向电流一般小于10A。小尺寸的LED显示器每段只有一个发

25、光二极管,其正向压降为1.5V,一般不大于2V。大尺寸的LED显示器每段可能由数个发光二极管串联,每段压降也要增大。2. 静态显示与动态显示显示器有静态和动态两种显示方式。所谓静态显示就是需要显示的字符的各字段连续通过电流,因而所显示的字段连续发光。所谓动态显示就是所需显示的字段断续通以电流,因而其发光也是不连续的。例如,在需要多个字符同时显示时,可以轮流给每一个字符通以电流,逐次把所需要显示的字符显示出来。在每点亮一个显示器后,必须持续通电一段时间,使之发光稳定,然后再点亮另一个显示器,如此巡回扫描显示器。由于巡回速度较快,每秒可重复多次(为了不闪烁,可以每秒扫描20次左右)。虽然在同一时刻

26、只有一个显示器通电,但是由于人眼的视觉暂留现象和发光二极管的余辉效应,因此在人们看来认为每个显示器都在稳定的显示。这种巡回扫描显示器的操作要靠程序控制。动态显示的亮度随电流平均值的增大而增强,其亮度大体上等同于通过同样大的直流电流的静态显示器的亮度。 3. LED显示器的接口设计本系统采用静态显示方式,静态显示时每一个接口驱动器件驱动一个显示器。用于静态显示时,CPU把数据写到借口驱动电路后,CPU不需要再干预,显示器便会持续显示,因此,接口驱动电路应该有锁存数据的功能。所有TTL和COMS电路中的CD14547均无锁存功能,因此在电路设计时应附加锁存功能,而TTL器件比COMS 器件动作快。

27、所以,我选用了TTL器件的74LS164。接口连接图如下:当串行口工作于方式0时,在“串行输入并行输出”芯片74LS164的配合下,即可通过串行口扩展89C52的输出口,其中89C52的RXD引脚接74LS164芯片的串行数据输入端,TXD引脚接74LS164芯片的移位脉冲CLK。串行数据输出过程概括如下:在发送中断标志TI为0(即无效)情况下,执行写串行数据输出缓冲器SBUF指令(如MOVE SBUF,A)即可将SBUF寄存器中内容由低位到高位依次输出到RXD引脚,同时TXD引脚输出移位脉冲,使外接的串行输入并行输出芯片逐一接收来自RXD引脚上的串行数据。当8位数据发送结束后,发送中断标志T

28、I自动置1,输出数据(即SBUF内容)也就出现在74LS164芯片的并行输出端。这样在执行写SBUF寄存器操作后,可通过查询TI标志来确定发送过程是否完成。当然,在中断处于开放状态下(串行中断允许ES为,中断允许EA为1),当TI有效时,将产生串行中断请求。不过值得注意的是CPU响应串行中断后,不会自动清除TI,需要用“CLR TI”指令清除TI,以便输出新的串行数据。第三节 A/D转换器件7135ICL7135的国产型号叫CH7135.它是四位半高精度积分式ADC器件,输入为差分信号输出为BCD码,其分辨率为两万分之一,及分辨率为0.005,完全满足本系统要求,如果要进一步提高分辨率,可以对

29、变送器进行零点迁移,使其在最关心的浓度范围内对应的输出范围变小.ICL7135内部没有时钟电路,必须全部外接,必须外接基准电压,单端输入,其基准电压为满量程的一半,其输出不是三状态的,不可直接与总线相连.ICL7135每次转换结束立即输出新的转换结果,不需特别控制,有专门的极性显示,过量程显示和欠量程显示引脚,使用起来比较方便.下面对ICL7135作详细的介绍.(1) 管脚功能及有关参数选择28脚封装如下图所示: 图中:l V+ : 电源正,+5V(以数字地DGND为基准)l V_ : 电源负,-5V(以DGND为参考点)l INLO:差分信号输入负端.单端输入时,INLO可与模拟地(AGND

30、)相连l INHI:差分信号输入正端.应保证 V+0.5(INHI和INLO)V+1V. 模拟输入信号:V1=INHIINLO的范围为0VFSl AGND:模拟地,是VREF和模拟输入基准点.l DGND:数字地,是V+和V的基准点.l VREF:基准电压接线端,以AGND为基准, VREF=VFS/2, VFS为满量程.若VFS=2V,则VREF=1V,若VFS=200mV,则VREF=100mVl R/ H:运行/保持端.当R/H=1或悬空时,ICL7135连续进行A/D转换,即没40002个时钟周期开始一次A/D转换.当R/H=0时,转换一次完成后,数据被保持,直至R/H重新变为1时再开

31、始A/D转换.l CLK:时钟脉冲输入端.l AZ:自较零端,接自动稳零电容CZ,CZ应足够大,以便减小干扰的影响,一般取1uF且选优质电容.l CR+和CR:基准电容CREF接线端,CREF应足够大,可以忽略寄生电容,一般可取CREF=1uF且选优质电容.l INT:积分器输出脚,外接积分电容CINT,一般取CINT=0.10.47uFl BUF:缓冲器输出端,接积分电阻RINT,RINT=VFS/20uA,例如VFS=2V,则RINT=100K欧l BUSY:忙输出脚,若BUSY为高表示正在进行A/D转换,若为低表示A/D转换已经结束.l B8,B4,B2,B1:BCD码输出脚,B8是最高

32、位,B1是最低位,高电平为1,低电平为0.l D5,D4,D3,D2,D1:位驱动输出脚,在一次A/D转换结束后,多次顺序在D5D1发出宽度为200个时钟周期的正脉冲,l STB:脉冲选通,在每完成一次A/D转换后,在STB端发出5个宽度为1/2时钟脉冲周期的负脉冲,每个STB脉冲分别位于第一次出现的位驱动信号D5D1的中间,因此第一个STB负脉冲可作为结束信号.l UR:欠量程输出端,若输入模拟信号V1=INHIINLO0.179VFS(读数小于1800),则在A/D转换结束后,UR=1.l OR:过量程信号输出端,若V1VFS.则在A/D转换结束后OR=1.UR和OR供数字仪表作量程转换用

33、.l POL:极性输出脚,当V1O时,POL=1,反之POL=0.(2) ICL7135与单片机的接口上图是本系统中所用的ICL7135与89C52单片机的接口电路,下面详细的分析该电路.ICL7135内部没有时钟发生器,必须外加时钟信号到CLK,本系统中利用计数器74LS161进行分频,VR是一个精密电源,用精密电位器将它调到1V, R1,C1端所接积分电阻和电容也是精密电阻和精密电容,R/H端接高电平,芯片处于自动连续转换的工作状态,时钟电路的输出频率为1MHz,BCD码的输出端和符号位接在单片机的P1口.(3) 体会与总结 7135是一种高精度AD器件,其转换的精度与变送器有很大关系,即

34、理论上分辨率为0.005,完全满足本系统要求,如果要进一步提高分辨率,可以对变送器进行零点迁移,使其在最关心的浓度范围内对应的输出范围小.不过这样对软件的要求比较高.7135内部没有时钟电路,必须全部外接,需外接基准电压,其基准电压是满量程的一半,本系统是通过可调电阻实现的. 其输出不是三状态的,不可直接与总线相连,本系统是通过外插接口来解决的,7135除了上述接口方法外,还有一种三线制接法,即只用POL,CLK,BUSY三根线,这样在走线上是很方便的,在此,就不多介绍了。.第四节 系统部分单元电路设计前几节已介绍了本系统用到的主要芯片,接下来在这一节里将详细介绍本系统的单元模块电路的设计。一

35、、 8255键盘设计键盘是利用可编程控制器8255的PC口进行扩展,键盘为44共8个键,PC0PC3作为行扫描线,PC4PC7作为列检测线,每根列检测线节+5V的电源,并且节4.7K的上拉电阻,对8255进行初始化时,设定PC0PC3为输出,PC4PC7为输入,当每个键按下去,便对应一个唯一的键值。电路如图所示: 二、存储单元电路设计本系统为用户提供了32K的外部数据存储器62256和程序存储器27256,其寻址范围均为0000H7FFFH,分别由WR、RD和PSEN来控制。电路图如下所示:三、 RS-232串行通信接口电路RS-232标准信号为负逻辑,设计电路的关键是实现TTL电平与RS-2

36、32电平的转换。本系统选用ICL232CPE,实现了TTL电平与TS-232电平的转换。ICL232CPE的优点是其内部有电压倍增电路和转换电路,仅需要5伏电源供电,使用十分方便。用户可以方便的利用RS-232与PC机通讯。电路图如下:的三章 软件设计一、 软件设计方案监控程序模块:A 系统初始化程序模块B 键盘控制程序C A/D转换控制程序D LED显示控制程序二、软件调试a) 在进行软件调试的时候,由于是在仿真机上进行,所以下面列出部分软件程序。内存自检程序: ORG 0000H MOV A , #0AAH ; 0AAH 送A.B,清零FO,F1 MOV B , #OAAH CLR F0

37、CLR F1 MOV DPTR,#1000H ;DPTR指向1000H,准备SRAM写#0AAH MOV DPTR,A ;写SRAM的一个单元 MOV R2 ,#0FH ;延时15mS MOV R3 ,7DH NOP NOP DJNZ R3 ,DL1 DJNZ R2 ,DL2 MOVX A ,DPTR ;读出 CJNE A ,B ,ERROR ;比较A是否等于B INC DPTR ;地址加1 MOV R4 ,DPL ;是否检测完 CJNE R4 ,#00H ,WR-1 MOV R5 ,DPH CJNE R5 ,#28H ,WR-1 JB FO ,ENDP ;F0是写55H的标志 MOV A ,

38、#55H ;55H送A,B,置位F1 MOV B ,#55H SETB F1 MOV DPTR,#1000H ;准备向SRAM写#55H AJMP WR-1 ;转移到写SRAM的一个单元 SETB F0 ;置位出错标志F0 END2. 8255键盘中断程序: ORG 0000H MOV R0 ,#30H ;设键号保存地址 DONE: MOVE DPTR ,#3030H ;指向8255 MOV A ,#10001000B ;设置控制字,A口输出C高入,B口输出C低出 MOVX DPTR,A ;8255初始化 MOV DPTR ,#3002H ;指向C口 MOV A ,#0F0H ;全扫描字为0F

39、0H MOVX DPTR,A ;全扫描字送入C口 MOV R4 ,#00H ;设首行初值 MOVX A ,DPTR ;读入行状态 ANL A ,#0F0H ;屏蔽低4位 CJNE A ,#0F0H,PRSD1 ;判断是否有键按下或抖动 SJMP DONE ;无键按下,返回等待 PRSD1: ACALL DL10ms ;延时10毫秒子程序 MOVX A ,DPTR ;重新读入行状态 ANL A ,#0F0H,PRSD2 ;判断是否有键按下 SJMP DONE ;无键按下,返回等待 PRSD2: MOV R2 ,#04H ;设定列数 MOV R3 ,#01 ;设定首列 SCAN : MOV A ,R3 ;送首列到A CPL A ;置首列扫描字 MOVX DPTR,A ;全扫描字送入 MOVX A ,DPTR ;读入状态 ANL A ,#0F0 ;屏蔽低4位 CJNE A ,#0F0H,FIDN ;判断是否有键按下 MOV A ,R3 ;无键按下,重新扫描 RL A ;设定第二列 MOV R3 ,A ;保存列值 DJNZ R2 ,SCAN ;判断四列是否扫描完毕 SJMP DONE ;扫描完,返回等待 FIDN: ADD A ,#0F ;有键按下,计算键

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1