截图
简介
这是计算器制作ppt,包括了数码管的硬件连接,计算器功能,计算器工作原理,数码管显示原理,显示数字定义等内容,欢迎点击下载。
计算器制作ppt是由红软PPT免费下载网推荐的一款课件PPT类型的PowerPoint.
基于凌阳61板的简易计算器设计
华北电力大学
杨景淇
数码管的硬件连接
计算器功能
所设计的简易计算器能够实现低位数的加减乘除,除法由于数码管个数的原因只能显示整数部分。
计算器工作原理
1、不停的进行键盘扫描使其输入数据及控制键
2、通过几个控制键调用控制键下的子程序进行加减乘除运算
3、通过数码管进行数据显示
数码管显示原理
数码管是一类显示屏 通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字
本实验所用数码管为6位8段数码管
显示数字定义
unsigned int g_Data[12] = {0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x006f,0x0040,0x0000};
12个信号分别在数码管显示为0,1,2,3,4,5,6,7,8,9,-(负号), 空白
数字键值获取程序
while(1)
{
uiKey = Key_Get();
*P_Watchdog_Clear = 0x0001;
switch(uiKey)
case KEY_0: //数字“7”键按下
uiData[0] = uiData[1]; //显示数字左移一位
uiData[1] = uiData[2];
uiData[2] = uiData[3];
uiData[3] = uiData[4];
uiData[4] = uiData[5];
uiData[5] = 7; //第六位数码管显示“7”
break;
case KEY_1: //数字“8”键按下
……
符号键值获取
定义symbol作为符号按键的返回值
case KEY_3: symbol=0;
if(sum0>=0)
add_sum0();
show_zero();
计算输入数值
void add_sum0() //计算当前数码管上显示的数值
{
sum0=0;
for(i=0;i<=5;i++)
{
sum0+=uiData[i]*tenDecimal[i];
*P_Watchdog_Clear = 0x0001;
}
}
由symbol判断进行何种运算
switch(symbol)
{
case 0:
sum0=sum0+sum1;
break;
case 1:
sum0=sum0-sum1;
break;
case 2:
sum0=sum0*sum1;
break;
case 3:
sum0=sum0/sum1;
break;
default:
break;
}
显示输出结果
if(sum0>=0) //对数值的输出处理;
show_sum0=sum0;
else
show_sum0=sum0*(-1);
uiData[0] =show_sum0/100000;
uiData[1]=(show_sum0%100000)/10000;
uiData[2]=(show_sum0%10000)/1000;
uiData[3]=(show_sum0%1000)/100;
uiData[4]=(show_sum0%100)/10;
uiData[5]=show_sum0%10;
if(sum0<0) //若小于0,找出负号的位置;
{
for(i=0;i<=5;i++)
if(uiData[i]>0)
break;
uiData[i-1]=10;
for(j=0;j<=i-2;j++)
uiData[j]=11;
}
}
DIG_Set函数调用
DIG_Set(1,g_Data[uiData[0]]); //第一位数码管显示
DIG_Set(2,g_Data[uiData[1]]); //第二位数码管显示
DIG_Set(3,g_Data[uiData[2]]); //第三位数码管显示
DIG_Set(4,g_Data[uiData[3]]); //第四位数码管显示
DIG_Set(5,g_Data[uiData[4]]); //第五位数码管显示
DIG_Set(6,g_Data[uiData[5]]); //第六位数码管显示
OVER!
THANK YOU!!!
展开