毕业论文-基于单片机的单词记忆器的设计与实现_第1页
毕业论文-基于单片机的单词记忆器的设计与实现_第2页
毕业论文-基于单片机的单词记忆器的设计与实现_第3页
毕业论文-基于单片机的单词记忆器的设计与实现_第4页
毕业论文-基于单片机的单词记忆器的设计与实现_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于单片机的单词记忆测试器的设计与实现系 所:电子工程系 专 业:电子信息工程(微电子制造方向) 学生姓名: 学生学号: 指导教师: 导师职称:讲师 完成日期:2014年4月28日 大连东软信息学院Dalian Neusoft University of Information大连东软信息学院毕业设计(论文) 摘要 IV基于单片机的单词记忆测试器的设计与实现摘 要社会越来越多重视英语的学习,单词记忆的多少在很大程度上决定了英语成绩的好坏,不少的学生也反映记不住单词。因此单词记忆测试器在目前的市场上层出不穷。这些产品都有一个共同的特点:都是以

2、单片机为基础演变开发而来。因此,以单片机为基础设计单词记忆测试器是基础,同时这对切实掌握单片机相关知识具有重要的理论和实际意义。本单词记忆测试器系统硬件部分分为三个模块:中央处理模块、显示模块、键盘输入模块。中央处理模块选用AT89S52单片机系统组成,电路包括:AT89S52单片机、复位电路、时钟振荡电路。显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏在基础上集成了控制器KS0108,用户只需设计好接口程序,就可让模块显示出各种字符和图像。关键词:AT89S52,点阵液晶屏,单词记忆测试器大连东软信息学院毕业设计(论文) AbstractDesign and Implement

3、ation of Word Memory Tester on MicrocontrollerAbstractMore and more emphasis on social learning English, Many words of memory largely determine their English is good or bad, many students also reflected not remember words. So word memory tester emerging in the current market. These products have a c

4、ommon characteristic: both are based microcontroller development evolved from. Therefore, microcontroller-based design is the basis of the word memory test, and this has important theoretical and practical significance for the effective control and microcontroller-related knowledge.The word memory t

5、est system hardware part is divided into three modules: a central processing module, display module, a keyboard input module. The central processing module selection AT89S52 microcontroller system components, circuit includes: AT89S52 microcontroller, reset circuit, a clock oscillator circuit.Monoch

6、rome dot-matrix display module 12864 LCD module, dot matrix LCD screen on the basis of the integrated controller KS0108, the user simply good design interface program, so that the module can display a variety of characters and images.Key words: AT89S52, Dot matrix LCD screen, Word memory tester大连东软信

7、息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc386402518 h I第1章绪 论 PAGEREF _Toc386402519 h 11.1 研究现状 PAGEREF _Toc386402520 h 11.2 研究的目的与意义 PAGEREF _Toc386402521 h 11.3 研究的特色和预期成果 PAGEREF _Toc386402522 h 2第2章关键技术介绍 PAGEREF _Toc386402523 h 32.1 关键技术一:单片机 PAGEREF _Toc386402525 h 32.2 关键技术二:点阵液晶屏显示原理 PAG

8、EREF _Toc386402526 h 32.3 关键技术三:行列式键盘 PAGEREF _Toc386402526 h 3第3章系统分析 PAGEREF _Toc386402527 h 43.1 构架概述 PAGEREF _Toc386402528 h 43.1.1 功能构架 PAGEREF _Toc386402529 h 43.1.2 模块需求描述 PAGEREF _Toc386402530 h 43.2 系统任务的可行性分析 PAGEREF _Toc386402532 h 53.2.1 技术可行性 PAGEREF _Toc386402533 h 53.2.2 系统经济性分析 PAGER

9、EF _Toc386402534 h 6第4章系统设计 PAGEREF _Toc386402535 h 74.1 设计指导思想和原则 PAGEREF _Toc386402536 h 74.1.1 先进性 PAGEREF _Toc386402537 h 74.1.2 可靠性及安全性 PAGEREF _Toc386402538 h 74.2 构架概述 PAGEREF _Toc386402539 h 74.3 硬件设计 PAGEREF _Toc386402540 h 74.3.1 单片机与外围存储器连接电路设计 PAGEREF _Toc386402541 h 74.3.2 键盘模块设计 PAGERE

10、F _Toc386402542 h 84.3.3 显示模块设计 PAGEREF _Toc386402543 h 94.4 系统控制流程 PAGEREF _Toc386402544 h 11第5章系统实现 PAGEREF _Toc386402545 h 125.1 环境配置 PAGEREF _Toc386402546 h 125.2 软件系统实现 PAGEREF _Toc386402547 h 125.2.1 软件设计流程 PAGEREF _Toc386402548 h 125.2.2 系统主程序代码 PAGEREF _Toc386402549 h 135.2.3 扫描键盘程序代码 PAGERE

11、F _Toc386402550 h 155.3 硬件系统实现 PAGEREF _Toc386402551 h 16第6章系统测试 PAGEREF _Toc386402552 h 186.1 软件调试 PAGEREF _Toc386402553 h 186.2 硬件调试 PAGEREF _Toc386402554 h 18第7章结论 PAGEREF _Toc386402556 h 19参考文献 PAGEREF _Toc386402557 h 20致 谢 PAGEREF _Toc386402558 h 21附 录 PAGEREF _Toc386402559 h 22大连东软信息学院毕业设计(论文)

12、- 第1章绪 论1.1 研究现状单片机诞生于20世纪70年代末,经历了SCM(Single Chip Micyoco)单片机、MCU(Microprogrammed Control Unit)微程序控制器、SoC(System on a Chip)片上系统三大阶。单片机是嵌入式系统发展路上的一座里程碑,他代表了SCM向MCU发展的一个重要标志,因此,用于专业方向开发的单片机形成了SoC化趋势的发展。随着微电子技术的发展,基于单片机的应用系统设计也有了巨大的飞跃。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。在我们生活的各个领域,都离不开单片机。大到军事工业、航空航天

13、,小到生活中的家用电器与玩具都离不开单片机。单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是,要求也越来越高。在单片机应用中,可靠性是首要因素为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上均提高了单片机的可靠性。在这个社会上人们越来越重视英语的学习,单词记忆的多少在很大程度上决定了英语成绩的好坏,不少的学生也反映记不住单词。因此,很多家长会给自己的孩子购买一个记忆单词的工具,目前这类产品在市场上层出不穷。这些产品都有一个共同的

14、特点:都是以单片机为基础演变开发而来。因此,以单片机为基础设计单词记忆测试器是很基础的一步。1.2 研究的目的与意义随着经济的发展,科技的突飞猛进,芯片技术也取得了飞速发展,使单片机技术在各种民用和工业测控等领域得到了更为广泛的应用。单片机凭借其低成本、高性能的不可替代优势,已经成为微电脑控制的主力军。据统计,我国的单片机年需求量已达2亿片以上,且每年以大约15%的速度增长,发展迅速的单片机行业有着广阔的前景。相比于发展迅猛的单片机行业,国内的单片机设计开发从业人员缺口很大。据统计,到2015年,我国单片机开发从业人员将达350万人,而目前的从业者大约只有150万人,200万的人才缺口正驱动着

15、大量的人员加入这个庞大的群体。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,因此通过单片机对单词记忆测试器的设计和研究,对于切实掌握单片机相关知识具有重要的理论和实际意义。最终能够掌握单片机系统设计和软硬件设计的相关知识,能够完成系统划分和详细设计,能够编写软件控制系统运行。掌握单片机开发的调试方法。1.3 研究的特色和预期成果选题特色:目前英语的学习越来越被大家所重视,单词的记忆在很大程度上决定了英语成绩的好坏。因此,很多家长会给自己的孩子购买一个辅助单词记忆的产品,目前这类产品在市场上种类繁多。这些产品大部分都是以单片机为

16、基础演变开发而来。因此,以单片机为基础设计单词记忆测试器形成了主流,同时这对切实掌握单片机相关知识具有重要的理论和实际意义。预期成果:预期能够录入10个单词。使用显示屏显示单词内容,可以对单词进行标注是否已经掌握。可以显示单词的掌握程度。可以隐藏已经掌握的单词不再显示。可以显示或隐藏单词中文释义。可以设定单词显示的时间进行自动显示。本单词记忆测试器系统硬件部分分为三个模块:中央处理模块、显示模块、键盘输入模块。中央处理模块选用AT89S52单片机系统组成,电路包括:AT89S52单片机、复位电路、时钟振荡电路。显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏在基础上集成了控制器KS

17、0108,用户只需设计好接口程序,就可让模块显示出各种字符和图像。大连东软信息学院毕业设计(论文)第2章关键技术介绍2.1 关键技术一:单片机单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器、只读存储器、定时器/计时器、随机存储器、I/O口和中断系统集成到一块硅片上构成的一个小而完善的计算机系统。在我们生活的各个领域,都离不开单片机。大到军事工业、航空航天,小到生活中的家用电器与玩具都离不开单片机。单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是,要求也

18、越来越高。在单片机应用中,可靠性是首要因素为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上均提高了单片机的可靠性。2.2 关键技术二:点阵液晶屏显示原理LCD(liquid crystal display)点阵液晶屏。显示原理在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。在显示英文操作的方面,由于英文具有较少的字母种类,因此仅仅8位即可满足要求。但是中文却不同,常用的汉字达到了6000以上,对位的要求十分高,因此普通编码则显得十分困难。唯一可行的办法即通过ASCII表的高128个数值

19、以两个一组来表示汉字,形成汉字的内码。而剩下的低128位用作英文字符,形成英文的内码。它是用数字的各位信息来记载英文或汉字的形状,如英文的A在字模的记载方式如图2.1,汉字“你”字模的记载方式如图2.2。图2.1 英文字模图图2.2 汉文字模图2.3 关键技术三:行列式键盘为了减少键盘占用太多的单片机I/O口资源,当按键个数较多的时候,通常都使用行列式键盘。行列式键盘同样可以使用上拉电阻或是下拉电阻,使用上拉电阻的行列式键盘。内部上拉电阻或是下拉电阻的单片机时,外面不需连接上拉电阻或是下拉电阻,只需在程序内打开内部上拉电阻或是内部下拉电阻即可。行列式键盘的原理就是每一行的行线与每一列的列线交叉

20、的地方不相通,而是接上按键使其接通。利用这种结构,有a个I/O口就可以接a个行线,有b个I/O可以接b个列线,总共可以组成ab个按键的键盘。可以看出,行列式的键盘结构可以省出不少的I/O口。对行列式的键盘进行扫描的时候,要先判断键盘是否有按键按下,有按键按下后才可以对哪一个按键按下进行判别扫描。对按键的识别扫描通常有两种方法:一种是常用的逐行(或逐列)扫描法,另一种是线反转法。逐行(或逐列)扫描法:首先要先判断整个键盘中是否有按键按下,由单片机连接到列线的PC口输出低电平,然后再读取PB口的电平状态。若是没有键盘按下,PB口读进来的数据为0FH若读进来的数据不是0FH,那就是有按键按下,因为只

21、要有按键按下,按键连接到的行线的电平就会被拉到低电平。如果判断到按键按下之后就要进行对按键的识别扫描。扫描的方法是将每列的列线置低电平,并检测行线的电平状态。依次向PC口的每个列线发送低电平,然后检测;所有行线PC口的状态,若是全是1,则所按下的按键不在此列,然后进入下一列的扫描若是不全是1,则所按下的按键一定在此列,并且按键正是此列与读取到为低电平的行线的交点上,这样就确定了是哪个按键被按下了。线反转法:线反转法的优点是扫描速度比较快,但是程序处理起来却是比较不方便。线反转法最好是将行、列线按二进制顺序排列。线反转法同样也要先判别整个键盘有无按键按下,有按键按下才对键盘进行扫描。当有某一按键

22、按下时,键盘扫描扫到给该列置低电平时,读到了行状态为非全1,这个时候就可以将行数据和列数据组合成一个键值。例如一个44的键盘从左到右、从上到下的键值依次是EE,ED,EB,E7;DE,DD,DB,D7;7E,7D,7B,77。这是负逻辑的排列,可以通过软件的取反指令把这些数据变成正逻辑:11,12,14,18;21,22,24,28;81,82,84,88。不过不管是正逻辑还是负逻辑的数据,可以看出这样的数据是很难使用散转指令的。所以一般都要想办法把这样的键值数据再修正一下成为等距能用于散转指令的键值数据。若是所使用的单片机内部具有上拉电阻的话,还不需要逐列去置低电平,外部无上拉电阻。先使用P

23、B口作为输入口,打开PB口上拉电阻,而PC口作为输出口输出低电平,读PB口得到列数据;再使用PC口作为输入口,打开PC口上拉电阻,而PB口作为输出口输出低电平,读PC口得到行数据。这样就可直接得到行数据和列数据,而得组合的键值。第3章系统分析3.1 构架概述3.1.1 功能构架本单词记忆测试器系统硬件部分分为三个模块:中央处理模块、显示模块、键盘输入模块。系统模型图如下:如图3.1所示。单片机中央处理模块单片机中央处理模块56矩阵键盘模块LCD12864液晶显示模块图3.1 系统模型图3.1.2 模块需求描述(1)核心控制模块中央处理模块选用AT89S52单片机系统组成,电路包括:AT89S5

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

25、显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏基础上集成了控制器kS0108,用户只需设计好接口程序,就可让模块显示出各种字符和图像。通常我们所见到的LCD模块,分为几部分LCM(LCD Module)LCD显示模组、背光、PCB(Printed circuit board)印刷电路板;而背光和PCB板部分其实是可有可无的,因LCD模块而改变。点阵LCD模块可分为两种:COB和COG;只是驱动方式不同而已。12864为一块12864点阵的LCD显示模块,模块上的LCM采用COG(Chip On Glass)玻璃上的芯片技术,将控制(包括显存)、驱动器集成在LCM的玻璃上,接口简单

26、、操作方便;为方便用户的使用,在LCM的基础上设计了12864模块,将模块所必需的外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。12864模块与各种MCU均可进行方便简单的接口操作。为了使LCD12864能够显示用户存储的中文汉字和英文单词,如图3.2所示。用户必须将要显示的汉字字模及英文字母字模码存入单片机存储器中,因LCD12864只能显示点阵图形,因此存储入单片机的字模码必须是通过点阵码转换而成,为了软换更方便,设计使用了字模转换软件实现汉字和英文码的取模。图3.2 中文取字模软件例如汉字“中国”,取得的字模码为:/*- 文字: 中 -*/0 x00,0 x00,0 x

27、FC,0 x08,0 x08,0 x08,0 x08,0 xFF,0 x08,0 x08,0 x08,0 x08,0 xFC,0 x08,0 x00,0 x00,0 x00,0 x00,0 x07,0 x02,0 x02,0 x02,0 x02,0 xFF,0 x02,0 x02,0 x02,0 x02,0 x07,0 x00,0 x00,0 x00,/*- 文字: 国 -*/0 x00,0 xFE,0 x02,0 x0A,0 x8A,0 x8A,0 x8A,0 xFA,0 x8A,0 x8A,0 x8A,0 x0A,0 x02,0 xFE,0 x00,0 x00,0 x00,0 xFF,0

28、x40,0 x48,0 x48,0 x48,0 x48,0 x4F,0 x48,0 x49,0 x4E,0 x48,0 x40,0 xFF,0 x00,0 x00,将此码存入单片机程序存储器里,使用液晶显示的函数就可方便地显示汉字或英文字形。本单片机记忆测试系统的程序中将英文字符的字模码表以asc.h文件形式保存,为节约单片机的RAM,生成的二进制文件以只读形式储在单片机的FLASH ROM中。(3)键盘模块要测试记忆的单词,就要有字母的输入接口,本接口设计为56矩阵键盘输入,接入单片机的P0口和P2口进行键盘扫描。最大程度地提高了单片机IO口的利用率,设计共30个接键,包括了26个英文字母以

29、及四个功能键:“确定”、“隐藏中文”、“跳过已掌握”、“下一个”。矩阵键盘,由30个轻触按键按照5行6列排列,连接到P0、P2端口。其扫描的原理是:将输出端设置为行线所接的单片机的I/O口,而输入端则是单片机列线所接的I/O口。这样,当按键没有被按下时,所有输出端所得到的信号都是高电平,所代表的含义是没有按键被按下。当按键被按下时,行线输出原本是低电平,这样输入线电平会被拉低,所以是否有键按下便可以通过读入输入线的状态所得到的。最后将输出端设置为列线所接的单片机的I/O口,而输入端则是单片机行线所接的I/O口。这样即可识别哪一个按键被按下了。3.2 系统任务的可行性分析3.2.1 技术可行性本

30、系统采用的是89S52体系结构的单片机,由于只是完成一些比较基本的操作,所以对单片机的选择上并没有很苛刻的要求,最终决定使用性价比都很高的AT89S52单片机来进行开发试验。在电路的搭载上我们使用比较基本的模块就可以了,根据之前所描述的系统模块,我们发现要有显示、键盘和主控三大组成部分。所以我们可以进行电路部分的组成,分别由LCD12864作为显示部分,矩阵键盘作为键盘部分,单片机AT89S52作为主控部分。最后,使用KEIL软件来进行程序的编译。通过调试进行算法的对比。在进行系统测试的时候要通过使用PROGISP软件来下载至板子上进行功能的验证与实现。此系统当中最主要难点是在楼层的择优算法上

31、面,如何选择能够最简单方便的达到所在的楼层,从而达到节约时间以及成本是本次课题的关键。3.2.2 系统经济性分析本系统在开发的过程中所使用的软件是免费的,硬件是TX-1C开发板,价钱适中,在学生的接受范围之内。所以在此次研发的过程中,经济方面并没有太大的问题,作为学生的我们都是可以承受的了的,无任何忧虑。第4章系统设计4.1 设计指导思想和原则4.1.1 先进性随着科学技术和人文水平的日益发展,嵌入式产品已被广大的人们所使用。无论是各个层次年龄的人群都会看到嵌入式的影子,所以在今天这种科技水平发展迅猛的年代,新鲜的事物应被更多的人都了解并使用在生活当中。本系统的设计就是用到了嵌入式的产品,最小

32、的应用系统单片机,利用单片机的核心处理器来控制并实现所需的功能。4.1.2 可靠性及安全性许多的应用系统就是用这种成本低,体积小的单片机机构来完成高性能的控制,在很多尖端的领域更是用到了专用单片机来完成其他电路系统完成不了的工作任务。由于单片机本身的特点抗干扰能力强,适用温度范围宽,在各种恶劣的环境下都能够可靠高效的工作,所以在本系统的实现过程中用到的单片机安全性极高。4.2 构架概述系统体系架构如图4.1所示。图4.1 系统体系结构4.3 硬件设计4.3.1 单片机与外围存储器连接电路设计单片机的种类繁多,功能上也有着很大的不同,我们学习使用的都是52内核的单片机。ATMEL公司的89系列单

33、片机是以8052为内核构成的,其芯片引脚和MSC-52的单片机是一样的。由于89系列单片机内含Flash存储器,在开发的过程中可以很容易的进行修改调试,所以大大的简化了系统的开发时间,对于我们来说89S52就是一个不错的选择,在此我选择了性价比很高的AT89S52单片机进行开发。单片机外围电路如图4.2所示。其中包含了单片机、复位电路、时钟电路以及上拉电阻。图4.2 单片机外围存储器连接电路设计4.3.2 键盘模块设计要测试记忆的单词,就要有字母的输入接口,本接口设计为56矩阵键盘输入,接入单片机的P1口和P3口进行键盘扫描。最大程度地提高了单片机IO口的利用率,设计共30个接键,包括了26个

34、英文字母以及四个功能键:“确定”、“隐藏中文”、“跳过以掌握”、“下一个”。矩阵键盘由30个轻触按键按照5行6列排列,连接到P1、P3端口。其扫描的原理是:将输出端设置为行线所接的单片机的I/O口,而输入端则是单片机列线所接的I/O口。这样,当按键没有被按下时,所有输出端所得到的信号都是高电平,所代表的含义是没有按键被按下。当按键被按下时,行线输出原本是低电平,这样输入线电平会被拉低,所以是否有键按下便可以通过读入输入线的状态所得到的。最后将输出端设置为列线所接的单片机的I/O口,而输入端则是单片机行线所接的I/O口。这样即可识别哪一个按键被按下了。键盘模块部分原理图如图4.4所示。图4.4

35、键盘模块连接电路设计4.3.3 显示模块设计显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏的基础上集成了控制器kS0108。用户需设计好接口程序,就可让模块显示出各种字符和图像。通常我们所见到的LCD模块,分为几部分:LCM(玻璃)、背光、PCB板;而背光和PCB板部分其实是可有可无的,因LCD模块而改变。点阵LCD模块可分为两种:COB和COG;只是驱动方式不同而已。12864为一块12864点阵的LCD显示模块,模块上的LCM采用COG技术将控制(包括显存)、驱动器集成在LCM的玻璃上,接口简单、操作方便;为方便用户的使用,在LCM的基础上设计了12864模块,将模块所必需的

36、外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。12864模块与各种MCU均可进行方便简单的接口操作。LCD的接口:一般来说,LCD模块(带有驱动控制器)的接口多为总线的接口,不是6800就是8080,或者是串行SPI(及类SPI时序);除了这些总线的端口外,有的LCD模块还引出了一些功能性的端口,如偏压调节输入、负压输出等。行、列地址:在点亮某个点时,要确定该点所处的行地址、列地址。LCD液晶显示模组的行地址即Page的信息,每一个Page应有8行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page中的一个Byte对应的是一列(8行,即8个点),达128列。可以根据这

37、样的关系在程序中控制LCD显示屏的显示。注意:MzL02-12864的显示缓存RAM区实际上比模块上的显示器所对应的RAM区要大;而LCD模块具体设置Page(有时也称页)时,屏上的位置与驱动控制IC当中的哪里的RAM区对应,还与驱动控制IC与屏的连接有关;所以,实际在使用时,请参考所提供的范例设置(主要是设置COM反向扫描、SEG设置为正向扫描,以此设置方法,则每个Page中的前三列以及最后一列是不对应在LCD屏幕上的)。显示模块部分原理图如图4.5所示。图4.5 显示模块连接电路设计4.4 系统控制流程图4.6 程序流程图程序流程图图如图4.6所示,首先系统进入开始等待,进入单片机初始化和

38、LCD12864初始化,进入扫描按键,再判断是否有按键命令,在没有按下确定键时一直会等待输入,在一直输入中,会进入字母打印,打下的字符会存到一个函数中,输入单词的长度也会随之加1,这样一直循环。当按下忽略键时会进入判断,判断单词是否已经掌握,掌握会跳过显示,未掌握会跳到按键输入那个中,等待键入单词。在单词键入结束后,按下确认键,会进入判定中,判定字符长度跟正确长度对比,如果长度不等会直接显示错误,如果长度相同会进行内容的判定,内容不同直接显示错误,内容相同会显示正确,这样流程就基本结束了。大连东软信息学院毕业设计(论文)第5章系统实现5.1 环境配置本设计在Win7系统上进行软件开发和测试,用

39、到了Keil uVision2软件进行程序的编译,在配置里选生成Hex可执行文件后,再通过PROGISP软件,连接串口下载至单片机上,进行写测试。Keil uVison2是一家德国公司KeiSoftware公司出品的软件,用于52系列兼容单片机进行C语言的软件开发,使用的语言跟C语言的传统语法很类似,C语言与汇编相比,更加容易学习和使用,而且大大的提高了软件开发的效率和研发的周期,同时在编程程序的时候也能够加入汇编语言,使程序能够达到接近于汇编水平的工作效率。Keil C51标准C编译器为52系列的研发供应了C语言的语言环境。同时也有着汇编的高效、快速的特点。如今S52已经被完全的集成到了uV

40、ision2的开发环境中,包括编辑器,汇编器,调试器,实时操作系统,项目管理器。uVision2 IDE为他们提供了灵活的开发环境。Keil uVison2进行51系列单片机的软件开发过程有以下几个步骤:1.建立一个工程项目,选择对应开发的芯片。2.建立一个新的编译窗口,将汇编或C语言文件写好并保存添加至对应的工程项目中。3.用项目管理器生成各种应用程序,此处是Hex文件。4.检查并修改编译生成时的错误,直到编程通过为止。5.生成对应的应用程序,此时可以用PROGISP进行下载烧写。在使用时有以下几个步骤:1、选择单片机的型号,我在这里选择AT89S52。2、打开文件,这里选择已生成的HEX文

41、件。3、选择串行口,和最高波特率,这里根据实际情况来决定是哪个COM口,最高波特率选择115200。4、分别设置12T/单倍速,full gain,不需要冷启动P1.0,P1.1=0,0才能下载程序。5、点击下载按钮再给MCU上写程序。5.2 软件系统实现5.2.1 软件设计流程程序设计就是用计算机所能接受的语言把所需解决问题的步骤逐一描述出来,也就是编制计算机的程序,在设计应用系统时,软件的编制是重要环节。软件的质量直接影响整个系统功能的实现。应用程序的设计因系统而异,但程序设计总是有共同特点及其规律的。在编写程序时,采取如下几个步骤:第一步,系统需求分析,明确系统所要完成的功能,将软件分成

42、若干相对独立的部分。根据系统各个模块的功能和时序关系,设计出合理的软件总体架构。第二步,绘制系统框图和软件流程图,根据所选择的计算方法制定流程图,这是程序设计的一个非常重要组成部分,是决定一个系统是否成功的关键。第三步,分配系统资源,单片机资源的使用有一定的限制,需要进行合理分配,其中包括中断、定时器/计数器、堆栈等几部分。资源的合理分配后,进一步将程序框图绘制成详细的操作流程。第四步,程序的流程图和系统指令或C语言编写出程序,在编程的过程中,必须对关键程序进行标注,以增强系统的可读性和重用性,提高程序的可读性。第五步,软硬件调试,通过编译软件代码,编辑出的源程序,必须使用编译程序汇编生成目标

43、代码。如果发现源程序有语法错误,无法通过编译,就需要修改源文件后继续编译,直到程序通过编译为止,然后利用编译好的目标代码通过仿真器进行仿真,观察调试现象,排除设计和编程中的部分错误直到成功。第六步,程序功能优化。此项是将程序的质量进行提高,主要为了增强程序可读性、可持续性,使各功能程序模块化,子程序化,缩短程序的长度,加快运算速度和节省数据存储空间,减少程序执行的时间。5.2.2 系统主程序代码主程序首先进行存储变量的定义:bit ERROR; /输入字符错误标志位,输入错误为 1bit result; /输入的最终结果对错的标志位,为0是正确bit verify; /标志按过一次确认键sbi

44、t ERR=P27; /P2.7 口接一个指示灯警告输入错误uchar correctNUM; /统计测试正确的单词数,即得分uchar code SL10=4,4,5,3,2,4,4,3,4,3; /存储各测试单词的长度,如果输入的单词长度与存储的不同,也为错误为能动态地显示测试的单词,先将要测试的单词存在一个二维数组中,显示了该数组中的字符时,12864.h中的显示函数会调用相应字符的字模码(asc.h中);uchar code S105= tree , /树 rain , /雨 water, /水 fly , /飞 go , /去 fish , /鱼 snow , /雪 eat , /吃

45、 rice , /米 ice , /冰 ;该二维数组为行*列10*5,即10行5列,10行表示有10个单词,实际根据存储ROM的大小,可以增加单词数;列数表示单词在存储器中占的字符数,以最长单词(5个字符)定义,不足5个字符的单词后补空格表示。uchar code tab156= 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=tab1hanglie;进入主程序后,先对LCD12864屏进行初始化和

46、清屏操作,然后在LCD12864屏上显示单片机单词记忆测试器的静态的图文,需要动态刷新的字符则在主循环中进行。 LCD12864_init();/LCD12864初始化ClearLCD();/清屏en_disp(2,1,11,Asc,INPUT WORD:,1); /在第3行 第21列 显示INPUT WORD: /最后的“1”表示显示为白底黑字,如是0则为黑底白字,即反显 en_disp(4,1,1,Asc,1); /在第5行,第5列开始显示en_disp(6,0,8,Asc,correct:,1); /在第7行,第1列开始显示correct:en_disp(6,80,5,Asc,00/10

47、,1); /在第7行 第81列显示00/10在系统进入单词输入测试就绪状态后,主程序即进入while(1)的主循环中,循环进行键盘扫描,并判断键盘输入值,再与待测试的单词进行比较,如果输入的字符和字符长度均与被测试的单词一致,则显示correct加1,即为加1分,并进入下一个单词的测试,测试完10个单词后,重新进入第1个单词的测试。5.2.3 扫描键盘程序代码矩阵键盘采用56列与行扫描法,P0口依次接键盘的每一行,而P2口依次接键盘的每一列,程序开始先令P0全为高电平,P2口全为低电平,这样一旦矩阵键盘中有一个键按下时,就会在某一行中出现低电平,而某一列中出现高电平,程序先读P0口,以检测到有

48、低电平来确定行。再使P0全为低电平,P2口全为高电平,再读P2口,以检测到低电平来确定列。这里还要考虑按键的机械抖动问题,因为按键的机械特性,可能在按下瞬间会有一组抖动的脉冲,一般程序中采用延时方法来去抖动。实现的C程序函数如下:/* 键盘扫描程序*/unsigned char kbscan() /键盘扫描 uchar hang,lie,key; /P2连行,P0连列/if(P2!=0 xFF|P0!=0)/按键去抖动 /delayms(5);if(P2!=0 xFF|P0!=0)switch(P2&0 xFF) /P2 扫行 case 0 xFE:hang=0;break;/P2.0为第6行

49、case 0 xFD:hang=1;break;/P2.1为第5行case 0 xFB:hang=2;break;/P2.2为第4行case 0 xF7:hang=3;break;/P2.3为第3行case 0 xEF:hang=4;break;/P2.4为第2行case 0 xDF:hang=5;break;/P2.5为第1行P2=0; /P2全低电平 P0=0 xFF;/P0全高电平switch(P0&0 xFF)case 0 xFE:lie=0;break; /P0.0为第5列case 0 xFD:lie=1;break; /P0.1为第4列case 0 xFB:lie=2;break;

50、 /P0.2为第3列case 0 xF7:lie=3;break; /P0.3为第2列 case 0 xEF:lie=4;break; /P0.4为第1列P2=0 xFF; /P2全高电平 P0=0; /P0全低电平while(P2!=0 xFF|P0!=0); /按键松开后才返回值key=tab1liehang;else if(Skip_flag=2) /该单词已掌握 Skip_flag=1; key=4;elsekey=_;return (key);5.3 硬件系统实现电路原理图设计使用集原理图设计、PCB设计、电路仿真功能为一体的PROTUES软件。以该软件设计的电路原理图如图5.1。图

51、5.1 单片机单词记忆测试器电路原理图PCB电路原理设计,如图5.2所示。图5.2 PCB电路原理设计电路设计参数:C1C2为20-30PF瓷片电容,与12M晶振组成时钟振荡电路;复位电路使用R1为10K电阻、C3为10uF电解电容;12864液晶模块与单片机P0口连接,因P0口为真正的三态门结构,因此作数据总线使用时要外接上拉电阻,可使用10K的排阻;按键的行相连,列相连的矩阵接法连入单片机IO口;电路的供电为5V直流电源;D1为输入错误的状态指示灯,加220欧限流电阻连到VCC,因为AT89S51单片机IO的电流灌入能力要强于电流输出能力,因此一般使IO为低电平时点亮LED灯。12864管

52、脚定义:12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及12864全点阵液晶显示器组成。可完成图形显示,也可以显示84个(1616点阵)汉字。管脚定义如表5.1所示。表5.1 12864管脚定义管脚管脚名称LEVE管脚功能描述1VSS0电源地2VDD+5.0V电源电压3V0-液晶显示器驱动电压4D/I(RS)H/LD/I=“H”,表示DB7DB0显示数据D/I=“L”,表示DB7DB0显示指令数据5R/WH/LR/W=“H”,E=“H”数据被读到DB7DB0R/W=“L”,E=“HL”数据写到IR或DR6EH/LR/W=“L”,E信号下降沿锁存DB7DB0R/W=“H”,E=“

53、H”DDRAM数据读到DB7DB07DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15CS1H/LH:选择芯片(左半屏)信号16CS2H/LH:选择芯片(右半屏)信号17RETH/L复位信号,低电平复位18VOUT-10VLCD驱动负电压19LED+-LED背光板电源20LED-LED背光板电源大连东软信息学院毕业设计(论文)第6章系统测试本次测试主要对于修改部分进行系统的功能测试。下面将结合本系统软件开发对系统进行了如下几个方面的测试。6.1 软件调试 软件的调试主要通过

54、Keil Vision3软件进行操作,对程序编写过程中的语法错误进行查找、修改,然后再进行编译连接,生成HEX文件,下载到AT89S52。经过很多次的修改、编译、连接之后,仿真软件里的系统功能终于都能实现了。在进行软件调试过程中,遇到最头疼的问题就是矩阵键盘,经过我的不懈努力,很庆幸解决了难题。通过以上不同阶段的测试,初始状态、进入系统测试、字库编写、单词记忆等功能的测试,所有功能都达到预期的设想。6.2 硬件调试程序编译完成后,我把调好的程序下载到焊好的板子,出现了花屏的现象。经过多次检测后,发现问题出在电路焊接上,本次提到的12864花屏的现象,主要由于板子出现虚焊造成。将系统与电脑连接,

55、下载程序。首先,先将单片机插在开发板的卡槽内,对单片机的P30和P31接口用杜邦线连接下载器的对应的两个口,开发板会自带电源供电线的,我用的是USB供电的。然后对开发板上电,如果没有驱动首先安装开发板和下载器的驱动程序,在驱动都安装完毕后,看看单片连接电脑的哪个COM口,然后将软件选中对应的COM口,选择事先已经用Keil编译好的hex文件,在这些都已经选好后,点击下载程序,会显示连接单片成功后,对开发板断电,过几秒钟后对单片上电启动,会显示进度条,进度条读满后说明程序下载成功。对单片机烧写程序有很多种方法,这只是其中的一种,因为我用的是AT89S52此单片机烧写程序比较困难,需要特有的下载器

56、和下载软件。如图6.1所示。图6.1 系统测试图首先将单片机的30和31管脚连接下载器的串口线,把接地的线接在开发板的GND上,在软件点击下载代码,在连接通讯成功后,给开发板上电,如图6.2所示,正在烧写程序。图6.2 烧写程序确定程序烧写成功后进行功能检测,当键盘键入正确的单词拼写时,会进行对比,如果正确的同时会显示该单词掌握,在屏幕最下方也会统计正确单词的数目,目前显示输入正确单词的个数为一个单词,正确键入单词时,如图6.3所示。图6.3 正确键入单词如果错误键入单词时,单词在第二行会显示“错”,同时在下方显示出正确单词的拼写,当下一次再次查看该单词时,当时错误的键入不会再显示,只会显示正

57、确的单词拼写,图中最后一行因为之前正确拼写了2个单词,所以会显示2,如果单词拼写正确会进行累加。错误键入单词时,如图6.4所示。图6.4 错误键入单词第7章结论自从开始选题到至今已经有近三个月的时间,在这三个多月的时间里,经过无数次的查资料,摸索,实验。使我不仅仅学会了单片机软硬件设计,而且更主要的是学会了如何去开发设计一个项目,如何去发现设计中的问题和缺陷并如何去解决。我想后面是我在这次毕业设计中收获最大的,对我今后走向研发设计岗位有着非常大的帮助。首先,在选题阶段,老师给我们确定了一个大的方向,可以说这个课题如今是一个非常热门的话题,无论是在国内还是在国外都有很多研发人员在研究该课题,因此

58、我对这个课题非常感兴趣,我在网上查了很多相关的信息。这些信息都是平时理论课所设计不到的,所以选题阶段也使我丰富了课外知识量,初步了解了一下最新的发展方向。其次,在确定论题阶段,这个阶段主要是翻译相关的英文文档,写课题申报表和开题报告的基础性工作。通过这些更加详细了解所选课题的相关技术和设计思路,对设计有个整体的构思。这个阶段虽然基础,但是也是比较难的一个阶段,首先我们要了解和学习一门新的技术,还要通过这些英文文档来熟悉些芯片的相关资料,通过毕设也进一步加强我阅读英文文档的能力,有机会阅读一些专业文档不仅提升了英文水平还对单片机有了更深的认识,虽然花了比较多的时间来阅读和翻译英文相关资料,但是我

59、觉得这些付出都是值得的,通过这次设计我体会到如果英文作为辅助工具的重要性,因为很多的最新,最全的技术文档都是用英文来编写的,在以后的学习过程中加强英文学习也是非常重要的。最后,设计和调试阶段,这个阶段是最重要的阶段。设计包括硬件和软件的设计,根据前面所学的知识硬件电路图很快就设计完成,在设计程序时费比较多的时间,首先就是解码,虽然有了前面的理论知识,但是实际操作起来却有很多问题,经过老师的帮助和自己的钻研,终于将困难一个接一个的解决了,增强了自己解决实际问题的能力。当然,由于是第一次这么完整的设计一件作品,无论是在硬件设计和软件调试方面都有很多的不足之处。但总的看来,基本上完成了设计要求。以后

60、进一步扩展研究,可以做出更优秀的作品,为以后走入工作岗位做了充足的准备。参考文献1 李群芳,张士军,黄建单片微型计算机与接口技术M,电子工业出版社,20052 刘文涛单片机应用开发实例M,清华大学出版社,20053 张培仁,高修峰十六位单片机微处理器原理及应用M,清华大学出版社,20054 刘守义等单片机应用技术M,西安电子科技大学出版社,20025 雷思孝等单片机原理及实用技术M,西安电子科技大学出版社,20046 何宏,龚威,田志宏单片机原理与接口技术M,国防工业出版社,20067 曹天汉,傅卫卫单片机原理与接口技术M,电子工业出版社,20038 美德兰佐微机接口技术实验教程(英文版)M,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论