基于单片机的16x16点阵广告牌内容摘要:

图2 单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。 89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。 当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。 单片机系统的复位方式有:手动按钮复位和上电复位。 本次采用的是手动复位。 动按钮复位需要人为在复位输入端RST上加入高电平(图1)。 一般采用的办法是在RST端和正电源Vcc之间接一个按钮。 当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。 手动按钮复位的电路如所示。 由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。 晶振电路 图3 每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。 晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。 在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。 高级的精度更高。 有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。 晶振的作用是为系统提供基本的时钟信号。 通常一个系统共用一个晶振,便于各部分保持同步。 有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。 如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。 电源电路 图4输出+5V直流电压的稳压电源电路。 硬件设计电路原理图 图5 单片机的选用根据上述硬件原理图,本系统预计采用AT89S51单片机。 AT89S51单片机结构框图及引脚 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(Insystem programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。 空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。 同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 AT89S51单片机的基本结构和外部引脚如图6所示图6 AT89S51引脚图AT89S51单片机的各引脚功能如下: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)这是由于上拉的缘故。 RXD(串行输入口)   TXD(串行输出口)   /INT0(外部中断0)   /INT1(外部中断1)   T0(记时器0外部输入)   T1(记时器1外部输入)   /WR(外部数据存储器写选通)   /RD(外部数据存储器读选通)  P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89S51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能   RST:复位输入。 当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在FLASH编程期间,此引脚用于输入编程脉冲。 在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。 如想禁止ALE的输出可在SFR8EH地址上置0。 此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态ALE禁止,置位无效。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。