单词记忆测试器设计任务书

合集下载

【可编辑全文】微机原理与接口技术-课程设计任务书

【可编辑全文】微机原理与接口技术-课程设计任务书

可编辑修改精选全文完整版微机原理与接口技术课程设计任务及指导书(适用于0944121班)一、课程设计目的和任务:通过课程设计,主要达到以下目的:1、使学生增进对单片机的感性认识,加深对单片机理论方面的理解;2、使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、A/D、D/A等;3、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。

二、课程设计题目:【1】数字音乐盒设计要求:1、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音响,从而演奏乐曲(最少储存三首乐曲,每首不少于三十秒);2、采用LCD显示;3、开机时有英文欢迎字符,播放时显示歌曲序号(或名称);4、可通过功能键选择乐曲,暂停,播放;扩展功能:显示乐曲播放时间或剩余时间;【2】数字温度计设计要求:1、基本范围为-50℃—110℃;2、精度误差小于0.5℃;3、LED数码管直读显示;扩展功能1、可以任意设定温度的上下限报警功能;2、实现语音报数。

【3】交通灯设计设计要求:1、设计一个十字路口交通灯控制器。

用单片机控制LED灯模拟指示。

2、系统包括人行道、左转、右转以及基本的十字路口交通灯功能;3、系统除具有基本交通灯功能外,还具有显示倒计时、时间设置、紧急情况处理功能。

扩展功能:1、分时段调整信号灯的点亮时间2、根据具体情况实现灵活手动控制功能。

【4】电子密码锁设计要求:1、系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能;2、还具有调电存储、声光提示等功能。

扩展功能:通过遥控器实现锁的基本操作。

【5】电子钟的设计设计要求:1、可以实现23h59m59s的显示,用六位LED显示出来,显示格式为“时时:分分:秒秒”。

2、可以利用按键设置任意的时分秒各位,并具有按键复位功能;扩展功能:1、实现整点语音报时功能。

2、实现年月日的显示。

单词记忆计数器课程设计

单词记忆计数器课程设计

单词记忆计数器课程设计一、课程目标知识目标:1. 学生能掌握本节课所学的英语单词及其基本用法;2. 学生能理解单词记忆计数器的基本原理及其在英语学习中的应用;3. 学生了解如何运用计数器进行有效的单词记忆。

技能目标:1. 学生掌握使用单词记忆计数器进行单词记忆的方法;2. 学生能够运用所学单词进行简单的句子编写;3. 学生通过计数器提高英语单词记忆速度和效果。

情感态度价值观目标:1. 培养学生主动参与英语学习的兴趣,提高学习积极性;2. 培养学生良好的团队协作精神,学会与同学分享和交流;3. 增强学生对英语学习的自信心,激发学习潜力。

分析课程性质、学生特点和教学要求:本课程针对小学三年级学生,结合英语学科特点,以单词记忆为核心,设计实用性的单词记忆计数器课程。

此阶段学生好奇心强,求知欲旺盛,但注意力容易分散。

因此,课程目标需具体、明确且易于实现。

通过分解目标为具体学习成果,有助于激发学生的学习兴趣,提高学习效果。

后续教学设计和评估将围绕以上课程目标展开,确保学生在知识、技能和情感态度价值观方面取得全面发展。

二、教学内容本节课教学内容以人教版小学英语三年级上册教材为基础,结合课程目标,选择以下内容:1. 单词学习:挑选与日常生活紧密相关的高频单词,如动物、水果、颜色等类别,共计20个单词。

2. 单词记忆计数器原理:介绍单词记忆计数器的基本原理,让学生了解如何通过计数器提高单词记忆效率。

3. 教学大纲:(1)第一课时:导入单词学习,让学生初步了解计数器原理,学会使用计数器进行单词记忆。

(2)第二课时:深入讲解单词记忆技巧,运用计数器进行实际操作,提高单词记忆效果。

(3)第三课时:通过小组合作,让学生运用所学单词进行句子编写,巩固所学知识。

(4)第四课时:总结课程内容,进行单词记忆竞赛,检验学生的学习成果。

教学内容安排和进度:- 第一周:完成第一、二课时,学习20个单词,掌握计数器基本原理。

- 第二周:完成第三课时,运用所学单词进行句子编写。

基于单片机的单词记忆器设计

基于单片机的单词记忆器设计

基于单片机的单词记忆器设计单片机单词记忆器设计可以通过以下步骤实现:1. 硬件设计:选择适合的单片机开发板或芯片,例如Arduino、Raspberry Pi等。

根据需求,设计并连接合适的输入和输出设备,如按钮、显示屏和喇叭等。

2. 单词库准备:将需要记忆的单词以文本文件的形式存储在单片机的存储器中,可以使用SD卡、SPI Flash或EEPROM等。

3.用户界面设计:使用按钮和显示屏实现用户与记忆器的交互界面。

例如,通过按下按钮来选择单词,并在显示屏上显示相应的单词和释义等信息。

4.单词显示和播放:根据用户选择的单词,在显示屏上显示该单词的释义,并通过喇叭或耳机输出单词的发音。

可以使用相应的语音合成库或芯片实现发音功能。

5.记忆训练模式:设计相应的记忆训练模式,例如根据顺序或随机选择单词进行测试和复习。

可以通过按下不同的按钮或在界面上选择相应的模式。

6.学习记录和进度统计:设计记忆器可以记录用户的学习历史和进度,例如已经学习的单词数量、学习时间等信息。

可以通过单片机的存储器或在外部存储设备中保存这些信息。

7.能源管理:考虑使用低功耗设计,例如增加电源管理模块,以延长记忆器的电池寿命。

添加睡眠模式,当记忆器长时间不使用时,自动进入低功耗状态。

8.软件运行控制:根据硬件设计、用户界面和功能要求,编写相应的单片机代码。

包括读取单词库文件、界面交互、单词显示和发音等功能的实现。

9.调试和测试:将代码烧录到单片机上,并通过调试和测试验证各个功能的正确性和稳定性。

根据测试结果进行适当的优化和改进。

最后,对于特定需求和设计约束,可能需要根据实际情况进行适当的调整和修改。

单片机课程设计任务书

单片机课程设计任务书

一、设计目的单片机工程实践是单片机技术课程的实践教学环节,是对学生学习单片机的综合性训练,这种训练是通过学生独立进行某一课程的设计、制作、调试来完成的.单片机的工程实践应主要体现在对实际工程应用系统或产品的研制来说,从课题任务的提出到定型生产或投入使用,都要经过方案的总体认证、系统设计、软件及硬件的开发、联机调试等若干步骤.因此,单片机工程实践是以工程项目和工程应用为课题.着重培养学生工程实践能力、独立工作能力及创新能力.单片机应用系统课程工程实践作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完《单片机原理及应用》课程后,并在进行相关课程设计基础上进行的一次综合练习.其目的在于加深对MCS 一51单片机的理解,掌握单片机应用系统的设计方法,掌握常用接口芯片的正确使用方法,强化单片机应用电路的设计与分析能力,提高学生在单片机应用方面的实践技能和科学作风,培育学生综合运用理论知识解决问题的能力,力求实现理论结合实际、学以至用.学生通过查阅资料、接口设计、程序设计、安装调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能} 熟悉开展科学实践的程序和办法,为今后从事生产技术工作打下必要的基础;学会灵活运用已经学过的知识,并能不断接受新的知识,大胆发明创造的设计理念.二、设计要求1)根据应用系统的要求,初步掌握总体结构设计的方法和构思,从中选择一种最佳设计2)根据应用系统结构规模的要求,掌握单片机外部扩充系统硬件设计的基本过程;3)根据任务要求和硬件设计要求,首先画出程序的总体流程图,然后进行各控制模块的程序设计;4)掌握如何应用单片机仿真器来开发应用系统及仿真调试的过程.三、单片机课程设计可选题1. 音乐播放系统设计设计一个音乐播放系统,要求:(1)利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音;(2)学会音乐在单片机系统中的转换方法及设置;(3)可自动选取某段音乐令单片机连续播放.3. 医院住院病人呼叫器的设计(1)设计一个8 床位的无线呼叫器,供医院住院病人(或静脉点滴病人)呼叫医护人员时使用;(2)病人可通过按动自己床边的按钮,向医护人员发出呼叫信号;(3)当有病人呼叫信号时,医护人员值班室设置的显示器可显示出该病人的床位编号,同时扬声器发出声音信号,提示值班的医护人员.5. 自动电梯控制电路的设计设计一个8 层楼房的电梯自动控制电路,要求:(1)电梯内设有对外报警开关,可以在紧急情况下报警.报警装置设在电梯外;(2)每层楼梯门边设有上、下楼的请求开关及指示灯,电梯内设有可选择楼层的开关及相应指示灯;(3)设有表示电梯所处上升或下降的状态标志,以及电梯正位于哪层楼的指示显示;(4)能记忆电梯外的所有请求信号,并按照电梯的运行规则对信号分批处理,每个请求信号一直保持到处理后才能撤除.电梯运行规则如下:①电梯上升时,仅响应电梯所在位置以上层的上楼请求信号,依楼层次序逐个执行,直到最后一个请求执行完毕.然后升到有下楼请求的最高层,开始执行下楼请求;②电梯下降时,仅响应电梯所处位置以下层的下楼请求信号,依楼层次序逐个执行,直到最后一个请求执行完毕.然后降到有上楼请求的最低层,开始执行上楼请求;③一旦电梯执行完全部请求信号后,应在原位置停止,等待新的请求信号到来时再处理.(5)电梯运行速度为 5 秒/层;(6)电梯到达有请求的楼层停下时,该层指示灯亮.经1 秒后,电梯门自动打开,经10 秒后,电梯门自动关闭(指示灯显示).电梯到达新楼层后,原楼层指示灯灭17. 自动往返电动车的设计设计一台自动往返电动车,要求:(1)电动车自主前进、遇到障碍后返回;(2)电动车行驶过程中不能出现擦墙行驶,或撞墙故障;(3)自动测量显示里程数、行车时间;(4)误差要求:总里程数:<3% ;行车时间:<3% ;识别距离:5〜15cm .9. 消毒柜控制电路的设计设计一台消毒柜控制系统,要求:(1 )显示消毒柜温度、保持时间;(2)可以键盘设定消毒柜温度、定时时间;(3)可以实现实时中断功能;(4)消毒后自动关机;(5)测温误差:<0.5 C;(6)定时误差:<20 秒/月.11. 低频信号发生器设计制作低频信号发生器,要求利用单片机产生正弦波、方波及三角波等波形( 1 )正弦波用单片机实现正弦波的输出;输出的波形有1 Hz 、1 0Hz 、1 00Hz、1 kHz 、1 0kHz5种可选频率;输出电压范围为0〜5V可调(峰峰值);用6位数码管显示频率;频率误差<1 % .(2)方波频率范围:0.O1Hz〜lOOkHz ;频率误差:<0.1%;电压范围:0〜1OV.3)三角波频率范O.01Hz〜频率误差:<0.1%;电压范围:O〜20V(峰一峰值);失真率:r w% .13. 多输入端报警电路设计制作一个多输入端报警电路,要求如下:(1)有报警输入控制端16个,报警音响信号输出端1个;(2)报警输入端中的任意一端出现报警信号时,电路自动发出类似警报的音响信号;⑶报警音响信号持续11s自动停止•如果输入信号继续存在,报警音响信号又重新启动;⑷音调、频率、响度、持续时间等参数,均可通过“V键调整•15. 电容、电阻参数单片机测试系统的设计设计要求:电阻、电容充放电电路可计算电路时间常数;用A/D 转换器测量电压值能测得时间常数值,经单片机计算,算出电阻或电容值,并在LCD 上显示.电阻分为0〜200,0〜2K,0〜20K,0〜200K,0〜2M五个档;电容分为0〜200p,0〜2n,0〜20n,0〜200n,0〜2u,0〜200u六个档17.步进电机单片机控制系统的设计设计要求:利用按键控制步进电机的启停、正反转( 500r/min )、加减速,并在LED上显示各自的功能.19.单片机控制步进电机步进电机是工业过程控制及仪表中的主要控制元件之一,它可以在机械结构中把丝杠的角度变成直线位移,也可以用它带动螺旋电位器,调节电压和电流,从而实现对执行机构的控制.在数字控制系统中,由于它可以直接接受计算机输出的数字信号,而不需要进行D/A转换,所以使用起来十分方便.步进电机具有快速的启停能力和精度高的显著特点,在定位场合得到了广泛的应用.步进电机实际上是一个数字/角度转换器,也是一个串行的数/模转换器.因此,需把并行的二进制转换成串行的脉冲序列,并实现方向控制.每当步进电机脉冲输入线上得到一个脉冲,它便沿着特定的方向走一步.设计要求:采用单片机来控制一个三相单三拍的步进电机工作.步进电机的旋转方向由正反转控制信号来控制.步进电机的步数由键盘输入,可输入的步数分别为3,6,9,12,15,18,21,24,27 步.并且键盘具有键盘锁的功能,当键盘上锁的时候,步进电机是不接受输入步数的,也不会运转.只有当键盘锁打开并输入步数的时候,步进电机才开始工作.电机运转的时候有正转和反转指示灯指示.当电机在运转的过程当中,如果过热,则电机停止运转,同时红色指示灯亮.,同时警报响.本题目的关键之处是:如何生成控制步进电机的脉冲序列.21.单词记忆测试器程序设计设计任务:编写一个帮助单词记忆的程序.设计要求:(1) 实现单词的录入(为使程序具有可演示性,单词不少于10个);(2) 单词根据按键控制依次在屏幕上显示,按键选择认识还是不认识,也可以直接进入下一个或者上一个;(3) 单词背完后给出正确率.扩展功能:(1) 旧单词可从文件中读出.(2) 录入的新单词保存到文件中;(3) 第一次背完后,把不认识以及跳过的单词再次显示出来,提醒用户再记忆,直到用户全部都记住;(4) 结束后,给出各个单词的记忆结果信息,如记忆次数23.单片机节日彩灯控制器设计彩灯控制器设计要求:(1) P1.2: 开始,按此键则灯开始流动(由上而下) ;(2) P1.3: 停止,按此键则停止流动,所有灯为暗;(3) P1.4: 上,按此键则灯由上向下流动;(4) P1.5: 下,按此键则灯由下向上流动.25.作息时间控制器设计要求:1) 作息时间控制器能通过继电器控制电铃或放音机2) 作息时间控制器能控制蜂鸣器进行与电铃同步的现场提示3) 单片机作息时间控制的功能如下:使用JDH62A 液晶模块作为显示器显示格式为“时分秒”,日期,星期系统采用24C16储存日期、星期和闹钟最多可以设定40 个闹钟具有 4 个按键来做功能设置,可以设置现在的时间、日期、星期及闹钟一旦闹钟时间到则发出一阵声响,同时继电器启动,可以控制放音机开启和关闭.4) 功能的详细设置如下:在时间显示的状态下,液晶的上面一行显示的为时间和星期,第二行显示的是日期.此时,按下0键进入调整时间状态;按下1 键进入调整星期状态;按下2 键进入调整日期状态;按下3 键进入查看闹钟程序.在进入时间调整状态后,分钟闪烁显示,时钟停止计时.此时按 1 键分钟加一,按2键分钟减一,按下0键则退出调时,按 3 键则转到调整小时的状态.在调整小时的状态下小时闪烁显示,按 1 键小时加一,按 2 键小时减一,按 3 键则返回到调整分钟状态,按0 键则退出调时.在调整星期状态下,星期闪烁显示,按1键星期加一,按 2 键星期减一,按0键退出调整星期.在调整日期状态下,首先日闪烁显示,此时按1 键日加一,按2键日减一,按3键转到调整月状态,按0 键退出调整日期.调整月状态下月闪烁显示,此时按 1 键月加一,按2 键月减一,按3键转到调整年,按0 键退出调整日期.在调整年状态下年闪烁显示,此时按1键年加一,按2键年减一,按 3 键返回到日调整状态,按0键退出调整日期.在查看闹钟状态下,第一行显示的为闹钟的编号,第二行显示的为闹钟时间.此时按1键查看下一个闹钟时间,按 2 键查看上一个闹钟时间,按0 键则开始调整此编号对应的闹钟时间,按 3 键则退出查看闹钟.在调整闹钟时间的状态下,分钟闪烁显示,按1 键则分钟加一,按2 键分钟减一,按3 键则转到小时调整状态,按0 键退出闹钟调整,返回到闹钟查看状态.在调整闹钟小时状态下,小时闪烁显示,此时按1键加一,按2键减一,按3 键返回到闹钟分钟调整状态,按0 键退出闹钟调整,返回到闹钟查看状态.27.交通信号灯模拟控制1) 设计定时交通信号灯控制在双干线的“十字”路口上,交通信号灯的变化是定时的,其基本变化规律如下:A:放行线:绿灯亮放行25s,黄灯亮警告5s,然后红灯亮禁止.B:禁行线:红灯亮禁止30s,然后绿灯亮放行.2) 具体设计要求:(1)该设计能控制东、西、南、北四个路口的红、黄、绿信号灯正常工作.(2)当东西方向放行、南北方向禁行时,东西方向绿灯亮25s,然后黄灯亮5s;南北方向红灯亮30s.(3)当南北方向放行、东西方向禁行时,南北方向绿灯亮25s,然后黄灯亮5s;东西方向红灯亮30s.当使两条路线交替地成为放行线和禁行线时,就可以实现定时交通控制.3)设计方案(1)芯片选择为了实现上述设计要求,可以用AT89C51 单片机芯片.用AT89C51 芯片的P1 口(P1.0〜P1.5)分别接上两组六位信号灯•(2)延时的实现延时的实现可以是通过软件实现;也可利用定时器/计数器的定时工作方式实现;还可以通过扩展8155芯片,利用其中的定时器/计数器实现延时•本系统使用软件延时•29.电动智能小车设计要求:在现有玩具电动车的基础上,加装光电、红外线、超声波传感器及金属探测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制•这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求•设计采用MCS-51系列中的AT89S51单片机•以AT89S51为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能•31.PC机温度控制系统目的:掌握PC机与单片机的通讯方式以及温度控制的方法,要求是自适应算法,可以根据不同的控制对象的参数的不同进行算法自动调整,达到温度恒定•内容:PC机通过232 口向单片机传送控制指令,单片机根据指令进行温度采集、温度控制•33.单片机实现PC机键盘控制器设计目的:掌握单片机扫描键盘原理,以及单片机与PC机的通信方法•内容:单片机通过扫描键盘确定键值(有键按下时),然后通过232 串口将键值发送给PC 机•35.远程抄表系统目的:掌握数字脉冲信号的容错、纠错方法及单片机的中断、定时器的使用方法•内容:首先由数据采集单元实时采集数据,通过专用的数据线传送到数据硬处理单元,对数据确认无误后,发送给中央处理单元,中央处理单元对采集到的数据进行分析、分类,通过总线(485、CAN或市话网、移动网、互联网、无线网等方式传送给PC机的数据汇总分析单元,PC 机根据统计的结果,向控制单元发出控制信息,同时将相关的信息或结果发送给当事人•37.GPS全球卫星车载信息模拟系统目的:掌握GPS工作原理及其应用设计方法•要求:能够实时跟踪定位模拟车辆的经度和纬度,能够在电子地图上绘制出(在小区或某一39.音乐倒数计数器1.设计要求利用AT89C51煮开水或小睡片刻等旦按下键则开始倒计数,当计数为0时,K1 —可调整倒计数的时间K2 —设置倒计数的时间为K3 —设置倒计数的时间为K4 —设置倒计数的时间为1〜60分钟.5分钟,显示“ 0500 ”10分钟,显示“1000 ”20分钟,显示“ 2000 ”K1键100),其计算的数值为:街道等)的具体位置信息显示器设计一个简易的倒数计数器,可用来煮方便面、•做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事定时闹钟的基本功能如下.字符型LCD(16 '2)显示器.显示格式为“ TIME分分:秒秒”.用4个按键操作来设置当前想要倒计数的时间发出一阵音乐声.程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1〜K4动作如下.复位后LCD的画面应能显示倒计时的分钟和秒数,此时按则在LCD上显示出设置画面.此时,若:a. 按操作键K2 —增加倒计数的时间1分钟.b. 按操作键K3 —减少倒计数的时间1分钟.c. 按操作键K4 —设置完成.键盘实现菜单功能的方法,已在题目4详细说明,不再赘述.本题目最大难点是实现音乐的播放.作者利用定时计数器,通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣器(SOUNER )中,使其发出频率不同的声音.本设计中单片机晶振为 1.0592MHz,通过计算各音阶频率,可得1、2、3、4、5、6、7共7个音应赋给定时器的初值为64580、64684、64777、64820、64898、64968、65030.在此基础上,可将乐曲的简谱转化为单片机可以识别”的数组谱”,进一步加入对音长、休止符等的控制量后,可以实现音乐的播放.41.数字电压表设计1. 设计要求以单片机为核心,设计一个数字电压表.采用中断方式,对2路0〜5V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存.超过界限时指示灯闪烁.2. 实验原理本题目本质上是以单片机为控制器,ADC0809为ADC器件的AD转换电路,设计要求的电压显示,是对ADC采集所得信号的进一步处理.为得到可读的电压值,需根据ADC的原理,对采集所得的信号进行计算,并显示在LED 上.本项目中ADC0809的参考电压为+5V,根据定义,采集所得的二进制信号addata所指代的电压值为:而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以驾驶操作将小数点显示在第二位数码管上,即为实际的电压本示例程序将1.25 V和2.5 V作为两路输入的报警值,反映在二进制数字上,分别为0x40和0x80.当AD结果超过这一数值时,将会出现二极管闪烁和蜂鸣器发声43.微波炉控制程序设计二,设计要求:利用实验系统的硬件资源设计一个"带LED显示的微波炉控制器”控制面板包括:两位数码显示十个数字按键键盘电源按键电源指示灯大中小火力选择开关工作流程如下:(1) 按下电源键,指示灯亮,通过数字键设定需要加热的时间,并在LED上进行显示,单位为秒(2) 时间设定完后,通过大,中,小三个按键,选择火力的大小,并启动微波炉进行工作(3) LED实时显示剩余的工作时间,定时时间到后自动停止,指示灯灭(4) 微波炉运行过程中,若再按下电源键,则微波炉停止工作,指示灯灭45.数控DC/DC电源系统硬件与软件设计性能指标参数如下:(1)输入直流电压为9.V〜15.0V⑵输出电压为3.6 V〜6.0V,步进可调,最小步距为10mV ;文波电压为小于5mV.⑶最大输出电流不小于500mA.⑷效率不小于80%47.汽车转向灯的设计利用定时器或计数器与中断系统组成控制系统的工作原理,从而达到控制汽车在不同运行状态时各个车灯是不是闪烁,从而达到传递交通信息的作用1、设计要求汽车在驾驶时有左转弯、右转弯、刹车、合紧急开关、停靠等操作.在左转弯或右转弯时,通过转弯操作杆应使左转开关或右转开关合上,从而使左头灯、仪表板左转弯灯、左尾灯或右头灯、仪表板右转弯灯、右尾灯闪烁;合紧急开关时要求前面所述的6个信号灯全部闪烁;汽车刹车时,两个尾灯点亮;如正当转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁.以上闪烁,都是频率为1Hz的低频闪烁;在汽车停靠而停靠开关合上时左头灯、右头灯、左尾灯、右尾灯按频率为30Hz.的高频闪烁由上所述,各种情况作操作时,信号灯应输出信号列于表1.1.表1.1汽车驾驶操纵与信号49.十进制加减乘除法计算器一、课程设计题目及任务要求设计十进制加减乘除法计算器•要求能(不同时)显示3位输入和4位输出.二、设计思路1操作显示设备显示设备采用八片七段共阴极LED显示器,共设置16个键,其中数字键0〜9共十个,接下来依次是加号键、减号键、乘号键、除号键、等于号、清除键.操作设备是两行八列共16键的简单键盘•第一行从左至右分别为0、1、2、3、4、5、6、7,第二行分别为8、9、A (+ )、B (-)、C (= )、D (清除键)、E (清除键)、F (清除键),清除键”表示程序初始化,为下次输入准备•2、程序实现功能(1)十进制加减乘除法计算:输入范围为(1~999),该程序输入两个定点数,每个 3 位,输出4位;A为加,B为减,C为等于,输出为四位计算结果•数据输入采用规范化输入,即必须输入3个数才算完成一个运算数的输入,两个运算数之间输入运算符A或者B,输入完成按C显示计算结果;(2)计算机复位功能:DEF均为清零重启,任何时候按下DEF中一个将重新开始;51. 液晶点阵显示屏程序设计设计要求:1 能进行正常的模拟量采样值显示(温度、压力、电位),并将其显示到液晶面板上.2 LCD 将从下到上滚动显示:“湖北师范学院机电与控制工程学院”然,后显示:“ 2011年单片机课程设计”、“液晶点阵显示屏程序设计”“作者姓名、班级、学号”3 改变字库的内容,显示其它汉字.4 改变页地址或列地址,使显示的内容改变位置5 改变滚动显示模式,使显示内容左右、上下滚动;改变参数使滚动速度变化.53. 全自动洗衣机控制器基本要求:采用步进电机模拟洗衣机电机,实现上水、浸泡、洗涤、漂洗、甩干等过程.洗涤分弱洗、轻洗、强洗;可设定3级水位设定,每级水位均设定水位下限(值自定);可选择漂洗次数(3~5 次).使用键盘进行流程及参数设定及自动存储流程,有停止键终止洗衣机的工作,并在LED 或LCD 上显示当前流程.(1)上水时,通过可调电位器及A/D 转换模拟水位检测传感器,若水位低于设定水位下限,则通过蜂鸣器报警,手动调节可调电位器,直至水位超过水位下限,切断进水开关(用开关量输出电路模拟),进入下一流程.(2)浸泡不进行任何操作,延时等待30s;(3)洗涤时,先强洗、后轻洗再弱洗.可直接选择轻洗可弱洗.强洗、轻洗与弱洗的步进电机转速不同,依次递减,但均需正反转(转速自定、时间自定、正反转的时间自定);( 4 )漂洗进行正反转,转速介于强洗与弱洗之间,或与强洗同.( 5 )甩干高速正向转动,时间自定;( 6 )洗涤、漂洗间均需脱水、上水,但脱水转速低于甩干.55. 超声波避障小车57. GSM 汽车防盗报警器59. 激光测径仪61. 无线温度测量系统无线模块采用nRF24L01 无线收发模块,温度测量用DS18B20. 采用两块单片机分别控制一个无线模块模块,一个单片机作为主单片机,发送控制信息并显示接收回的信息,另一个单片机作为从单片机,接收主单片机的控制信息并控制温度测量模块DS18B2Q然后将测得数据通过无线模块传回到主单片机63. 电容量测量65. 电阻量测量电阻测量要求:1. 数据采集部分:采用标准电阻(RQ)与待测电阻(R1)串联分压,用ADQ832读取待测电阻两端电压U1,则待测电阻阻值R仁U1*RQ/(UQ-U1), UQ为电源电压• 标准电阻采用不同阻值构成多个测量档位,用开关控制档位的切换.难点:标准电阻精度要高,材料选择较难电源电压要求高,要求电压纹波小,准备由294Q 稳压芯片稳压提供5V 电源2. 数据处理部分:单片机控制ADQ832采集电压信号,由单片机处理数据并根据档位换算出阻值,通过液晶1602显示出来,这部分主要是单片机程序的编写.67. 条码阅读器69. 指纹识别71.DDS73. 无线控制75. 水平仪77.血压测试仪79.血氧测试仪81.存储示波器83.GIS 车辆监控调度系统85. 手持红外测温仪87.SMS 转23289.SMS 通信91.SMS 远程控制93.基于GSM 的环境参数测试(温度、湿度、照度等)要求:用51 单片机配合传感器A/D,D/A 转换器及GSM 通信模块,将室内环境参数上传至上位机并由液晶显示模块显示,下位机放在室内,通过传感器采集环境参数,经单片机的串行接口,由GSM 模块负责上位机和下位机的通信.95.三角测距仪A 、利用三角测距法进行设计(三角形有一条边BC 已定,根据三角测距法求出离定点A 的距离)通过将定位器电压量的变化转化为角度的变化,从而测出所求定点 A 的距离.B、三角函数的转换关系在系统内部进行,使用显示器直接显示出离定点A的距离;97.数控直流电源(电压源)99.数控交流电源(电压源50Hz~60Hz )101.无电源RFID103.基于GSM 的环境参数测试(温度、湿度、照度等)要求:用51 单片机配合传感器A/D,D/A 转换器及GPRS 通信模块,将室内环境参数上传至上位机并由液晶显示模块显示,下位机放在室内,通过传感器采集环境参数,经单片机的串行接口,由GPRS模块负责上位机和下位机的通信105.单键盘飞梭控制按键设计107. 基于51 单片机的16 键触摸盘设计109.葡萄糖测试仪。

单词记忆测试器程序的设计说明

单词记忆测试器程序的设计说明

b6 db 1000h dup('$')b9 db 'You do not know the following words , please remember them agian',0ah,0dh,'$' f1 db 'very good,congratulations to you',0ah,0dh,'$'call zi4;输出不认识的单词mov ah,02h;回车换行mov dl,0dhint 21hmov ah,02hmov dl,0ahint 21hcall zi2;将不认识的单词存到B6所指单元call zi2;将不认识的单词存到B6所指单元m2:inc dilea si,b6;将不认识的单词放到B6所指单元111111111111111111111mov si,z;保留SI的地址zi4 procpush axpush bxpush cxpush dxpush sipush dilea dx,b9;输出不认识的单词mov ah,09hint 21hlea dx,b6mov ah,09hint 21hpop dipop sipop dxpop cxpop bxpop axretzi4 endp操作说明:一、输入单词:;1、提示输入单词,输入最少5个、最多255个英文单词,每个单词不超过20个字符。

2、若直接回车,则结束单词输入,进入单词测试;3、输足20个字符,自动进入下一个单词的输入;4、不足20个字符个字符,按回车键进入下一个单词的输入。

;二、单词记忆测试:1、从输入的第一个单词开始测试2、键入'y'(不分大小写)或'n',回答是否认识,不需按回车键确认,其它按键无效;3、紧接着,没有提示,可按上移键或下移键循环测试;4、按Esc键结束测试。

三、计算单词识别率并显示输出;四、提示是否进行下一组单词的输入和测试,键入'y'(不分大小写)或'n'选择是否继续,不需按回车键确认,其它按键无效。

单词记软件课程设计

单词记软件课程设计

单词记软件课程设计一、课程目标知识目标:1. 学生能够掌握并运用500个本年级英语教材中的核心词汇,通过单词记忆软件辅助学习;2. 学生能理解并运用词汇在不同语境中的意义和用法,提高英语阅读理解能力;3. 学生能通过单词记忆软件,了解词汇的词性、词义、例句及其搭配,形成系统的词汇知识体系。

技能目标:1. 学生能够熟练使用单词记忆软件,自主进行词汇学习,提高自学能力;2. 学生能够通过软件提供的各种练习,提高词汇记忆、拼写和运用的能力;3. 学生能够运用所学词汇进行简单的英语口语交流和写作,提高英语实际运用能力。

情感态度价值观目标:1. 培养学生积极的学习态度,激发他们学习英语的兴趣,提高学习积极性;2. 培养学生合作学习的意识,使他们愿意与同学分享学习心得,共同进步;3. 培养学生正确的价值观,认识到学习英语的重要性,为将来的学习和发展奠定基础。

课程性质:本课程以实际运用为导向,结合教材内容,利用单词记忆软件辅助教学,提高学生的词汇量和英语实际运用能力。

学生特点:本年级学生具有一定的英语基础,对新鲜事物充满好奇心,学习积极性较高,但学习习惯和方法有待培养。

教学要求:教师需结合学生特点,运用多种教学方法,确保学生掌握课程目标所设定的知识、技能和情感态度价值观目标,提高英语素养。

在教学过程中,注重学生的个体差异,因材施教,确保每个学生都能在课程中取得进步。

二、教学内容本课程依据课程目标,结合教材内容,选择以下教学内容:1. 教材核心词汇学习:以教材为基础,挑选500个核心词汇进行深入学习,涵盖不同词性、词义和用法。

2. 词汇记忆软件应用:指导学生使用词汇记忆软件,运用软件中的功能进行词汇学习,包括词汇卡片、例句、拼写练习等。

3. 语境应用:通过阅读教材中的文章,让学生在具体语境中运用所学词汇,提高词汇运用能力。

4. 口语和写作练习:组织学生进行口语和写作练习,运用所学词汇进行实际交流,巩固词汇记忆。

单词记忆软件设计方案

单词记忆软件设计方案

1.目的和意义目前英语地位日趋重要,单词的词汇量是一个人英语能力及水平极大的重要体现, 而背单词依旧是困扰许多人的地方,原因如下:英语单词多而繁杂,面对整整一本的单词词典人们总是望而却步,不从何入手。

开始记忆以后没有安排恰当计划,零散的记忆,效率低下,久而久之看不见成果,便缺乏动力。

根据双重遗忘理论,人们不仅仅是忘记了单词本身,还会忘记了今天自己该复习什么单词双重遗忘让我们错失了将单词从短期记忆转化成长期记忆的机会。

背单词的行为本身涉及到两个概念“记忆”和“遗忘”。

记忆是将需要记忆的元素在大脑中形成一种记忆的链结。

它是学习的过程。

艾宾浩斯曾提出,记忆可以分为瞬时记忆、短时记忆和长期记忆[2]。

遗忘是指记忆元素之间的链结弱化甚至消失,导致人们对某个记忆元素不再回忆起来。

记忆和遗忘相互制衡并存,但它们是有规律的,这就是著名的“艾宾浩斯遗忘原理”也就是“记忆曲线”或者“遗忘曲线”。

众所周知,要记住一样东西必须反复的复习重复,才能达到牢记状态,而艾宾浩斯遗忘原理告诉我们遵循记忆与遗忘的规律进行复习,将会事半功倍。

鉴于以上种种原因,本次项目设计了基于艾宾浩斯记忆曲线的单词记忆的系统,通过它,可以解决人们背单词的困扰,系统能够每天提供新增单词交由用户记忆,可以动态的根据“记忆曲线”将你最该复习的单词呈现给你,将极大的提高人们记忆效率。

2. 开发目标该系统将主要实现以下几个目标与功能:1.帮助用户实现信息化管理自己记忆单词的日程安排。

2.提供友好的界面供用户复习浏览单词3.根据艾宾浩斯记忆曲线原理生成用户记忆曲线。

4.根据用户操作动态修正用户记忆曲线参数。

5.根据用户记忆曲线动态调整复习计划。

6.根据用户复习计划初始化任务列表。

7.实现任务单词推送次序调整动态更新。

系统通过实现以上几个核心功能,达到提高用户记忆效率的效果。

3. 系统总体结构图单词记忆系统由词库模块、复习计划维护模块、复习模块、浏览模块、用户模块等子模块构成。

51单片机课程设计——单词记忆器的设计实现

51单片机课程设计——单词记忆器的设计实现
通过对4*7键盘的扫描,输出到P3口(每次只有一个低电平),读取P1口高四位的数据。通过switch case语句来判断键值,来查取字母表,送往显示。显示模块是通过re,rw,的置位来选择数据和指令的 输入,配合使能位E。8位数据数据控制引脚分时复用,从而实现显示。
字符的显示:用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示 屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1” 的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符 就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
三、系统程序流程图
CHAPTER
02
硬件电路设计
一、总电路系统
二、时钟脉冲和单片机复位模块
晶振是晶体振荡器的简称 在电气上它可以等效成一 个电容和一个电阻并联再串联一个电容的二端网络 电工学上这个网络有两个谐振点 以频率的高低分其 中较低的频率是串联谐振 较高的频率是并联谐振 由 于晶体自身的特性致使这两个频率的距离相当的接近 在这个极窄的频率范围内 晶振等效为一个电感 所以 只要晶振的两端并联上合适的电容它就会组成并联谐 振电路 这个并联谐振电路加到一个负反馈电路中就 可以构成正弦波振荡电路 由于晶振等效为电感的频 率范围很窄 所以即使其他元件的参数变化很大 这个 振荡器的频率也不会有很大的变化。
g
k
o
s
w
0111 d
h
l
p
t
x
CHAPTER
04
课设实现
模拟仿真软件测试

单词记忆测试器程序设计课程设计

单词记忆测试器程序设计课程设计

单词记忆测试器程序设计课程设计
本次课程设计项目为单词记忆测试器程序设计,旨在设计一个可以帮
助人们更好地掌握英语单词的程序。

本程序主要包含以下几个模块:用户
信息管理模块、单词库管理模块、测试模块、统计分析模块等。

用户信息管理模块
本模块旨在提供用户信息的管理功能,包括用户的注册、登录、修改
信息等。

用户可以通过该模块完成注册,并设置用于登录的账号和密码。

同时,用户也可以在此模块中修改个人信息、修改密码等操作。

单词库管理模块
测试模块
本模块用于进行单词测试,包括单词听力测试、单词拼写测试等。

用户可以在此模块中选择自己想要进行的测试类型,然后根据测试内
容进行测试。

测试结果将会在测试完成后显示出来,用户可以查看自己的
测试成绩。

统计分析模块
本模块用于对用户测试结果进行统计分析。

管理员可以通过该模块查看用户的测试记录、测试成绩等信息,并对
用户测试数据进行统计分析,以便更好地了解用户在单词学习方面的表现。

总结
本项目设计旨在帮助用户更好地掌握英语单词,提供了用户信息管理、单词库管理、测试及统计分析等功能。

通过该项目的实现,用户可以方便
地进行单词学习和测试,提升英语单词水平。

基于某单片机地单词记忆器设计

基于某单片机地单词记忆器设计

大学能源与动力工程学院课程设计报告题目:单词记忆测试器程序设计课程:单片机原理与应用课程设计专业:电气工程与其自动化班级:电气1102姓名:学号:第一部分任务书《单片机原理与应用》课程设计任务书一、课题名称单词记忆测试器程序设计二、课程设计目的课程设计是课程教学中的一项重要容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面结实地掌握课堂教学容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。

《单片机原理与应用》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。

单片机原理与应用课程设计的目的是让学生在理论学习的根底上,通过完成一个涉与MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。

为今后能够独立进展某些单片机应用系统的开发设计工作打下一定的根底。

通过单片机硬件和软件设计、调试、整理资料等环节的培训,使学生初步掌握工程设计方法和组织实践的根本技能,逐步熟悉开展科学实践的程序和方法。

三、课程设计容设计以89C51单片机和外围元器件构成的单片机应用系统,并完成相应的软硬件调试。

1. 系统方案设计:综合运用单片机课程中所学到的理论知识,学生根据所选课题的任务、要求和条件进展总体方案的设计。

2. 硬件电路设计:对方案中以单片机为核心的电路进展设计计算,包括元器件的选择和电路参数的计算,并画出总体电路图。

3. 软件设计:根据已设计出的软件系统框图,用汇编语言或C51编制出各功能模块的子程序和整机软件系统的主程序。

4. 调试:在单片机EDA仿真软件环境Proteus下进展仿真设计并调试;或在单片机周立功实验箱上进展相关设计并调试。

单词记忆测试器C程序源代码(单片机)

单词记忆测试器C程序源代码(单片机)

单片机单词记忆测试器C程序源代码/************************************************************************ /**单片机单词测试程序/**设计一个以单片机为核心的单词记忆测试器;/** 实现单词的录入(为使程序具有可演示性,单词不少于10个);/**单词用按键控制依次在屏幕上显示,按键选择认识还是不认识,/**也可以直接进入下一个或者上一个;/**单词背完后给出正确率。

/*************************************************************************/ #define uchar unsigned char#define uint unsigned int#include <reg52.h>#include "asc.h" //ASCII字模表#include "12864.h" //12864液晶屏底层驱动程序bit ERROR=1; //输入字符错误标志位bit result=0; //输入结果对错的标志位,为0是正确bit verify=1; //已按了确认键后清零sbit ERR=P2^7;uchar correctNUM; //统计测试正确的单词数,即得分/*****************************************/** 存储要测试的单词,放在ROM中/****************************************/uchar code S[10][5]={ "left ", //左"bird ", //鸟"book ", //书"tree ", //树"water ", //水"go ", //去"come ", //来"rain ", //雨"fly ", //飞"eat ", //吃} ;uchar code SL[10]={4,4,5,3,2,4,4,3,4,3};//存储各测试单词的长度uchar KeyNum[8]; //储存输入的单词/*****************************************/** 存储键盘的字母值,放在ROM中/****************************************/uchar code tab1[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}};//最后的1234 键盘值为功能键,1表示确定键,2表示不认识,3表示上一个,4表示下一个/*************************************************** 键盘扫描程序*************************************************/unsigned char kbscan() //键盘扫描{uchar hang,lie,key; //P1连行,P3连列if(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; //P0.6为第3列case 0xF7:lie=1;break; //P0.7为第2列case 0xEF:lie=0;break; //P0.7为第1列}P1=0xFF; //P1全高电平P3=0; //P3全低电平while(P1!=0xFF||P3!=0); //按键松开后才返回值key=tab1[hang][lie];}elsekey='_';return (key);}/************************************************************************/** 主函数/**/**/*************************************************************************/void main(void){uchar hz_Num; //用于计当前测试的是第几个词,第一个为0 uchar temp[8]; //用于送液晶屏显示的临时变量uchar iword=0,Nword=0; //输入单词字母下一个计数LCD12864_init(); //LCD12864初始化ClearLCD(); //清屏en_disp(2,1,11,Asc,"INPUT WORD:",1); //在第2行第1列en_disp(4,1,1,Asc,">",1); //在第5行,第2列开始显示en_disp(6,0,8,Asc,"correct:",1); //在第7行,第1列开始显示en_disp(6,80,5,Asc,"00/10",1); //在第7行第81列P1=0xFF; //P1全高电平P3=0; //P3全低电平while(1){KeyNum[iword]=kbscan(); //扫描键盘的输入值,没按下时返回下横线hz_disp(0,48,1,hz1+hz_Num*32,1); //在第1行,第49列开始显示测试的汉字temp[0]=(hz_Num+1)/10+0x30; //将十进制数转换为ASCII字符temp[1]=(hz_Num+1)%10+0x30; //算出测试汉字的序号的第一位和第二位en_disp(0,20,1,Asc,":",1); //在第1行第21列en_disp(0,4,2,Asc,temp,1); //在第1行第5列显示测试序号if(KeyNum[iword]!='_') //键盘有按键按下{if(KeyNum[iword]==1) //如果按下了确定键{if(SL[hz_Num]==iword&&verify) //输入长度等于测试单词的长度,则正确,verify 表示按下了确认后有效一次{correctNUM+=1;if(correctNUM>10){correctNUM=10; //最多10个正确的}verify=0; //标志位清零hz_Num++; //测试下一个单词if(hz_Num==10) hz_Num=0; //最多设10个单词temp[0]=(correctNUM)/10+0x30; //将十进制数转换为ASCII字符temp[1]=(correctNUM)%10+0x30; //算出测试汉字的序号的第一位和第二位en_disp(6,80,2,Asc,temp,1); //在第7行第81列iword=0;Nword=0;en_disp(4,16,8,Asc," ",1); //在第5行,第17列开始显示}}else if(KeyNum[iword]==2||KeyNum[iword]==4)//如果按下了“不认识”或“下一个”键,直接跳到下一个单词{result=0; //跳下一个时错误灯灭ERROR=0;hz_Num++; //测试下一个单词if(hz_Num==10) hz_Num=0; //最多设10个单词iword=0;Nword=0;en_disp(4,16,8,Asc," ",1); //在第5行,第17列开始显示}else if(KeyNum[iword]==3) //如果按下了“上一个”键,直接跳到上一个单词{result=0; //跳下一个时错误灯灭ERROR=0;//测试下一个单词if(hz_Num==0) hz_Num=10; //最多设10个单词hz_Num--;iword=0;Nword=0;en_disp(4,16,8,Asc," ",1); //在第4行,第16列开始显示}else if(S[hz_Num][iword]==KeyNum[iword]) //输入的字符与测试的标准字符比较{ temp[0]=KeyNum[iword];ERROR=0; //正确就标志位置0en_disp(4,Nword+16,1,Asc,temp,1); //在第5行,第17列开始显示iword++;if(iword==8) iword=0;Nword=iword*8;verify=1;}else{ temp[0]=KeyNum[iword];ERROR=1; //错误就置1en_disp(4,Nword+16,1,Asc,temp,1); //在第5行,第17列开始显示iword++;if(iword==8) iword=0;Nword=iword*8;}result=ERROR|result; //0表示结果正确}ERR=!result; //错误指示灯}}/***********************************************************/* ASCII字模的数据表/* 码表从0x20~0x7e 即ASCII的32-127/* 纵向取模下高位8x16/*********************************************************/ unsigned char code Asc[] = // ASCII 表{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xFC,0xFC,0x38,0x00,0x00, // -!-0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00,0x00,0x0E,0x1E,0x00,0x00,0x1E,0x0E,0x00, // -"-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xF8,0xF8,0x20,0xF8,0xF8,0x20,0x00, // -#-0x02,0x0F,0x0F,0x02,0x0F,0x0F,0x02,0x00,0x38,0x7C,0x44,0x47,0x47,0xCC,0x98,0x00, // -$-0x03,0x06,0x04,0x1C,0x1C,0x07,0x03,0x00,0x30,0x30,0x00,0x80,0xC0,0x60,0x30,0x00, // -%-0x0C,0x06,0x03,0x01,0x00,0x0C,0x0C,0x00,0x80,0xD8,0x7C,0xE4,0xBC,0xD8,0x40,0x00, // -&-0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x00, // -'-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00, // -(-0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00,0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00, // -)-0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00,0x80,0xA0,0xE0,0xC0,0xC0,0xE0,0xA0,0x80, // -*-0x00,0x02,0x03,0x01,0x01,0x03,0x02,0x00,0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00, // -+-0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -,-0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00, // ---0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -.-0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00, // -/-0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00, // -0- 0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00, // -1- 0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00, // -2- 0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00, // -3- 0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00, // -4- 0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00, // -5- 0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00, // -6- 0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00, // -7- 0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00, // -8- 0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00, // -9- 0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00, // -:-0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00, // -;-0x00,0x00,0x08,0x0E,0x06,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x00, // -<- 0x00,0x00,0x01,0x03,0x06,0x0C,0x08,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00, // -=- 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x08,0x18,0x30,0x60,0xC0,0x80,0x00, // ->- 0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,0x18,0x1C,0x04,0xC4,0xE4,0x3C,0x18,0x00, // -?- 0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00,0xF0,0xF8,0x08,0xC8,0xC8,0xF8,0xF0,0x00, // -@- 0x07,0x0F,0x08,0x0B,0x0B,0x0B,0x01,0x00,0xE0,0xF0,0x98,0x8C,0x98,0xF0,0xE0,0x00, // -A- 0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00, // -B- 0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00,0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x18,0x00, // -C- 0x03,0x07,0x0C,0x08,0x08,0x0C,0x06,0x00,0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00, // -D- 0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00,0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00, // -E- 0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00,0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00, // -F- 0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0xF0,0xF8,0x0C,0x84,0x84,0x8C,0x98,0x00, // -G- 0x03,0x07,0x0C,0x08,0x08,0x07,0x0F,0x00,0xFC,0xFC,0x40,0x40,0x40,0xFC,0xFC,0x00, // -H- 0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00, // -I- 0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00, // -J- 0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00,0x04,0xFC,0xFC,0xC0,0xF0,0x3C,0x0C,0x00, // -K- 0x08,0x0F,0x0F,0x00,0x01,0x0F,0x0E,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00, // -L- 0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00,0xFC,0xFC,0x38,0x70,0x38,0xFC,0xFC,0x00, // -M- 0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00, // -N- 0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00, // -O- 0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00, // -P- 0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00, // -Q- 0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00,0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00, // -R- 0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00, // -S-0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00,0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00, // -T- 0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00, // -U- 0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00, // -V- 0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00,0xFC,0xFC,0x00,0x80,0x00,0xFC,0xFC,0x00, // -W- 0x03,0x0F,0x0E,0x03,0x0E,0x0F,0x03,0x00,0x0C,0x3C,0xF0,0xC0,0xF0,0x3C,0x0C,0x00, // -X- 0x0C,0x0F,0x03,0x00,0x03,0x0F,0x0C,0x00,0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00, // -Y- 0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00, // -Z- 0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00,0x00,0x00,0xFC,0xFC,0x04,0x04,0x00,0x00, // -[- 0x00,0x00,0x0F,0x0F,0x08,0x08,0x00,0x00,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00, // -\-0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x00,0x00,0x00,0x04,0x04,0xFC,0xFC,0x00,0x00, // -]- 0x00,0x00,0x08,0x08,0x0F,0x0F,0x00,0x00,0x08,0x0C,0x06,0x03,0x06,0x0C,0x08,0x00, // -^- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -_-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x03,0x07,0x04,0x00,0x00,0x00, // -`-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x00, // -a- 0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00,0x04,0xFC,0xFC,0x20,0x60,0xC0,0x80,0x00, // -b- 0x08,0x0F,0x07,0x08,0x08,0x0F,0x07,0x00,0xC0,0xE0,0x20,0x20,0x20,0x60,0x40,0x00, // -c- 0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00,0x80,0xC0,0x60,0x24,0xFC,0xFC,0x00,0x00, // -d- 0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00,0xC0,0xE0,0xA0,0xA0,0xA0,0xE0,0xC0,0x00, // -e- 0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00,0x40,0xF8,0xFC,0x44,0x0C,0x18,0x00,0x00, // -f- 0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00, // -g- 0x27,0x6F,0x48,0x48,0x7F,0x3F,0x00,0x00,0x04,0xFC,0xFC,0x40,0x20,0xE0,0xC0,0x00, // -h- 0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00, // -i- 0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xEC,0xEC,0x00, // -j- 0x00,0x30,0x70,0x40,0x40,0x7F,0x3F,0x00,0x04,0xFC,0xFC,0x80,0xC0,0x60,0x20,0x00, // -k- 0x08,0x0F,0x0F,0x01,0x03,0x0E,0x0C,0x00,0x00,0x00,0x04,0xFC,0xFC,0x00,0x00,0x00, // -l- 0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0xE0,0xE0,0x60,0xC0,0x60,0xE0,0xC0,0x00, // -m- 0x0F,0x0F,0x00,0x0F,0x00,0x0F,0x0F,0x00,0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00, // -n- 0x00,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,0xC0,0xE0,0x20,0x20,0x20,0xE0,0xC0,0x00, // -o- 0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00, // -p- 0x40,0x7F,0x7F,0x48,0x08,0x0F,0x07,0x00,0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00, // -q- 0x07,0x0F,0x08,0x48,0x7F,0x7F,0x40,0x00,0x20,0xE0,0xC0,0x60,0x20,0x60,0xC0,0x00, // -r- 0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0x40,0xE0,0xA0,0x20,0x20,0x60,0x40,0x00, // -s- 0x04,0x0C,0x09,0x09,0x0B,0x0E,0x04,0x00,0x20,0x20,0xF8,0xFC,0x20,0x20,0x00,0x00, // -t-0x00,0x00,0x07,0x0F,0x08,0x0C,0x04,0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00, // -u- 0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00,0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00, // -v- 0x00,0x03,0x07,0x0C,0x0C,0x07,0x03,0x00,0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00, // -w-0x07,0x0F,0x0C,0x07,0x0C,0x0F,0x07,0x00,0x20,0x60,0xC0,0x80,0xC0,0x60,0x20,0x00, // -x-0x08,0x0C,0x07,0x03,0x07,0x0C,0x08,0x00,0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00, // -y-0x47,0x4F,0x48,0x48,0x68,0x3F,0x1F,0x00,0x60,0x60,0x20,0xA0,0xE0,0x60,0x20,0x00, // -z-0x0C,0x0E,0x0B,0x09,0x08,0x0C,0x0C,0x00,0x00,0x40,0x40,0xF8,0xBC,0x04,0x04,0x00, // -{-0x00,0x00,0x00,0x07,0x0F,0x08,0x08,0x00,0x00,0x00,0x00,0xBC,0xBC,0x00,0x00,0x00, // -|-0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,0x04,0x04,0xBC,0xF8,0x40,0x40,0x00, // -}-0x00,0x08,0x08,0x0F,0x07,0x00,0x00,0x00,0x08,0x0C,0x04,0x0C,0x08,0x0C,0x04,0x00, // -~-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x60,0xC0,0x80,0x00, // -•-0x07,0x07,0x04,0x04,0x04,0x07,0x07,0x00,};/***********************************************************/* 显示汉字的字模数组存储要测试的单词中文/* 纵向取模下高位16x16/* 下一个汉字为上一个汉字在数组中位置的hz1+32/*********************************************************/unsigned char code hz1[] ={/*-- 文字: 左--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x10,0x10,0x10,0x11,0x1E,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00, 0x04,0x08,0x12,0x62,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x02,0x02,0x00, /*-- 文字: 鸟--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x3F,0x20,0x20,0x68,0xA6,0x20,0x22,0x21,0x3E,0x00,0x00,0x00,0x00, 0x00,0x08,0x08,0xC8,0x48,0x48,0x48,0x48,0x48,0x48,0x4A,0x41,0x42,0x7C,0x00,0x00, /*-- 文字: 书--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x9F,0x40,0x20,0x00,0x00,0x00, 0x80,0x80,0x80,0x80,0x80,0x80,0xFF,0x80,0x80,0x80,0x84,0x82,0x84,0xF8,0x00,0x00,/*-- 文字: 树--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x08,0x09,0xFF,0x09,0x08,0x24,0x23,0x20,0x3F,0x00,0x09,0x08,0x08,0xFF,0x08,0x00, 0x60,0x80,0xFF,0x00,0x84,0x08,0x30,0xC0,0x38,0x00,0x00,0xC2,0x01,0xFE,0x00,0x00, /*-- 文字: 水--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x04,0x04,0x04,0x05,0x06,0x00,0xFF,0x06,0x01,0x02,0x04,0x18,0x00,0x00,0x00, 0x04,0x08,0x10,0x60,0x80,0x02,0x01,0xFE,0x00,0x80,0x40,0x20,0x10,0x08,0x08,0x00, /*-- 文字: 去--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00, 0x80,0x80,0x82,0x86,0x8A,0x92,0xE2,0x82,0x82,0x82,0x8A,0x86,0x83,0x80,0x80,0x00, /*-- 文字: 来--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x10,0x10,0x14,0x13,0x10,0x10,0xFF,0x10,0x10,0x11,0x16,0x10,0x10,0x00,0x00, 0x84,0x84,0x88,0x88,0x90,0xA0,0xC0,0xFF,0xC0,0xA0,0x90,0x88,0x88,0x84,0x84,0x00, /*-- 文字: 雨--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x40,0x47,0x44,0x44,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x44,0x47,0x40,0x00, 0x00,0xFF,0x00,0x00,0x90,0x48,0x00,0xFE,0x00,0x90,0x48,0x02,0x01,0xFE,0x00,0x00, /*-- 文字: 飞--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x02,0x05,0x08,0x10,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x08,0x84,0x42,0x0F,0x00, /*-- 文字: 吃--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x3F,0x20,0x20,0x3F,0x04,0x08,0x32,0xD2,0x12,0x12,0x12,0x13,0x10,0x10,0x00, 0x00,0xF0,0x20,0x20,0xF0,0x00,0x0C,0x12,0x22,0x42,0x42,0x82,0x02,0x02,0x0E,0x00, };/*-----------------------------------------------------------*/#define LCD_OFF 0x3E#define LCD_ON 0x3F#define Add_X 0xB8 //the start address of the page 0 ;(0~7)#define Add_Y 0x40 //the start address of the Y counter ; (0~64)#define Add_Z 0xC0 //the start address of the DDRAM ; (0~64)/*-----------------------------------------------------------*/#define LCD12864_DATA_PORT P0sbit LCD12864_EN =P2^4;sbit LCD12864_RW =P2^3; //0:write ; 1:readsbit LCD12864_RS =P2^2; //0:the command .1:the datasbit LCD12864_CS_L =P2^1; //select the left of the lcd when 1sbit LCD12864_CS_R =P2^0;sbit LCD12864_RST =P2^5;/*------------------------------------------------------------*/void delayus(unsigned int us){while(us--);}void delayms(unsigned ms){unsigned int i,j;for (i=0;i<ms;i++){for (j=0;j<1000;j++);}}/*--------------------------select the LCD--------------------*/void LCDSel(unsigned char sel){switch(sel){case 0: LCD12864_CS_L=0;LCD12864_CS_R=0;break;case 1: LCD12864_CS_L=1;LCD12864_CS_R=0;break; //leftcase 2: LCD12864_CS_L=0;LCD12864_CS_R=1;break; //rightdefault:;};}/*------------------------------------------------------------*/void WaitLCD(){unsigned char flag;LCD12864_DATA_PORT=0xFF;LCD12864_RW=1;LCD12864_RS=0;LCD12864_EN=1;LCD12864_EN=1;LCD12864_EN=0;LCD12864_DATA_PORT=0xFF; //读有效数据LCD12864_RW=1;LCD12864_RS=0;;LCD12864_EN=1;do{flag=LCD12864_DA TA_PORT;LCD12864_DATA_PORT=0xFF;} while((flag&0x80)==1); //读BUSY信号//仅当第7位为0时才可操作LCD12864_EN=0;} //*//*-------------------------------------------------------------*/void WriteDatToLCD12864(unsigned char dat){WaitLCD();LCD12864_RS=1; //the dataLCD12864_RW=0; //writeLCD12864_DATA_PORT=dat;LCD12864_EN=1;;LCD12864_EN=0;}/*-------------------------------------------------------------*/void WriteCmdToLCD12864(unsigned char cmd){WaitLCD();LCD12864_RS=0; //the commandLCD12864_RW=0; //writeLCD12864_DATA_PORT=cmd;LCD12864_EN=1;;LCD12864_EN=0;}/*-------------------------------------------------------------*/unsigned char ReadDatFromLCD12864(void){unsigned char dat;WaitLCD();LCD12864_DATA_PORT=0xFF; //读空操作LCD12864_RS=1; //the dataLCD12864_RW=1; //readLCD12864_EN=1;LCD12864_EN=1;LCD12864_EN=0;LCD12864_DATA_PORT=0xFF; //来读有效数据LCD12864_RS=1; //the dataLCD12864_RW=1; //readLCD12864_EN=1;dat=LCD12864_DATA_PORT;LCD12864_EN=0;return dat;}/*--------------------------------------------------------------*///from the chip manualvoid LCD12864_init(void){LCD12864_RST=0;delayus(50);LCD12864_RST=1;LCDSel(0); //left and rightWriteCmdToLCD12864(LCD_OFF);WriteCmdToLCD12864(LCD_ON);}//x:0~7void SetX(unsigned char x) //写入X的地址{WriteCmdToLCD12864(Add_X+x);}//y:0~127void SetY(unsigned char y){WriteCmdToLCD12864(Add_Y+y);}//z:0~63void SetZ(unsigned char z){WriteCmdToLCD12864(Add_Z+z);}void ClearLCD(){int i,j;LCDSel(0);for(j=0;j<8;j++){WriteCmdToLCD12864(LCD_ON);SetX(j);WriteCmdToLCD12864(Add_Y); //diffrent from SetY(0),SetY(64);SetZ(0);for (i=0;i<64;i++){WriteDatToLCD12864(0x00);}}}/*-------------------------显示某点------------------*///左上角第一个点为原点,向下Y为轴,向右为X轴//x:0~63~127 y:0~63//flag : 0:擦除某个点// 1:显示某个点unsigned char code Tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};void Dot(char x,char y,bit flag){unsigned char dat;// y=63-y; //坐标轴的移动和反转if(x<64) //如果小于64则是在左半屏,CS1片选{LCDSel(1);SetX(y/8); //set the page addressSetY(x); //set the Y adressdat=ReadDatFromLCD12864();if(flag)dat=dat|(Tab[y%8]);elsedat=dat&(~(Tab[y%8])); //擦除某个点就是在原来的数据基础上与上(要擦的位置的取反)SetY(x); //set the Y adressWriteDatToLCD12864(dat);}else if(x<128){LCDSel(2);SetX(y/8);SetY(x-64);dat=ReadDatFromLCD12864();if(flag)dat=dat|(Tab[y%8]);elsedat=dat&(~(Tab[y%8]));SetY(x-64);WriteDatToLCD12864(dat);}}//draw a line between point(x1,y1) and point(x2,y2)//flag 0:erase the line 1:draw a linevoid Line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,bit flag){unsigned char i;unsigned char temp;float k;if(x1==x2){if(y1>y2){ temp=x1;x1=x2;x2=temp;temp=y1;y1=y2;y2=temp;}for(i=y1;i<=y2;i++){Dot(x1,i,flag);}}else{if(x1>x2){temp=x1;x1=x2;x2=temp;temp=y1;y1=y2;y2=temp;}k=(float)(y2-y1)/(float)(x2-x1);for(i=0;i<x2-x1;i++){Dot(x1+i,(unsigned char)(y1+k*i),flag);}}}/*-------------------------------------------------------------*/void Rect(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,bit flag){Line(x1,y1,x2,y1,flag);Line(x2,y1,x2,y2,flag);Line(x2,y2,x1,y2,flag);Line(x1,y2,x1,y1,flag);}/*-------------------------------------------------------------*//*void RectArea(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,bit flag) {unsigned char temp;unsigned char i;if(x1>x2){temp=x1;x1=x2;x2=temp;temp=y1;y1=y2;y2=temp;}for(i=0;i<=x2-x1;i++){Line(x1+i,y1,x1+i,y2,flag);}}//16*16//x行0~7 y列0~127//flag 0:汉字反白显示void hz_disp(unsigned char x,unsigned char y,unsigned char n,unsigned char code * hz,bit flag) {unsigned char i,j;for (j=0;j<n;j++){//显示上半个汉字for(i=0;i<16;i++){//点的位置是在左还是右if(y+16*j+i<64){LCDSel(1);WriteCmdToLCD12864(LCD_ON);SetX(x);SetZ(0);SetY(y+16*j+i);if(flag)WriteDatToLCD12864(hz[32*j+i]);elseWriteDatToLCD12864(~hz[32*j+i]);}else if(y+16*j+i<128){LCDSel(2);WriteCmdToLCD12864(LCD_ON);SetX(x);SetZ(0);SetY(y+16*j+i-64);if(flag)WriteDatToLCD12864(hz[32*j+i]);elseWriteDatToLCD12864(~hz[32*j+i]);}}//显示下半个汉字for(i=16;i<32;i++){//先判断点是在左还是在右if(y+16*j+i-16<64){ if(x+1<8) //最后一行显示上半个字{LCDSel(1);WriteCmdToLCD12864(LCD_ON);SetX(x+1);SetZ(0);SetY(y+16*j+i-16);if(flag)WriteDatToLCD12864(hz[32*j+i]);elseWriteDatToLCD12864(~hz[32*j+i]);}}else if(y+16*j+i-16<127){if(x+1<8) //最后一行{LCDSel(2);WriteCmdToLCD12864(LCD_ON);SetX(x+1);SetZ(0);SetY(y+16*j+i-16-64);if(flag)WriteDatToLCD12864(hz[32*j+i]);elseWriteDatToLCD12864(~hz[32*j+i]);}}}}}//x:行0~7//y:列0~127//asc: 指向标准交换码//string: 指向要显示的字符串//flag: 0 反白显示void en_disp(unsigned char x,unsigned char y,unsigned char n,unsigned char code *asc,unsigned char *string,bit flag){unsigned char i,j,loc;for (j=0;j<n;j++){loc=string[j]-0x20; //确定要显示的字符在asc表中的位置(乘上16),见字模ASC表,H头文件//显示上半个字母for(i=0;i<8;i++){//点的位置是在左还是右if(y+8*j+i<64){LCDSel(1);WriteCmdToLCD12864(LCD_ON);SetX(x);SetZ(0);SetY(y+8*j+i);if(flag)WriteDatToLCD12864(asc[16*loc+i]);elseWriteDatToLCD12864(~asc[16*loc+i]);}else if(y+8*j+i<128){LCDSel(2);WriteCmdToLCD12864(LCD_ON);SetX(x);SetZ(0);SetY(y+8*j+i-64);if(flag)WriteDatToLCD12864(asc[16*loc+i]);elseWriteDatToLCD12864(~asc[16*loc+i]);}}//显示下半个字母for(i=8;i<16;i++){//先判断点是在左还是在右if(y+8*j+i-8<64){if(x+1<8) //最后一行{LCDSel(1);WriteCmdToLCD12864(LCD_ON);SetX(x+1);SetZ(0);SetY(y+8*j+i-8);if(flag)WriteDatToLCD12864(asc[16*loc+i]);elseWriteDatToLCD12864(~asc[16*loc+i]);}}else if(y+8*j+i-8<128){if(x+1<8) //最后一行{LCDSel(2);WriteCmdToLCD12864(LCD_ON);SetX(x+1);SetZ(0);SetY(y+8*j+i-8-64);if(flag)WriteDatToLCD12864(asc[16*loc+i]);elseWriteDatToLCD12864(~asc[16*loc+i]);}}}}}/******************************** END ************************************/。

JAVA课程设计------记忆测试系统

JAVA课程设计------记忆测试系统
1
பைடு நூலகம்
程序运行的效果图如图所示:
2 概要设计
MemoryGame
Block(方块) MemoryTestPane(测试版) ShowRecord(显示成绩) ShowRecordDialog
Sound
a.系统各功能模块实现的功能为:
2
Record People(用户信息)
a.主要类及其功能 1.MemoryGame(主类) 该类负责创建记忆测试系统的主窗口,含有 main()方法,记忆测试系统从该类 开始执行。该类有 4 种重要类型的对象,分别是 String、File、MemoryTestArea 和 ShowRecordDialog 对象。 2.MemoryTestArea 该类是主类 MemoryGame 窗口中的一个 JPanel 容器,所创建的对象成为“测试 区”,这个“测试区”被添加到 MemoryGame 窗口的中心。该类主要有六种类 型的成员:ArrayList<Block>、String、Record、Timer、File、mouse 和 Thread 对象。 3.Block 该类是JButton的子类,负责为ArrayList<Block>数组表提供Block对象,使用鼠 标左键单击Block对象,可以显示该对象上的图标。 4.Record 该类是 JDialog 的子类,当用户成功单击出相应级别所要求的图标相同的方块 后,Record 创建的对象负责保持用户的名字和成绩到相应级别的文件中。 5.ShowRecordDialog 该类是 JDialog 的子类,当用户单击“查看排行榜”时,该类创建的对象负责 显示用户的成绩。 6.ShowRecord 该文件生成的类负责为“主窗口”创建“显示成绩”对象,用户通过该对象可 以查看各个级别的成绩记录。 7.People

毕业设计开题报告 基于python的英文单词记忆

毕业设计开题报告 基于python的英文单词记忆

毕业设计开题报告基于python的英文单词记忆题目:基于Python的英文单词记忆一、题目背景随着全球化的发展,英语已经成为了世界通用语言,而在学习英语的过程中,记单词是必不可少的一部分。

因此,本毕业设计旨在开发一个基于Python的英文单词记忆工具,以方便用户在学习英语的过程中记忆单词,提升其英语学习效率。

二、设计目标及意义本设计的目标是开发一款基于Python的英文单词记忆工具,主要包括以下特点:1. 支持单词添加、删除、修改、查询等功能;2. 支持单词学习、测试、记忆曲线绘制等功能,能够根据用户的学习情况自适应调整记忆曲线;3. 能够提供单词发音、示例句子等功能,便于用户学习和记忆;4. 支持数据备份和还原等功能,用户可以通过备份功能将单词库备份到云端或本地,以避免数据丢失。

本设计的意义在于:1. 为英语学习者提供一个方便、高效的单词记忆工具,提升其英语学习效率;2. 拓展Python应用领域,提高Python开发者的技能水平,培养Python编程思维。

三、技术路线和实施方案本设计的技术路线包括Python语言、GUI框架、数据库等技术的应用。

具体实施方案如下:1. 使用Python语言开发程序,利用Tkinter等GUI框架开发图形界面,支持单词添加、删除、修改、查询等功能;2. 利用SQLite等数据库,存储单词库的相关数据,支持数据备份和还原等功能;3. 利用Python的音频处理库(如pydub),实现单词发音等功能;4. 利用Python的自然语言处理库(如nltk),实现示例句子的获取和展示。

四、预期成果本设计的预期成果包括:1. 实现一个基于Python的英文单词记忆工具,支持单词添加、删除、修改、查询等功能;2. 实现单词学习、测试、记忆曲线绘制等功能,能够根据用户的学习情况自适应调整记忆曲线;3. 实现单词发音、示例句子等功能,便于用户学习和记忆;4. 实现数据备份和还原等功能,用户可以通过备份功能将单词库备份到云端或本地,以避免数据丢失。

基于Proteus和Keil C51的单词记忆测试仪设计

基于Proteus和Keil C51的单词记忆测试仪设计

基于Proteus 和Keil C51的单词记忆测试仪设计宁亮程(衡阳市第八中学,湖南 衡阳 421001)摘 要:为了检测单词记忆效果,设计了一款新型单词测试仪。

该测试仪由AT89C52单片机、12864 液晶显示模块、矩阵键盘和出错发光提示二极管组成,具有价格低廉、携带方便等特点。

在Proteus 软件平台上构建单词测试仪电路,再将调试成功的Keil C51源程序可烧录文件加载到单片机处理器中,然后进行仿真测试。

实验结果表明,该仪器具有删除输入字母、显示测试结果、出错发光提示和统计单词测试正确率等功能,能满足实际需求。

关键词:单词记忆测试仪;Proteus 平台;12864 LCM;矩阵键盘中图分类号:TP391.9 文献标识码:A 文章编号:1003-7241(2018)10-0143-04Design of Word Memory Instrument Based onProteus and Keil C51NING Liang-cheng( Hengyang No.8 High School, Hengyang 421001 China )Abstract: A kind of new word memory instrument is designed in order to detect word memory effect. The instrument ismade up of AT89C52 single chip microcomputer (SCM), 12864 liquid crystal module (LCM), matrix keyboard and error luminous cue. The instrument has the advantages with low price, easy to carry and so on. The circuits of word memory instrument are constructed on the Proteus software platform. The recordable file is loaded into microcontroller unit (MCU) after source program successfully debugged. Then simulation testing is adopted. Experimental results demonstrate that the instrument can delete input letter, display test result, carry on error luminous cue and count correct rate of word test, it can satisfy practical needs.key words: word memory instrument; Proteus platform; 12864 LCM; matrix keyboard收稿日期:2018-01-121 引言记忆单词对英语学习至关重要,单词记忆测试仪能较好地测试单词的记忆效果。

单片机单词记忆测试

单片机单词记忆测试

课程设计报告项目名称: 单词记忆测试器课程名称: 单片机原理及应用院(系): 物理科学与工程技术学院专业年级: 13电子信息工程2班姓名: 傅颜超学号: **************: ***目录一.设计目的二.设计任务和要求三.设计原理分析四.硬件资源及其分配五.硬件图六.程序框图七.程序八.调试运行九.仿真截图十.设计心得体会一.设计目的1. 通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手能力。

2. 通过对单词记忆测试器程序的设计,掌握单片机的使用方法,和对简单程序的编写,最终提高我们的逻辑抽象能力。

二.设计任务和要求任务:单词记忆测试程序设计要求:设计一个以单片机为核心的单词记忆测试器;能实现单词的录入;三.设计原理分析本次课设的研究对象是基于单片机的单词记忆测试器的设计,此单词记忆测试器可以实现单词的输入并判断单词是否正确,单词背完后给出正确率,该单片机单词记忆测试器为在现实生活中有着广泛的应用,特别是对学习英语方面有很大的作用。

本设计以80C52单片机为处理器,以12864点阵液晶屏为显示器件,并使用5*6矩阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,利用单片机的ROM可存储单词和汉字,作为记忆测试用。

四.硬件资源及其分配4.1硬件模块设计中央处理模块选用80C52单片机系统组成,电路包括:80C52单片机,复位电路,时钟振荡电路。

80C52单片机需在复位电路和时钟振荡电路组成的最小系统下工作,单片机引脚图如图所示,外围电路如图所示,时钟电路采用频率为12MHz 的晶振,C1,C2与晶振构成了外部振荡电路,复位电路采用点解电容与电阻串联,当系统上电时,由于电容充电,在RST 端会产生一个高电平,高电平持续的时间由电容和电阻的值决定,当ERSET 为低电平时,系统为工作状态,80C52具有ISP 的功能,可以通过串行接口直接将程序下载到单片机内。

单词记忆测试器程序设计

单词记忆测试器程序设计

单词记忆测试器程序设计<i>微机原理</i>STACK ***** STACKDB 50 DUP(0)STACK ENDSDATA *****WORD1 DB 300 DUP(0)WORD2 DB 20 DUP(0)MSG0 DB 'THE NUMBER OF WORD YOU HAVE *****ED : $' MSG1 DB 'THE NUMBER OF WORD YOU HAVE NOT ***** :$ ' MSG2 DB 'PLEASE INPUT WORDS,END WITH END.PRESS ENTER TOEND INPUT AND START TEST!',0AH,0DH,'$'MSG3 DB 'THE WORD YOU HAVE NOT *****ED:$'MSG4 DB 'THE SOURCE WORD:$'STR1 DB 0AH,'PERSS K OR U TO JUDGE IF YOU KNOW THIS WORD!YOU CAN PRESS N OR L TO ***** THE NEXT WORD!',0AH,'$'STR2 DB 0AH,'PERSS N OR L TO CHOOSE THE NEXT WORD,PERSS OIS JUMP OUT THE GAME!',0AH,'$'RATE0 DB 'THE RIGHT RATE IS:$'DATA ENDSCODE *****ASSUME CS:CODE , DS:DATA, SS:STACKSTART: MOV AX,DATA ;取数据段地址MOV DS,AXMOV CX,0MOV DI,OFFSET WORD2PUSH DIMOV DX,OFFSET MSG2 ;调用中断显示字符串MOV AH,09HINT 21HLEA SI,WORD1INPUT: INC SIMOV AH,01H ;输入单词MOV DL,0FFHINT 21HMOV [SI],ALCMP AL,0DHJZ FIRSTJMP INPUTFIRST: CALL CLEAR<i>微机原理</i>LEA BX ,WORD1 ;准备显示第一个单词SHOW: MOV DL,[BX+1]CMP DL ,20H ;判断是否显示完一个单词(是否空格)JZ KU CMP DL,0DH ;判断是否测试完毕JZ HPMOV AH,02HINT 21HINC BXJMP SHOWHP: JMP STOPKU: MOV DX,OFFSET STR1MOV AH,09HINT 21HMOV AH,07H ;从键盘输入字符选择是否认识或者直接选择显示哪个单词INT 21HCMP AL,'K'JZ KNOWCMP AL,'U'JZ UNKNOWCMP AL,'N'JZ NEXTCMP AL,'L'JZ LASTJMP KUNL: MOV DX,OFFSET STR2MOV AH,09HINT 21HMOV AH,07H ;从键盘输入字符选择下个一或者上一个或者跳出程序INT 21HCMP AL,'N'JZ NEXTCMP AL,'L'JZ LASTCMP AL,'O'JZ STOPJMP NLLAST: CALL CLEAR ; 清屏<i>微机原理</i>CALL SET_*****N ; 置光标位置DEC BXMOV DL,[BX]CMP DL,20HJZ LAST1JMP LASTLAST1: DEC BXMOV DL ,[BX]CMP DL,20HJZ SHOWJMP LAST1NEXT: CALL CLEARCALL SET_*****NINC BXMOV DL,[BX]CMP DL,20HJZ SHOWJMP NEXTKNOW: CALL CLEARCALL SET_*****NINC CH ;统计记忆单词个数JMP NLUNKNOW: CALL CLEARCALL SET_*****NPUSH BX*****: DEC BXMOV DL,[BX]CMP DL,20HJZ SAVEJMP **********: POP BXINC CL ;统计未记忆单词个数JMP NLSAVE: MOV [DI],BX ;记录未记忆单词的偏移地址ADD DI,2JMP *****STOP: CALL CLEARKS: MOV AH,02 ;调用中断置光标位置MOV BX,0MOV DX,0500HINT 10H<i>微机原理</i>MOV DX,OFFSET MSG0 ; 显示记忆单词个数MOV AH,09H INT 21HMOV BL,CH ;调用过程实现数据转换和显示CALL ZH US: MOV AH ,02H ; 显示未记忆单词个数MOV BX,0MOV DX,0600HINT 10HMOV DX,OFFSET MSG1MOV AH,09HINT 21HMOV BL,CLCALL ZHRATE: MOV AH ,02H ;显示正确率MOV BX,0MOV DX,0700HINT 10HMOV DX,OFFSET RATE0MOV AH,09HINT 21HMOV BL,CHCALL ZHMOV DL,'/'MOV AH,02HINT 21HADD CL,CHMOV BL,CLCALL ZHMOV AH ,02H ; 置光标位置MOV BX,0MOV DX,0900HINT 10HU0: LEA DX,MSG3 ;显示未记忆单词MOV AH,09H INT 21HPOP DIU1: MOV BX,[DI]<i>微机原理</i>CMP BX,0JZ OVERU2: MOV DL,[BX+1]MOV AH,02HINT 21HINC BXCMP DL,20HJZ U3JMP U2U3: ADD DI,02HJMP U1OVER: JMP OVERMOV AX,4C00H INT 21HZH PROCPUSH CXMOV AL,00HADD AL,BLMOV BL,ALH: AND AL,0F0HCMP AL,00HJZ LMOV CL,04HSHR AL,CLADD AL,30HMOV DL,ALMOV AH,02HINT 21HL: MOV AL,BLAND AL,0FHADD AL,30HMOV DL,ALMOV AH,02HINT 21HPOP CXRETZH ENDPCLEAR PROC PUSH CXPUSH DX ;调用dos中断,返回系统;子程序清屏<i>微机原理</i>PUSH BXMOV AX,0600H MOV CX,0000H MOV DX,184FH MOV BH,07H INT 10HPOP BXPOP DXPOP CXCLEAR ENDPSET_*****N PROC PUSH BX PUSH DX MOV BH,0MOV DX,0808H MOV AH,02H INT 10H POP DX POP BX RETSET_*****N ENDPCODE ENDSEND START 子程序置光标位置;。

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

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

基于单片机的单词记忆测试器设计
设计一个基于单片机的单词记忆测试器可以包括以下功能:
1.单词输入功能:设计一个键盘或触摸屏,允许用户输入需要记忆的单词。

用户可以使用字母键盘或者屏幕上的虚拟键盘进行输入。

2.单词存储功能:使用单片机的内部存储器或外部存储器,将用户输入的单词进行存储。

可以使用数组或者链表等数据结构来进行存储。

3.单词显示功能:在屏幕上显示需要记忆的单词。

可以使用LCD屏幕或者其他显示设备来显示单词。

4.记忆测试功能:设计一个定时器,在指定的时间间隔后,显示存储的单词。

用户需要根据记忆进行选择,是否能正确地回忆出之前输入存储的单词。

5.记忆结果反馈功能:根据用户的选择结果,给出相应的反馈。

如果用户选择正确,可以在屏幕上显示“正确”;如果选择错误,可以在屏幕上显示“错误”并显示正确答案。

6.重复记忆功能:如果用户选择错误,可以设置继续记忆该单词,直到选择正确为止。

7.总记忆测试结果统计功能:记录并统计用户的记忆测试结果,包括记忆测试次数、正确率等信息。

8.设置功能:提供用户设置记忆测试的参数,如记忆时间间隔、测试次数等。

以上是一个简单的基于单片机的单词记忆测试器设计方案,具体的实现方式可以根据实际需求和使用的单片机型号进行调整。

任务书-单词拼写检查程序设计

任务书-单词拼写检查程序设计

上海工程技术大学毕业设计(毕业论文)任务书学院继续教育学院专业计算机科学与技术班级学号学生田无垠指导教师张辉题目单词拼写检查程序设计任务规定进行日期自2011 年9 月?日起,至2012 年1 月?日止一、题目来源、目的、意义自从有了计算机,人们就希望机器能够理解人的自然语言,或者至少可以辅助人类进行自然语言的自动分析,也就有了自然语言理解与处理这一学科。

研究电脑如何表达人的语言,如何理解人的语言和如何处理人的语言是人工智能发展的一个重要方向。

本课题是将学生大学阶段学习的理论知识同实际应用相结合的有效环节,也是对学生基本技能的良好锻炼。

二、主要工作内容本课题以某种高级程序设计语言为开发工具,通过研究英语单词拼写检查的基本规律,设计一个正确标示出文本中错误拼写的单词、并给出修改建议的程序,充分体会拼写纠错的基本方法,和培养实际开发的经验。

1. 学习单词拼写检查的基本原理,尤其是各种错误评估的基本方法;复习数据库编程的基本方法和技术;2. 单词拼写检查程序的总体设计和界面设计;3. 编写单词拼写检查程序;4. 对程序进行测试,并能对错误进行适当处理三、主要技术指标(或主要论点)1. 单词拼写错误的基本方法及优缺点比较2. 拼写检查程序的正确率3. 拼写检查程序的效率四、进度计划第一至二周:进行市场调研和文献检索,并进行整理,写出开题报告;第三周:外文资料翻译,配置程序开发环境;第四至五周:学习单词拼写纠错的原理;第六到七周:学习使用相应的开发工具;第八周:设计拼写检查的原型;第九至十一周:初步设计拼写检查程序;第十二至十四周:调试及改进拼写检查程序;第十五至十八周:论文写作及答辩。

五、主要参考资料(外文资料至少一篇)[1]Allen James.Natural Language Understanding[M].The Benjamin Cummings Publishing Company,1995.[2] Aho,Hopcroft,Ullman.The Design and Analysis of Computer Algorithms[M].Addison-Wesley,1974.[3] Aho,Hopcroft,Ullman.Data Structures and Algorithms[M].Addison-Wesley,1983.[4] 谭浩强.C程序设计[M].第2版.北京:清华大学出版社,1999.[5] 翁富良,王野翊.计算语言学导论[M].北京:中国社会科学出版社,1998.[6] 夏邦贵,刘凡馨.VISUAL C++数据库开发经典实例精解[M].北京:机械工业出版社,2005.[7] 原奕.VISUAL C++实践与提高——数据库开发与工程应用篇[M].北京:中国铁道出版社,2006.[8] 陈小荷.现代汉语自动分析——Visual C++实现[M].北京:北京语言文化大学出版社,2000.[9] George Boolos,John Burgess,Richard Jeffrey.Computability and Logic[M].4th Edition.Cambridge University Press,2002[10] Edmund Clarke.Model Checking[M].The MIT Press,1999六、系审批意见系主任(签名):七、院领导审核意见院领导(签名):八、学生实际完成日期九、同组设计(论文)者。

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

《微机原理及接口技术》课程设计任务书
题目:单词记忆测试器程序设计
学生姓名:班级:
学号:指导教师:
一、设计目的
以单词记忆测试器为背景,对单词记忆测试程序进行分析和设计。

通过该题目的分析和设计,学习微机软、硬件系统设计开发过程,加深微机原理及应用课程基础知识的理解和综合运用能力,熟悉集成电路芯片的使用方法,熟悉微机编程及接口电路,学习体会工程实际设计的过程,培养学生独立解决实际工程问题的综合能力。

学生初步得到用汇编语言书写程序的训练,全面培养程序设计过程中的分析、设计、编码、测试及文档规范书写的能力,得到运用汇编语言的综合训练,提高解决实际问题的能力。

二、设计内容
学生通过该题目的设计过程,可以初步掌握汇编语言的运用、软件开发方法并提高解决实际问题的能力。

设计任务包括:
1.输入单词:
(1)提示输入单词,输入最少5个、最多255个英文单词,每个单词不超过20个字符。

(2)若直接回车,则结束单词输入,进入单词测试;
(3)输足20个字符,自动进入下一个单词的输入;
(4)不足20个字符个字符,按回车键进入下一个单词的输入。

2.单词记忆测试:
(1)从输入的第一个单词开始测试;
(2)键入'y'(不分大小写)或'n',回答是否认识,不需按回车键确认,其它按键无效;
(3)紧接着,没有提示,可按上移键或下移键循环测试;
(4)按Esc键结束测试。

3.计算单词识别率并显示输出;
4.提示是否进行下一组单词的输入和测试,键入'y'(不分大小写)或'n'选择是否继续,不需按回车键确认,其它按键无效。

5.程序采用汇编语言在PC机上完成。

6.完成符合学校要求的设计计算说明书。

7.提倡创新。

三、设计要求及工作量
1.利用Intel 8086 CPU及其相应的外围扩展电路及接口电路,设计系统硬件原理图,并绘制于2号工程图纸。

2.给出程序的设计思路,设计系统软件流程框图,并绘制于2号工程图纸。

3.完成设计计算说明书。

四、要提交的成果
1. 设计计算说明书一份,包括以下内容:
(1) 封面;
(2) 设计任务书
(3) 课题摘要;
(4) 目录;
(5) 正文:
①简要说明本设计的基本内容、用途及特点;
②方案比较及论证;
③硬件系统说明(硬件设计思路、系统构成框图、芯片选择、存储空间与I/O地址分配);
④画出完整的硬件电路图,并说明电路的工作原理;
⑤软件系统说明(软件设计思路、源程序清单及必要的注释);
⑥主要单元电路的设计及参数计算;
⑦列出所用元器件及集成芯片型号;
⑧指出所设计电路的特点和方案的优缺点;
⑨总结体会;
⑩参考文献。

备注:设计计算说明书要求用黑色字迹手写。

2. 系统硬件原理图纸。

3. 系统软件流程框图纸。

五、设计进度计划及时间安排
六、主要参考资料
1.《微型计算机原理》王忠民主编.西安电子科技大学出版社,2013
2.《微型计算机原理与接口技术》李长青,李泉溪主编.中国矿业大学出版社,2006
3.《电气控制与可编程控制器》陈立定,吴玉香,苏开才编.广州:华南理工大学出版社,2001
4.《IBM-PC汇编语言程序设计》沈美明. 清华大学出版社,2001年8月第2版
5.《IBM-PC汇编语言程序设计例题习题集》沈美明. 清华大学出版社,1991年6月第1版
6.《微机系统和接口应用技术》朱世鸿. 清华大学出版社,2006年9月第1版
7.《微机原理与接口技术课程设计》宋世杰.机械工业出版社,2005
8.《汇编语言课程设计案例精编》李真香等.北京:中国水利水电出版社,2004。

相关文档
最新文档