基于单片机的带语音报时的万年历内容摘要:

相放大器的输入端。 在采用外部时钟时,该引脚必须接地。 RST,ALE,PSEN 和 EA: RST/VPD(9 脚 ): RST 是复位信号输入端,高电平有效。 当此输入端保持备用电源的输入端。 当主电源 Vcc 发生故障,降低到低电平规定值时,将+ 5V 电源自动两个机器周期 (24 个时钟振荡周期 )的高电平时,就可以完成复位操作。 RST 引脚的第二功能是 VPD,即接入 RST 端,为 RAM 提供备用电源,以保证存储在 RAM 中的信息不丢 失,从而合复位后能继续正常运行。 ALE/PROG(30 脚 ):地址锁存允许信号端。 当 8051 上电正常工作后, ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率 fOSC 的 1/6。 CPU 访问片 9 外存储器时, ALE 输出信号作为锁存低 8 位地址的控制信号。 平时不访问片外存储器时, ALE 端也以振荡频率的 1/6 固定输出正脉冲,因而 ALE 信号可以用作对外输出时钟或定时信号。 如果想确定 8051/8031 芯片的好坏,可用示波器查看 ALE 端是否有脉冲信号输出。 如有脉冲信号输出,则8051/8031 基本上 是好的。 ALE 端的负载驱动能力为 8 个 LS 型 TTL(低功耗甚高速 TTL)负载。 此引脚的第二功能 PROG 在对片内带有 4KB EPROM 的 8751 编程写入 (固化程序 )时,作为编程脉冲输入端。 PSEN(29 脚 ):程序存储允许输出信号端。 在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。 此引肢接 EPROM 的 OE 端 (见后面几章任何一个小系统硬件图 )。 PSEN 端有效,即允许读出 EPROM/ ROM 中的指令码。 PSEN 端同样可驱动 8 个 LS 型 TTL 负载。 要检查一个 8051/8031 小系统上电后 CPU 能否正常到 EPROM/ ROM 中读取指令码,也可用示波器看PSEN 端有无脉冲输出。 如有则说明基本上工作正常。 EA/Vpp(31 脚 ):外部程序存储器地址允许输入端 /固化编程电压输入端。 当EA 引脚接高电平时, CPU只访问片内 EPROM/ROM并执行内部程序存储器中的指令,但当 PC(程序计数器 )的值超过 0FFFH(对 8751/8051 为 4K)时,将自动转去执行片外程序存储器内的程序。 当 输入信号 EA 引脚接低电平 (接地 )时, CPU 只访问外部 EPROM/ROM 并执行外部程 序存储器中的指令,而不管是否有片内程序存储器。 对于无片内 ROM 的 8031 或 8032,需外扩 EPROM,此时必须将 EA 引脚接地。 此引脚的第二功能是 Vpp 是对 8751 片内 EPROM 固化编程时,作为施加较高编程电压 (一般 12V~ 21V)的输入端。 /输出端口 P0/P1/P2/P3: P0 口 (~ , 39~32 脚 ): P0 口是一个漏极开路的 8 位准双向 I/O 口。 作为漏极开路的输出端口,每位能驱动 8 个 LS 型 TTL 负载。 当 P0 口作为输入口使用时,应先向口锁存器 (地址 80H)写入全 1,此时 P0 口的全部引脚浮空,可作为高阻抗输入。 作输入口使用时要先写 1,这就是准双向口的含义。 在 CPU 访问片外存储器时, P0 口分时提供低 8 位地址和 8 位数据的复用总线。 在此期间,P0 口内部上拉电阻有效。 P1 口 (~ , 1~8 脚 ): P1 口是一个带内部上拉电阻的 8 位准双向 I/O口。 P1 口每位能驱动 4 个 LS 型 TTL 负载。 在 P1 口作为输入口使用时,应先向P1 口锁存地址 (90H)写入全 1,此时 P1 口引脚由内部上拉电阻拉成高电平。 P2 口 (~ , 21~28 脚 ): P2 口是一个带 内部上拉电阻的 8 位准双向I/O口。 P 口每位能驱动 4 个 LS 型 TTL 负载。 在访问片外 EPROM/RAM 时,它输出高 8 位地址。 P3 口 (~ , 10~17 脚 ): P3 口是一个带内部上拉电阻的 8 位准双向I/O 口。 P3 口每位能驱动 4 个 LS 型 TTL 负载。 P3 口与其它 I/O 端口有很大的区别,它的每个引脚都有第二功能,如下: : (RXD)串行数据接收。 : (RXD)串行数据发送。 : (INT0)外部中断 0 输入。 : (INT1)外部中断 1 输入。 : (T0)定时 /计数器 0 的外部计数输入。 : (T1)定时 /计数器 1 的外部计数输入。 10 : (WR)外部数据存储器写选通。 : (RD)外部数据存储器读选通。 STC89C52 单片机的中断系统 STC89C52系列单片机的中断系统有 5个中断源, 2个优先级,可以实现二级中断服务嵌套。 由片内特殊功能寄存器中的中断允许寄存器 IE 控制 CPU是否响应中断请求;由中断优先级寄存器 IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。 在单片机应用系统中,常 常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。 STC89C52 单片机内集成有两个可编程的定时 /计数器: T0 和 T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外, T1 还可以作为串行口的波特率发生器。 单片机最小系统设计 12345678RESET91011121314151617XTAL218XTAL119VSS202122232425262728PSEN29ALE30EA313233343536373839VCC40U1单片机+5V12Y212MHZ30pFC330pFC41 2 3 4 5 6 7 8 9P1 10K 排阻+5VS1SWPB10KR310uFC2+5V 图 33 单片机最小系统电路图 图 33 为单片机最小系统电路图,单片机最小系统有单片机、时钟电路、复位电路组成,时钟电路选用了 12MHZ 的晶振提供时钟,作用为给单片机提供一个时间基准,其中执行一条基本指令需要的时间为一个机 器周期,单片机的复位电路,按下复位按键之后可以使单片机进入刚上电的起始状态。 图中 10K 排阻为P0 口的上拉电阻,由于 P0 口跟其他 IO 结构不一样为漏极开路的结构,因此要加上拉电阻才能正常使用。 LCD 液晶显示器简介 由于本设计中要求显示界面显示一些参数,因此这里选用了 LCD1602 作为界面显示,可以把一些相关的参数进行显示。 液晶 原理介绍 液晶显示器 (LCD)英文全称为 Liquid Crystal Display,它一种是采用了液晶控制透光度技术来实现色彩的显示器。 和 CRT 显示器相比, LCD 的优点是很明显的。 由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这 11 样就无须考虑刷新率的问题。 显示接口用来显示系统的状态,命令或采集的电压数据。 本系统显示部分用的是 LCD 液晶模块,采用一个 162 的字符型液晶显示模块。 点阵图形式液晶由 M 行 N 列个显示单元组成,假设 LCD 显示屏有 64行,每行有 128 列,每 8 列对应 1 个字节的 8 个位,即每行由 16 字节,共 168=128 个点组成,屏上 6416 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内 容和屏上相应位置的亮暗对应。 一个字符由 68 或 88 点阵组成,即要找到和屏上某几个位置对应的显示 RAM 区的 8 个字节,并且要使每个字节的不同的位为 „1‟,其它的为 „0‟,为 „1‟的点亮,为 „0‟的点暗,这样一来就组成某个字符。 但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。 液晶模块简介 LCD1602 液晶模块采用 HD44780 控制器, hd44780 具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能, LM016L 与单片机 MCU通讯可采用 8位或 4位并行传输两种方式, hd44780控制器由两个 8位寄存器,指令寄存器( IR)和数据寄存器( DR)忙标志( BF),显示数 RAM( DDRAM),字符发生器 ROMA( CGOROM)字符发生器 RAM( CGRAM),地址计数器 RAM(AC)。 IR 用于寄存指令码,只能写入不能读出, DR 用于寄存数据,数据由内部操作自动写入DDRAM 和 CGRAM,或者暂存从 DDRAM 和 CGRAM 读出的数据, BF 为 1 时,液晶模块处于内 部模式,不响应外部操作指令和接受数据, DDTAM 用来存储显示的字符,能存储 80 个字符码, CGROM 由 8 位字符码生成 5*7 点阵字符 160 中和 5*10 点阵字符 32 种 .8 位字符编码和字符的对应关系, CGRAM是为用户编写特殊字符留用的,它的容量仅 64 字节,可以自定义 8 个 5*7 点阵字符或者 4 个5*10 点阵字符, AC 可以存储 DDRAM 和 CGRAM 的地址,如果地址码随指令写入 IR,则 IR 自动把地址码装入 AC,同时选择 DDRAM 或 CGRAM, LCD1602 液晶 模块的引脚图如图 34 所示。 图 34 LCD1602 引 脚图 液晶 寄存器选择控制如表 31。 表 31 寄存器选择控制 RS R/W 操作说明 0 0 写入指令寄存器(清除屏等) 12 0 1 读 busy flag( DB7),以及读取位址计数器( DB0~DB6)值 1 0 写入数据寄存器(显示各字型等) 1 1 从数据寄存器读取数据 液晶显示部分与 STC89C52的接口 如图 35 所示。 用 STC89C52 的 P0 口作为数据线,用 、 、 分别作为 LCD 的 EN、 R/W、 RS。 其中 EN 是下降沿触发的片选信号, R/W 是读写信号, RS 是寄存 器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为 8 位,显示行数为 1 行,字型为 57 点阵,然后设置为整体显示,取消光标和字体闪烁 ,最后设置为正向增量方式且不移位。 向 LCD 的显示缓冲区中送字符,程序中采用 2 个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示 .首先取一个要显示的字符或数据送到 LCD的显示缓冲区,程序延时 ,判断是否够显 示的个数,不够则地址加一取下一个要显示的字符或数据。 12345678RESET91011121314151617XTAL218XTAL119VSS202122232425262728PSEN29ALE30EA313233343536373839VCC40U1单片机+5V12Y212MHZ30pFC330pFC41 2 3 4 5 6 7 8 9P1 10K 排阻VSS1VCC2VEE3RS4RW5EN6DB07DB18DB29DB310DB411DB512DB613DB714A15K16LCD1lcd1602+5V10KR1+5V+5V+5VS1SWPB10KR310uFC2+5V 图 35 LCD1602 与 STC89C52 的接口 键盘模块设计 本按键模块使用的是多位独立按键,按键一端接 IO 口,一端接地,由于单片机的 IO 口都有内部上拉,因此当按键没有按下的时候, IO 检测到的时候高电平,当按键按下的时候,相当于 IO 短接地,因此这时候单片机检测到的电平为低电平,通过检测不同时刻的 IO 口状态就可以判断按下的是那个按键。 4 个按键分别代表以下功能,第一为功能按键,可以切换不同参数设置界面,第二个为切换按键,可以切换时、分、秒等参数进行设置,第三个为增加按键,第四个为减少按键。 其中按键还可以设置闹钟,重置时间等功能。 键盘模块电路图 如图 36 所示。 13 12345678RESET91011121314151617XTAL218XTAL1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。