基于单片机的单词记忆测试器的设计毕业论文.docx
- 文档编号:30817418
- 上传时间:2024-01-30
- 格式:DOCX
- 页数:61
- 大小:1.54MB
基于单片机的单词记忆测试器的设计毕业论文.docx
《基于单片机的单词记忆测试器的设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的单词记忆测试器的设计毕业论文.docx(61页珍藏版)》请在冰豆网上搜索。
基于单片机的单词记忆测试器的设计毕业论文
错误!
未定义书签。
矚慫润厲钐瘗睞枥庑赖。
错误!
未定义书签。
聞創沟燴鐺險爱氇谴净。
错误!
未定义书签。
残骛楼諍锩瀨濟溆塹籟。
错误!
未定义书签。
酽锕极額閉镇桧猪訣锥。
错误!
未定义书签。
彈贸摄尔霁毙攬砖卤庑。
错误!
未定义书签。
謀荞抟箧飆鐸怼类蒋薔。
错误!
未定义书签。
厦礴恳蹒骈時盡继價骚。
错误!
未定义书签。
茕桢广鳓鯡选块网羈泪。
错误!
未定义书签。
鹅娅尽損鹌惨歷茏鴛賴。
错误!
未定义书签。
籟丛妈羥为贍偾蛏练淨。
错误!
未定义书签。
預頌圣鉉儐歲龈讶骅籴。
错误!
未定义书签。
渗釤呛俨匀谔鱉调硯錦。
错误!
未定义书签。
铙誅卧泻噦圣骋贶頂廡。
错误!
未定义书签。
擁締凤袜备訊顎轮烂蔷。
错误!
未定义书签。
贓熱俣阃歲匱阊邺镓騷。
错误!
未定义书签。
坛摶乡囂忏蒌鍥铃氈淚。
错误!
未定义书签。
蜡變黲癟報伥铉锚鈰赘。
1.1单片机的现状
1.1.1单片机在我国的普及
1.2单片机的发展趋势
1.2.2单片机速度越来越快
1.2.3低电压与低电耗
1.2.4微型单片化
1.2.5大容量高性能
1.2.6串行扩展技术
第2章8051单片机芯片的特点及引脚
2.18051单片机芯片的特点
2.38051单片机的扩展及系统电路
第三章相关软件的说明
第三章相关软件的说明
3.1proteus
3.1.1proteus简介
3.1.2proteus功能介绍
3.2keil软件
第四章单词记忆测试器的设计2買鲷鴯譖昙膚遙闫撷凄。
4.1硬件模块设计2綾镝鯛駕櫬鹕踪韦辚糴。
4.1.1中央处理模块2驅踬髏彦浃绥譎饴憂锦。
4.1.2显示模块的硬件部分介绍3猫虿驢绘燈鮒诛髅貺庑。
4.1.3矩阵键盘6锹籁饗迳琐筆襖鸥娅薔。
4.2电路原理图设计
6構氽頑黉碩饨荠龈话骛。
4.3软件程序设计8輒峄陽檉簖疖網儂號泶。
4.3.1程序设计思路8尧侧閆繭絳闕绚勵蜆贅。
4.3.2矩阵键盘的程序设计9识饒鎂錕缢灩筧嚌俨淒。
4.3.3LCD12864显示模块的驱动程序10凍鈹鋨劳臘锴痫婦胫籴。
4.3.4显示字模码的提取11恥諤銪灭萦欢煬鞏鹜錦。
4.3系统软件主程序结构及其函数13鯊腎鑰诎褳鉀沩懼統庫。
4.4软件的仿真20硕癘鄴颃诌攆檸攜驤蔹。
第五章结语22阌擻輳嬪諫迁择楨秘騖。
附录单片机单词记忆测试器C程序源代码氬嚕躑竄贸恳彈瀘颔澩。
基于单片机的单词记忆测试器
摘要
本论文的研究对象是基于单片机的单词记忆测试器的设计,此单词记忆测试器可以实现单词的输入并判断输入的单词是否正确,单词背完后给出正确率。
该单片机单词记忆测试器为在现实生活中有着广泛的应用,特别是对学习英语方面有很大的作用。
釷鹆資贏車贖孙滅獅赘。
本设计以STC89C52单片机为处理器,以12854点阵液晶屏为显示器件,并使用5×6距阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,利用单片机片上FLASHROM可,储存10-20个英文单词和汉字,作为记忆测试用。
怂阐譜鯪迳導嘯畫長凉。
关键词:
单片机单词记忆测试器AT89C5212864液晶屏
第四章单词记忆测试器的设计
4.1硬件模块设计
本单词记忆测试器系统硬件部分分为三个模块:
中央处理模块、显示模块、键盘输入模块。
系统模型图如下:
图4系统硬件模块图
4.1.1中央处理模块
中央处理模块选用STC89C52单片机系统组成,电路包括:
STC89C52单片机、复位电路、时钟振荡电路。
谚辞調担鈧谄动禪泻類。
STC89C52单片机需在复位电路和时钟振荡电路组成的最小系统下工作,单片机引脚图如图5,外围电路如图6和图7所示,时钟电路采用频率采用为12MHZ的晶振,C1、C2与晶振构成了外部振荡电路。
复位电路采用电解电容与电阻串联,当系统上电时,由于电容充电,在RST端会产生一个高电平,高电平持续的时间由电容和电阻的值决定,当RESET
信号为低电平时,系统为工作状态。
STC89C52具有ISP的功能,可以通过串行口直接将程序下载到单片机内。
在下载程序状态下,RESET信号被拉高,系统进行程序下载,待程序下载完毕后,RESET重新拉低。
用户可以通过切断电源进行手动复位,或者通过重新下载新的程序进行复位。
嘰觐詿缧铴嗫偽純铪锩。
图5STC89C52的引脚排列图
2
图6时钟电路图
图7复位电路图熒绐譏钲鏌觶鷹緇機库。
4.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模块还引出了一些功能性的端口,如偏压调节输入、负压输出等。
颖刍莖蛺饽亿顿裊赔泷。
图812864模块接口定义表
显示RAM区映射情况:
对于LCD模块,了解清楚驱动控制IC当中的显存与LCD玻璃上的点的对应关系是非常重要的,这是编写LCD的驱动程序的基础。
12864液晶显示模块的显示器(玻璃)上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;驱动控制芯片当中共有65(8
Pagex8bit+1)X132个位的显示RAM区。
而显示器的显示点阵大小为64X128点,所以实际上在液晶显示模块中有用的显示RAM区为64X128个位;按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屏幕上的)。
塤礙籟馐决穩賽釙冊庫。
4.1.3矩阵键盘
要测试记忆的单词,就要有字母的输入接口,本接口设计为5×6矩阵键盘输入,接
入单片机的P1口和P3口进行键盘扫描。
最大程度地提高了单片机IO口的利用率,设计共30个接键,包括了26个英文字母以及四个功能键:
“确定”、“不认识”、“上一个”、“下一个”。
裊樣祕廬廂颤谚鍘羋蔺。
矩阵键盘如图10,由30个轻触按键按照6行5列排列,连接到P1、P3端口。
其扫描的原理是:
先将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
然后再将行线所接的单片机的I/O口作为输入端,而列线所接的I/O口则作为输出,以相同的方法读一次端口,程序中就可识别是啊个坐标的按键按下了。
仓嫗盤紲嘱珑詁鍬齊驁。
图105×6矩阵键盘
4.2电路原理图设计
电路原理图设计使用集原理图设计、PCB设计、电路仿真功能为一体的PROTUES软件。
以该软件设计的电路原理图图11。
绽萬璉轆娛閬蛏鬮绾瀧。
图11单片机单词记忆测试器电路原理图
电路设计参数:
(1)C1C2为20-30PF瓷片电容,与12M晶振组成时钟振荡电路;
(2)复位电路使用R1为10K电阻、C3为10uF电解电容;
(3)12864液晶模块与单片机P0口连接,因P0口为真正的三态门结构,因些作数据总线使用时要外接上拉电阻,可使用10K的排阻;骁顾燁鶚巯瀆蕪領鲡赙。
(4)按键如图的行相连,列相连的矩阵接法连入单片机IO口;
(5)电路的供电为5V直流电源;
(6)D1为输入错误的状态指示灯,加220欧限流电阻连到VCC,因为STC89C51单片机IO的电流灌入能力要强于电流输出能力,因此一般使IO为低电平时点亮LED灯。
瑣钋濺暧惲锟缟馭篩凉。
4.3软件程序设计
4.3.1程序设计思路
因本系统为模块化设计,为方便软件编写和移植,程序设计采用C语言,程序流程图
如下:
鎦诗涇艳损楼紲鯗餳類。
4.3.2矩阵键盘的程序设计
矩阵键盘采用5×6列与行扫描法,P1口依次接键盘的每一行,而P3口依次接键盘的每一列,程序开始先令P1全为高电平,P3口全为低电平,这样一旦矩阵键盘中有一个键按下时,就会在某一行中出现低电平,而某一列中出现高电平,程序先读P1口,以检测到
有低电平来确定行。
再使P1全为低电平,P3口全为高电平,再读P3口,以检测到低电平来确定列。
栉缏歐锄棗鈕种鵑瑶锬。
这里还要考虑按键的机械抖动问题,因为按键的机械特性,可能在按下瞬间会有一组抖动的脉冲,一般程序中采用延时方法来去抖动。
辔烨棟剛殓攬瑤丽阄应。
实现的C程序函数如下:
**键盘扫描程序
4.3.3LCD12864显示模块的驱动程序
LCD12864显示模块的程序作为显示部分的底层程序,用户可直接调用其函数来达到驱动和显示功能。
主要显示命令和显示的函数说明如下:
清显示屏:
voidClearLCD(),将LCD上的显示字符清空汉字的显示函数:
voidhz_disp(unsignedcharx,unsignedchary,unsignedcharn,unsignedcharcode*hz,bitflag);詩叁撻訥烬忧毀厉鋨骜。
其中XY为汉字的起始坐标,n为字数,hz为存储汉字字模码(后述)的地址,flag为显示为黑还是白。
英文的显示函数为:
voiden_disp(unsignedcharx,unsignedchary,unsignedcharn,unsignedcharcode*asc,unsignedchar*string,bitflag);则鯤愜韋瘓賈晖园栋泷。
其中其中XY为字母的起始坐标,n为字数,asc为存储字形码(后述)的地址,flag为显示为黑还是白。
胀鏝彈奥秘孫戶孪钇賻。
LCD12864显示一个单词的示例代码如下:
en_disp(6,0,8,Asc,"correct:
",1);//在第7行,第1列开始显示correct;鳃躋峽祷紉诵帮废掃減。
LCD12864显示一个汉字的示例代码如下:
hz_disp(0,48,1,hz1+hz_Num*32,1);//在第1行,第49列开始显示测试的汉字稟虛嬪赈维哜妝扩踴粜。
10
4.3.4显示字模码的提取
为了使LCD12864能够显示用户存储的中文汉字和英文单词,用户必须将要显示的汉字字模及英文字母字模码存入单片机存储器中,因LCD12864只能显示点阵图形,因此存储入单片机的字模码必须是通过点阵码转换而成,为了软换更方便,设计使用了字模转换软件实现汉字和英文码的取模。
陽簍埡鲑罷規呜旧岿錟。
图12中英文取字模软件界面
例如汉字“中国”,取得的字模码为:
/*--文字:
中--*/0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,沩氣嘮
戇苌鑿鑿槠谔應。
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,钡嵐縣
緱虜荣产涛團蔺。
/*--文字:
国--*/0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,懨俠劑
鈍触乐鹇烬觶騮。
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,謾饱兗
争詣繚鮐癞别瀘。
将此码存入单片机程序存储器里,使用液晶显示的函数就可方便地显示汉字或英文字
11
本单片机记忆测试系统的程序中将英文字符的字模码表以约单片机的RAM,生成的二进制文件以只读形式储在单片机的荡赚。
asc.h文件形式保存,为节
FLASHROM中。
呙铉們欤谦鸪饺竞
12
4.3系统软件主程序结构及其函数
系统主程序完成主循环和对各模块函数的调用,调用的文件包括:
reg52.h、asc.h、12864.h,其中reg52.h是8051内核单片机的标准头文件,定义了单片机内部各寄存器的地址,使用户编程更方便;asc.h存储了本单词记忆测试器的单词和中文汉字字模块,供显示函数调用,而12864.h为LCD12864显示屏的底层驱动程序,包括了屏显示的指令函数和显示中英文的函数。
莹谐龌蕲賞组靄绉嚴减。
在KEILuV3环境下将主程序文件和reg52.h、asc.h、12864.h放在同一工程工作组中,以便主程序调用,如图13。
麸肃鹏镟轿騍镣缚縟糶。
图13keil下的程序工程文件
13
主程序的函数:
主程序首先进行存储变量的定义:
bitERROR;//输入字符错误标志位,输入错误为1
bitresult;//输入的最终结果对错的标志位,为0是正确
bitverify;//标志按过一次确认键
sbitERR=P2^7;//P2.7口接一个指示灯警告输入错误
ucharcorrectNUM;//统计测试正确的单词数,即得分
ucharcodeSL[10]={4,4,5,3,2,4,4,3,4,3};
//存储各测试单词的长度,如果输入的单词长度与存储的不同,也为错误
为能动态地显示测试的单词,先将要测试的单词存在一个二维数组中,显示了该数组中的字符时,12864.h中的显示函数会调用相应字符的字模码(asc.h中);納畴鳗吶鄖禎銣腻鰲锬。
/*****************************************
/**存储要测试的单词,放在ROM中
/****************************************/
ucharcodeS[10][5]={"tree",//
树
"rain",
//
雨
"water",
//
水
"fly",
//
飞
"go",
//
去
"fish",
//
鱼
"snow",
//
雪
"eat",
//
吃
"rice",
//
米
"ice",
//
冰
};
该二维数组为行*列10*5,即10行5列,
10行表示有10个单词,实际根据存储ROM
的大小,可以增加单词数;列数表示单词在存储器中占的字符数,以最长单词(5个字符)定义,不足5个字符的单词后补空格表示。
風撵鲔貓铁频钙蓟纠庙。
前节介绍过键盘的输入是通过矩阵扫描的方法,通过矩阵扫描可使单片机找到按键所在的某行某列,但要得到一个英文字母值,还得在单片机返回的某行某列位置预先定义个字母值,因此5*6矩阵键盘的整个返回字母表可定义一个二维数组存储:
灭嗳骇諗鋅猎輛觏馊藹。
14
/*****************************************
/**存储键盘的字母值,放在ROM中
ucharcodetab1[6][5]={{'a','b','c','d','e'},{'f','g','h','i','j'},{'k','l','m','n','o'},{'p','q','r','s','t'},{'u','v','w','x','y'},{'z',1,2,3,4}};
例如在按下键盘时,单片机返回键盘位置为第二行第三列,就可从上表中查出是对应位置的字母。
键盘扫描函数返回的是键值。
铹鸝饷飾镡閌赀诨癱骝。
key=tab1[hang][lie];
//LCD12864初始化
//清屏
在第3行第21列显示"INPUTWORD:
"趕
0则为黑底白字,即反显
在第5行,第5列开始显示">"夹覡闾辁駁档
在第7行,第1列开始显示"correct:
"视絀在第7行第81列显示"00/10"偽澀锟攢鴛擋
进入主程序后,先对LCD12864屏进行初始化和清屏操作,然后在LCD12864屏上显示单片机单词记忆测试器的静态的图文,需要动态刷新的字符则在主循环中进行。
攙閿频嵘陣澇諗谴隴泸。
LCD12864_init();
ClearLCD();
en_disp(2,1,11,Asc,"INPUTWORD:
",1);//輾雏纨颗锊讨跃满賺。
//最后的“1”表示显示为白底黑字,如是
en_disp(4,1,1,Asc,">",1);//驀迁锬減。
en_disp(6,0,8,Asc,"correct:
",1);//
镘鸸鲚鐘脑钧欖粝。
en_disp(6,80,5,Asc,"00/10",1);//
緬铹鈞錠。
LCD12864的显示效果如下,此时系统进入单词输入测试就绪状态
15
16
在系统进入单词输入测试就绪状态后,主程序即进入while
(1)的主循环中,循环进行键盘扫描,并判断键盘输入值,再与待测试的单词进行比较,如果输入的字符和字符长度均与被测试的单词一致,则显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 单词 记忆 测试 设计 毕业论文
![提示](https://static.bdocx.com/images/bang_tan.gif)