01-110903-0122-低频信号发生器-毕业论文_第1页
01-110903-0122-低频信号发生器-毕业论文_第2页
01-110903-0122-低频信号发生器-毕业论文_第3页
01-110903-0122-低频信号发生器-毕业论文_第4页
01-110903-0122-低频信号发生器-毕业论文_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

低频信号发生器摘要信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。所以本设计使用的是AT89C51单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。关键词信号发生器;单片机;波形调整THEDESIGNOFLOWFREQUENCYFUNCTIONSIGNALGENERATORAUTHORZHAOXINGHUI(GRADE05,CLASS2,DETECTIONTECHNOLOGYANDAPPLICATION,MECHANICALENGINEERINGINSTITUTE,SHAANXIUNIVERSITYOFTECHNOLOGY,HANZHONG723003,SHAANXI)TUTORZHAIRENHEABSTRACTSIGNALGENERATORISAKINDOFSIGNALSOURCEINCOMMONUSE,BROADLYAPPLIEDATTHEELECTRONICSELECTRICCIRCUIT,AUTOCONTROLSYSTEMANDTEACHINGEXPERIMENTETCCURRENTLYUSEDMOSTLYFUNCTIONSIGNALGENERATORSIGNALGENERATOR,WAVEFORMGENERATORANDASPECIALPRICEOFEXPENSIVESOTHEDISSERTATIONISUSAGEOFTHEAT89S51SINGLECHIPMICROCOMPUTERCONSTITUTEOFWAVEFORMGENERATOR,WHICHCANGENERATETRIANGLEWAVE,SQUAREWAVE,SINEWAVEETCVARIETYWAVEFORM,THEPERIODOFWAVECANBECONTROLLEDBYPROCEDURE,ATOUTERCIRCLESPAREPARTOFTHEMACHINE,PLUSINDEPENDENCETYPEKEYBOARD,WHICHCANCONTROLWAVEINCREASEORDECREASEOFFORMFREQUENCYANDTHECHOICEOFWAVEFORM,ATTHESAMETIMELEDDISPLAYFREQUENCYSIZETHEOUTPUTOFTHEMACHINECONNECTDAC0832TOCARRYONADACONVERSION,AGAINPASSOPERATIONAMPLIFIERTOPUTANENDEXPORTATIONWAVEFORMTHISDESIGNHASADVANTAGEOFSIMPLECIRCUIT,TIGHTLYPACKEDSTRUCTURE,CHEAPPRICE,SUPERIORFUNCTIONETCKEYWORDSSIGNALGENERATORMCUWAVEFORMADJUSTMENT目录1绪论111课题背景、目的及意义112设计要求和任务22便携式低频信号发生器的方案研究321方案提出和论证322模块结构划分43各模块具体设计631AT89C51单片机介绍632最小应用系统12338255扩展电路153446距阵式按键电路213512864LCD显示电路3036D/A转换电路3737I/V转换波形输出电路414电路软件设计和体统调试4741软件设计流程图4742KEIL和PROTUES介绍和联调4843软硬模块调试5044调试遇到的问题和解决办法5145调试工具及测试仪器565产品说明5751产品的性能和应用范围5752产品的使用说明57总结59致谢60参考文献61附录A硬件电路图附录B软件程序1绪论11课题背景、目的及意义随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。但市面上能看到的仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。便携式和智能化越来越成为仪器的基本要求,对传统仪器的数字化,智能化,集成化也就明显得尤为重要。平时常用信号源产生正弦波,方波,三角波等常见波形作为待测系统的输入,测试系统的性能。单在某些场合,我们需要特殊波形对系统进行测试,这是传统的模拟信号发生器和数字信号发生器很难胜任的。利用单片机的强大功能,设计合适的人机交互界面,使用户能够通过手动的设定,设置所需波形。该设计课题的研究和制作全面说明对低频信号发生系统要有一个全面的解、对低频信号的发生原理要理解掌握,以及低频信号发生器工作流程波形的设定,D/A转换,单片机(51单片机,显示电路,键盘控制),显示和各模块的连接通信等各个部分要熟练联接调试,能够正确的了解常规芯片的使用方法、掌握简单信号发生器应用系统软硬件的设计方法,进一步锻炼了我们在信号处理方面的实际工作能力。12设计要求和任务1能产生频率范围在200HZ1000HZ的常见信号。2电路板性价比高,可靠性强。3人机界面友好,使用灵活方便,操作简单明了。2便携式低频信号发生器的方案研究21方案提出和论证方案1采用AT89C51单片机和DAC0832芯片,直接连接键盘和显示图21。P0AT89C51P2P1P3LCD显示器46键盘D/A转换芯片图21方案1电路原理图该种方案主要对AT89C51单片机的各个I/O口充分利用P20P23和P30P33是连接46的键盘,在P0口接显示电路,P1口连接DAC0832输出波形这样总体来说,能对单片机各个接口都利用上,而不在多用其它芯片,从而减小了系统的成本也对按照系统便携式低频信号发生器的要求所完成占用空间小,使用芯片少,低功耗。其缺点就是在考虑以后发展和改进的时候,单片机数据接口都被占用了,那么很难进行改进和进一步发展,在对系统驱动和数据的存储有一定的困难方案2采用芯片8255对AT89C51进行扩展,其中使用74LS373来驱动,并且加了一个74LS138译码器,8255的PA口和12864LCD显示器连接,PB0PB5和PC0PC3连接46的键盘,AT89C51的P1连接DAC0832来显示波形电路连接如图22此方案主要用到了8255对单片机的扩展,在功耗低,型号小的要求下,用8255扩展,在本来I/O接口刚好够用的情况下,多余几个接口,以后在系统电路改进或发展上都有着很好的作用在编辑程序上对各个I/O口地址上有了明确的划分容易编程和改进电路LCD显示器D/A转换芯片P0AT89C51P2P1P38225键盘控制图22方案2电路图通过对这两个方案的介绍和说明,在系统整体上方案2明显优于方案1,所以本次设计选用方案2作为本系统的最终方案22模块结构划分本次设计所研究的就是对所需要的某种波形输出对应的数字信号,在通过D/A转换器和单片机部分的转换输出一组连续变化的05V的电压脉冲值。在通过显示部分显示其频率,幅值,和波形。在设计时分块来做,按照波形设定,D/A转换,51单片机连接,键盘控制和显示五个模块的设计。最后通过联调仿真,做出电路板成品。从而简化人机交互的问题,具体设计模块如图23图23系统模块图模块介绍1波形设定对任意波形的手动设定2D/A转换主要选用DAC0832来把数字信号转换为模拟信号,在送入单片机进行处理。3单片机部分最小系统和8255的扩展4键盘用46的键盘来控制输出波形的种类和数值的输入5显示部分采用12864点阵式LCD显示波形的频率和形状系统要求是便携式低功耗的,所以在硬件电路建立前首先粗略计算一下整个系统所需的功耗。考虑单片机部分(有最小系统,D/A转换,键盘接口,扩展部分显示等部分)的功耗大小,机器体积小,价格便宜,耗电少,频率适中,便于携带。3各模块具体设计31AT89C51单片机介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFALSHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图31是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。图31AT89C51芯片它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚第40脚。在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P10”。AT89C51单片机的功能1主要特性与MCS51兼容4K字节可编程闪烁存储器寿命1000写/擦循环数据保留时间10年全静态工作0HZ24HZ三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2管脚说明(图32)图32AT89C51管脚分布VCC供电电压,GND接地。P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。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的一些特殊功能口。P3口管脚备选功能P30RXD(串行输入口)P31TXD(串行输出口)P32/INT0(外部中断0)P33/INT1(外部中断1)P34T0(记时器0外部输入)P35T1(记时器1外部输入)P36/WR(外部数据存储器写选通)P37/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。3振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10MS来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。5复位电路(图33)MCS51单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。图33复位电路(1)复位功能复位电路的基本功能是系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位(如图34A)和按钮复位如图34B两种方式。图34RC复位电路(2)单片机复位后的状态单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表1。值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。说明表中符号为随机状态;表1寄存器复位后状态表特殊功能寄存器初始状态特殊功能寄存器初始状态ABPSWSPDPLDPHP0P3IPIE00H00H00H07H00H00HFFH00000B000000BTMODTCONTH0TL0TH1TL1SBUFSCONPCON00H00H00H00H00H00H不定00H0BPSW00H,表明选寄存器0组为工作寄存器组;SP07H,表明堆栈指针指向片内RAM07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;POP3FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出。IP00000B,表明各个中断源处于低优先级;IE000000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。6晶振电路晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHZ,电容应尽可能的选择陶瓷电容,电容值约为30F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。晶体振荡电路如图35图35晶振电路32最小应用系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统对51系列单片机来说,最小系统一般应该包括单片机、晶振电路、复位电路下面给出一个51单片机的最小系统电路图(图36)。在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器。单片机结合简单的晶体振荡电路和复位电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控、监控的重要组成部分。图36最小系统电路图下面是用单片机和八个数码管来实现流水灯的仿真图37图37流水灯仿真图下图38为流水灯程序在KEIL中进行编译图38流水灯程序编译流水灯程序ORG0000HSTARTMOVP1,01111111BLCALLDELAYMOVP1,10111111BLCALLDELAYMOVP1,11011111BLCALLDELAYMOVP1,11101111BLCALLDELAYMOVP1,11110111BLCALLDELAYMOVP1,11111011BLCALLDELAYMOVP1,11111101BLCALLDELAYMOVP1,11111110BLCALLDELAYMOVP1,11111111BAJMPSTARTDELAYMOVR4,2L3MOVR2,250L1MOVR3,250L2DJNZR3,L2DJNZR2,L1DJNZR4,L3RETEND338255扩展电路8255是INTEL公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。当8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分与CPU连接部分、与外设连接部分、控制部分。1与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下(1)数据总线DB编号为D0D7,用于8255与CPU传送8位数据。(2)地址总线AB编号为A0A1,用于选择A、B、C口与控制寄存器。(3)控制总线CB片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。2与外设连接部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下(1)A口编号为PA0PA7,用于8255向外设输入输出8位并行数据。(2)B口编号为PB0PB7,用于8255向外设输入输出8位并行数据。(3)C口编号为PC0PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。3控制器8255将3个通道分为两组,即PA0PA7与PC4PC7组成A组,PB0PB7与PC0PC3组成B组。如图75所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下(1)A组控制器控制A口与上C口的输入与输出。(2)B组控制器控制B口与下C口的输入与输出。8255是一个40引脚的双列直插式芯片,图39为8255的引脚图。8255与CPU的连接方式是多种多样的,本节以AT89C52与8255的连接为例说明8255与CPU的连接方法,同时也介绍8255各芯片引脚的功能与作用。图398255的引脚图引脚说明RESET复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。D0D7三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0PB7端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC0PC7端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。图310为8255与AT89C52的连接图。由于AT89C52与8255的连接就是3总线的连接。因此,下面将以3总线形式讲述连接方法。74LS373为锁存驱动芯片,74LS138为译码器。图3108255与AT89C52的连接图1数据总线DB引脚8255的数据总线DB有8根D0D7。因为AT89C52用其P0口作为数据总线口,所以AT89C52与8255数据线连接为AT89C52的P00P07与8255的D0D7连接。如图36所示。2地址总线AB引脚8255的地址线AB有两根A0A1。A0、A1通过74HC373锁存器与AT89C52的P00、P01连接。A1A0取0011值,可选择A、B、C口与控制寄存器,选择方法如下(1)A1A000选择A口。(2)A1A001选择B口。(3)A1A010选择C口。(4)A1A011选择控制寄存器。3片选信号CS片选信号CS由P25P27经138译码器Y7产生。若要选中8255,则Y7必须有效,此时P27P26P25111。由此可推知各口地址如下(1)A口111XX00E000H(当XX00时)。(2)B口111XX01E001H(当XX00时)。(3)C口111XX10E002H(当XX00时)。(4)控制口111XX11E003H(当XX00时)。其中,XX表示取值可任意,以各口地址不唯一。为了今后叙述方便,后面程序中8255的地址将全部使用E000HE003H。注意此处要说明的是单片机与8255的连接方法是多种多样的,8255各口地址也随连接方式而变化。因此,在使用不同单片机系统时,8255的各口地址不会是上面所推导的E000HE003H,(1)读信号8255的读信号与AT89C52的相连。(2)写信号8255的写信号与AT89C52的相连。(3)复位信号RST8255的复位信号RST与AT89C52的RST相连。43个通道引脚(1)A口的8个引脚PA0PA7与外设连接,用于8位数据的输入与输出。(2)B口的8个引脚PB0PB7与外设连接,用于8位数据的输入与输出。(3)C口的8个引脚PC0PC7与外设连接,用于8位数据的输入与输出或通信线。8255的工作方式由8255的定义可知,8255有3种工作方式,这3种工作方式如表1所示。方式0为基本I/O输入/输出方式,这是8255最常用,也是最基本的工作方式。方式1为应答I/O方式,当8255工作于应答I/O方式时,上C口作为A口的通信线,下C口作为B口的通信线。方式2为双向应答I/O方式,此方式仅A口使用,B口无双向I/O应答方式。8255的3种工作方式的选择由8255工作方式选择字决定,下面介绍8255的工作方式选择字。表28255的工作方式接口方式ABC方式0方式1方式2基本I/O方式应答I/O方式双向应答I/O方式基本I/O方式应答I/O方式无I/O方式通信线通信线工作方式选择字8255工作方式选择字共8位,如图311所示,存放在8255控制寄存器中。最高位D7为标志位,D71表示控制寄存器中存放的是工作方式选择字,D70表示控制寄存器中存放的是C口置位/复位控制字。D3D6用于A组的控制,D6D500表示A组工作于基本I/O方式0,D6D501表示A组工作于应答I/O方式1,D6D51X表示A组工作于双向应答I/O方式2(X取0或1)。D41表示A口工作于输入方式,D40表示A口工作于输出方式,D31表示上C口工作于输入方式,D30表示上C口工作于输出方式。图3118255的工作方式选择字D0D2用于B组的控制,各位含义如图3所示。D20表示B组工作于基本I/O方式0,D21表示B组工作于应答I/O方式1。D11表示B口工作于输入方式,D10表示B口工作于输出方式,D01表示下C口工作于输入方式,D00表示下C口工作于输出方式。工作方式字应输入控制寄存器,按上面的连接方式,控制寄存器的地址为E003H。C口置/复位控制字8255的C口可进行位操作,即可对8255C口的每一位进行置位或清0操作,该操作是通过设置C口置/复位字实现的。C口置/复位字共8位,各位含义如图312所示。图312C口置/复位控制字由于8255的工作方式选择字与C口置/复位字共用一个控制寄存器,故特别设置D7为标志位,D70表示控制字为C口置/复位字,D71表示控制字为8255工作方式选择字。D6D5D4不用,常取000。D3D2D1为C口8个引脚PC0PC7的选择位,D3D2D1000选择PC0,D3D2D1001选择PC1,D3D2D1111选择PC7。D0为置位或清0选择位,D00表示由D3D2D1选择的位清0,D01表示由D3D2D1选择的位置1。C口置/复位字必须输入8255控制寄存器。系统8255扩展如图313,采用8255扩展芯片,74LS373锁存芯片和74LS138译码器来对AT89C51单片机进行扩展。图313系统8255扩展图3446距阵式按键电路键盘如314(46键盘和44键盘)图在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类编码键盘和非编码键盘。编码键盘由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。非编码键盘只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。有独立式按键结构、矩阵式按键结构。键盘系统设计首先,确定键盘编码方案采用编码键盘或非编码键盘。随后,确定键盘工作方式采用中断或查询方式输入键操作信息。然后,设计硬件电路。非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软件来完成。图31446键盘和44键盘1非编码键盘的键输入程序应完成的基本要求(1)监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。(2)判断是哪个键按下。(3)完成键处理任务。2从电路或软件的角度应解决的问题(1)消除抖动影响。键盘按键所用开关为机械弹性开关,利用了机械触点的合、断作用。由于机械触点的的弹性作用,一个按键开关在闭合和断开的瞬间均有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为510MS,这是一个很重要的参数。抖动过程引起电平信号的波动,有可能令CPU误解为多次按键操作,从而引起误处理。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。按键的消抖,通常有软件,硬件两种消除方法。消抖硬件这种方法只适用于键的数目较少的情况。软件消抖如果按键较多,硬件消抖将无法胜任,常采用软件消抖。通常采用软件延时的方法在第一次检测到有键按下时,执行一段延时10MS的子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。(这种消除抖动影响的软件措施是切实可行的。)(2)采取串键保护措施。串键是指同时有一个以上的键按下,串键会引起CPU错误响应。通常采取的策略单键按下有效,多键同时按下无效。(3)处理连击。连击是一次按键产生多次击键的效果。要有对按键释放的处理,为了消除连击,使得一次按键只产生一次键功能的执行(不管一次按键持续的时间多长,仅采样一个数据)。否则的话,键功能程序的执行次数将是不可预知,由按键时间决定。连击是可以利用的。连击对于用计数法设计的多功能键特别有效。3键盘工作方式单片及应用系统中,键盘扫描只是CPU的工作内容之一。CPU忙于各项任务时,如何兼顾键盘的输入,取决于键盘的工作方式。考虑仪表系统中CPU任务的份量,来确定键盘的工作方式。键盘的工作方式选取的原则是既要保证能及时响应按键的操作,又不过多的占用CPU的工作时间。键盘的工作方式有查询方式(编程扫描,定时扫描方式)、中断扫描方式。4键盘电路结构(1)独立式按键接口设计独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。优点电路配置灵活,软件结构简单。缺点每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。因此,此键盘是用于按键较少或操作速度较高的场合。也可以用扩展I/O口搭接独立式按键接口电路,可采用8255扩展I/O口,用三态缓冲器扩展。这两种配接方式,都是把按键当作外部RAM某一工作单元的位来对待,通过读片外RAM的方法,识别按键的工作状态。上电路中独立式按键电路,各按键开关均采用了上拉电阻,是为了保证在按键断开时,各I/O有确定的高电平。如输入口线内部已有上拉电阻,则外电路的上拉电阻可省去。2矩阵式键盘接口设计矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。节省I/O口。矩阵键盘工作原理行线通过上拉电阻接到5V上。无按键,行线处于高电平状态,有键按下,行线电平状态将由与此行线相连的列线电平决定。列线电平为低,则行线电平为低;列线电平为高,则行线电平为高。5双功能及多功能键设计在单片机应用系统中,为简化硬件线路,缩小整个系统的规模,总希望设置最少的按键,获得最多的控制功能。矩阵键盘与独立式按键键盘相比,硬件电路大大节省。可通过软件的方法让一键具有多功能。方法选择一个RAM工作单元,对某一个按键进行按键计数,根据不同计数值,转到子程序。这种计数多功能键最好与显示器结合用,以便知道当前计数值,同时配合一个启动键。复合键是使用软件实现一键多功能的另一个途径。所谓复合键,就是两个或两个以上的键的联合,当这些键同时按下时,才能执行相应的功能程序。实际情况做不到“同时按下”,他们的时间差别可以长到50MS,解决策略是定义一个或两个引导键,这些引导键按下时没什么意义,执行空操作。引导键的例子微机键盘上的CTRL、SHIFT、ALT。缺点一是操作变得复杂,二是操作时间变长。多功能键的利用,应具体情况具体分析。要求速度的场合最好做一键一功能。如果系统功能很多,一键一功能不现实,可采取一键多功能。6功能开关及拨码盘接口设计设计原因键盘输入灵活性大,操纵方便。但某些重要功能或数据由键盘输入,误操作将产生一些不良后果。因此常设定静态开关的方法来执行这些功能或输入数据。静态开关一经设定,将不再改变,一直维持设定的开关状态。通常这些开关状态是在单片机系统加电时由CPU读入内存RAM的,以后CPU将不再关注这些开关的状态,因此,即使加电后,这些开关的状态发生变化,也不会影响CPU的正常工作,只有在下一次加电时,这些新状态才能生效。1功能开关主要是根据开关的状态执行一些重要的功能。2拨码盘单片机应用系统中,有时要输入一些控制参数,这些参数一经设定,将维持不变,除非给系统断电后重新设定。这时使用数字拨码盘既简单直观,又方便可靠。7按键介绍常用的按键有三种机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘)。机械触点式按键是利用弹性使键复位,手感明显,连线清晰,工艺简单,适合单件制造。但是触点处易侵入灰尘而导致接触不良,体积相对较大。导电橡胶按键是利用橡胶的弹性来复位,通过压制的方法把面板上所有的按键制成一块,体积小,装配方便,适合批量生产。但是时间长了,橡胶老化而使弹力下降,同时易侵入灰尘。柔性按键是近年来迅速发展的一种新型按键,可以分为凸球型和平面型两种。凸球型动作幅度触感明显,富有立体感,但制造工艺相对复杂;平面型幅度微小,触感较弱,但工艺简单,寿命长。柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。而且外形和面板的布局、色彩、键距可按照整机的要求来设计。本系统的46键盘硬件电路如图315图31546键盘硬件电路如图46键盘扫描与处理程序编译如图316图31646键盘扫描与处理程序编译46键盘扫描程序KEYNAMEDATA28HCTCOPUSHPSWPUSHACCPUSHDPLPUSHDPHSETBRS0SETBRS1MOVA,11000000BMOVDPTR,8801HMOVXDPTR,AINCDPTRMOVXA,DPTRORLA,0F0HXRLA,0FFHJZSNOKEYLCALLDELAY10MOVXA,DPTRORLA,0F0HXRLA,0FFHJZSNOKEYMOVR7,06HMOVR6,10111111BKEYLOOPMOVA,R6RRAMOVR6,AMOVDPTR,8801HMOVXDPTR,AINCDPTRMOVXA,DPTRJNBACC0,PC0JNBACC1,PC1JNBACC2,PC2JNBACC3,PC3DJNZR7,KEYLOOPSNOKEYLJMPNOKEYPC0MOVR5,00HSJMPKEYNOPC1MOVR5,01HSJMPKEYNOPC2MOVR5,02HSJMPKEYNOPC3MOVR5,03HSJMPKEYNOKEYNODECR7MOVA,R7RLARLAADDA,R5MOVR5,AMOVA,11000000BMOVDPTR,8801HMOVXDPTR,AINCDPTRKEYLOOP2MOVXA,DPTRORLA,0F0HXRLA,0FFHJNZKEYLOOP2MOVA,R5MOVDPTR,KEYMOVCA,ADPTRMOVKEYNAME,ASJMPKEYRENOKEYMOVA,11000000BMOVDPTR,8801HMOVXDPTR,AMOVKEYNAME,0FFHKEYREPOPDPHPOPDPLPOPACCPOPPSWRETIDELAY10MOVR6,10H按键扫描码、键值对应关系KEYDB10H扫描码为0,对应键DB07H扫描码为1,对应键7DB04H扫描码为2,对应键4DB01H扫描码为3,对应键1DB00H扫描码为4,对应键0DB08H扫描码为5,对应键8DB05H扫描码为6,对应键5DB02H扫描码为7,对应键2DB11H扫描码为8,对应键DB09H扫描码为9,对应键9DB06H扫描码为10,对应键6DB03H扫描码为11,对应键3DB12H扫描码为12,对应键左DB16H扫描码为13,对应键ESCDB0DH扫描码为14,对应键DDB0AH扫描码为15,对应键ADB14H扫描码为16,对应键下DB15H扫描码为17,对应键上DB0EH扫描码为18,对应键EDB0BH扫描码为19,对应键BDB13H扫描码为20,对应键右DB17H扫描码为21,对应键ENTERDB0FH扫描码为22,对应键FDB0CH扫描码为23,对应键CEND3512864LCD显示电路AMPIRE12864点阵式LCD(图317)是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及12864全点阵液晶显示器组成。可完成图形显示,也可以显示84个1616点阵汉字。各管脚功能说明如表3。图317AMPIRE12864点阵式LCD表3AMPIRE12864点阵式LCD管脚说明管脚号管脚名称LEVER管脚功能描述1234567891011121314151617181920VSSVDDV0D/IRSR/WEDB0DB1DB2DB3DB4DB5DB6DB7CS1CS2RETVOUTLEDLED050VH/LH/LH/LH/LH/LH/LH/LH/LH/LH/LH/LH/LH/LH/L10V电源地电源电压液晶显示器驱动电压D/I“H”,表示DB7DB0为显示数据D/I“L”,表示DB7DB0为显示指令数据R/W“H”,E“H”数据被读到DB7DB0R/W“L”,E“HL”数据被写到IR或DRR/W“L”,E信号下降沿锁存DB7DB0R/W“H”,E“H”DDRAM数据读到DB7DB0数据线数据线数据线数据线数据线数据线数据线数据线H选择芯片右半屏信号H选择芯片左半屏信号复位信号,低电平复位LCD驱动负电压LED背光板电源LED背光板电源在使用12864LCD前先必须了解以下功能器件才能进行编程。12864内部功能器件及相关功能如下1指令寄存器IRIR是用于寄存指令码,与数据寄存器数据相对应。当D/I0时,在E信号下降沿的作用下,指令码写入IR。2数据寄存器DRDR是用于寄存数据的,与指令寄存器寄存指令相对应。当D/I1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。3忙标志BFBF标志提供内部工作情况。BF1表示模块在内部操作,此时模块不接受外部指令和数据。BF0时,模块为准备状态,随时可接受外部指令和数据。利用STATUSREAD指令,可以将BF读到DB7总线,从检验模块之工作状态。4显示控制触发器DFF此触发器是用于模块屏幕显示开和关的控制。DFF1为开显示(DISPLAYOFF),DDRAM的内容就显示在屏幕上,DFF0为关显示(DISPLAYOFF)。DDF的状态是指令DISPLAYON/OFF和RST信号控制的。5XY地址计数器XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。X地址计数器是没有记数功能的,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。6显示数据RAM(DDRAM)DDRAM是存储图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。DDRAM与地址和显示位置的关系见DDRAM地址表。7Z地址计数器Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAYSTARTLINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显示64行。812864LCD的指令系统及时序该类液晶显示模块(即KS0108B及其兼容控制驱动器)的指令系统比较简单,总共只有七种。其指令表如表4所示表412864LCD系统指令表指令名称R/WRSDB7DB6DB5DB4DB3DB2DB1DB0显示开关显示起始行设置页设置列地址设置读状态写数据读数据000010100000110110BUSY写数据读数据01010写数据读数据1X1XON/OF写数据读数据1X1XRST写数据读数据1X1X0写数据读数据1XXX0写数据读数据1XXX0写数据读数据1/0XXX0写数据读数据各功能指令分别介绍如下。显示开/关指令表表5显示开/关指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00000111111/0当DB01时,LCD显示RAM中的内容;DB00时,关闭显示。显示起始行(ROW)设置指令表表6显示起始行(ROW)设置指令R/W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论