是
那种'8;字型液晶吗
那种要参考LED显示的线路,哪个线路对应哪个位,然后把这些对应的值先写出来,再用C语言
逻辑
加以控制(运算)
说个
思路
:
比如数字"8"对应的位为:1111
1110(因为要显示数字8的话,7个LED管都要亮,而最后一位为
小数点
这里只是打个比方,要去查LED对应的位我记得小数点不是最后一位)
那么unsighed
char
number8=0xfe;(1111
1110)
以此类推,
运算的时候,输入数字,
符号
,数字,等于
伪代码
如下:
输入数字;
int
num1=0;//第一个数
int
num2=0;//第二个数
char
oper
=
'\0';
if(input
>='0'
&&input<='9')//这个应该是ASCII码,应该是
按键
的扫描码
单片机
里面不一样我这只是写个思路
{//如果输入的是0-9的数字
num1=num110+input;//把之前的数乘个10,再把输入的数加到个位计算器都是这么用的
count1++;
}
else
{
switch(input)
{
case
'+'://按了
加号
,那么第一个数输入完毕了
oper
=
'+';//这里我也只是写个思路,不用这样等
结束输入第一个数的循环;
break;
}
}
输入第二个数的逻辑差不多,就是最后输入完毕时候是输入符号后,要把值算出来
switch(oper)
{
case
'+'://加法
result
=
num1+num2;
break;
case
'-'//减法
result
=
num1
-
num2;
break;
///其余类似
}
最后输出阶段:
输出那个result;
从最高位开始输出:
int
t=0;bool
first=true;
for(int
l=max;l>0;l--)//这里的max是显示部分能显示多少位
{
t
=
result/pow(10,l);
if(t!=0)
first
=false;//第一个不是0了
if(!first)
{
output(t,l);//把t输出到LED的l位上
result
-=
tpow(10,l);//输出一位少相应的值
}
}//这个
算法
没有考虑小数小数自己研究研究吧
output(int
t,int
l)//大概这样的
{
switch(t)
{
case
'1':
//把对应
电路
的位设置为高电位,比如8
case
'8':
电路控制端=number8;//就是前面那个1111
1110,也就是0xfe
其余数字的
组合方法
查LED
手册
用的哪种LED就查哪种LED的手册有的不一样
}
}
要将button的信号事件和对应的槽函数连接起来:用这句
QObject::connect( button, SIGNAL(clicked()), textedit, SLOT(on_button_clicked()) );
其中button的类申明内要加信号函数clicked的申明,要用signals关键字,处理该事件的类(你这边应该是计算器类吧)内申明on_button_clicked()
显示的 *** 作在 on_button_clicked()内处理。
以上就是关于怎样用C语言程序实现计算器功能,要求液晶显示全部的内容,包括:怎样用C语言程序实现计算器功能,要求液晶显示、qt中如何使鼠标点击后显示一个字符到TextEdit(我在做一个计算器程序)、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)