单片机单词记忆测试_单片机单词记忆器
单片机单词记忆测试由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机单词记忆器”。
电气工程及自动化专业
单片机原理及应用课程设计报告
姓
名:王淼
学
号:
专业班级:
题
目:单词记忆测试器程序设计
20111056 110306
电气工程及其自动化专业 电气与电子工程学院
二〇一四年一月十三日
目录
一. 设计目的 二. 设计任务和要求 三. 设计原理分析 四. 硬件资源及其分配 五. 硬件图 六. 程序框图 七. 程序 八. 调试运行 九. 仿真截图 十. 设计心得体会
一.设计目的1.通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手能力。
2.通过对单词记忆测试器程序的设计,掌握单片机的使用方法,和对简单程序的编写,最终提高我们的逻辑抽象能力。
二.设计任务和要求
任务:单词记忆测试程序设计
要求:设计一个以单片机为核心的单词记忆测试器;能实现单词的录入;
三.设计原理分析
本次课设的研究对象是基于单片机的单词记忆测试器的设计,此单词记忆测试器可以实现单词的输入并判断单词是否正确,单词背完后给出正确率,该单片机单词记忆测试器为在现实生活中有着广泛的应用,特别是对学习英语方面有很大的作用。
本设计以STC89C52单片机为处理器,以12864点阵液晶屏为显示器件,并使用5*6矩阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,利用单片机的ROM可存储单词和汉字,作为记忆测试用。
四.硬件资源及其分配
4.1硬件模块设计
中央处理模块选用STC89C52单片机系统组成,电路包括:STC89C52单片机,复位电路,时钟振荡电路。
STC89C52单片机需在复位电路和时钟振荡电路组成的最小系统下工作,单片机引脚图如图所示,外围电路如图所示,时钟电路采用频率为12MHz的晶振,C1,C2与晶振构成了外部振荡电路,复位电路采用点解电容与电阻串联,当系统上电时,由于电容充电,在RST端会产生一个高电平,高电平持续的时间由电容和电阻的值决定,当ERSET为低电平时,系统为工作状态,STC89C52具有ISP的功能,可以通过串行接口直接将程序下载到单片机内。在下载程序状态下,ERSET信号被拉高,系统进行程序下载,待程序下载完毕后,RESET重新拉低。用户可以通过切断电源进行手动复位,或者通过重新下载新的程序进行复位。
引脚排列图
时钟电路图
复位电路图
4.2显示模块的硬件设计
显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏基础上集成了控制器kS0108,用户只需设计好接口程序,就可让模块显示出各种字符和图像。
通常我们所见到的LCD模块,分为几部:玻璃,背光,PCB板;而背光和PCB板部分其实是可有可无的,视具体的LCD模块而定,点阵的LCD模块按照驱动控制器的集成方式,大可分为两种:COB和COG其实就是驱动控制IC集成到了玻璃里面,这样的而后面的PCB板上其实只是一些驱动装置IC无法集成的电容电阻而已,COB也就是把驱动控制IC焊接在LCD板后面的PCB板上。
12864为一块128×64点阵的LCD显示模块,模块上的LCM采用COG技术将控制,驱动器集成在玻璃上,接口简单,操作方便,为了方便用户的使用,在LCM基础上设计了12864模块,将模块所必须的外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。
LCD的接口
一般来说,LCD模块的接口为总线的接口,不是6800就是8080,或者是串行SPI,除了这些总线的端口外,有的LCD模块还引出了一些功能性的端口,如偏压调节输入,负压输出等。
模块接口定义表
五.硬件图
显示RAM区映射情况
对于LCD模块,了解清楚驱动装置IC当中的显存与LCD玻璃上的点的对应关系是非常重要的,这是编写LCD的驱动程序的基础,12864液晶显示模块的显示器上的点与驱动控制芯片中的显示缓存RAM是一一对应的,驱动控制芯片当中共有65*132个位显示RAM区,而显示器的显示点阵大小为64*128个位,所以实际在液晶显示模块中有用的显示RAM区为64*128各位,按byte为单位划分,共分为8个Page,每个Page为8行,而每一行为128个位。
驱动控制芯片的显示RAM区每个byte的数据对应屏上的点的排列方式为:纵向排列,低位在上,高位在下,如图所示:
12864液晶显示模块的显示屏上的每一个点对应有控制器片内的显示缓存RAM中的一个位,显示屏上64*128个点分别对应着显示RAM的8个Page,每一个Page有128个byte的空间对应,因此可知显示RAM区中的一个Page空间对应8行的点,而该Page中的一个byte数据则对应一列,图为显示RAM区与显示屏的点映射图:
矩阵键盘
要测试记忆的单词,就要有字幕的输入接口,本接口设计为5*6矩阵键盘输入,接入单片机的P1口和P3口进行键盘扫描,最大程度提高了单片机IO口的利用率,设计共30个按键,包括了26个英文字母以及四个功能键:“确定”,“不认识”,“上一个”,“下一个”。
矩阵键盘如图所示,由30个轻触按键按照6行5列排列,连接到P1,P3端口,其扫描的原理是:先将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入,这样,当按键没有接下时,所有的输出端都是高电平,代表无键按下,行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了,然后再将行线所接的单片机的I/O口作为输入端,而列线所接的I/O口则作为输出,以相同的方法读一次端口,程序中就可识别是哪个坐标的按键按下了。
硬件原理图为
六.程序框图
七.程序
Code Segment
Aume CS:Code,DS:Code
Str_Addr
Output MACRO Str_Addr
push ax
lea
dx,Str_Addr
mov
ah,9
int
21h
pop
ax
ENDM
Output_Chr proc Near
push ax
mov ah,02h
int
21h
pop
ax
ret
Output_Chr endp
Output_CTLF endp
push
ax
push
dx
mov
ah,02h
mov
dl,0dh
int
21h
pop
dx
pop
ax
ret
Output_CTLF endp
Dec_ASCII Proc Near
push
dx
push
bx
push
di
mov
bx,10
lea
di,@@Temp_Save[6]
mov
BYTE ptr [di],’$’
dec
di
@@Divide: xor dx,dx
div
bx
or
dl,30h
mov
[di],dl
dec
di
test
ax,0ffffh
jnz
@@Divide
inc
di
push
di
pop
dx
mov
ah,9
int
21h
pop
di
pop
bx
pop
dx
ret
@@Temp_Save
db 7dup(?)
Dec_ASCII Endp
Yes_or_No proc Near
push dx
push ax
@@Input_Chr:mov
int
21h
mov dl,al
and
al,0dfh
cmp
al,’Y’
jnz
$+5
stc
jmp
$+7
cmp
al,’N’
jnz
@@Input_Chr
clc
mov
ah,2
int
21h
pop
ax
pop
dx
ret
Yes_or_No Endp
Input_Words Proc Near
xor cl,cl
lea bx,Buffer
mov di,bx
Output Prompt_Str1
@@Input_Words:cmp cl,255
jz
@@Termanate
mov
[bx,Recognise],No
mov
[bx,previous],di
mov
[bx,Next],Chrs+1
mov
di,bx
lea
dx,[bx,Next]
mov
ah,0ah
int
21h
mov
si,dx
inc
si
lodsb
test
al,al
jz
@@Termanate
inc
cl
xor
ah,ah
add si,ax
mov
[si],’$’
inc
si
mov
[bx.Next],si
mov
bx,si
call
Output_CTLF
jmp
@@Input_Words
@@Termanate:xmp
cl,10
Jb
@@Input_Words
mov
Words,cl
lea
si,Buffer
mov
bx,[bx,previous]
mov
[si.previous],bx
mov
[bx.Next],si
call
Output_CTLF
ret
Input_Words Endp
Test_Words Proc Near
call
Output_CTLF
call
Output_CTLF
lea
dx,[si.Next][2]
int
21h
call Output_CTLF
Output Prompt_Str2
@@Recognise:or [si.Recognise],Yes
call Yes_or_No
jc
@@Up_Down
and [si.Recognise],No
@@Up_Down:xor
ah,ah
Int 16h
cmp
ah,KBEsc
jnz
$+3
ret
cmp
ah,KBUp
jnz
@@Next_KBDown
mov
si,[si.previous]
jmp
Test_Words
@@Next_KBDown:cmp
ah,KBDown
jnz
@@Up_Down
mov
si,[si.Next]
jmp
Test_Words
Text_Words Endp
Statics_Words Proc Near
Mov
cl,Words
xor
ch,ch
lea
si,Buffer
mov
bx,[si.Next]
xor
ax,ax
@@L0: add
al,[si.Recognise]
mov
si,[si.Next]
loop
@@L0
mov
bl,100
mul
bl
exit...$’
div
Words Output Prompt_Str3 call
Dec_ASCII mov
dl,% call
Output_Chr ret Statics_Words Endp Chrs
equ 20 Yes equ 1 No equ
0 KBEsc
equKBUp
equ
48H KBDown equ
50H Words_Table Struc Recognise db ? Previous dw ? Next
dw ? Words_Table Ends Prompt_Str1
db ‘Please input words:’ Prompt_Str2
db ‘do you know it ?(y/n):$’
Prompt_Str3
db 7,13,10,13,10,’your answer rate is :$’
Prompt_Str4
db 7,13,10,13,10,’do you want to test again(y/n?$)’ Words
db 0 Pre_key
db 7,13,10,13,10,’The complated.Pre any key to Start
push
cs Pop
ds Push
cs Pop
es @@inputword:call
input_words Call
text_words Call
statics_words Output
prompt_str4 Call
yes_or_no Call
output_CTLF
Call
output_CTLF
Jc
@@inputword
Exit_proc: output pre_key
Mov
ah,1
Int
21h
Moc
ah,4ch
Int
21h
BUFFER
Code ENDS
END START
八.调试运行 九.仿真截图
十.设计心得体会
短短一周的单片机课设就这样结束了,在课设的这段时间里,对于我们组所做的课设题目有了新的体会,这不仅使我学习到了很多的知识,同时也加深了我对以前学过的知识有了新的理解与认识,我们的课设题目是单词记忆测试器程序设计,刚开始得到题目时感觉很茫然,不知道该从何处下手,最后在老师的帮助与指导下,一点点的有了头绪,从陌生到理解,再到熟悉,最后掌握。当然在此过程中,我们的组员也付出了很大的努力,每天在不断的查资料,找资料。
通过单片机的课程设计,不仅加深了我对以前所学单片机知识的理解,将理论能更好的应用到时间中去,而且也学会了如何去培养我们的创新精神,从而不 断的战胜自己,超越自己,创新,是要我们学会将理论很好的联系实际,从而不断的去开动自己的大脑,做自己力所能及的,做别人没想到的事,从而不断的战胜自己,战胜别人。
在设计过程中,我们遇到过许多失败的烤鸭不,但是我们都没有选择放弃,我们通过问老师,问同学,最终解决了一个一个看似难懂的问题,最终,做出了我们的课设,完成了老师交给的任务。
单词记忆方法讲解 1.引入,并介绍这种方法。以下是26个字母的编码,作为记单词中所使用的一种工具。 a 苹果 b 笔 c 月牙 d 笛子 e 鹅 f 斧g 鸽子 h椅子 i 蜡烛 j 挂勾 k唱歌l......
Uint11.guitar 2.sing 3.swim 4.dance 5.draw 6.che 7.play che 8.speak9.speak English 10.join 11.club12.be good at 13.tell 14.story 15.write 16.show 17.or 18.talk......
英语单词这样背一个driver(司机), 掉进river(小河), 生命over(结束)。 我家dad(爸爸),脾气bad(坏),让我sad(伤心难过)。 有只cat(猫咪),非常fat(肥胖),专吃rat(鼠)。 放下plate(......
我们洛基英语老师共总结18种单词记忆方法,每种方法后至少配有200个高频率、常见单词。希望能用我们的方法,来提高您的英语学习。下面简单介绍几种,供大家了解。1:加减法:利用已经......
abdicate"我不dicate" -> v.让位,辞职,放弃 (dicatate:命令) abjure"我不做" -> v.发誓戒绝acolyte魔兽Undead农民 -> n.侍僧aroma"啊,肉麻" -> n.芳香,香气 (想想自己女......
