学生计算器的制作方法

文档序号:6409290阅读:610来源:国知局
专利名称:学生计算器的制作方法
技术领域
本发明涉及到一种学生计算器,具体地讲,涉及到一种能够在显示器上显示修改十进制竖式运算的每一步过程的学生计算器,普通计算器因其计算快速准确而迅速普及,许多中小学生都有,由于只能直接显示最终结果,而无中间运算过程,长期使用,对学生运算能力的提高,智力的开发十分不利,所以中外有识之士都不主张中小学生使用计算器,但计算器是如此普及,以至于单纯的禁止显得十分无力。
本发明的学生计算器,用键盘-屏显方式手动在屏幕上逐位作十进制竖式运算,通过自动计算和逐位检验程序校对,修改每位结果,能进行多位整数和小数的加减乘除开方五种运算,并可设置自动出题和小测验程序,自动出题和进行小测验,适于中小学生使用,利于学生运算能力的提高,益于学生智力的开发。
本发明的学生计算器,可以由单片机,显示器和键盘组成,其特征是1.通过"基准列"和相关寻位程序,三种不同的数据输入方式,确保显示屏上的数据和内存中的数据一一对应,并符合竖式要求,实现键盘-屏显手动十进制竖式运算;设置加减乘三种单位BCD码运算程序,以其为基础,与其它程序组成加减乘除开方五种多位数自动逐位运算程序,提供正确答案;两种校对程序逐位比较手动计算,自动计算两种结果的每一位,指示错误位置,给以修改机会,修改数次仍不对后,给出正确答案。
2.用单片机的计数器(两个以上)作不同步运行,加上循环修正量,构成单位整数随机数程序,用"模式存储器"和"难度存储器"配合,决定数的位数和个数,实现自动出题,自动出题,计算,检验(不包括修改),加上判分程序的连接运行,可以实现"小测验"功能。
3. 8051系列单片机和128*64点阵液晶图形显示器加24键键盘可以构成一个实用学生计算器,其中为图形显示器专门设置了5*5点阵专用字符发生程序和光标发生程序。
下面详细说明该学生计算器的具体设计方法要编制以上程序,需要先解决一系列基础程序,下面一一介绍一.数据的存取与传送本方案中,数据的存取与传送都用BCD码,键盘直接送出BCD码,显示器的译码程序用BCD码输入,内存存放数据形式也釆用BCD码(即四位存一位十进制数据)。
在本方案中,每位数据逐位调用,须知道其属于哪个数?第几位?存在什么地方?故釆用了"数号存储器""信息存储器""数据存储器"三层方案。"数号存储器"内存放数据序号;"值息存储器"存放数据存储器首址,数的位数和小数位数;"数据存储器"内存放各位数据值。
"信息存储器"的地址=数号*参量+"信息存储器"首址(参量是指每个数的信息存储器所占字节数)(A)某位数的地址=数据存储器首址+位数/每个字节放的位数(余数表示该位数在字节中的位置)(B)在这里,"数号存储器"是专用存储器,"信息存储器"和"数据存储器"可以是指定区域。
BCD码仅占4位,在8位以上的单片机中,如存储器比较富裕,可用一个字节存放一位数的办法;如存储器有限,则一个字节存两位(或多位)数,通过专门的存取程序存取,取程序按公式B计算地址,按公式B的余数确定所取数在字节中的地方,决定是取高四位,还是低四位,存程序在分清了高低四位后,把字节中数据取出,清除要送四位的值,和欲存的数据相加后送回原字节。
二.显示与内存的对应这是实现十进制竖式运算的要点。
本方案中釆用了以下措施1.符合竖式要求的数据输入方法数据连续输入,每个数的各位无间断输入,以确保屏幕上的每位数和内存中的位数相对应,为此,特设了专用"输入方式存储器",在上下左右移动程序中设置了条件,使在数据输入期间,移动键无效。
竖式运算中,各个数的写入方式并不相同,如原始数据,在屏幕上是由左至右,数位上是由高至低,位数不可预知;和,差,分积,积等,在屏幕上是由右至左,数位上是由低至高;商,根等在屏幕上是由高至低,数位上是由高至低,但可以预知其位数。
对于这三种不同的写入方式,本方案提供了三种数据输入程序;原始数据的输入,屏显上光标依次右移,内存中先把输入的高位数送入数据存储器的第一位;输入次高位时,从内存第一位中取出已有入的高位数,存入次高位,再把取出的高位送入内存的第二位(即用次高位数把高位数顶入上一位);第三个数输入把次高位数上顶,次高位数再把高位数上顶,如此逐位送入数据(如下图),每送一位,给"信息存储器"中的位数加1;按小数点后,再每送一位,给位数和小数位数同时加1.按运算符键或回车键,结束送数,(第一种输入方式) 和数等的输入,屏显上光标依次左移,根据位数(每次加1)计算存储器地址,把数值送入指定内存,每送一位,给信息存储器中的位数加1;按小数点键时,把位数中的数值送入(复制)小数位,再输入数,只加1位数,不再增加小数位,结束同上,(第二种输入方式)商数等的输入,屏显上光标位置,每次通过"基准列""基准行"(后面介绍)计算,内存的地址通过运算次数,商的高位值,数号计算(其中位数=高位值+1-运算次数),第一个商值即商的最高位,其位数值送入"信息存储器"的位数部分即完成位数的存入,小数位待所有商值输入完毕后处理;先移动光标至小数位,按下小数点键,程序计算光标和基准列的差值,就是小数位,把此值送入"信息存储器"的小数位数部分即可,(第三种输入方式)2.基准行与基准列为保证屏显和内存的对应,更为保证屏显的数据符合竖式运算法则的要求,本方案引入了"基准列"和"基准行"的概念及计算方法,"基准行",在加减乘中没什么作用,在除法和开方中离不了,本方案定义被除数或开方数所在行为基准行,无需计算,其值存在"基准行存储器"中。
"基准列"在不同的运算中定义不一样,运算法则要求;加减法中必须个位与个位,十位与十位...一一对应;乘法中则是最后一位对齐,所以在加减法中定义个位位置为基准列,乘法中定义尾数位置为基准列;除法和开方是由一系列的乘法和减法组成的,故其运算过程的基准列则不固定,随每步运算的种类而定。
3.自动寻位和半自动寻位在竖式运算中每个数的起始位置看似无规律,实际上都和前面数的位数和基准列紧密相联,都可以通过简单的计算算出;个别数,如第二加数,减数,乘数,除数,商和根,由于不能预知其准确位数,不能准确定位,但也可以找出其大概位置,再允许左右移动键有效便可准确定位,前者为自动寻位,后者为半自动寻位。
寻位计算均是通过基准列和前数的位数,有些地方还需要基准行参与,一般原则是;计算高位时,取(基准列-位数)值;计算低位直接取基准列值,有了基准列,基准行和数据输入方式存储器及各个输入方式,就可以随时计算屏显上的某数在内存中的地方,或内存中的某数在屏幕上的位置,寻位程序可以帮助使用者很方便地按竖式格式要求准确输入数据,并确保屏显和内存一一对应。
三.单位十进制(BCD码)运算这是逐位十进制运算的基础,单位十进制运算只有加减乘三种,道理不言自明。
单位加法运算程序这样编制两数相加,再加下进位,结果除10(或用单片机的二十进制调正功能),商为上进位,余数为原位,分存两个存储器备用。
单位乘法程序是两数相乘,结果除10,商为进位数,余数为原位,分存备用。
单位减法程序稍繁琐被减数减去减数,如需上借位,得数再减6为差,给借位存储器送1;如无借位,得数即差,清零借位存储器。
有了上述基础程序就可以编制全部程序了。为清楚起见,分手动计算,自动检验,自动出题和小测验三部分说明。
一.手动计算手动计算实质上是使用者用键盘在屏幕上计算,根据不同的运算方式分加减法,乘法,除法,开方四种。
(一)加减法加法和减法竖式格式相同,故一个程序即可。
未输入数据前,四个移动键都处于允许状态,此时定数据输入方式为第一种,敲下一个数据键即开始第一个数的输入,数号存储器加1.运算符的输入,结束第一个数的输入,程序先转入自动寻位,在第二行高位左边处置显示运算符,再转入半自动寻位,在第二行对应高位闪动光标。如第二个数的位数和第一个数不同,从光标处开始输入不能保证各位对应,则可以左右移动光标,对准各位,此时输入第二个数,敲回车后,程序首先比较两个数的基准列,如不同,则不向下进行,等待修改;如相同,则进入自动寻位,计算并划横线。再次自动寻位,调光标至第三行对应最低位,变数据输入方式为第二种。由右至左输入和(或差),输入回车,手动计算结束,程序自动转入自动检验程序。 为修改一旦出现的数据输入错误,设清除键,在清除键下编制有"位清零程序"。该程序的工作与数据输入程序相逆,每按一次,屏幕上退一格(清原格),内存中给刚输入的一位送零;第一种数据输入方式中,是给最高位送0,压其它数据依次下降,把刚输入的一位压出数据存储器。该程序不适用第三种数据输入方式(即不适用于商根),也只对正在输入的数有效,对已经确认过的数无效。
(二)乘法乘法的被乘数和乘数的输入与加法雷同,区别在基准列的定义不同,输入第二个数时应对齐的是尾数位。
乘法的分积运算程序用循环方式,循环次数=乘数位数-乘数中0的个数。
分积的起点(最低位)值=基准列值+乘数某位数-1。
行数=第一分积所在行+循环次数。每个分积的结束由目车确认。依此编制的程序每当某位乘数为0时,自动中断下面程序,回到循环起点,左移光标一位,开始下一分积的输入。循环结束后,程序转入自动寻位,计算位置并划横线,再进入自动寻位,调光标至积的最低位。作加法求积。
积的输入中,特殊点在于小数点的输入是在数据全部输入完后。按竖式运算习惯,乘积作出后,心算两个乘数中小数位数的和,依此点上小数点。本方案完全尊重这一习惯,积的所有位输入完毕后,敲回车允许左右移动键有效。移动光标至小数点位,敲下小数点键即输入小数点。这时,程序根据光标和基准列的位置计算小数位数(小数位=基准列-光标位),送入"信息存储器"中的小数位部分。作整数乘法时,没有小数,连敲两下回车便跳过该段程序。 (三)除法除法中,首先是寻位,调光标至第二行,然后输入第一个数。输入运算符后,自动寻位将光标跳到同行第一个数左邻位上,显示运算符并划上横线,再将光标调至运算符左邻位,这是除数的个位,此时还是第一种数据输入方式,因除数可能是一位,二位,三位或更多位,故将光标调到个位,允许左右移动键有效,使用者自行调整,(如除数为两位,应先左移光标一位,然后由高至低输入两位除数)在除法正式开始前,对于有小数的除法,还有一个去除除数中的小数点过程,程序中考虑到这一点,编制了去小数点程序。对于内存,很简单;首先把除数信息存储器中的小数位取出(暂存某处),装入0;然后取出被除数信息存储器中的小数位数,从中减去除数的小数位数,差重新装入被除数信息存储器,这就完成了内存中数据去小数点过程。屏显上变换小数点位置的方法很多,本方案用的是"内存送显"的方法先用位清零程序的清屏部分清除屏幕上的被除数,除数,然 后分别找寻被除数,除数的个位,把调整过的内存中的被除数,除数逐位取出,送至显示器对应位显示,从而完成屏显上去除除数中的小数点运算。对于整数除法,这段程序运行也不影响运算结果,当然通过简单的条件判断也可跳过该段程序。
去小数点后,程序进入半自动寻商位,商高位值=基准列值-(被除数位值-除数位值)但如果在预定位上不够除,则需向下移动商位,故此时允许左右移动键有效,敲入商后,光标至第1乘积个位,数据输入方式转第二方式,输入除数与本位商的乘积,此时可能会发现商不合适(图C-4),如不合适可用位清零程序清除该乘积(图C-5),再敲入回车,光标跳到原商数下闪动(图C-6),此时重新输入新的商值即完成修改,这就是本方案中的试商程序,(该程序略改后便可用于试根)试商成功后,程序进入减法,算好差后敲回车转入下调数,就是把被除数的下一位调下来,这里须注意内存中从被除数取出的下调 位应用第一种数据输入方式送入差的低位,进行完这一步,敲回车,计算行数,列数,程序返回,试第二位商,进入循环,(这中间的划线程序和前面类似,略去)(显示如图C-7至C-9)循环中,如遇到不够除时,商应上0,此时,程序通过商位0判断跳过乘减部分,在差数后再下调一位,试下一位商。
跳出循环的条件是被除数的位数剩余数=0。
除法中还有一个特殊问题;因除法竖式要用较多的行数,而单纯增加显示器的行数不仅会造成成本上升,而且也不经常用。故设计了一个"显示翻转程序",该程序运行的接口在循环中的行数计算,条件是剩余行数小于等于一时,跳入翻转程序。该程序的运行首先用行清除指令(每种显示器都有各自的行清除指令)逐行清除被除数以下的各行,再用位清零程序逐位清除被除数中已调用过的各位,最后用"内存送显程序"把刚输入最后一个数(差和下调数组成的待除数)送到原被除数对应的位置(见图C-7,C-8)。整个过程中除数,商,运算符,被清除数的内存值和未调用位(图C-8的最后一个2),均不改变。全部过程由程序自行完成,无须人工干预。结束后返回循环,继续往下除。(图C-9)除法中的最后一个问题是除不尽的除法,作下去无休止。小小的计算器很难解决。选用大容量内存和大屏幕显示器都要增加成本,对于学生必要性也不大,故增加一个难度键,其下的程序给"难度存储器"逐次加1,到一定程度返回。除法程序根据"难度存储器"的内容,选择是作整数除法,能除尽的小数除法,还是除不尽的小数除法。当选择最后一种时,程序自动把被除数调整到某个有限位(例如8位,根据内存和显示器的大小而定),作到这个有限位,就结束除法。
(四)开方;开方运算中有许多地方类似除法,程序编制和运行可以参照或调用除法中的。特殊的地方有四个1.根的位置和位数预留。按运算法则,根的位置应在整数的1,3,5,7...位和小数的2,4,6...位,所以根的最高位置值对于整数和代整数的小数,等于整数位/2后取其整数值,再加1;对于纯小数,个位0即是。预留的位数,为开方数的位数作整数除法除2的商加余数。
2.小数开方时数据的调整。能开尽的小数,其小数位不是偶数时应补一位0,使其成偶数。开不尽的数,也得使其小数位保持偶数。
3. 20倍数。开方中,从第二位根开始,在竖式左侧要计算一个已开出根的20倍数,这是除法没有的。因此在下调数完成后,要加一个20倍数程序。该程序先用自动寻位把光标调到同行左边(之前划一竖线),空一格以上,指示20倍数的十位。因为20倍数的个位按法则要求应空着(留给下一位根),取第二种输入方法,输入20倍数。用此法内存中的个位也正好给下一位根留着。
4.试根,开方中的试根和除法类似,区别在于开方中在向根存 储器和显示位送根值后,还要向20倍数的个位存储器和显示位送入根值。(图0-3)清当前根时也是清两处。但光标指示可以只选根位一处,也可以同时指示两处。
二.检验程序检验程序包含加减乘除开方五种自动十进制逐位运算程序和两种逐位校对程序,根据"运算方式存储器"中的数值选择如何运算。下面分别介绍各程序。
(一)加法自动运算。该程序是个双循环程序,工作过程如下;计算一加数的首址;计算其一位的地址;取出一位数;计算和的对应位地址;取出一位和;以上两数进行BCD码加法;和位返回原先取出的地址,借位暂存;判断加数的位数是否取完,未完返回位地址计算,计算下一位地址,继续第一重循环,完了,跳出第一重循环,判断此时进位等于零否,不等于,计算再高一位和址,将借位中的数据送入后,向下进行。等于零则直接向下进行;判断加数是否取完,未完返回加数首址计算,计算下一个加数的首址,继续第二重循环。如取完,跳出循环;存入和的位数,小数位数,结束本段程序。用本方案可进行两个以上加数的加法运算(后面的乘法中分积的加法就用这种多个数加法)(二)减法自动运算。该程序是两个单循环程序,一个比较程序,一个减法程序。工作过程如下进入比较程序;先比较两数的位数,如被减数位数大于减数,进入减法程序;如小于减数,提示重新输入;如等于减数,则进行各位数比较。数据比较由高位开始,循环进行,一旦某位大于减数,跳出循环,进行减法运算;一旦出现某位小于减数,则提示重新输入;至最后一位,全部等于,也进入减法程序。
减法程序按下述过程进行计算被减数的首址,暂存;计算减数首址,暂存;计算差的首址,暂存;计算一位被减数的位地址;取出一位被减数;计算对应位减数位地址(如减数位已取完,则跳至差位计算);取出一位减数;进行单位BCD码减法,如有下借位,再减一;计算差的对应位地址;差送存;判断被减数位数是否取完;未完跳回被减数位地址计算,再循环。完了则跳出循环;把位数和小数位数送入差的信息存储器;由高至低依次清除差数高位上可能出现的0,对应递减差的位数值;结束程序。
(三)乘法自动运算。该程序由一个乘法双重循环程序和一个加法双重循环程序组成。其乘法程序工作过程如下计算被乘数首址,暂存;计算乘数首址,暂存;计算乘数位地址(由低到高);取一乘数,暂存;计算分积首址,暂存;计算被乘数位地址(低至高);取一位被乘数;进行单位BCD码乘法;原位与下进位相加后的低位送分积对应位;进位送进位存储器;判断被乘数位数是否取完?未完,跳回被乘数位地址计算,继续第一重循环。完了,则跳出第一重循环,判断进位为0否?不为0,送入分积的更高一位。为0,跳过进行下面程序;分积位数存入该分积的值息存储器;数号存储器加1;判断乘数位数是否取完?未完,跳回取上一位乘数,继续第二重循环。已完,跳出循环,转入加法程序。
加法程序和前面所述程序基本一样,唯一不同但又必须注意的是第一分积按原位数送入积中;第二分积必须在位数上加1才和积的位数对应;第三分积要加2,第四分积要加3...也就是积的位数=分积位数+分积序号-1积的位数,在运算过程中已经送入积的信息存储器。积的小数位数需最后计算送入,其值=被乘数的小数位+乘数的小数位。
(四)除法自动运算。除法是由一联串的乘法和加法组成的,是一个较大的循环过程,其中还有一个试除的小循环。
原始数据(被除数和除数)输入后,也要按法则要求,进行去零和难度调整(可以调用手工计算程序中的,也可以在手工程序作完这部分再转入自动程序的除法)。
除法开始,先比较除数和被除数对应位(商位对应位及以前位)的大小,如大于,则再右移一位商,再比较;如小于等于,则开始试除。
试除循环试除从9开始,即用9乘除数,所得的积与被除数对应的几位数比较,若大,则返回试8;若不大,则跳出循环,向下进行,每次循环返目前,还应用位清零程序清除内存中的积以及积信息存储器中的位数值,因为下一个试除积不但小,而且位数也会少,单纯的替代会造成内存的错误。
第三步作减法。
第四步下调一位,这一位应用手工计算程序中的第一种数据输入方式的内存输入方法送入差数的低位,这里是大循环的起点,同时也跳出循环的出口。首先判断被除数位数是否取完未完进入循环;完则跳出循环。
再试除,够除向下进行;不够除商上0,返回再调一位。
作减法,跳回第四步继续循环。
凡除不尽的除法(包括整数除法及小数除法)最后一个差为余数,最后计算商的小数位值,送入商的信息存储器。
(五)开方自动运算,开方的自动运算和除法差不多,也须事先调整数据,并须计算根的最高位的位置,之后进行试根,和商一样,从9开始,开方试根必有结果,故不必重下调数复试。
试根后作减法。
再下调数,开方中每次下调数应连调两位,调前先判断被开方数位数调完否?不完则进入循环;完则不进入循环,直接跳到根小数位计算程序。
进入循环后先求20倍数(乘法),再试根,这里要注意,类同手工运算,和第一位根不同,这以后的根要送入20倍数的个位(用第二种数据输入方式,因个位已预留),求这一位根与20倍数的积,与上面的差比较大小,判断该再试根还是进行下面的减法,作减法后返回下调数循环,直至开完,结束循环,进入小数位数计算程序,后结束开方运算。
(六)自动检验,上述自动运算和手动运算的各个结果数分存在两个数据存储器区域中,检验就是依次分别取出两种运算结果的对应位,逐一对比,如果手动运算的某位结果和自动运算不一样,则在屏幕上该位闪动光标,等候修改,此时键盘输入的数据直接送入该位的手动运算结果位,重新开始检验,直至所有结果一致。
还可设置另一种检验方式在手动运算的每一位输入结束后,立即调用位比较程序,进行该位的检验,不对,光标在原位闪动,等待修改;对了,光标到下一位闪动,等待输入新的一位数,前种方法适合运算较熟练的学生用,后种方法适合初学学生用。
三.自动出题和小测验。
该部分的引入,是为了加强本计算器的功能,和计算器的基本功能没有什么牵制,也就是说,以上两大部分已经能完成本计算器的计算功能,加上本部分,可以便计算器增加功能,扩大计算器的用途。
自动出题,实质是个随机数问题,产生随机数的方法很多,都可考虑釆用,这里仅就利用单片机的计数器(定时器)来产生单位整数随机数的方法作一介绍令单片机的两个(或更多)计数器在0-9(取补码)间不同步运行(可令一个在0-9间,一个在0-8间),某一时刻同时取两个计数器的值,相加并进行BCD码调正,再加上前次产生的随机数,即可产生一位整数随机数,要进一步降低重复率,还可在其中一个计数器的重装数上每次加1,也在0-9间循环。
自动出题中,每个数的位数由"难度存储器"决定,程序根据难度存储器中的数值,决定应出几位数,用上述随机数程序逐个取数,按由低至高的原则送入数据存储器,数的个数由程序按不同运算方法提出要求,须进一步说明的是竖式减法要求被减数大于减数,比较后不合要求应返回重新出题,整数除法中,有时要求能除尽,故一般除法的出题,不釆用直接出两个数,而用下述方式自动出两个数后作乘法,取其积为被除数,两数中的一个作除数,开方也用类似方法自动出一个数自乘后,取积作开方数。
自动出题要求先输入运算符。
小测验部分,是自动出题,自动计算,手动计算和检验连接工作,其特殊之处在于检验部分不运行修改部分,就是只判对否,不给修改机会,但启动一个计分器和计分程序,这个计分程序给定出题的数量,每作对一道题,程序给计分器加分,作完全部题,计分器中记录得分并自动送显,学生即可知道本次小测验的成绩了。
小测验程序的进入,由面板上设的"模式键"决定。该键控制"模式存储器"内的数值,而程序根据"模式存储器"中的数值来选择运行的方式,配合"难度存储器",可以构成适合各类学生使用的形式。例如计算器可分"计算""学习""练习""测验"几种模式,用"模式存储器"中的0-3分别代表。"计算"挡时,程序运行手动输入,手动计算,自动计算,最后检验,作一般计算用,用"难度"中的0代表除(开)尽的除法(开方),1代表除(开)不尽的除法(开方)。"学习"挡运行手动计算,两种计算程序,逐位检验程序,供初学者使用,只作整数运算,"难度"选择不同的运算位数。"练习"挡运行自动出题,两种计算程序,最后检验方式,"测验"挡运行自动出题,两种计算程序,检验判分程序,作小测验,根据"难度"选择出题的位数和题量…等等。
综上所述,十进制竖式运算的实现没有什么特别难的问题,就是比较繁琐,编制程序要有耐心,要特别细心。
本发明设计的学生计算器,由于严格遵守十进制竖式运算法则,逐步运算,学生无懒可偷,完全克服了普通计算器对学生的不利影响,反之,由于设计有自动检验程序,不必教师批改,学生即可知道自己做的正确与否,即可减轻教师的负担,又可增强学生的自信心,再加上自动出题和小测验功能,足以提高学生的学习兴趣,长期使用,对于提高学生的运算能力,开发学生的智力,将十分有利,本计算器的错误的修改,也是逐位进行,比较麻烦,这也就十分容易区分学生的差别,该计算器的普及,学生不必再用演草纸,这将能节约大量的纸张和铅笔。
本发明可以根据单片机的种类,内存的大小及显示器的种类,显示位数的多少灵活编制程序,设计不同成本和不同运算位数的计算器,有些功能也可根据需要添减。
附图
(1)是本发明选用80C51作CU,128*64点阵图形液晶显示器作显示部件时的学生计算器线路图。
按照128*64点阵图形显示器的要求,显示器的数据输入(DB0-7)直接连接接80C51的P0口,片选CS1,CS2分接P2-4,P2-5,读写控制R/W接P2-1,总线控制D/1接P2-0.80C51的读,写两输出经多输入正与非门电路接显示器的使能端E,24键单触点矩阵导电橡胶键盘,其六路纵列接80C51的P1.0-5,四路横行接P3.0-3,两节5号电池通过OC-DC变换器产生+5V和-10V两路电源,分别向80C51和显示器供电,电位器的中端接显示器V0,作对比度调节用。
因图形显示器内无字符发生器,程序中须编制字符发生程序。为充分利用显示器,并考虑到竖式中需要划线,釆用5*5点阵,字符只有0-9,+,-,,,,几种,小数点不占位,另设有一个光标发生程序,供产生光标用,RAM中还专设了"行位置""列位置"专用存储器,随时记录光标的行列位置,"复位键"可使计算器全部复位,即程序回到起点,清屏,显示"学生计算器"等。
附图(2)是学生计算器的程序流程图。
外壳设计成袖珍式,携带方便。24键加复位键,电源开关共26键附图(3)即学生计算器的一种面板图(折叠式展开图)用80C51和128*64点阵图形液晶显示器构成的计算器,最大计算能力加减法10位,乘法5位,除法是6步(除数为5位时,被除数为10位;除数小于5位时,被除数位数相应减少),开方为10位。能进行整数和小数的加减乘除开方五种运算,可以满足小学和初中学生的需要。
权利要求
一种学生计算器。可以由单片机,液晶显示器,键盘组成,其特征是1.通过"基准列"和相关寻位程序,三种不同的数据输入方式,确保显示屏上的数据和内存中的数据一一对应,并符合竖式要求,实现键盘-屏显手动十进制竖式运算;设置加减乘三种单位BCD码运算程序,以其为基础,与其它程序组成加减乘除开方五种多位数自动逐位运算程序,提供正确答案;两种校对程序逐位比较手动计算,自动计算两种结果的每一位,指示错误位置,给以修改机会修改数次仍不对后,给出正确答案。
2.用单片机的计数器(两个以上)作不同步运行,加上循环修正量,构成单位整数随机数程序,用"模式存储器"和"难度存储器"配合决定数的位数和个数,实现自动出题,自动出题,计算,检验(不包括修改),加上判分程序的连接运行,可以实现"小测验"功能。
3. 8051系列单片机和128*64点阵液晶图形显示器加24键键盘可以构成一个实用学生计算器,其中为图形显示器专门设置了5*5点阵字符发生程序和光标发生程序,
全文摘要
本发明涉及一种学生计算器,具体地说,涉及一种能进行十进制逐位运算的学生计算器,其特征是用键盘手动方式在屏幕上逐位作十进制竖式运算,通过自动计算和逐位检验程序校对,修改每位结果,能进行多位整数和小数的加减乘除开方五种运算,并可以设置自动出题和小测验程序,自动出题和进行小测验,适合中小学生使用,利于学生运算能力的提高,益于学生智力的开发。
文档编号G06F15/02GK1149158SQ9511674
公开日1997年5月7日 申请日期1995年9月28日 优先权日1995年9月28日
发明者王和平 申请人:王和平
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1