版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要介绍了一种廉价的应用广泛的MCS-51系列单片机实验板,它与传统的教学实验板相比有如下的优点:(1)价格低廉。(2)使用简单方便,只要有带RS232串口的PC机就能进行实验。(3)功能全,基本上具备单片机常用的接口,例如存储器、LED数码管显示、键盘人机接口、并行接口、串行接口,等等。本实验板兼顾学生单片机实验和毕业设计等不同用途,可以做流水灯实验、键盘实验等一些简单实验,在增加一些外围电路以后,可以进行一些实际应用。它具有模块化硬件结构和简单的人机交互功能并详细阐述了系统组成,硬件功能模块及部分演示程序。该实验板具有降低设计成本,缩短开发周期,丰富学生知识,提高设计水平等优点。关键词:单片机实验板流水灯数码管键盘
AbstractIntroducingalow-costMCS-51micro-controllerexperimentalboardwhichisbroadlyused,Ithasthefollowingmeritscomparedwiththetraditionalteachingexperimentalboard:(1)thepriceisinexpensive,Itisusedsimplyandconvenient,SolongasthePCmachinehasbeltRS232stringmouth,theexperimentcanbeabletocarriedon(3)entirefunction,Itbasicallyhasthemonolithicintegratedcircuitcommonlyusedconnection,Forexamplememory、LEDnumericalcodetubedemonstration、keyboardman-machineconnection、parallelconnection、serialconnection,andsoon.Thisexperimentalboardgivesdualattentiontothedifferentuses,forexamplethestudentmonolithicintegratedcircuitexperimentandthegraduationproject,candoflowslampexperiment、Keyboardexperimentetcwhichissimpleexperiment,Afterweincreasessomeperipheryelectriccircuits,Wecanuseittocarryonsomepracticalapplications.Thesystemconfiguration,hardwarefunctionmodeandthedemo-programblockdiagramaredescribedindetail.Theexperimentalcircuithascharacteristicssuchasloweringofdesigncost,shorteningdexelopmingcycle,increasingknowledgeofstudents,andraisingofprojectedcapacityetc.Keywords:MCUExperimentalboardFlowslampNumericalcodetubeKeyboard
目录摘要 IAbstract II第1章绪论 11.1单片机实验板的设计的意义 11.2本课题所需要做的工作 11.3实验板的总体设计 2第2章实验板重要器件介绍 32.1AT89C51单片机 32.2仿真头介绍 62.3串口通信模块 72.4LED器件的工作原理 10LED器件发光的基本原理 102.4.2LED器件的驱动 102.5音乐模块 112.6键盘模块 12第3章系统实验板开发设计 143.1流水灯模块实验设计 143.1.1流水灯的硬件设计 143.1.2流水灯的程序设计 143.2串口通信模块实验设计 153.2.1串口通信模块的硬件设计 153.2.2串口通信模块的程序设计 163.3LED显示模块实验设计 163.3.1串口通信模块的硬件设计 163.3.2LED模块的程序设计 173.4音乐模块设计 183.4.1音乐模块的硬件设计 183.4.2音乐模块的程序设计 193.5键盘模块设计 223.5.1键盘模块的硬件设计 223.5.2键盘模块的软件设计 22第4章系统调试和实验分析 244.1系统调试软件介绍 244.1.1伟福V8/L仿真界面及设置 244.1.2软件的调试 264.2流水灯模块实验调试 284.3串口通信实验调试 294.4LED显示实验调试 304.5键盘实验调试 31结论 33参考文献 34附录1 35附录2 36附录3 39致谢 43第1章绪论1.1单片机实验板的设计的意义目前单片机利用当今先进的半导体器件制造技术以其高可靠性高性能价格比在工业控制系统智能化仪器仪表办公自动化等诸多领域得到极为广泛的应用。MCS-51系列单片机以其优越的性能成熟的技术及可靠性和高性能价格比成为国内单片机应用领域中的主流[1]。单片机在智能仪器、工业控制、机电一体化等方面应用非常广泛,许多高校工科专业均开设了单片机类的课程。单片微型计算机原理是机制机电及相关专业本科生和研究生必须掌握的一门重要专业基础课。而在当前形势下,实践能力和创新精神是对21世纪高素质人才的基本要求。运用现代化的实验教学手段,充分利用实验室现有条件,提高学生的动手能力和创新能力,是单片机教学的重要环节。以培养学生的实践能力和创新精神为目标,不断地改革和完善单片机实验教学的内容和方法是激发学生学习单片机技术的学习兴趣,从而充分发挥学生的主观能动性和创造性的主要途径。而这一切的实现都需要有一个适合学生的单片机实验板,多年来由于实验条件较差等方面的因素,大多数学生学完后仍停留在理论层面上,不能灵活应用。多功能单片机应用实验板是提高学生动手能力,与教学内容紧密结合,成本低廉的实验装置。系统的设计立足于教学大纲,能满足进行教学中各种实验的要求。它采用模块式结构,学生可根据自己的需要灵活将这些模块组成一个系统,作为学习开发板使用,增加必要的外围电路和设备后,又可作为实际控制板。1.2本课题所需要做的工作本课题是基于AT89C51的单片机实验板,要求能做交通灯实验,键盘实验,数码显示实验,串行口实验等基本实验还能做一些设计开发性实验。本课题应由硬件和软件共同组成。硬件应充分了解单片机,包括存储空间,串行口,串行通信等,掌握矩阵键盘和LED的静态显示,并要在充分满足系统可实现的功能的基础上考虑到器件的价格,制版的复杂度和软件的实现难度。软件应了解C51的编程方法,常用的一些编程技巧,调试运行程序,尽量使程序简洁,易懂,便于移植,编译效率高,健壮性好。1.3实验板的总体设计系统设计以MCS-51系列单片机中8031,8051,89C51作为CPU进行图1-1实验板总体结构框图系统扩展,将数据存储器、程序存储器、1/O口扩展、串行口通讯、LED显示、键盘与显示等多种功能模块集成于一体。系统硬件结构布局如图1-1所示:系统总电路图见附录1。第2章实验板重要器件介绍2.1AT89C51单片机本设计中采用AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL图2-1AT89C51引脚图高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[2]。1.主要特性8031CPU与MCS-51兼容,4K字节可编程FLASH存储器(寿命1000写/擦循环),全静态工作:0Hz-24KHz,三级程序存储器保密锁定、128*8位内部RAM、32条可编程I/O线、两个16位定时器/计数器、6个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。2.管脚说明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口在P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILLP3口也可作为AT89C51的一些特殊功能口。各管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/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保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.单片机机系统复位系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。8051单片机的系统复位是由RESET引脚来控制的,当此引脚与高电平相接超过24个震荡周期后,8051即进入芯片内部复位的状态,而且一直在此状态下等待。直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部的程序。8051在系统复位时,将其内部的一些重要寄存器设置为特定的值。2.2仿真头介绍本课题采用伟福公司的E51/S仿真器进行仿真,采用仿真器,可以把实际硬件系统的单片机芯片拔掉,把单片机仿真插头插入单片机芯片插座上,整个开发系统就取代了单片机的功能,系统运行时,能够产生和单片机完全相同的实时信号,以实现对用户样机系统中的软,硬件的故障诊断和调试。伟福仿真器具有以下的特点:1.基于不同的单片机系统的设计时,往往需要选择不同的单片机(CPU),而伟福仿真软件WINDOWS版本支持多类CPU仿真。仿真器则采用主机+仿真头组合,通过更换不同的仿真头,可对各种不同类型的单片机进行仿真。版本功能强大。中文界面,英文界面可任选,用户源程序的大小不再有任何限制,支持ASM,C,PLM语言混合编程,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。支持点屏显示,用鼠标左键点一下源程序中的某一变量,即可显示该变量的数值。有丰富的窗口显示方式,多方位,动态地显示仿真的各种过程,使用极为便利。3.两种工作模式,在没有硬件时,可以通过软件实现模拟仿真。
4.集成环境,编辑、编译、下载、调试全部集中在一个环境下。多种仿真器,多类CPU仿真全部集成在一个环境下。可仿真51系列,196系列,PIC系列,飞利浦公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。设计中要正确选择晶振,仿真头晶振和用户板晶振频率必须一致,用户板上的晶振频率是,所以要把跳线选到,如果没有正确选择晶振频率,则用该仿真器仿真打印时打印机出现的是乱码。POD8X5X仿真头可配E2000系列,E51系列仿真器,用于仿真INTEL8031/51系列及兼容单片机,可仿真CPU种类8031/32,8051/52,8751/52/54/55/58,89C51/52/55/58,89C1051/2051/4051,华邦的78E51/52/54/58LG的97C51/52/1051/2051。2.3串口通信模块RS-232C标准是美国电子工业协会EIA与BELL等公司一起开发的通信协议,是最初为远程通信连接数据终端设备DTE与数据通信设备DCE而制定的。目前较广泛的应用与计算机与终端或外设之间的近端连接。1.机械特性(1)连接器。由于RS-232C标准只规定了采用一对物理连接器,但对连接器本身的物理特性没有任何定义,因此出现了各种类型的连接器,其中在实际应用中DB-25应用比较多,下面就将这两种连接器作简单介绍。引脚信号1保护地2发送数据SOUT3请求发送RTS4清除发送CTS5数据装置准备DSR6信号地7载波检测DCD20数据终端准备DCR22响铃指示RI(2)电缆长度。传输电缆的长度与传输的电容有关。EIA标准规定被驱动电路的电容,包括电缆连接电容必须小于2500PF。对于一个多芯电缆来说,每英尺电容为40PF~50PF,所以满足电容特性的电缆长度最长为50英尺。RS-232C规定允许的连接电缆不超过50英尺,但若能保证电缆总电容小于2500PF,则电缆长度可以超过限定值。2.电器特性微机见串行通讯时,两者一般有一定距离,为了克服线路上的电消耗,避免信息出错,常用RS-232C电平实现信号之间的传输。由于RS-232C电平采用负逻辑,即逻辑“1”:-5~-15V;逻辑“0”:+5~+15V。而TTL的“1”、“0”分别为~5V和~0V,因此需要外接电路实现电平转换。这种转换常用传输线驱动器MC1488和传输线接收器MC1489来实现。MCS-51内部含有一个可编程全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。MCS-51串行口的发送和接收时钟可由两种方式产生,一种是由主机频率fosc经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。(1)发送和接收的过程如下:串行口的发送过程由指令MOVSBUF,A启动,即CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。CPU响应中断,用一条指令(MOVA,SBUF)把接收缓冲器SBUF(收)的内容读入累加器。TI和RI是由硬件置位的,但需要用软件复位。
(2)相关的寄存器1.SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。串行口对外有两条独立的收发信号线RXD(P3.0)TXD(),因此可以同时发送、接收数据,实现全双工。2.SCON寄存器用来控制串行口的工作方式和状态,可按位寻址,其字节地址为98H。3.PCON中的SMOD用来控制波特率加倍。4.TMOD设置定时器1的工作方式,用来产生波特率。5.如果用到中断,则还需要用到中断相关的寄存器IE,IP等。(3)四种工作方式:方式0:
同步移位寄存器方式,其波特率是固定为振荡频率fosc的1/12。在这种工作方式下,发送和接收串行数据都通过RXD(P3.0)进行,从TXD(P3.1)输出移位脉冲,控制外部的移位寄存器移位。1帧信息为8位,没有起始位,停止位。
方式1:
8位UART,1帧信息为10位,其中一位起始位“0”、八位数据位(先低位后高位)和一个停止位“1”,波特率可变,根据定时器1的溢出率计算。
方式2:
9位UART,1帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率为振荡频率的1/64或1/32
方式3:
9位UART,帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率可变,根据定时器1的溢出率计算。附加的第9位数据为SCON中的TB8的值,它由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验。2.4LED器件的工作原理2.4.1LED器件发光的基本原理发光二极管(lightemittingdiode,LED),是一种把电能变成光能的特种器件,当电流通过它的时候,便可以产生可视的光。发光二极管的结构主要由PN结芯片,电极和光学系统构成。我们知道,发光是一种能量转化现象。当系统受到外界激发后,会从稳定的低能态跃迁到不稳定的高能态;当系统由不稳定的高能态重新回到稳定的低能态时,能量差以光的形式辐射出来,就会产生发光现象。当在PN结上加以正向电压之后,p区的空穴注入至N区,N区的电子注入至P区,相互注入的电子与空穴相遇后即产生复合,这些少数载流子在结的注入和复合中产生辐射而发光。它是自发辐射发光,不需要较高的注入电流产生粒子数反转分布,也不需要光学谐振腔,发射的是非相干光。LED器件的驱动从LED器件的发光机理可以知道,当向LED器件施加正向电压时[9],流过器件的正向电流使其发光。因此LED的驱动就是要使它的PN结处于正偏置,同时为了控制它的发光强度,还要解决正向电流的调节问题。具体的驱动方式有直流驱动,恒流驱动,脉冲驱动和扫描驱动等,本课题LED器件的驱动为扫描驱动。其中脉冲驱动和扫描驱动原理如下:1.脉冲驱动利用人眼的视觉暂留特性,采用向LED器件重复通断供电的方法使之点燃,就是通常所说的脉冲驱动方式。采用这种方式时应该注意两个问题:脉冲电流幅值的确定和重复频率的选择。首先,要想获得与直流驱动方式相当的发光强度,脉冲驱动电流的平均值。就应该与直流驱动的电流值相同。所以脉冲驱动时,脉冲电流的幅值应该比直流驱动电流大T/t倍。其次是脉冲重复频率的问题,通过视觉暂留特性的分析,己经知道脉冲重复频率必须高于24Hz,否则会产生闪烁现象。脉冲驱动的主要应用有两个方面:扫描驱动和占空比驱动。2.扫描驱动现行显示方式多为扫描方式。扫描显示的原理是基于人类眼睛的视觉暂留效应:要显示行轮流显示,只要刷新频率不小于24帧/秒,人们不会有闪烁的感觉。但由于每行显示占有的时间相对的少,所以亮度难于发挥到最佳值。以每个扫描周期T扫描16行为例:首先输出第一行点阵数据到列驱动寄存器,再发出行驱动信号,延时一段时间,关闭行驱动。完成第一行扫描。然后以同样方式扫描第二行,第三行一直到第l6行,完成一帧的显示。扫描驱动是通过数字逻辑电路,使若干LED器件轮流导通,用以节省控制驱动电路。LED显示屏是将发光灯按行或按列布置的,驱动时也就按行按列驱动。在扫描驱动方式下可以按行扫描,按列控制;也可以按列扫描,按行控制。所谓“扫描”的含义,就是指一行一行地循环接通整行的LED器件,而不问这一行的哪一列的LED器件是否应该点亮,某一列的LED器件是否应该点亮,由所谓的列控制电路来负责。2.5音乐模块三极管是一种控制元件,主要用来控制电流的大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压Ub有一个微小的变化时,基极电流Ib也会随之有一小的变化,受基极电流Ib的控制,集电极电流Ic会有一个很大的变化,基极电流Ib越大,集电极电流Ic也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。但是集电极电流的变化比基极电流的变化大得多,这就是三极管的放大作用。Ic的变化量与Ib变化量之比叫做三极管的放大倍数β(β=ΔIc/ΔIb,Δ表示变化量。),三极管的放大倍数β一般在几十到几百倍。三极管在放大信号时,首先要进入导通状态,即要先建立合适的静态工作点,也叫建立偏置,否则会放大失真。在三极管的集电极与电源之间接一个电阻,可将电流放大转换成电压放大:当基极电压Ub升高时,Ib变大,Ic也变大,Ic在集电极电阻Rc的压降也越大,所以三极管集电极电压Uc会降低,且Ub越高,Uc就越低,ΔUc=ΔUb。蜂鸣器属于低成本器件,所以在很多设计中均采用蜂鸣器来实现报警功能。本设计中也包含了蜂鸣器电路。由于驱动蜂鸣器需要比较大的驱动电流,所以利用了三极管8550来增加驱动能力。R30主要作为限流保护电阻,防止电流过大。本设计中蜂鸣器采用低电平驱动,P0.7输出低电平将触发蜂鸣器,另外P89LPC931的定时/计数器1的溢出翻转也可以驱动蜂鸣器鸣叫。要使用此功能电路,JP4-4需要跳接到BEEP端,如果用户不使用此功能,可以将JP4-4跳线断开,就可以将P0.7作为其它功能使用了。2.6键盘模块为了减少键盘与单片机接口时所占用I/O口线的数目,在键数较多时,通常都将键盘排列成列矩阵式,如图2-2所示:图2-2键盘排列每一水平线与垂直线的交叉处不相通,而是通过一个按键来连通。利用这种行列矩阵结构只需N个行线和M个列线即可组成M乘N个按键的键盘,则键盘与微机连线为M加N根。键数越多,这种键盘的优点越明显。图2-2表示4乘4矩阵键盘,这个矩阵键盘的四条平行线接到接口的D7~D4,列线接到接口的D3~D0上。在采用这种矩阵式非编码键盘的单片机系统中,键盘处理程序首先执行确认有无键盘按下的程序段,其工作过程为:CPU由D3~D0口输出全“0”使所有的列线输出低电平,然后取出D7~D4的状态,判断是否为全“1”,若键盘上没有键盘闭合,行,列线之间是断开的,所有行线D7~D4均为高电平;若有键按下闭合时,则对应的行线和列线短路,则行线的输入即为列线的输出。当确认有稳定的键按下后,下一步就要识别那一个按键被按下。对键的识别通常采用逐行(逐列)扫描的查询法。判断键盘中哪一个键按下,由列线逐列置低电平后,检查行输入状态。其方法是:依次给列线送低电平,然后查所有行线状态,如果全为“1”,则所按下之键不在此列。如果不全为“1”,则所按下的必在此列,而且是在与低电平行线相交的交点上的哪个键。最后确定键盘上每个键的键值。键值赋值的最直接办法是将列,行线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到该列置0电平,读出各行状态为非全“1”状态,这时的行列数据组合成键值。如图2-2中键盘值从左至右,从上至下依次是77、7B、7D、7E;B7、BB、BD、BE;…;E7、EB、ED、EE。这种负逻辑表示往往不够直观,因而采取行列线加反相器或软件求反的方法把键盘改成正逻辑,这时键值依次为88、82、81;48、44、42、41;…;18、14、12、11。不论是正逻辑还是负逻辑,这种键盘的键值表示方式分散度大且不等距,用散转指令进入键处理程序不太方便。对于不是4乘4或8乘4,8乘8键盘,使用也不太容易,所以在许多场合,还需要进一步的程序处理,以依次排列键值。第3章系统实验板开发设计3.1流水灯模块实验设计流水灯的硬件设计用5V电源给单片机供电,并把单片机的~口与流水灯模块的8个引脚用排线连接起来,每个发光二极管外接一个1K电阻,防止电流过大而烧坏发光二极管。其连法如图所示:图3-1流水灯硬件设计图流水灯的程序设计用定时器查询方式控制P0口流水灯,1s钟流动一次。单片机的晶振为。用C51编写程序如下:org0000hajmpstartorg0040hstart:movp1,#0ffhcalldelaycalldelaymovp1,#01hloop:calldelaymova,p1rlamovp1,asjmploopdelay:movr1,#00hdel1:movr6,#00hdjnzr6,$djnzr1,del1ret串口通信模块实验设计串口通信模块的硬件设计单片机的、引脚与串口通信模块中的RS-232的12、1引脚相连,而13、4引脚接到9引脚的连接器的7引脚上,连接器的5脚接电路板的地,连接器的另一端连到PC机上。图3-2串口通信模块的硬件设计串口通信模块的程序设计org0000hjmpstartorg0030hstart:movscon,#50h;设置成串口1方式movtmod,#20h;波特率发生器T1工作在模式2movpcon,#80h;波特率翻倍为4800*2movth1,#0fah;预置初值x=256-(fosc*2)/(384*9600)movtl1,#0fahsetbtr1writ:mova,#0afhmovsbuf,amovr5,#09hloop:calldelaydjnzr5,loopajmpwrit;;;;;;;;;;;;;;;;;;;;;;;;;;;;;delay:movr6,#00hdey2:movr7,#00hdjnzr7,$djnzr6,dey2ret3.3LED显示模块实验设计串口通信模块的硬件设计把单片机的~P0.7,~口与LED显示模块对应的引脚用排线连接起来,即可进行实验。其连法如图3-3所示:~是控制数码管显示的数据口,而~为数码管的位选端,4个数码管采用动态显示的方法显示。如图3-3所示:图3-3LED显示模块LED模块的程序设计设计出一个4位显示的电子时钟,对于单片机初学者来说,设计一个电子时钟真的是很有用的,其中要理解的东西有很多,如P0口的数据传送;P2口的位控制,也就是数码管的位选通;数码管数字显示代码;延时的处理;数码管动态显示;还有的就是中断子程序的设计,感觉这个是最难的,因为单片机的计秒不是人类的大脑思维,如果让计算机实现1秒后实现中断的效果,是最大的难处。还其他的一些知识的应用,及算法的实现,如果以后要扩展成一个电子闹钟,可能还要应该到中断优先级相关的知识。程序流程图见图3-4,程序见附录2。开始开始设置T0为16位定时器给TH0和TL0附初识值定时10ms全局中断和T0中断显示时间图3-4LED显示程序流程图3.4音乐模块设计3.4.1音乐模块的硬件设计图3-5音乐模块硬件电路把单片机的口与唱歌模块对应的引脚用排线连接起来,其连法如图3-5所示:音乐模块的程序设计音乐标题“八月桂花香”音乐输出脚
ORG0000H
LJMPSTART
ORG000BH
INC20H;中断服务,中断计数器加1
MOVTH0,#0D8H
MOVTL0,#0EFH;12M晶振,形成10毫秒中断
RETI
START:
MOVSP,#50H
MOVTH0,#0D8H
MOVTL0,#0EFH
MOVTMOD,#01H
MOVIE,#82H
MUSIC0:
NOP
MOVDPTR,#DAT;表头地址送DPTR
MOV20H,#00H;中断计数器清0
MUSIC1:
NOP
CLRA;A清零
MOVCA,@A+DPTR;查表取代码
JZEND0;是00H,则结束
CJNEA,#0FFH,MUSIC5;如果是休止符,往下执行
LJMPMUSIC3
MUSIC5:
NOP
MOVR6,A;R6=18H音符的频率
INCDPTRDPTR;加一
MOVA,#0
MOVCA,@A+DPTR;取节拍代码送R7
MOVR7,A;R7=30H音符发音的时间
SETBR0;启动计数
MUSIC2:
NOP
CPL;;是音乐输出引脚
MOVA,R6
MOVR3,A;;R3=R6=18H
LCALLDEL
MOVA,R7
CJNEA,20H,MUSIC2;;中断计数器(20H)=R7否?
;不等,则继续循环
MOV20H,#00H;等于,则取下一代码
INCDPTR
LJMPMUSIC1
MUSIC3:
NOP;休止100毫秒
CLRTR0
MOVR2,#0DH;R2=13
MUSIC4:
NOP
MOVR3,#0FFH;R3=255
LCALLDEL
DJNZR2,MUSIC4
INCDPTR
LJMPMUSIC1
END0:
NOP
MOVR2,#0FFH;歌曲结束,延时1秒后继续
MUSIC6:
MOVR3,#00H
LCALLDEL
DJNZR2,MUSIC6
LJMPMUSIC0
DEL:
NOP
DEL3:
MOVR4,#02H
DEL4:
NOP
DJNZR4,DEL4
NOP
DJNZR3,DEL3
RET
NOP
DAT:
DB18H,30H,1CH,10H
DB20H,40H,1CH,10H
DB18H,10H,20H,10H
DB1CH,10H,18H,40H
DB1CH,20H,20H,20H
DB1CH,20H,18H,20H
DB20H,80H,0FFH,20H
DB30H,1CH,10H,18H
DB20H,15H,20H,1CH
DB20H,20H,20H,26H
DB40H,20H,20H,2BH
DB20H,26H,20H,20H
DB20H,30H,80H,0FFH
DB20H,20H,1CH,10H
DB18H,10H,20H,20H
DB26H,20H,2BH,20H
DB30H,20H,00h3.5键盘模块设计3.5.1把键盘的8个引脚接到单片机的~即可。如图3-6所示:3-6键盘模块的硬件电路键盘模块的软件设计在第2章我们已经介绍了键盘的工作原理,因此我们可以设计出程序流程图见图3-7,程序见附录3。否否否否否是是是是开始P1口置0第一列清0第一行是否为0第二行是否为0第三行是否为0第四行是否为0第二列清0以下同上计算按键值返回图3-7键盘程序流程图第4章系统调试和实验分析4.1系统调试软件介绍伟福V8/L仿真品种多、功能强,和国内外同类高档仿真器功能相比较,软硬件方面具有多种先进特点。1.通用仿真器:主机+POD组合,通过更换POD,可以对各种CPL进行仿真。为用户提供了一种灵活的多CPL仿真系统。2.仿真头内置:提高仿真频率,减小外接插头体积,可以灵活接插用户板。3.强大的逻辑分析仪综合调试功能:逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或进行同步实时采样,并实时在线调试分析,采样深度64K,最高时基采样频率达100M,64路波形的可精确实时反映用户程序运行时的历史时间。伟福V8/L仿真界面及设置1.伟福V8/L软件在以前的版本基础上做了增加了许多功能,特别是在窗口管理、项目管理和源文件编辑工具上做了较大改进,在伟福V8/L环境下的所有窗口均可以放在窗口的同一块区域,各窗口可以直接切换,节省了窗口的面积,使窗口管理更有效。伟福V8/L还增强了项目管理和源文件编辑方面的功能,使得项目、文件切换更方便,有效地后退、前进功能使得修改程序更方便。新增加的书签窗口和断点窗口可以有效地管理断点和书签,使得程序员无需在众多的代码和断点中逐行查询,断点信息和书签信息在各自的窗口中显示一目了然。如图4-1所示。图4-1伟福V8/L仿真界面2.仿真器USB口、电源接好,仿真头对应管脚安装完毕,打开伟福仿真器集成调试软件对仿真器进行设置,如图4-2:点击“好”即进入仿真界面。图4-2仿真器设置点击“文件”→“打开文件”,例如:选择“”,进行仿真。软件的调试因为程序大,在程序执行期间会出现乱码,需要一段段进行检查。首先要保证解码的正确性,所以单独把此段程序进行了调试;另外,LCD显示屏也应进行单独的测试,是否好用,以便查找错误的根源。1.分项调试⑴解码调试这是一个红外解码的过程,根据编码的规则进行读取并转化脉冲信号,在获得正确的数字时蜂鸣器响,并且送到了LCD显示屏。这是本课题需要解决的最大难题,因为它涉及了脉冲的时序,需要计算很多的时间参数。在编译的时候没有出现什么错误,但是蜂鸣器时响时不响,得不到正确的解码,显示的都是一些点点或者乱码。针对这种情况我做了一下的分析:1.软件延时方面不够准确;2.在使用参数方面有冲突;3.对发送码脉冲识别不准确[8]。经过仔细的查证,问题出现在定义解码后的数据存储地址上,即MOVR0,#IRCOM的位置。在未更正之前如下:I5:MOVR2,#0;0.14ms计数MOVR0,#IRCOM但是这条语句不应出现在这个位置的,如果这样的话,R0在每接收一个字节后就被重置一次,前面的数字都被覆盖,以至于出现解码的错误。将MOVR0,#IRCOM放在解码开始以前就不会出现这样的错误了。MOVR2,#04HMOVR0,#IRCOMI1:JNBIRIN,I2;等待IR信号出现⑵LCD显示的调试模拟LCD显示一个汉字“啊”,根据指导书上的介绍不是一个难题,此次同样是没有出现编译方面的错误,但是没有汉字显示。调整了程序中的很多语句也没有能够完成显示的功能,软件上找不到问题,只能再到硬件上去查找原因了。这时发现自己犯下了一个很大的错误,BUSY和REQ管脚被接反了,BUSY是一条测LCD忙闲状态的管脚,有语句:SUBI:;写模块子程序(单线延时方式)JBBUSY,SUBI因此,整个程序就停留在这条语句上不能继续执行。2.整体的调试在这两个单项的调试结束后,我进行了整体的软件设计和调试实验。由于在两个单项调试上面用到了相同的参数,所以这需要先进行统一的参数变量,尤其是增加的地址变量。比如:为了使显示的数字可以从左至右逐字显示,为了方便我们可以使用寄存器R0-R7,但是,它对寄存器的要求比较严格,不能在程序中的其他参数中出现,是作为唯一的调用。在程序中R0-R7都被用到,容易造成混乱,所以就采用了30H作为坐标地址的寄存器。⑴编译程序时,出现了如下图4-3所示的错误:图4-3编译后出现的问题CJNE语句跳转出了范围,我做了下面的改动:CLEAR:CJNEA,#1bH,CHUAJMPIR_SHOW3CHU:JMPIR_OUT这次程序编译成功。⑵按下K1键,显示屏出现了不规范的图形,位置也是不规律的,所以就在PERFECT子程序下手。出现这样情况的原因应该有两种可能:一、地址单元不稳定,二、行列坐标没有规范好。原因正如上面所预料,在这段程序中可以看到,以汉字为单位的行列坐标顺序被颠倒了,以至于出现了乱码。如图4-4。图4-4编程中出现的问题⑶按下数字键,屏幕可以正确的显示,但是当按下ENTER键,显示的汉字为一片的点点或者随机的一些东西。出现这种情况肯定是因为存储数字的单元中的内容被清除、或者覆盖,即24H-27H。经过查询,在做分项调试的时候,程序初始化的时候把24H-27H全部付零,在综合在一起的时候没有改正:MOVA,#00HMOVR0,#20HLOOP0:MOV@R0,A;20H-28H清零INCR0CJNER0,#28H,LOOP0改为CJNER0,#24H,LOOP0即可。4.2流水灯模块实验调试按照图3-1进行电路板的焊接,焊接完以后按照给出的程序进行调试,调试结果如下图示:从图4-4我们可以看出P1口各个引脚每隔一定时间依次输出高电平,从尔二极管可以循环发光。该实验可以使我们知道P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。做为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。AT89C51中所有锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它作为一个输入。图4-5流水灯实验调试结果图做完该实验我们可以学习P1口的使用方法和延时子程序的编写和使用。4.3串口通信实验调试按照图3-2进行电路板的焊接,焊接完以后按照给出的程序进行系统调试。本串口程序的功能是:每隔1秒向电脑发送1次数据“AF”。首先设置串口通信为方式1,波特率为9600,波特率发生器T1工作在模式2,然后每隔1秒向电脑发送一次数据。在wave6000下编译此程序,生成文件,通过烧写器把16进制代码烧到单片机上。连接好电路,给单片机通电,在电脑上运行串口调试助手,并选则16进制显示,在显示区内会显示接受到的数据。如下图所示:图4-6串口实验调试结果图4.4LED显示实验调试按照图3-3进行电路板的焊接,焊接完以后按照给出的程序进行系统调试调试结果如下图所示:图4-7LED实验调试结果图该实验内容为利用定时器1来定时中断,控制电子钟走时,利用实验台上的四个数码管显示分,秒,做成一个电子钟,显示格式为:分秒该实验由于有4个LED,用静态显示则需要的I/O口太多了,故适合于动态显示,动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。从图4-6中我们可以看出如上图所示此刻数码管显示为46分52秒,P1口为输出数据,P3口为位选控制某个数码管显示。做完该实验可以使我们掌握定时器的使用和编程方法,了解七段数码显示数字的原理,掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。4.5键盘实验调试按照图3-5进行电路板的焊接,焊接完以后按照给出的程序进行系统调试,调试结果如下图所示:图4-8键盘实验调试结果图该实验是利用实验板提供的8279,键盘电路,数码电路,数码显示电路,组成一个键盘分析电路。编写程序,要求在键盘上按动一个,就将8279对此键扫描的扫描码显示在数码管上。从图4-8中我们可以看出此刻数码管上显示的是4。该实验可以使我们进一步了解8279键盘,显示电路的编程方法。进一步了解键盘电路工作原理及编程方法。结论《单片机原理及应用》是一门实践性很强的课程,须通过相应的实验及实践,来加深理解和巩固理论知识。同时在实验平台上进行应用电路的设计,可以提高学生的理论联系实际的能力。为此我们设计了一套MCS一51单片机实验和开发板。该板在控制成本较低的前提下,把MCS一51单片机基本的实验及开发系统,全部集成到一块较小的电路板上,全部预留了扩展。本实验板兼顾学生单片机实验和毕业设计等不同用途,可以做流水灯实验、键盘实验等一些简单实验,在增加一些外围电路以后,可以进行一些实际应用。由于本人的理论水平和实践经验有限以及受研发条件的限制,本文所做的工作进行得非常有限,一些设想并没有最终完成,故在某些方面还不尽人意。建议有兴趣的同学可以在单片机实验板、编程器、ISP下载线合理的组合方面进行研究,因为编控制器配合串行下载编程控制软件,无需各种编程器可轻松地将编译好的代码下载到开发板上的CPU中进行验证或演示,试验过程中无需拔插任何电缆和芯片,整个过程只需利用鼠标操作即可,方便快捷。烧写完毕即可自动演示,比ISP使用更方便。同时也可以使用预留的ISP接口连接ISP下载头,对其他MCU进行在系统编程(ISP-InSystemProgramming),对于产品的软件调试或升级,提供快捷的方案。这样一来,开发系统又可以作为单独的ISP下载线使用了。国外很多院校都采用这种开发板。总而言之,无论是做单片机的实验还是用于设计开发;初学者、或者是具有一定设计能力的用户,本实验、设计系统板都适合他们使用。如增加些辅助电路,本系统板还可以完成更多的实验、设计和开发。参考文献[1]李刚.新概念单片机.第一版.天津:天津大学出版社,2004.[2]郑学坚.微型计算机机原理及应用.第三版.北京:清华大学出版社,1994.
[6]李辉.单片机的代码优化方法.电子技术应用.1999,7:16-19.[4]陈明荧.单片机课程设计实训教材.第一版.北京:清华大学出版社,2004.[5]周航慈.单片机程序设计基础.第一版.北京:北航大学出版社,1997.[6]谢淑如.ProtelPCB99SE电路板设计.第一版.北京:清华大学出版社,2001.
[7]清源计算机工作室.Protel99SE原理图与PCB设计.第一版.北京:机械工业出版社,2003.[8]许国安,徐华成.深化实验教学改革,注重对学生能力的培养[J].实验技术与管理,2003,20(2):112-115.[9]李桂平.LED屏幕显示器的设计.零陵学报.2003(9):52-55.[10]郭建勇.小型LED显示屏的设计与实现.电力学报.1999(2):135-138.[11]周敬利.MCS-51程序空间扩展原理.计算机工程,2003,29(6):183-815.[12]范赣军.单片微型计算机控制技术.电脑知识与技术,2004年第32期.[13]吴王平.基于80C51单片机的计算机系统的仿真.电脑知识与技术,2004年第32期.[14]林占江,林放.电子测量仪器原理与应用.北京:电子工业出版社.2006年第4期:58-61[15]William.Mcc.SiebertCircuit,SignalsSysterm,1994.[16]RobertG.MiddleetonDesigningelectroniccircuits,1999.[17]KeilElektronikGmbHandKeilSoftwareInc.MON51.PDF-Installingandusingt.2000.附录1实验板电路总图:
附录2LED显示实验程序:second1equ40hsecond2equ41hminute1equ42hminute2equ43horg0000hajmpstartorg000bhjmpzhongduan0org0040hstart:movsecond1,#00hmovsecond2,#00hmovminute1,#00hmovminute2,#00hmovsp,#50hmovtmod,#01hmovth0,#0dchmovtl0,#008hsetbet0setbeasetbtr0loop:calldisplaysjmploop;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;zhongduan0:movth0,#0dchmovtl0,#08hincr2cjner2,#100,end1movr2,#00hincsecond2mova,second2cjnea,#10,end1movsecond2,#00hincsecond1mova,second1cjnea,#6,end1movsecond1,#00hincminute2mova,minute2cjnea,#10,end1movminute2,#00hincminute1mova,minute2cjnea,#6,end1movminute1,#00hend1:reti;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;display:movdptr,#tablemova,second2movca,@a+dptrmovp1,aclrcalldelaysetbmova,second1movca,@a+dptrmovp1,aclrcalldelaysetbp3.1mova,minute2movca,@a+dptrmov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全员安全教育培训周期课件
- 令人羡慕的医患之道
- 学校建筑消防管理制度
- 安徽农信社面试技巧分享
- 男性护理专业就业优势
- 陕西职业生涯发展规划
- 光缆网专业培训课件
- 职业规划课程教学指南
- 光热供暖培训课件内容
- 父女关系与医患纠纷
- 港口生产调度管理办法
- 电工职业道德课件教学
- 周杰伦介绍课件
- 学堂在线 雨课堂 学堂云 生活英语听说 期末复习题答案
- T/CCT 002-2019煤化工副产工业氯化钠
- 项目可行性研究报告的风险管理计划和应对措施
- 砂石运输施工方案
- 华师大版八年级上册初二数学(基础版)(全册知识点考点梳理、重点题型分类巩固练习)(家教、补习、复习用)
- 医院如何规范服务态度
- 输液空气的栓塞及预防
- 移动公司客户经理述职报告
评论
0/150
提交评论