基于单片机的键盘控制设计论文内容摘要:

是对 8751片内 ROM 固化程序时,作为施加较高编程电压( 12V~21V)的输入端 [7]。 输入输出引脚: P0P3: 4 个 8 位双向输入输出端口,每个端口都有锁存器 、输出驱动器和输入缓冲器。 4 个端口都可以做输入输出口使用,其中, P0 和 P2 通常用于对外部存储器的访问。 在这种方式下,把 P0 口作为地址 /数据总线使用,分时输出外部存储器的地址和传送 8 位数据。 当扩充外部存储器的地址为 16 位时, P2 口作为地址总线的高 8 位地址使用。 (1)P0 口 (3932 脚 ): 统称为 P0 口。 在不接片外存储器与不扩展 I/O 口时,可作为准双向输入 /输出口。 在接有片外存储器或扩展 I/O 口时, P0 口分时复用为低 8位地址总线和双向数据总线。 (2) P1 口 (18 脚 ): 统称为 P1 口,可作为准双向 I/O 口使用。 对于 52 子系列, 与 还有第二功能: 可用作定时器 /计数器 2 的计数脉冲输入端 T2, 可用作定时器 /计数器 2 的外部控制端 T2EX。 (3) P2 口 (2128 脚 ): 统称为 P2 口,一般可作为准双向 I/O 口使用;在接有片外存储器或扩展 I/O 口且寻址范围超过 256 字节时, P2 口用作高 8 位地址总线。 (4) P3 口 (1017 脚 ): 统称为 P3 口。 除作为准双向 I/O 口使用外,还可以将每一位用于第二功能,而且 P3 口的每一条 引脚均可独立定义为第一功能的输入输出或第二功能 [7]。 AT89C51 单片机 工作的基本时序 机器周期和指令周期 : ( 1) 振荡周期 : 也称时钟周期 , 是指为单片机提供时钟脉冲信号的振荡源的周期。 ( 2) 状态周期 : 每个状态周期为时钟周期的 2 倍 , 是振荡周期经二分频后得到的。 ( 3) 机器周期 : 一个机器周期包含 6 个状态周期 S1~S6, 也就是 12 个时钟周期。 在一个机器周期内 , CPU 可以完成一个独立的操作。 ( 4) 指令周期 : 它是指 CPU 完成一条操作所需的全部时间。 每条指令执行时间都是有一个 或几个机器周期组成。 MCS 51 系统中 , 有单周期指令、双周期指令和四周期指令。 AT89C51 单片机 的内部结构及存储器配置 : 基于单片机的键盘控制设计 7 AT89C51 单片机的内部结构 图 23 MCS51 的内部结构框图 CPU:由运算和控制逻辑组成,同时还包括中断系统和部 分外部特殊功能寄存器; RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据; ROM:用以存放程序、一些原始数据和表格; I/O 口:四个 8 位并行 I/O 口,既可用作输入,也可用作输出; T/C:两个定时 /记数器,既可以工作在定时模式,也可以工作在记数模式。 AT89C51 单片机的存储器配置 ( b) 图 24 单片机的内部存储器配置 基于单片机的键盘控制设计 8 从用户的角度存储器分 3 个逻辑地址空间: ( 1)片内外统一编址的 64KB 程序存储器地址空间 0000H~FFFFH 即( a)图; ( 2) 256B 的片内数据存储器地址空间 00H~FFH(包括低 128B 的内部 RAM 地址00H~7FH 和高 128B 的特殊功能寄存器地址空间)即( b)图; ( 3) 64KB 的外部数据存储器或扩展 I/O 接口地址空间 0000H~FFFFH; ( 4) 画出 RAM 的组成 ; RAM 共有 256 个单元,按功能分为两部分低 128 单元(单元地址 00H~7FH)和高128 单元(单元地址 80H~FFH)。 其中高 128 单元是供给专用寄存器使用,因这些寄存器的功能已作为专门规定故此称之为特殊功能寄存器 SFR—11 个 SFR 有位寻址作用,而且要 说明低 128 单元是单片机的真正 RAM 存储器 [8]。 表 RAM 的组成 30H~7FH 通用 RAM 区 20H~2FH 位寻址区( 00H~7FH) 18H~1FH 工作寄存器 3 区( R7~R0) 10H~17H 工作寄存器 2 区( R7~R0) 08H~0FH 工作寄存器 1 区( R7~R0) 00H~07H 工作寄存器 0 区 (R7~R0) 低 128 单元是单片机的真正 RAM 存储器,按其用途划分为三个区域: ⒈ 通用寄存器区 通用寄存器为 CPU 提供了就近数据存储的便利,有利于提高单片机的运算速 度。 此外,使用通用存储器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。 ⒉ 位寻址区 内部 RAM 的 20H~2FH 单元,即可作为一般 RAM 单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。 ⒊ 工作寄存区 用户存储数据的。 AT89C51 单片机键盘设计方案论证 ( 1)此键盘利用 AT89C51 单片机的 P1 口接 4*4 矩阵式键盘, 以 - 作输入线,以 - 作输出线;在数码管上显示每个按键的 “0- F”序号。 其中需要接电阻起到电路保护作用。 基于单片机的键盘控制设计 9 图 25 键盘设计 ( 2)以 37,38,39 引脚接其显示电路,以 22 号引脚接其发声电路,以起到报警或者提示作用。 ( 3) 本设计既能实现常规数字的显示,同时还能实现作为电子琴,不同的键表示不同的音符;还能够实现简单计算功能。 其中 ,键 C,D,E,F 分别作为计算功能中的加减乘除运算符 ,而 A 作为复位 键 ,B 则作为数字计算及电子琴之间的功能切换按钮。 ( 4) 我们利用单片机可以用很少元件实现相同功能,而且单片机性能稳定,可操作性强。 可以只用 P0 口连接上拉电阻,完成驱动 LED 的功能,利用 P3 口的 XTAL1晶振电路 , XTAL2 接移位脉冲做时钟信号。 利用单片机程序判断按键是否有效,利用74LS164 移位寄存 8 段数码管,实现 按键数字 显示, 当切换键盘控制功能时启动 蜂鸣器 ,同时发光二极管发光。 通过单片机实现功能可以更人性化,只需单电源供电更方便, 容易实现。 电路结构简单,外围扩展的电路不是很多,锻炼我们所学的知识应用 到现实生活当中。 为我们提供实践的机会。 单片机是电子专业发展的方向,更好的使用单片机可以是我们的产品小型化,使用更方便,性能更稳定,功能更齐全,所以我们选用单片机加一定的外围设备实现本次课程设计的要求 [8]。 基于单片机的键盘控制设计 10 3 系统硬件设计与实现 k5K2K6LS1SpeakerK11234567813121514RESET9EA/VF311716XLAT119393837363534333221222324252627281011ALE/F30PSEN29XLAT218MCU8051VSS40VCC208051R5DS4LED1+5V1 2XTALC130pFC230pFR61KC310pFQ12N3904K3K4K7 K8K9K13K10K14K11K15K12K165KR15KR25KR35KR4KEY+5+5K1f2g3e4d5K6c8DP7b9a10DS1K1f2g3e4d5K6c8DP7b9a10DS2K1f2g3e4d5K6c8DP7b9a10DS3Q42N3906Q22N3906Q32N3906+5 图 31 设计原理图 AT89C51 单片机 的最小系统设计 最小系统 设计 图 32 51 单片机的最小系统图 基于单片机的键盘控制设计 11 时钟频率电路的设计 单片机必须在时钟的驱动下才能工作 .在单片机内部有一个时钟振荡电路 ,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元 ,决定单片机的工作速度。 图 33 外部振荡源电路 一般选用石英晶体振荡器。 此电路在加电大约延迟 10ms 后振荡器起振 ,在 XTAL2引脚产生幅度为 3V 左右的正弦波时钟信号 ,其振荡频率主要由石英晶振的频率确定。 电路中两个电容 C1,C2 的作用有两个 :一是帮助振荡器起振。 二是对振荡器的频率进行微调。 C1,C2 的典型值为 30PF。 单片机在工作时 ,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。 其大小是时钟信号频率的倒数 ,常用 fosc 表示。 如时钟频率为 12MHz,即 fosc=12MHz,则时钟周期为 1/12181。 s。 本设计选用 f=。 复位电路的设计 复位方式比较 使 CPU 进入初始状态,从 0000H 地址开始执行程序的过程叫系统复位。 从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位 [9]。 硬件复位必须通过 CPU 外部的硬件电路给 CPU 的 RESET 端加上足够时间的高电位才能实现。 上电复位,人工按钮复位和硬件看门狗复位均为硬件复位。 硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。 但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。 软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H 地址开始执行。 对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。 而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。 由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性。 复位方式选择 基于单片机的键盘控制设计 12 为便于人工操作,及令设计更人性化。 本设计选择手动硬件复位方式, 因而加上手动复位按钮, 其设计原理图如图所示, 图 34 复位电路 数码管的结构 数码管由 7 个发光二极管组成 ,行 成一个日字形 ,它门可以共阴极 ,也可以共阳极 .通过解码电路得到的数码接通相应的发光二极而形成相应的字 ,这就是它的工作原理 . 基本的半导体数码管是由 7 个条状的发光二极管( LED)按图 1 所示排列而成的,可实现数字 0~ 9及少量字符的显示。 另外为了显示小数点,增加了 1 个点状的发光二极管,因此数码管就由 8 个 LED 组成,我们分别把这些发光二极管命名为 a,b,c,d,e,f,g,dp。 其中数码管的显示可以分为两种:静态显示和动态显示。 静态显示的段选位和位选位均单独连接,因此占用的 I/O 接口多,无法扩展多个数码管,在这种采用这种方式,必须要给 LED 恒定的电压,要求电压一直保持,所以一般在 LED 和单片机之间加锁存器,这种 显示方式亮度高,编程较简单,结构清晰,管理也较简单,占用的 CPU 时间少。 ② 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8 个显示笔划 a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共端 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是 哪 个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管选通控制打开,该位就显示出字形,没 有选通的数码管就不会亮。 通过分时轮流控制各个数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位数码管的点亮时间为 1~ 2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更低 [10]。 从电路上,按数码管的接法不同又分为共阴和共阳两种。 图 11 是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是 它们的电源极性不同而已。 其数码管基于单片机的键盘控制设计 13 的外形如下图所示: 图 35 数码管的共阴和共阳极接法 共阴数码管是指将所有。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。