8279实现的两位数加减乘除计算器
单片机芯片8279用法讲解
0:写入后地址不变 1:每次写入地址自动加
键盘显示接口芯片8279
⑥ 禁写显示RAM/消隐命令
1 0 1 IWA IWB BLA BLB
特征 无 A组 B组 A组 B组
位
效 禁写 禁写 消隐 消隐
IWA:禁止A组显示 RAM写。D3=1,A组禁写;D3=0,允许A组写。
OUTA3~OUTA0与OUTB3~OUTB0单独使用时,若只想改变B组的输出 值而A组的输出不受影响,就可以让D3=1即禁止向A组显示RAM写数据,这 样在向显示RAM的一个单元写入8位字节数据时就只写入字节的低4位而字节 的高4位不写入RAM单元。
3.8279的工作方式
8279有三种工作方式——键盘输入(键扫描)、传感器扫描、选通输入 键盘输入方式:有键按下时,回复缓冲器缓冲并锁存行列式键盘的列输入线。在
逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖 电路被置位,延时等待10ms后,再检查该键是否仍处在闭合状态,如不是闭合, 则当做干扰信号不予理睬;如是闭合,则将该键的列扫描码、行回复码、引脚 CNTL和引脚SHIFT的状态(两个独立附加的开关)一起形成键盘数据被送入 8279内部的FIFO(先进先出)存储器。键盘数据格式如下:
FIFO RAM的状态寄存器: (a)键盘输入方式或选通输入方式,寄存FIFO RAM的工作状态,FIFO
RAM不空时,会使IRQ变高; (b) 传感器方式,若检测出传感器的状态发生了变化,会使IRQ变高
⑥ 显示RAM及显示地址寄存器
显示RAM:16×8位,存储字符的字形码,显示时,从OUTA3~0和OUTB3~0输出
8个数码管从左至右依次 0 1 2 3 4 5 6 7
显示RAM地址单元
8279实现的两位数加减乘除计算器实验报告
中国矿业大学计算机科学与技术学院硬件课程设计报告专业:计算机科学与技术班级:设计题目:简单计算器成员:指导教师:职称:2012年10月12日简单计算器目录1.设计任务与要求………………………….2. 8279可编程设置型键盘/显器介绍………1 8279特点………………………………………………………………..2 8279引脚说明……………………………………………………………3 8279结构…………………………………………………………………..4 8279的控制字………………………………………………………………3.硬件连接及初级设计说明……………1 硬件连接……………………………………………………………………2 计算功能…………………………………………………………………..3 输入功能…………………………………………………………………4 三个模块…………………………………………………………………..5 LED发光显示…………………………………………………………….4.程序流程图…………………………………1 键盘读数流程图……………………………………………………………..2 程序处理流程图……………………………………………………………..3 显示程序流程图……………………………………………………………..4 计算过程流程图………………………………………………………………5 总程序流程图………………………………………………………………..5.程序设计…………………………………..1 代码…………………………………………………………………………6.收获与会…………………………………..7.参考文献……………………………………硬件课程设计总体报告选题:电子计算器1.设计任务与要求1.1设计概况1设计人员:2设计目标:通过汇编语言编程,再利用硬件课程实验箱实现计算器功能。
包括带符号的两位数的加减乘除运算。
3主要工具:硬件课程设计实验箱(8279),HK88TE软件等。
用计算器进行数的简单计算
用计算器进行数的简单计算引言计算器是现代人工具中不可或缺的一部分,无论在日常生活中还是工作中,我们经常需要进行一些简单的数学计算。
计算器的存在为我们提供了便捷和准确性。
在本文中,我们将介绍如何使用计算器进行数的简单计算,包括基本的加减乘除运算、求幂运算以及求平方根等。
基本的加减乘除运算计算器最基本的功能之一是进行加减乘除运算。
不同的计算器可能略有差异,但大多数计算器的操作方法是类似的。
下面我们以一个示例来说明如何使用计算器进行加减乘除运算。
加法运算要进行两个数的加法运算,我们可以按照以下步骤进行操作:1.打开计算器,并确保处于计算模式。
2.输入第一个数。
3.按下加号(+)按钮。
4.输入第二个数。
5.按下等号(=)按钮。
6.计算器将显示出两个数的和。
减法运算减法运算与加法运算类似,只需修改步骤3。
具体操作如下:1.打开计算器,并确保处于计算模式。
2.输入第一个数。
3.按下减号(-)按钮。
4.输入第二个数。
5.按下等号(=)按钮。
6.计算器将显示出两个数的差。
乘法运算乘法运算也是十分常见的计算方式。
下面是具体的操作步骤:1.打开计算器,并确保处于计算模式。
2.输入第一个数。
3.按下乘号(×)按钮。
4.输入第二个数。
5.按下等号(=)按钮。
6.计算器将显示出两个数的积。
除法运算除法运算与上述运算方式有所不同。
以下是具体的操作步骤:1.打开计算器,并确保处于计算模式。
2.输入被除数。
3.按下除号(÷)按钮。
4.输入除数。
5.按下等号(=)按钮。
6.计算器将显示出两个数的商。
求幂运算计算器还可以进行幂运算,即求一个数的指定次数的幂。
下面是具体的操作步骤:1.打开计算器,并确保处于计算模式。
2.输入底数。
3.按下幂符号(^)按钮。
4.输入指数。
5.按下等号(=)按钮。
6.计算器将显示出底数的指定次方。
例如,如果我们想计算2的3次方,我们可以:1.打开计算器,并确保处于计算模式。
2.输入2。
单片机课程小项目
1.LED数码管显示流水灯:由按键控制LED流水灯的显示方式上电后,全显示“8”(能看清楚的时间长度),同时蜂鸣器响。
之后蜂鸣器静音,末位显示“0”,等待按键。
1号键:a.从左到右,逐字显示1-8(单字显示)b.同时显示1-8闪烁三次c.从右到左逐字显示1-8(单字显示)d.同时显示1-8闪烁三次e.循环执行上述步骤2号键:a.从左到右,逐字显示1-8(前面显示的数字保留显示)b.同时显示1-8闪烁三次c.从右到左逐字显示1-8(前面显示的数字保留显示)d.同时显示1-8闪烁三次e.循环执行上述步骤2.LED数码管显示流水灯:由按键控制LED流水灯的显示方式上电后,全显示“8”(能看清楚的时间长度),同时蜂鸣器响。
之后蜂鸣器静音,末位显示“0”,等待按键。
1号键:从左到右,逐字显示0-9(滚动显示)2号键:从右到左逐字显示0-9(滚动显示)3.LED数码管显示流水灯:由按键控制LED流水灯的显示方式上电后,全显示“8”(能看清楚的时间长度),同时蜂鸣器响。
之后蜂鸣器静音,末位显示“0”,等待按键。
1号键:从左到右,逐字显示0-9(更新显示)2号键:从右到左逐字显示0-9(更新显示)4.LED数码管显示流水灯:由按键控制LED流水灯的显示方式上电后,全显示“8”(能看清楚的时间长度),同时蜂鸣器响。
之后蜂鸣器静音,末位显示“0”,等待按键。
1号键:从两侧到中间,逐字显示1-8(前序数字保持显示)2号键:从中间到两侧,逐字显示1-8(前序数字保持显示)5.用定时计数器实现秒表功能。
显示格式:时-分-秒,共八位6.实现两位加法计算器,自行定义0-9数字键和“+”、“=”符号的位置。
要求能够显示三位结果7.实现两位减法计算器,自行定义0-9数字键和“-”、“=”符号的位置。
要求能够显示三位结果8.实现一位乘法计算器,自行定义0-9数字键和“*”、“=”符号的位置。
要求能够显示两位结果9.实现锯齿波发生器,要求能够用按键实时调整周期和幅值10.实现三角波发生器,要求能够用按键实时调整周期和幅值11.实现方波发生器,要求能够用按键实时调整周期、占空比和上、下限幅值12.实现正弦波发生器,要求能够用按键实时调整周期13.实现仓库入、出库计件器的设计。
计算器加减乘除二进制计算代码
计算器加减乘除二进制计算代码二进制计算器是一种可以对二进制数进行加、减、乘、除等基本运算的计算工具。
以下是一个简单的二进制计算器代码,可以实现对二进制数的加减乘除运算。
首先,我们需要定义一个函数,用于将十进制数转换为二进制数: ```pythondef dec_to_bin(dec_num):bin_str = bin(dec_num)[2:]return bin_str```然后,我们可以定义一个类,用于实现二进制计算器的功能:```pythonclass BinaryCalculator:def __init__(self, num1, num2):self.num1 = str(num1)self.num2 = str(num2)def add(self):num1 = int(self.num1, 2)num2 = int(self.num2, 2)result = num1 + num2return dec_to_bin(result)def subtract(self):num1 = int(self.num1, 2)num2 = int(self.num2, 2)result = num1 - num2return dec_to_bin(result)def multiply(self):num1 = int(self.num1, 2)num2 = int(self.num2, 2)result = num1 * num2return dec_to_bin(result)def divide(self):num1 = int(self.num1, 2)num2 = int(self.num2, 2)result = num1 // num2return dec_to_bin(result)```在这个类中,我们定义了四个方法,分别实现了加、减、乘、除四种运算。
这些方法的实现都是基于将二进制数转换为十进制数进行运算,最后再将结果转换回二进制数。
JS实现的加减乘除四则运算计算器示例
JS实现的加减乘除四则运算计算器⽰例本⽂实例讲述了JS实现超级简易的加减乘除四则运算计算器。
分享给⼤家供⼤家参考,具体如下:先来看看运⾏效果:具体代码如下:<!DOCTYPE html><html><head><meta charset="UTF-8"><title>简单的计算器()</title><style>body{margin: 0;}.tab{border: 3px solid black ;border-radius: 2px;border-collapse:collapse;width: 268px;height: 402px;margin: 20px auto;}.tr{height: 67px;width: 268px;border: 3px solid black ;text-align: right;}.tr1{width: 268px;height: 67px;border: 3px solid black ;text-align: center;}.tr2{width: 67px;height: 67px;border: 3px solid black ;text-align: center;}</style><script>var s1 = "";var s2 = "";var s3 = "";var s4 = "";var s5 = "";function view(val){var a = document.getElementById(val);s1 = a.innerHTML;if(s1=="+" || s1=="-" || s1=="*" || s1=="/"){s3 = s1;s1 = "";}if(s3=="+" || s3=="-" || s3=="*" || s3=="/"){add2(s1);}if(s3==""){add1(s1);}}function add1(s1){s2 = s2 + s1;show();}function add2(s1){s4 = s4 + s1;show();}function cal(){switch(s3){case "+":{s5 = (String)((parseFloat(s2)+parseFloat(s4)).toFixed(2));result.innerHTML = s5;break;}case "-":{s5 = (String)((parseFloat(s2)-parseFloat(s4)).toFixed(2));result.innerHTML = s5;break;}case "*":{s5 = (String)((parseFloat(s2)*parseFloat(s4)).toFixed(2));result.innerHTML = s5;break;}case "/":{s5 = (String)((parseFloat(s2)/parseFloat(s4)).toFixed(2));result.innerHTML = s5;break;}}}function show(){var result = document.getElementById("result");result.innerHTML = s2+s3+s4;}</script></head><body><table class="tab"><tr class = "tr2"><td colspan="4">简易计算器</td></tr><tr class="tr"><td id="result" colspan="4" ></td></tr><tr ><td id="+" class="tr1" onclick="view('+')">+</td><td id="-" class="tr1" onclick="view('-')">-</td><td id="*" class="tr1" onclick="view('*')">*</td><td id="/" class="tr1" onclick="view('/')">/</td></tr><tr ><td id="7" class="tr1" onclick="view('7')">7</td><td id="8" class="tr1" onclick="view('8')">8</td><td id="9" class="tr1" onclick="view('9')">9</td><td id="0" class="tr1" onclick="view('0')">0</td></tr><tr><td id="4" class="tr1" onclick="view('4')">4</td><td id="5" class="tr1" onclick="view('5')">5</td><td id="6" class="tr1" onclick="view('6')">6</td><td id="." class="tr1" onclick="view('.')">.</td></tr><tr><td id="1" class="tr1" onclick="view('1')">1</td><td id="2" class="tr1" onclick="view('2')">2</td><td id="3" class="tr1" onclick="view('3')">3</td><td id="=" class="tr1" onclick="cal()" >=</td></tr></table></body></html>对于这个程序来说,判断的顺序⾮常重要,不然就会把"+"号存在s2,s4中⽽不是s3中。
8279实现计算器
中国矿业大学计算机科学与技术学院硬件课程设计报告姓名:学号:0808姓名:学号:专业:计算机科学与技术班级:计设计题目:简单计算器成员:指导教师:职称:副教授2010年10 月14日徐州目录1设计任务与要求 (4)2详细设计8279可编程设置型键盘/显示器 (4)1. 8279特点 (4)2. 8279引脚说明 (5)3. 8279结构 (6)4. 8279的控制字 (7)3 程序设计 (10)3.1 代码 (10)4参考文献 (19)[1] 周荷琴吾秀清主编《微机原理与接口技术》合肥:中国科学技术出版社 2007 (19)摘要利用cpu8086、芯片8279控制键盘和LED数码显示器实现加法计算器的功能。
本设计利用HUSY16/32位微机接口技术实验系统来完成,最终实现相同位数的六位数以内的带进位的加法运算。
关键词:8086;8279 ;HUSY 计算器;任意位数;加法;中国矿业大学;1设计任务与要求利用芯片8279控制键盘和LED,对每一次的键盘输入检查其对应的字符并作出相应操作,其结果体现在LED。
比如:用户输入连续数字时,按用户输入的顺序依次显示在LED 上;当用户输入加法操作时,LED不变化;当用户再输入第二个数时,再次依次体现在LED上;按“等于号”时其运算结果显示在LED上。
其操作过程与体验与现在普遍使用的计算器相同。
2详细设计8279可编程设置型键盘/显示器1. 8279特点(1)可同时进行键盘扫描及文字显示;(2)键盘扫描模式(Scanned Keyboard Mode);(3)传感器扫描模式(Scanned Sensor Mode);(4)激发输入模式(Strobe Input Entry Mode);(5)8乘8键盘FIFO(先进先出);(6)具有接点消除抖动,2键锁定及N键依此读出模式;(7)双排8位数或双排16位数的显示器;(8)右边进入或左边进入。
16位字节显示存储器。
单片机芯片8279用法讲解
(1)数据线 DB0→DB7 是双向三态数据总线,在接口电路中与系统数据总线相连,
用以传送CPU 和8279 之间的数据和命令。 (2)地址线 /CS=0 选中8279,
当A0=1 时,为命令字及状态字地址; 当A0=0 时,为片内数据地址,故8279 芯片占用2 个端口地址。
键盘显示接口芯片8279
在8位数码管上显示为”279--318”
键盘显示接口芯片8279
② 设置分频系数
001 P P P P P 特征位 分频系数N(2~31)
分频目的:得到8279内部扫描需要的100KHz的基本工作时钟
③ 设置读FIFO/传感器RAM的地址
010 特征位
AI
自动 增量
A2 A1 A0
无 FIFO RAM地 效址
8个数码管从左至右依次 0 1 2 3 4 5 6 7
显示RAM地址单元
012345 67
单元内原来的数
8279- - - 1
输入键值5仍然保存在显 5 2 7 9 - - - 1
示RAM0号地单元
键盘显示接口芯片8279
右端输入方式时,由于输入了1个键, 将0号地址单元内容’5’送往0-1=7(mod8)即第7位数码管; 将1号地址单元内容’2’送往1-1=0 (mod8)即第0位数码管; 将2号地址单元内容’7’送往2-1=1(mod8)即第1位数码管; 将3号地址单元内容’9’送往3-1=2(mod8)即第2位数码管; 将4号地址单元内容’-’送往4-1=3(mod8)即第3位数码管; 将5号地址单元内容’-’送往5-1=4(mod8)即第4位数码管; 将6号地址单元内容’-’送往6-1=5(mod8)即第5位数码管; 将7号地址单元内容’1’送往7-1=6(mod8)即第6位数码管; 这样看上去就是先将数据写入0号单元然后循环左移显示,刚
整数加减乘除计算器-C51单片机
C51单片机-整数加减乘除计算器本程序是基于技能大赛设备,所使用的模块为显示模块、主机模块和指令模块。
此计算器适合10位以内的加减乘除运算,除法没有小数位,只取整数位。
此程序仅供参考,可以相互学习使用。
/* ---简易整数计算器--- */#include<reg52.h> //包含AT89s52头文件#define uchar unsigned char#define uint unsigned int#define ulong unsigned long/* ---1602液晶控制引脚--- */sbit rs=P2^0;sbit rw=P2^1;sbit e=P2^2;#define port P0 //1602数据端口#define port3 P3 //矩阵键盘uchar code tab[]="0123456789+-*/=c";ulong a1,a2,aa; //没有小数点的长整型变量uchar jsf; //运算符/* ---微秒延时--- */void delay(uint i){while(i--);}/* ---1602液晶各子函数--- */ void busy1602(){port=0xff;rs=0;rw=1;e=1;e=1;while(port&0x80);e=0;}void writecom(uchar com){busy1602();rs=0;rw=0;port=com;e=1;e=0;}void writedat(uchar dat){busy1602();rs=1;rw=0;port=dat;e=1;e=0;}void showstr(bit row,uchar col,uchar *s) //显示字符串{uchar i;writecom(0x80+row*0x40+col);for(i=0;s[i]!=0;i++){writedat(s[i]);}}void shownum(bit row,uchar col,ulong num) //显示数字{writecom(0x04);writecom(0x80+row*0x40+col);if(num>=0)writedat(num%10+'0');if(num>9)writedat(num/10%10+'0');if(num>99)writedat(num/100%10+'0');if(num>999)writedat(num/1000%10+'0');if(num>9999)writedat(num/10000%10+'0');if(num>99999)writedat(num/100000%10+'0');if(num>999999)writedat(num/1000000%10+'0');if(num>9999999)writedat(num/10000000%10+'0');if(num>99999999)writedat(num/100000000%10+'0');if(num>999999999)writedat(num/1000000000%10+'0');if(num>4294967294)showstr(0,4,"rorrE");}void init1602() //1602 初始化{writecom(0x38);writecom(0x0c);writecom(0x06);writecom(0x01);/* ---按键扫描程序--- */uchar keyscan(){uchar key=16,i;for(i=0;i<4;i++){port3=0xfe<<i|0xfe>>(8-i); //循环左移switch(port3&0xf0){case 0xe0:key=4*i;break;case 0xd0:key=4*i+1;break;case 0xb0:key=4*i+2;break;case 0x70:key=4*i+3;break;}}return key;}/* ---运算--- */void js()switch(jsf){case '+':aa=a1+a2;break;case '-':if(a1>=a2)aa=a1-a2;else if(a1<a2)aa=a2-a1;break;case '*':aa=a1*a2;break;case '/':if(a2==0)aa=' ';else aa=a1/a2; break;}}void main(){uchar k;bit b=0,a;init1602();showstr(0,3,"jisuanqi");while(1){if(keyscan()!=16&&b==0){delay(200);if(keyscan()!=16){b=1;k=keyscan();if(k==0||k==1||k==2||k==3||k==4||k==5||k==6||k==7||k==8||k= =9) //数字键{if(a==0){a1=a1*10+k;writecom(0x01);shownum(1,15,a1);}else{a2=a2*10+k;writecom(0x01);shownum(1,15,a2);}}else if(k==10||k==11||k==12||k==13) //+-*/键{a=1;writecom(0x01);switch(k){case 10:jsf='+';showstr(1,15,"+");break;case 11:jsf='-';showstr(1,15,"-");break;case 12:jsf='*';showstr(1,15,"*");break;case 13:jsf='/';showstr(1,15,"/");break;}}else if(k==14) //等号键{a=0;js();writecom(0x01);if(aa==' ')showstr(0,0,"Error"); //被除数为零不显示,第一行显示错误else shownum(1,15,aa);if(jsf=='-'&&a1<a2)showstr(1,0,"-"); // aa是负数,前边添加负号else showstr(1,0," ");}else if(k==15) //清零键{a=0;a1=a2=aa=0;jsf=0;writecom(0x01);shownum(1,15,0);}}}else if(keyscan()==16)b=0;}}。
汇编语言课程设计报告——实现加减乘除四则运算的计算器
汇编语言课程设计报告( 2011 -- 2012 年度第 2 学期)实现加减乘除四则运算的计算器专业 计算机科学与技术 学生姓名班级学号指导教师完成日期目录目录错误!未定义书签。
1 概述错误!未定义书签。
设计目的错误!未定义书签。
设计内容错误!未定义书签。
2 系统需求分析错误!未定义书签。
系统目标错误!未定义书签。
主体功能错误!未定义书签。
开发环境错误!未定义书签。
3 系统概要设计错误!未定义书签。
系统的功能模块划分错误!未定义书签。
系统流程图错误!未定义书签。
4系统详细设计错误!未定义书签。
5 测试错误!未定义书签。
测试方案错误!未定义书签。
测试结果错误!未定义书签。
6 小结错误!未定义书签。
参考文献错误!未定义书签。
附录错误!未定义书签。
附录源程序清单错误!未定义书签。
实现加减乘除四则运算的计算器1 概述设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。
设计内容能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:c:\tasm>js 3+252 系统需求分析系统目标本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。
比如,十进制数的加减乘除四则运算。
我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。
此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。
用计算器进行数的简单运算
选择“÷”键或使用类似“/”的符号进行 除法运算
04
查看结果和余数(如果有的话)
例子:100/
被除数是100,除数是3
在计算器上输入100和3,按下“÷”键或使用“/”符号进行除法运算
结果是33余1,即33每个单位能得到3,余数是1不能被完全分完的剩余 部分是1。
06
百分比运算
百分比运算的规则
打开计算器应用程序,输入要计 算百分比的数,例如:20% of
50。
选择百分比运算符(通常在计算 器上有一个百分号的符号),然
后输入要计算的数。
按下等于符号,计算器将显示结 果。
例子:20% of
将20输入到计算器的第一个数字字段中。 将50输入到第二个数字字段中。
选择百分比运算符。 按下等于符号,计算器将显示结果为10。
计算器的基本操作
打开计算器
通常在Windows或Mac系统的开 始菜单中可以找到计算器应用程 序,或者在桌面或文件夹中直接
搜索“计算器”。
输入数字
在计算器上选择相应的数字键或符 号键,输入要计算的数字或表达式 。
选择操作符
在计算器上选择相应的操作符键, 例如加号、减号、乘号、除号等。
计算器的基本操作
查看结果:你会看到计算器显示 结果“16”,这就是4的平方。
接下来,我们来演示如何使用计 算器求一个数的平方根。
输入要开方的数:在计算器上输 入“16”。
例子:平方of 4 ,平方根of 1
按下平方根功能键
按下计算器上表示平方根的按键(通 常是一个“√”的符号)。
查看结果
你会看到计算器显示结果“4”,这 就是16的平方根。
百分比是一个比率,表示一个 数是另一个数的多少百分之多 少。
数字运算大师加减乘除综合
数字运算大师加减乘除综合数字运算在现代社会中起着至关重要的作用,无论是在学校教育中还是在日常生活中,我们都需要进行各种各样的数字运算。
为了解决这一需求,数字运算大师应运而生。
本文将介绍数字运算大师的加减乘除综合功能,并对其进行分析和评价。
一、加法功能数字运算大师的加法功能能够对任意两个数字进行加法运算,无论是整数还是小数,无论是正数还是负数,都能够准确计算出其和。
用户只需在数字运算大师的界面上输入待相加的数字,点击“加法”按钮,即可得到运算结果。
例:用户输入数字5和数字3,数字运算大师计算出结果为8。
数字运算大师的加法功能准确、高效,能够满足用户的基本运算需求。
二、减法功能数字运算大师的减法功能能够对任意两个数字进行减法运算,同样适用于各种数字类型。
用户只需在数字运算大师的界面上输入待相减的数字,点击“减法”按钮,即可得到运算结果。
例:用户输入数字7和数字4,数字运算大师计算出结果为3。
数字运算大师的减法功能同样准确、高效,方便用户进行数字减法运算。
三、乘法功能数字运算大师的乘法功能能够对任意两个数字进行乘法运算,同样适用于各种数字类型。
用户只需在数字运算大师的界面上输入待相乘的数字,点击“乘法”按钮,即可得到运算结果。
例:用户输入数字9和数字2,数字运算大师计算出结果为18。
数字运算大师的乘法功能同样准确、高效,满足用户进行数字乘法运算的需求。
四、除法功能数字运算大师的除法功能能够对任意两个数字进行除法运算,同样适用于各种数字类型。
用户只需在数字运算大师的界面上输入待相除的数字,点击“除法”按钮,即可得到运算结果。
例:用户输入数字10和数字5,数字运算大师计算出结果为2。
数字运算大师的除法功能同样准确、高效,方便用户进行数字除法运算。
五、综合功能数字运算大师的加减乘除综合功能能够对多个数字进行多种运算组合,用户只需在数字运算大师的界面上依次输入待运算的数字和相应的运算符号,点击“计算”按钮,即可得到综合运算结果。
超级简易的JS计算器实例讲解(实现加减乘除)
超级简易的JS计算器实例讲解(实现加减乘除)废话不多说,直接上代码<!DOCTYPE html><html><head><meta charset="UTF-8"><title>简单的计算器</title><style>body{margin: 0;}.tab{border: 3px solid black ;border-radius: 2px;border-collapse:collapse;width: 268px;height: 402px;margin: 100px auto;}.tr{height: 67px;width: 268px;border: 3px solid black ;text-align: right;}.tr1{width: 268px;height: 67px;border: 3px solid black ;text-align: center;}.tr2{width: 67px;height: 67px;border: 3px solid black ;text-align: center;}</style><script>var s1 = "";var s2 = "";var s3 = "";var s4 = "";var s5 = "";function view(val){var a = document.getElementById(val);s1 = a.innerHTML;if(s1=="+" || s1=="-" || s1=="*" || s1=="/"){s3 = s1;s1 = "";}if(s3=="+" || s3=="-" || s3=="*" || s3=="/"){add2(s1);}if(s3==""){add1(s1);}}function add1(s1){s2 = s2 + s1;show();function add2(s1){s4 = s4 + s1;show();}function cal(){switch(s3){case "+":{s5 = (String)((parseFloat(s2)+parseFloat(s4)).toFixed(2)); result.innerHTML = s5;break;}case "-":{s5 = (String)((parseFloat(s2)-parseFloat(s4)).toFixed(2)); result.innerHTML = s5;break;}case "*":{s5 = (String)((parseFloat(s2)*parseFloat(s4)).toFixed(2)); result.innerHTML = s5;break;}case "/":{s5 = (String)((parseFloat(s2)/parseFloat(s4)).toFixed(2)); result.innerHTML = s5;break;}}}function show(){var result = document.getElementById("result");result.innerHTML = s2+s3+s4;}</script></head><body><table class="tab"><tr class = "tr2"><td colspan="4">简易计算器</td></tr><tr class="tr"><td id="result" colspan="4" ></td></tr><tr ><td id="+" class="tr1" onclick="view('+')">+</td><td id="-" class="tr1" onclick="view('-')">-</td><td id="*" class="tr1" onclick="view('*')">*</td><td id="/" class="tr1" onclick="view('/')">/</td></tr><tr ><td id="7" class="tr1" onclick="view('7')">7</td><td id="8" class="tr1" onclick="view('8')">8</td><td id="9" class="tr1" onclick="view('9')">9</td><td id="0" class="tr1" onclick="view('0')">0</td></tr><tr><td id="4" class="tr1" onclick="view('4')">4</td><td id="5" class="tr1" onclick="view('5')">5</td><td id="6" class="tr1" onclick="view('6')">6</td><td id="." class="tr1" onclick="view('.')">.</td></tr><tr><td id="1" class="tr1" onclick="view('1')">1</td><td id="2" class="tr1" onclick="view('2')">2</td><td id="3" class="tr1" onclick="view('3')">3</td><td id="=" class="tr1" onclick="cal()" >=</td></table></body></html>对于这个程序来说,判断的顺序⾮常重要,不然就会把"+"号存在s2,s4中⽽不是s3中。
2位四则运算
研究生课程论文《二位十进制计数四则运算》课程名称FPGA原理与运用姓名刘钰佳学号1200401018专业电子与通信工程任课教师彭盛亮开课时间2013年3月教师评阅意见:论文成绩评阅日期课程论文提交时间:2013 年 6 月30 日一、摘要: (3)二、正文: (3)2.1、设计要求: (3)2.2、系统顶层设计 (3)2.3单元电路设计: (4)2.3.1、控制模式选择模块: (4)2.3.2、加法模块: (4)2.3.3、减法模块: (5)2.3.4、乘法模块: (6)2.3.5、除法模块: (7)2.3.6、模式选择模块: (7)2.4、软件设计 (8)2.4.1、“控制模式选择模块”cnt4程序: (9)2.4.2、“加法模块”内部电路子模块my_add的程序如下: (10)2.4.3、“减法模块”内部电路子模块my_sub的程序如下: (10)2.4.4、“乘法模块”内部电路子模块mult2的程序如下: (11)2.4.5、“模式选择模块”程序: (11)三、结论: (12)一、摘要:本次2位十进制四则运算器电路的设计主要内容是:设计一个2位十进制数的四则运算器,包括加、减、乘、除。
二、正文:2.1、设计要求:输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;2.2、系统顶层设计首先是输入二个2位十进制数,分别将这两个数接入加法、减法、乘法和除法模块进行运算,将结果汇总到一个“模式选择模块”,再通过一个按键控制的四进制“控制模式选择模块”控制其输出分别是加法、减法、乘法还是除法的运算的结果,其中除法运算的精确度可以达到小数点的后两位。
2.3单元电路设计:、控制模式选择模块:“控制模式选择模块”原理分析:其中cnt4是一个四进制模块,输入端接CLK,当检测到一个上升沿时,cnt4的结果加1,起到模式转换的作用并将对应的模式用发光二极管显示。
“控制模式选择模块”如图1图 1仿真波形如图2:图 2仿真分析:CLK出现一个上升沿时,CQ加1,当CQ加到3时,仍有上升沿的CLK信号时,CQ回到0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国矿业大学计算机科学与技术学院硬件课程设计报告专业:计算机科学与技术班级:计算机10级02班设计题目:简单计算器成员:刘伟李伟大张伟指导教师:周杰伦职称:副教授2012年1月12日简单计算器目录1.设计任务与要求………………………….2. 8279可编程设置型键盘/显器介绍………1 8279特点………………………………………………………………..2 8279引脚说明……………………………………………………………3 8279结构…………………………………………………………………..4 8279的控制字………………………………………………………………3.硬件连接及初级设计说明……………1 硬件连接……………………………………………………………………2 计算功能…………………………………………………………………..3 输入功能…………………………………………………………………4 三个模块…………………………………………………………………..5 LED发光显示…………………………………………………………….4.程序流程图…………………………………1 键盘读数流程图……………………………………………………………..2 程序处理流程图……………………………………………………………..3 显示程序流程图……………………………………………………………..4 计算过程流程图………………………………………………………………5 总程序流程图………………………………………………………………..5.程序设计…………………………………..1 代码…………………………………………………………………………6.收获与会…………………………………..7.参考文献……………………………………硬件课程设计总体报告选题:电子计算器1.设计任务与要求1.1设计概况1设计人员:2设计目标:通过汇编语言编程,再利用硬件课程实验箱实现计算器功能。
包括带符号的两位数的加减乘除运算。
3主要工具:硬件课程设计实验箱(8279),HK88TE软件等。
4设计思路:了解设计软件,学习8279的各个方面的知识,了解硬件课程设计试验箱,编写代码,联机,实现计算器,调试,总结。
5学习交流1.2设计需求分析1计算器基本功能为:1具有加、减、乘、整除的基本计算功能;2完成两位数运算3能够显示按下的数字及计算结果,运算数和结果应小于255;4应用模块化程序设计的思想,计算及排错功能的实现由计算程序模块实现,显示按下的数字和结果由键盘录入程序模块和显示程序模块实现,各个模块由主程序联系在一起。
5实现简单报错功能,包括数据溢出报错、不符合计算逻辑报错、输入报错,除法报错;6能够完成负数运算。
2特殊说明2.2.1该计算器只针对两位整数设计,并且不能显示算式,不支持连续输入,对于除法运算,只取整除商和余数,不显示小数。
2.2.2.使用人员需了解一定的汇编知识。
1.3设计任务与要求利用芯片8279控制键盘和LED,对每一次的键盘输入检查其对应的字符并作出相应操作,其结果体现在LED。
比如:用户输入连续数字时,按用户输入的顺序依次显示在LED上;当用户输入加法操作时,LED不变化;当用户再输入第二个数时,再次依次体现在LED上;按“等于号”时其运算结果显示在LED上。
其操作过程与体验与现在普遍使用的计算器相同。
2. 8279可编程设置型键盘/显器介绍1.1 1. 8279特点(1)可同时进行键盘扫描及文字显示;(2)键盘扫描模式(Scanned Keyboard Mode);(3)传感器扫描模式(Scanned Sensor Mode);(4)激发输入模式(Strobe Input Entry Mode);(5)8乘8键盘FIFO(先进先出);(6)具有接点消除抖动,2键锁定及N键依此读出模式;(7)双排8位数或双排16位数的显示器;(8)右边进入或左边进入。
16位字节显示存储器。
1.22. 8279引脚说明<1>DB0~DB7:双向数据总线。
在CPU与8279间做数据与命令传送。
<2>CLK:8279的系统时钟,100KHz为最佳选择。
<3>RESET:复位输入线。
输入HI时可复位8279。
<4>CS:芯片选择信号线。
当这个输入引脚为低电平时,可将命令写入8279或读取8279的数据。
<5>A0:缓冲器地址选择线。
A0=0时,读写一般数据;A0=1时,读取状态标志位或写入命令。
<6>RD:读取控制线。
RD=0时,8279输送数据到外部总线。
<7>WR:写入控制线。
WR=0时,8279从外部总线接收数据。
<8>IRQ:中断请求。
平常IRQ为LO,在键盘模式下,每次读取FIFO/SENSOR RAM的数据时,IRQ变为HI,读取后转为LO;在传感器模式下,只要传感器一有变化,就会使IRQ变为HI,读取后转为LO。
<9>SL0~SL3:扫描按键开关或传感器矩阵及显示器,可以是编码模式(16对1)或解码模式(4对1)。
<10>RL0~RL7:键盘/传感器的返回线。
无按键被按时,返回线为HI;有按键被按时,该按键的返回线为LO。
在激发输入模式时,为8位的数据输入。
<11>SHIFT:在键盘扫描模式时,引脚的输入状态会与其它按键的状态一同储存(在BIT6),内部有上拉电阻,未按时为HI,按时为LO。
<12>CNTL/STB:在键盘扫描模式时,引脚的输入状态会与SHIFT以及其它按键的状态同一储存,内部有上拉电阻,未按时为HI,按时为LO。
在激发输入模式时,作为返回线8位数据的使能引脚。
<13>OUTA0~OUTA3:动态扫描显示的输出口(高4位)。
<14>OUTB0~OUTB3:动态扫描显示的输出口(低4位)。
<15>BD:消隐输出线。
1.3 3. 8279结构I/O 控制和数据缓冲器双向的三态数据缓冲器将内部总线和外部总线DB0~7相连,用于传送CPU 和8279之间的命令、数据和状态。
控制逻辑控制与定时寄存器用以寄存键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279的各个部件完成一定的控制功能。
定时控制含有一些计数器,其中有一个可编程的5位计数器,对外部输入时钟信号进行分频,产生100kHz 的内部定时信号。
外部时钟输入信号周期不小于500ns 。
扫描计数器扫描计数器有两种输出方式。
一种为外部译码方式,计数器以二进制方式计数。
4位计数状态从扫描线SL0~SL3输出,经外部译码器译码出16位扫描线;另一种是扫描计数器的低二位译码后从SL0~SL3输出。
注意:当采用译码输出时,显示只能显示低四位字符。
键输入控制这个部件完成对键盘的自动扫描,锁存RL0~RL7的键输入信息,搜索闭合键,去除键的抖动,并将键输入数据写入内部先进先出(FIFO )的RAM 存储器。
FIFO/传感器RAM 和显示RAM8279具有8个先进先出的键输入缓冲器,并提供16个字节的显示数据缓冲器。
CPU 将段数据写入显示缓冲器,8279自动对显示器扫描,将其内部显示缓冲器中的数据在显示器上显示出来。
移 位/选通RL 7~0 SL 4~0BDOUTA 3~0, OUTB 3~0芯片接口控制逻辑实现8279和单片机接口的内容归纳为芯片接口控制逻辑,主要包括:数据缓冲器I/O控制电路中断请求产生电路键盘接口控制逻辑按功能分为以下几个部分:扫描电路扫描回送电路去抖动及键码生成电路键盘存储区FIFO RAM时序和控制逻辑1.4 8279的控制字8279共有8条命令字,其格式与功能如下:(1)键盘/显示方式设置命令:D7、D6D4、D3为显示方式设定位,共有以下四种显示方式,见下表:表6-5 8279显示方式D2、D1、D0为键盘/显示工作方式设定位,共有以下7种工作方式见下表:表6-6 8279键盘/显示工作方式(2)时钟编程命令:时钟编程命令字格式及功能说明如下:D7、D6、D5为001,是时钟编程命令特征位。
D4、D3、D2、D1、D0用于设定对CLK输入端输入的外部时钟信号进行分频的分频系数N。
若外部时钟频率为2MHz,PPPPP被设置为10100(N=20),即可产生8279内部要求的100KHz基本时钟信号。
(3)读FIFO/传感器RAM命令:读FIFO/传感器RAM命令字格式及功能说明如下:D7、D6、D5为010,是读FIFO/传感器RAM命令特征位。
D4(AI)为自动递增设定位。
当该位为0时,每次读完传感器RAM的数据后地址不变;当该位为1时,每次读完传感器RAM的数据后地址自动加1,下一个数据便从下一个地址读出,不必重新设置读FIFO/传感器RAM命令。
D2、D1、D0为FIFO/传感器RAM地址。
(4D7、D6、D5为011,是读显示RAM命令特征位。
D4(AI)为自动递增设定位。
该位为1时,每次读数后地址自动加1。
D3、D2、D1、D0为显示RAM的存储单元地址。
(5)写显示RAM命令:该命令字格式及功能说明如下:D7、D6、D5为100,是写显示RAM命令特征位。
D4(AI)为自动递增设定位。
该位为1时,每次写入数据后地址自动加1。
D3、D2、D1、D0为待写入显示RAM的存储单元地址。
(6D7、D6、D5为101,是显示禁止写入/消隐命令特征位。
D3、D2为A、B组显示RAM写入屏蔽位。
当D3=1时,A组的显示RAM禁止写入,从CPU写入显示RAM数据时,不会影响A的显示,这种情况通常用于双4位显示器。
当D2=1时,可屏蔽B组显示器。
D1、D0为A、B组的消隐设置位。
D1(或D0)为1,则对应的A(或B)组显示输出熄灭,该位为0,则显示恢复。
(7D7、D6D4、D3、D2为清除显示RAM方式设定位,工作方式见表6-7。
表6-7 清除方式设定D0为总清除设定位。
该位为1时,清除全部显示器RAM及FIFO RAM。
(8D7、D6、D5为111,是结束中断/出错方式设置命令的特征位。
D4为1时,N键轮回工作方式可工作得特殊出错方式(多个键同时按下);对传感器工作方式,此命令使IRQ变低,结束中断,并允许对RAM进一步写入。
(五)8279状态字8279的FIFO状态字主要用于键盘和选通工作方式,以指示数据缓冲器FIFO/传感器RAMD7示RAM操作无效。
D6为传感器信号结束/错误位。
在传感器工作方式时,S/E=1表示传感器的最后一个信号已进入传感器RAM;在特殊错误方式中,D6=1表示出现了多键同时按下错误。
该位在执行CF=1的清除命令时被复位。