基于单片机的单词记忆测试器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的单词记忆测试器

目录

第一章单词记忆测试器的设计 (2)

1.1 硬件模块设计 (2)

1.1.1中央处理模块 (2)

1.1.2 显示模块的硬件部分介绍 (3)

1.1.3 矩阵键盘 (6)

1.2 电路原理图设计 (6)

1.3 软件程序设计 (8)

1.3.1 程序设计思路 (8)

1.3.2矩阵键盘的程序设计 (8)

1.3.3 LCD12864显示模块的驱动程序 (9)

1.3.4 显示字模码的提取 (11)

1.3 系统软件主程序结构及其函数 (12)

1.4 软件的仿真 (17)

第二章结语 (19)

附录单片机单词记忆测试器C程序源代码

基于单片机的单词记忆测试器

摘要

本论文的研究对象是基于单片机的单词记忆测试器的设计,此单词记忆测试器可以实现单词的输入并判断输入的单词是否正确,单词背完后给出正确率。该单片机单词记忆测试器为在现实生活中有着广泛的应用,特别是对学习英语方面有很大的作用。

本设计以STC89C52单片机为处理器,以12854点阵液晶屏为显示器件,并使用5×6距阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,利用单片机片上FLASH ROM,可储存10-20个英文单词和汉字,作为记忆测试用。

关键词:单片机单词记忆测试器 AT89C52 12864液晶屏

第一章 单词记忆测试器的设计

1.1 硬件模块设计

本单词记忆测试器系统硬件部分分为三个模块:中央处理模块、显示模块、键盘输入模块。系统模型图如下:

图4 系统硬件模块图

1.1.1中央处理模块

中央处理模块选用STC89C52单片机系统组成,电路包括:STC89C52单片机、复位电路、时钟振荡电路。

STC89C52单片机需在复位电路和时钟振荡电路组成的最小系统下工作,单片机引脚图如图5,外围电路如图6和图7所示,时钟电路采用频率采用为12MHZ 的晶振,C1、C2与晶振构成了外部振荡电路。复位电路采用电解电容与电阻串联,当系统上电时,由于电容充电,在RST 端会产生一个高电平,高电平持续的时间由电容和电阻的值决定,当RESET 信号为低电平时,系统为工作状态。 STC89C52具有ISP 的功能,可以通过串行口直接将程序下载到单片机内。在下载程序状态下,RESET 信号被拉高,系统进行程序下载,待程序下载完毕后,RESET 重新拉低。用户可以通过切断电源进行手动复位,或者通过重新下

载新的程序进行复位。

图5 STC89C52的引脚排列图

图6 时钟电路图图7复位电路图

1.1.2 显示模块的硬件部分介绍

显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏基础上集成了控制器kS0108,用户只需设计好接口程序,就可让模块显示出各种字符和图像。

通常我们所见到的 LCD 模块,分为几部分:LCM(玻璃)、背光、PCB 板;而背光和PCB板部分其实是可有可无的,视具体的LCD 模块而定。点阵的LCD 模块按照驱动控制器的集成方式,大可分为两种:COB 和COG;COG 其实就是将驱动控制IC 集成到了玻璃里面,这样的而后面的PCB 板上其实只是一些驱动控制IC 无法集成的电容电阻而已;COB 也就是把驱动控制IC 焊接在LCD 模块后面的PCB 板上。

12864 为一块128X64 点阵的LCD 显示模块,模块上的 LCM 采用COG 技术将控制

(包括显存)、驱动器集成在LCM 的玻璃上,接口简单、操作方便;为方便用户的使用,在LCM 的基础上设计了12864 模块,将模块所必需的外围电容电阻集成到模块上,

并引出多种形式的引线接口方便用户使用。12864 模块与各种MCU 均可进行方便简

单的接口操作。

LCD 的接口:

一般来说,LCD 模块(带有驱动控制器)的接口多为总线的接口,不是6800 就是8080,或者是串行SPI(及类SPI 时序);除了这些总线的端口外,有的LCD 模块还引出了一些功能性的端口,如偏压调节输入、负压输出等。

图8 12864 模块接口定义表

显示 RAM 区映射情况:

对于 LCD 模块,了解清楚驱动控制IC 当中的显存与LCD 玻璃上的点的对应关系是非常重要的,这是编写LCD 的驱动程序的基础。12864 液晶显示模块的显示器(玻璃)上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;驱动控制芯片当中共有65(8 Page x 8 bit+1)X 132 个位的显示RAM 区。而显示器的显示点阵大小为64X128 点,所以实际上在液晶显示模块中有用的显示RAM 区为64 X 128 个位;按byte 为单位划分,共分为8 个Page,每个Page 为8 行,而每一行为128 个位(即128 列)。

驱动控制芯片的显示RAM区每个byte的数据对应屏上的点的排列方式为:纵向排列,低位在上高位在下;如图 8所示

图8 驱动控制芯片的显示RAM区

12864 液晶显示模块的显示屏上的每一个点都对应有控制器片内的显示缓存RAM中

的一个位,显示屏上64X128 个点分别对应着显示RAM的8 个Page,每一个Page有128 个byte的空间对应。因此可知显示RAM区中的一个Page空间对应8 行的点,而该Page 中的一个byte数据则对应一列(8 个点)。图9 为显示RAM区与显示屏的点映射图:

图9 显示RAM区与显示屏的点映射图

行、列地址:

用户如要点亮LCD 屏上的某一个点时,实际上就是对该点所对应的显示RAM 区中的某一个位进行置1 操作;所以就要确定该点所处的行地址、列地址。从上图中可以看出,MzL02-12864 液晶显示模组的行地址实际上就是Page 的信息,每一个Page 应有8 行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page 中的一个Byte 对应的是一列(8行,即8 个点),达128 列。可以根据这样的关系在程序中控制LCD 显示屏的显示。注意:MzL02-12864 的显示缓存RAM 区实际上比模块上的显示器所对应的RAM 区要大;而LCD 模块具体设置Page(有时也称页)时,屏上的位置与驱动控制IC 当中的哪里的RAM区对应,还与驱动控制IC 与屏的连接有关;所以,实际在使用时,请参考所提供的范例设置(主要是设置COM 反向扫描、SEG 设置为正向扫描,以此设置方法,则每个Page 中的前三列以及最后一列是不对应在LCD 屏幕上的)。

相关文档
最新文档