基于单片机的单词记忆测试器的课程设计

上传人:876****10 文档编号:142209306 上传时间:2020-08-17 格式:DOC 页数:42 大小:1.09MB
返回 下载 相关 举报
基于单片机的单词记忆测试器的课程设计_第1页
第1页 / 共42页
基于单片机的单词记忆测试器的课程设计_第2页
第2页 / 共42页
基于单片机的单词记忆测试器的课程设计_第3页
第3页 / 共42页
基于单片机的单词记忆测试器的课程设计_第4页
第4页 / 共42页
基于单片机的单词记忆测试器的课程设计_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《基于单片机的单词记忆测试器的课程设计》由会员分享,可在线阅读,更多相关《基于单片机的单词记忆测试器的课程设计(42页珍藏版)》请在金锄头文库上搜索。

1、基于单片机的单词记忆测试器的课程设计 作者: 日期:目 录第一章 单词记忆测试器的设计11.1 硬件模块设计11.1.1中央处理模块11.1.2 显示模块的硬件部分介绍21.1.3 矩阵键盘51.2 电路原理图设计61.3 软件程序设计71.3.1 程序设计思路71.3.2矩阵键盘的程序设计81.3.3 LCD12864显示模块的驱动程序91.3.4 显示字模码的提取101.3 系统软件主程序结构及其函数111.4 软件的仿真16第二章 结语18附录 单片机单词记忆测试器C程序摘要本论文的研究对象是基于单片机的单词记忆测试器的设计,此单词记忆测试器可以实现单词的输入并判断输入的单词是否正确,单

2、词背完后给出正确率。该单片机单词记忆测试器为在现实生活中有着广泛的应用,特别是对学习英语方面有很大的作用。 本设计以STC89C52单片机为处理器,以12854点阵液晶屏为显示器件,并使用56距阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,利用单片机片上FLASH ROM,可储存10-20个英文单词和汉字,作为记忆测试用。关键词: 单片机 单词记忆测试器 AT89C52 12864液晶屏第一章 单词记忆测试器的设计1.1 硬件模块设计 本单词记忆测试器系统硬件部分分为三个模块:中央处理模块、显示模块、键盘输入模块。系统模型图如下:单片机中央处理模块56矩阵键盘模块LCD128

3、64液晶显示模块图1 系统硬件模块图1.1.1中央处理模块 中央处理模块选用STC89C52单片机系统组成,电路包括:STC89C52单片机、复位电路、时钟振荡电路。STC89C52单片机需在复位电路和时钟振荡电路组成的最小系统下工作,单片机引脚图如图2,外围电路如图3和图4所示,时钟电路采用频率采用为12MHZ的晶振,C1、C2与晶振构成了外部振荡电路。复位电路采用电解电容与电阻串联,当系统上电时,由于电容充电,在RST端会产生一个高电平,高电平持续的时间由电容和电阻的值决定,当RESET信号为低电平时,系统为工作状态。 STC89C52具有ISP的功能,可以通过串行口直接将程序下载到单片机

4、内。在下载程序状态下,RESET信号被拉高,系统进行程序下载,待程序下载完毕后,RESET重新拉低。用户可以通过切断电源进行手动复位,或者通过重新下载新的程序进行复位。 图2 STC89C52的引脚排列图 图3 时钟电路图 图4复位电路图1.1.2 显示模块的硬件部分介绍显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏基础上集成了控制器kS0108,用户只需设计好接口程序,就可让模块显示出各种字符和图像。通常我们所见到的 LCD 模块,分为几部分:LCM(玻璃)、背光、PCB 板;而背光和PCB板部分其实是可有可无的,视具体的LCD 模块而定。点阵的LCD 模块按照驱动控制器的集成

5、方式,大可分为两种:COB 和COG;COG 其实就是将驱动控制IC 集成到了玻璃里面,这样的而后面的PCB 板上其实只是一些驱动控制IC 无法集成的电容电阻而已;COB 也就是把驱动控制IC 焊接在LCD 模块后面的PCB 板上。12864 为一块128X64 点阵的LCD 显示模块,模块上的 LCM 采用COG 技术将控制(包括显存)、驱动器集成在LCM 的玻璃上,接口简单、操作方便;为方便用户的使用,在LCM 的基础上设计了12864 模块,将模块所必需的外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。12864 模块与各种MCU 均可进行方便简单的接口操作。LCD 的接

6、口:一般来说,LCD 模块(带有驱动控制器)的接口多为总线的接口,不是6800 就是8080,或者是串行SPI(及类SPI 时序);除了这些总线的端口外,有的LCD 模块还引出了一些功能性的端口,如偏压调节输入、负压输出等。图5 12864 模块接口定义表显示 RAM 区映射情况:对于 LCD 模块,了解清楚驱动控制IC 当中的显存与LCD 玻璃上的点的对应关系是非常重要的,这是编写LCD 的驱动程序的基础。12864 液晶显示模块的显示器(玻璃)上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;驱动控制芯片当中共有65(8 Page x 8 bit+1)X 132 个位的显示RAM 区

7、。而显示器的显示点阵大小为64X128 点,所以实际上在液晶显示模块中有用的显示RAM 区为64 X 128 个位;按byte 为单位划分,共分为8 个Page,每个Page 为8 行,而每一行为128 个位(即128 列)。驱动控制芯片的显示RAM区每个byte的数据对应屏上的点的排列方式为:纵向排列,低位在上高位在下;如图 5所示图5 驱动控制芯片的显示RAM区12864 液晶显示模块的显示屏上的每一个点都对应有控制器片内的显示缓存RAM中的一个位,显示屏上64X128 个点分别对应着显示RAM的8 个Page,每一个Page有128 个byte的空间对应。因此可知显示RAM区中的一个Pa

8、ge空间对应8 行的点,而该Page中的一个byte数据则对应一列(8 个点)。图6为显示RAM区与显示屏的点映射图:图6 显示RAM区与显示屏的点映射图行、列地址:用户如要点亮 LCD 屏上的某一个点时,实际上就是对该点所对应的显示RAM 区中的某一个位进行置1 操作;所以就要确定该点所处的行地址、列地址。从上图中可以看出,MzL02-12864 液晶显示模组的行地址实际上就是Page 的信息,每一个Page 应有8 行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page 中的一个Byte 对应的是一列(8行,即8 个点),达128 列。可以根据这样的关系在程序中控制 LCD 显示屏

9、的显示。注意:MzL02-12864 的显示缓存RAM 区实际上比模块上的显示器所对应的RAM 区要大;而LCD 模块具体设置Page(有时也称页)时,屏上的位置与驱动控制IC 当中的哪里的RAM区对应,还与驱动控制IC 与屏的连接有关;所以,实际在使用时,请参考所提供的范例设置(主要是设置COM 反向扫描、SEG 设置为正向扫描,以此设置方法,则每个Page 中的前三列以及最后一列是不对应在LCD 屏幕上的)。1.1.3 矩阵键盘 要测试记忆的单词,就要有字母的输入接口,本接口设计为56矩阵键盘输入,接入单片机的P1口和P3口进行键盘扫描。最大程度地提高了单片机IO口的利用率,设计共30个接

10、键,包括了26个英文字母以及四个功能键:“确定”、“不认识”、“上一个”、“下一个”。 矩阵键盘如图10,由30个轻触按键按照6行5列排列,连接到P1、P3端口。其扫描的原理是:先将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。然后再将行线所接的单片机的I/O口作为输入端,而列线所接的I/O口则作为输出,以相同的方法读一次端口,程序中就可识别是啊个坐标的按键按下了。图7 56矩阵键盘1.2 电路原理图设计 电

11、路原理图设计使用集原理图设计、PCB设计、电路仿真功能为一体的PROTUES软件。以该软件设计的电路原理图图8。图8 单片机单词记忆测试器电路原理图电路设计参数:(1) C1 C2 为20-30PF瓷片电容,与12M晶振组成时钟振荡电路;(2) 复位电路使用R1为10K电阻、C3为10uF电解电容;(3) 12864液晶模块与单片机P0口连接,因P0口为真正的三态门结构,因些作数据总线使用时要外接上拉电阻,可使用10K的排阻;(4) 按键如图的行相连,列相连的矩阵接法连入单片机IO口;(5) 电路的供电为5V直流电源;(6) D1为输入错误的状态指示灯,加220欧限流电阻连到VCC,因为STC

12、89C51单片机IO的电流灌入能力要强于电流输出能力,因此一般使IO为低电平时点亮LED灯。1.3 软件程序设计1.3.1 程序设计思路因本系统为模块化设计,为方便软件编写和移植,程序设计采用C语言,程序流程图如下:1.3.2矩阵键盘的程序设计矩阵键盘采用56 列与行扫描法,P1口依次接键盘的每一行,而P3口依次接键盘的每一列,程序开始先令P1全为高电平,P3口全为低电平,这样一旦矩阵键盘中有一个键按下时,就会在某一行中出现低电平,而某一列中出现高电平,程序先读P1口,以检测到有低电平来确定行。再使P1全为低电平,P3口全为高电平,再读P3口,以检测到低电平来确定列。这里还要考虑按键的机械抖动

13、问题,因为按键的机械特性,可能在按下瞬间会有一组抖动的脉冲,一般程序中采用延时方法来去抖动。实现的C程序函数如下:/* 键盘扫描程序*/unsigned char kbscan() /键盘扫描 uchar hang,lie,key; /P1连行,P3连列if(P1!=0xFF|P3!=0) /按键去抖动 delayms(5); /延时5msif(P1!=0xFF|P3!=0)switch(P1&0xFF) /P1 扫行 case 0xFE:hang=5;break; /P1.0为第6行 case 0xFD:hang=4;break; /P1.1为第5行 case 0xFB:hang=3;break; /P1.2为第4行 case 0xF7:hang=2;break; /P1.3为第3行 case 0xEF:hang=1;break; /P1.4为第2行 case 0xDF:hang=0;break; /P1.5为第1行 P1=0; /P1全低电平 P3=0xFF;/P3全高电平 switch(P3&0xFF)case 0xFE:lie=4;break; /P1.0为第5列case 0xFD:lie=3;break; /P0.5为第4列case 0xFB:lie=2;break;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号