《单片机C51项目设计与开发》-项目3点阵LED的控制和制作_第1页
《单片机C51项目设计与开发》-项目3点阵LED的控制和制作_第2页
《单片机C51项目设计与开发》-项目3点阵LED的控制和制作_第3页
《单片机C51项目设计与开发》-项目3点阵LED的控制和制作_第4页
《单片机C51项目设计与开发》-项目3点阵LED的控制和制作_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

任务18X8点阵LED模拟电梯运行任务描述用AT89C51驱动8X8矩阵式LED,实现电梯的模拟运行。任务分析1.硬件电路分析使用单片机的P1口控制8x8矩阵式LED的阳极,为了增加驱动能力,P1口的输出接在74LS245上,由74LS245驱动矩阵式LED的阳极;P3口接矩阵式LED的阴极;P2口接8个按键,模拟8层电梯的每一层。电路原理图如图3-1所示。2.软件设计思路①主程序:主程序主要对系统进行初始化,包括设置定时器0,端口初始化、新按键值、旧按键值、显示偏移值、刷新次数的初始化,主循环完成按键的判断。按键判断了程序的流程图如图3-2所示。下一页返回任务18X8点阵LED模拟电梯运行②定时器0:定时器0的定时时问为2ms,实现gxg矩阵式LED的动态显示。为了使矩阵式LED显示数字1~8,首先要了解1~8显示代码。代码可以通过字模软件实现,也可以采用绘制方法获得,然后写出相应的代码。通过绘制方法建立的代码可以由以下方法获得。每个数字由8个字节组成,每列为1个字节,每个字节高位在下,低位在上。在本例中,使用的是共阴极驱动,阳极为数据信息,因此需要显示的位为1,不需要显示的位为0,数字1的显示如图3-3所示。根据图示可以得到数字1的显示代码为:0x00,0x00,0x00,00x84,0xfe,0x80,0x00,0x00上一页下一页返回任务18X8点阵LED模拟电梯运行参考源程序上一页下一页返回任务18X8点阵LED模拟电梯运行上一页下一页返回任务18X8点阵LED模拟电梯运行上一页下一页返回任务18X8点阵LED模拟电梯运行上一页下一页返回任务18X8点阵LED模拟电梯运行上一页下一页返回任务18X8点阵LED模拟电梯运行系统仿真调试在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图3-1所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真效果如图3-4所示。知识拓展矩阵式LED1.矩阵式LED的结构和类型LED点阵显示器件是将要显示的字符(包括汉字)进行显示。点阵显示器的种类按大小分,可分为5X7,5X8,6X8,8X8等4种。按发光变化颜色分,可分为单色、双色和三色。按LED的极性排列方式,又可分为共阳极和共阴极。上一页下一页返回任务18X8点阵LED模拟电梯运行8X8点阵的外观及引脚如图3-5所示。8X8点阵等效电路如图3-6所示。2.矩阵式LED的工作原理虽然点阵式LED的种类很多,但所有的点阵LED的工作原理是相同的。下面以8X8点阵LED工作原理为例进行说明。如图3-6所示,8X8点阵由64个发光二极管组成,每个发光二极管放置在行线和列线的交义点上,当对应的某一行置”1”,某一列置“0”时,相应的二极管亮;若要使某一行亮,则对应的行置”1”;,列则采用动态扫描方式依次输出“0”来实现;若要使某一列亮,则对应的列置“0”,行则采用动态扫描方式依次输出“1”来实现。上一页返回任务2汉字显示控制任务描述用AT89C51控制16X16点阵式LED,并编写程序实现汉字的显示,显示的汉字为“单片机世界欢迎您!”。任务分析1.硬件电路分析16X16点阵采用4个8X8LED点阵,把编号工、II的8X8LED点阵的行线(Y方向)连在一起构成行线的低八位,编号III,IV的8X8LED点阵的行线(Y方向)连接在一起构成行线的高八位;并把编号工、III相应的列线(X方向)连接在一起构成列线的低八位,编号II,IV相应的列线(X方向)连接在一起构成列线的高八位。4个8X8LED点阵的排列如图3-7所示。下一页返回任务2汉字显示控制单片机通过串口控制两个串入/并出芯片74HC595控制,进行控制16X16点阵的行线。单片机通过P1.0~P1.3控制4~16译码器SN74159的输入端,进而控制16X16点阵的列线。16X16点阵的电路原理图如图3-8所示。2.软件设计思路当要显示一个16X16点阵的汉字时,需要建立每列显示LED的位置数据,称这种数据信息为字库。每个汉字需要由32个字节数据表示(每列2个字节,共16列),字库的建立方法同上节显示代码的建立。主程序完成系统初始化,在主循环中,实现is显示1个汉字的循环显示。定时器0实现1ms的定时,完成动态显示,动态显示的过程如下:①通过P1.0~P1.3控制SN74159的输入端,形成16列的某列驱动信号;上一页下一页返回任务2汉字显示控制②将对应列的数据通过串口输出;③更新74HC595的输出寄存器。参考源程序上一页下一页返回任务2汉字显示控制上一页下一页返回任务2汉字显示控制上一页下一页返回任务2汉字显示控制上一页下一页返回任务2汉字显示控制上一页下一页返回任务2汉字显示控制上一页下一页返回任务2汉字显示控制系统仿真调试在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图3-8所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真效果如图3-9所示。上一页下一页返回任务2汉字显示控制知识拓展单片机串口通信1.串口通信的基本知识计算机通信是将计算机技术和通信技术相结合,完成计算机与外部设备或计算机与计算机之问的信息交换。计算机通信可以分为两大类:并行通信与串行通信。并行通信即数据的各位同时传送;串行通信即数据一位一位地顺序传送。图3-10所示为这两种通信方式的示意图。并行通信的特点是控制简单、传输速度快,但由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难;串行通信的特点是传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信的复杂。上一页下一页返回任务2汉字显示控制按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信两类。异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信的示意图如图3-11所示。同步通信是一种连续串行传送数据的通信方式,一次通信只传输一帧信息。这里的信息帧和异步通信的字符帧不同,通常有若干个数据字符,如图3-12所示。图3-12(a)为单同步字符帧结构,图3-12(b)为双同步字符帧结构,但它们均由同步字符、数据字符和校验字符CRC三部分组成。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约定。上一页下一页返回任务2汉字显示控制在串行通信中,数据是在两个站之问进行传送的,按照数据传送方向,串行通信可分为单工(Simplex、半双工(HalfDuplex)和全双工(FullDuplex)三种制式。图3-13为三种制式的示意图。在单工制式下,通信线的一端接发送器,一端接接收器,数据只能按照一个固定的方向传送,如图3-13(a)所示。在半双工制式下,系统的每个通信设备都由一个发送器和一个接收器组成,它允许两个方向的数据传递,但不能同时传输,只能交替进行,如图3-13(b)所示。在全双工制式下,它允许两个方向同时进行数据传输,如图3-13©所示。上一页下一页返回任务2汉字显示控制2.串口通信接口标准(1)RS-232C接口RS-232C是使用最早、应用最多的一种异步串行通信总线标准。它是美国电了工业协会CEIA)1962年公布,1969年修订完成的。其中,RS表示RecommendedStandard232是该标准的标识号,C表示最后一次修订。RS-232C主要用来定义计算机系统的一些数据终端设备(DTE)和数据电路终接设备CDCE)之问的电气性能。1)机械特性RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。然而,RS-232C标准在连接器方面没有严格规定,在一般应用中并不一定用到全部RS-232C标准的全部信号,所以,在实际应用中常常使用9针连接器代替25针连接器。连接器的引脚定义如图3-14所示。上一页下一页返回任务2汉字显示控制2)功能特性RS-232C标准接口的主要引脚定义见表3-1.3)电气特性RS-232C采用负逻辑电平,规定DC(-3~-15V)为逻辑1,DC(+3~+15V)为逻辑0,-3~+3V为过渡区,不作定义。RS-232C的逻辑电平与通常的TTL和CMOS电平不兼容,为实现与TTL或CMOS电路的连接,要外加电平转换电路。4)过程特性过程特性规定了信号之问的时序关系,以便正确地接收和发送数据。远程通信RS-232C总线连接如图3-15所示。近程通信时(通信距离<15m),可以不用调制解调器,其连接如图3-16所示。上一页下一页返回任务2汉字显示控制5)RS-232C电平与TTL电平转换驱动电路MCS-51单片机串行接口与RS-232C接口不能直接对接,必须进行电平转换。常用的电平转换集成电路是传输线驱动器MC1488和传输线接收器MC1489,MC1488芯片输入的是TTL信号,输出的是RS232信号;MC1489芯片输入的是RS232信号,输出的为TTL信号。6)采用RS-232C接口存在的问题①传输距离短,传输速率低。RS-232C总线标准受电容允许值的约束,使用时传输距离一般不要超过15m(线路条件好时也不超过儿十米)。最高传送速率为20kb/s.②有电平偏移。RS-232C总线标准要求收发双方共地。通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。③抗干扰能力差。上一页下一页返回任务2汉字显示控制(2)RS-422A接口RS-422A输出驱动器为双端平衡驱动器。如果其中一条线为逻辑“1”状态,另一条线就为逻辑“0”,比采用单端不平衡驱动对电压的放大倍数大一倍。差分电路能从地线干扰中拾取有效信号,差分接收器可以分辨200mV以上电位差。若传输过程中混入了干扰和噪声,由于差分放大器的作用,可使干扰和噪声相互抵消,因此,可以避免或大大减弱地线干扰和电磁干扰的影响。RS-422A传输速率为90kb/s时,传输距离可达1200m.(3)RS-485接口RS-485是RS-422A的变形:RS-422A用于全双工,而RS-485用于半双工。RS-485是一种多发送器标准,在通信线路上最多可以使用32对差分驱动器/接收器。如果在一个网络中连接的设备超过32个,还可以使用中继器。上一页下一页返回任务2汉字显示控制RS-485的信号传输采用两线问的电压来表示逻辑1和逻辑0。由于发送方需要两根传输线,接收方也需要两根传输线。传输线采用差动信道,所以它的干扰抑制性极好,又因为它的阻抗低,无接地问题,所以传输距离可达1200m,传输速率可达1Mb/s。3.MCS-5,串行口结构MCS-51内部有两个独立的接收、发送缓冲器SBUFoSBUF属于特殊功能寄存器。发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入,二者共用一个字节地址(99H)。串行口的结构如图3-17所示。4.MCS-51串行控制寄存器与MCS-51串行口有关的特殊功能寄存器有SBUF,SCON,PCON。上一页下一页返回任务2汉字显示控制(1)串行口数据缓冲器SBUFSBUF是两个在物理上独立的接收、发送寄存器,一个用于存放接收到的数据,另一个用于存放欲发送的数据,可同时发送和接收数据。两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。CPU在写SBUF时,就是修改发送缓冲器;在读SBUF时,就是接收缓冲器的内容。接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0),TXD(P3.1)来实现的,因此可以同时发送、接收数据,其工作方式为全双工制式。(2)串行口控制寄存器SCONSCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志,可以位寻址,字节地址为98H。单片机复位时,所有位为0。上一页下一页返回任务2汉字显示控制对各位的说明如下。SMO,SM1:串行方式选择位,其定义见表3-2。(3)电源控制寄存器PCONPCON主要是为单片机的电源控制设置的专用寄存器,不可位寻址,字节地址为87H。上一页下一页返回任务2汉字显示控制5.MCS-51串行口的工作方式(1)方式0方式0时,串行口为同步移位寄存器的输入/输出方式。主要用于扩展并行输入或输出口。1)方式0输出当一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引肚口输出(低位在前),发送完置中断标志TI为1,请求中断。方式0的输出时序如图3-18所示。2)方式0输入在满足REN=1和RI=0的条件下,串行口即开始从RXD端以fosc/12的波特率输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。在再次接收数据之前,必须由软件清RI为0。方式0的输入时序如图3-19所示。上一页下一页返回任务2汉字显示控制(2)方式1方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图3-20所示,其中1位起始位、8位数据位、1位停止位。1)方式1输出发送时,数据从TXD端输出,当数据写入发送缓冲器SBUF后,启动发送器发送。当发送完一帧数据后,置中断标志TI为1。方式1所传送的波特率取决于定时器1的溢出率和PCON中的SMOD位,方式1的输出时序如图3-21所示。2)方式1输入接收时,由REN置1,允许接收,串行口采样RXD,当采样由1到0跳变时,确认是起始位“0”,开始接收一帧数据。上一页下一页返回任务2汉字显示控制当RI=0,且停止位为1或SM2=0时,停止位进入RB8位,同时置中断标志RI;否则,信息将丢失。所以,采用方式1接收时,应先用软件清除RI或SM2标志。方式1的输入时序如图3-22所示。(3)方式2和方式3方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引肚队发送或接收一帧数据包括1位起始位0,8位数据位、1位可编程位(用于奇偶校验)和1位停止位1。除了波特率以外,方式3和方式2完全相同,方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。传送一帧数据的格式如图3-23所示。上一页下一页返回任务2汉字显示控制1)方式2,3输出发送时,先根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,启动发送器。写SBUF的指令时,除了将8位数据送入SBUF外,同时还将TB8装入发送移位寄存器的第9位,并通知发送控制器进行一次发送。一帧信息即从TXD发送,在送完一帧信息后,TI被自动置1,在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0.方式2,3的输出时序如图3-24所示。2)方式2,3输入当REN=1时,允许串行口接收数据。数据由RXD端输入,接收11位的信息。当接收器采样到RXD端的负跳变,并判断起始位有效后,开始接收一帧信息。当接收器接收到第9位数据后,若同时满足以下条件:RI=0和SM2=0或接收到的第9位数据为1,则接收数据有效,8位数据送入SBUF,第9位送入RB8,并置RI=1。若不满足上述条件,则信息丢失。方式2,3的输入时序如图3-25所示。上一页下一页返回任务2汉字显示控制6.波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可将单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。在单片机的应用中,常用的晶振频率为12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系见表3-3。上一页下一页返回任务2汉字显示控制知识链接1.SN74159SN74159为4~16线译码器集成芯片,其逻辑符号如图3-26所示。0~15为输出引脚,A,B,C,D为输入引脚,E1和E2为芯片使能引脚。SN74159的真值表见表3-4。2.74HC59574HC595为移位寄存器集成芯片,内部有一个8位移位寄存器和一个8位的存储器,输出端口为可控的三态门输出端,也可以串行输出控制下一级级联芯片。其逻辑符号如图3-27所示。上一页下一页返回任务2汉字显示控制Q0~Q7,Q7’为三态输出引脚,其中Q7’可级联到下一级芯片。OE为芯片使能端,MR为移位寄存器清零引脚。SHCP为移位寄存器输入时钟引脚,STCP为存储寄存器时钟输入,DS为串行数据输入引脚。数据在SHCP的上升沿输入移位寄存器中,在STCP的上升沿输入存储寄存器中去。74HC595的真值表见表3-5.3.二维数组(1)二维数组的定义二维数组的定义形式为:数据类型数组名【常量表达式H常量表达式];上一页下一页返回任务2汉字显示控制其中,常量表达式1表示第一维下标的长度,常量表达式2表示第二维下标的长度。(2)二维数组的初始化二维数组初始化也是在进行类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。(3)二维数组的引用二维数组的元素也称为双下标变量,其表示的形式为:数组名[下标][下标]其中,下标应为整型常量或整型表达式。例如:af31f41表示a数组三行四列的元素。上一页下一页返回任务2汉字显示控制4.内部函数库intrins.h(1)循环左移unsignedcharcrol(unsignedcharval,unsignedcharn)unsignedintirol(unsignedintval,unsignedcharn)unsignedlonglrol(unsignedlongval,unsignedcharn)将变量val循环左移n位。(2)循环右移unsignedcharcror(unsignedcharval,unsignedcharn);unsignedintiror(unsignedintval,unsignedcharn)unsignedlonglror(uns

温馨提示

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

评论

0/150

提交评论