单片机 12864 lcd 计算器

单片机 12864 lcd 计算器,第1张

说的再详细点吧?是老师给出了原理图让你们自己写程序还是自己设计电路自己写程序呢?2x8矩阵和4x4矩阵的原理是一样的,用线反转法检测按键,对应计算出不同的值,代表0-9不同的数字。遇到+、-、*、/和=时认为一个数字输入结束,如果是C的话程序里用switch语句分成几种情况,然后就是送显了,12864的控制主要是初始化、读一个字节、写一个字节等等,最好你再说详细点,这样也好帮你,呵呵。

#include<stdio.h>

int main()

{

double num1

double num2

double result

char ch

printf("Please enter express to caculate, 'q' to exit(eg. 1+3):")

while(scanf("%lf%c%lf",&num1,&ch,&num2) == 3)

{

switch(ch)

{

case '+':

{

result = num1 + num2

break

}

case '-':

{

result = num1 - num2

break

}

case '/':

{

if(num2 == 0)

printf("Error:div/0\n")

else

result = num1 / num2

break

}

case '*':

{

result = num1 * num2

break

}

}

printf("%g%c%g=%g\n",num1,ch,num2,result)

printf("Please enter express to caculate, 'q' to exit(eg. 1+3):")

}

return 0

}

计算器

那种'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=num1*10+input//把之前的数乘个10,再把输入的数加到个位.计算器都是这么用的.

count1++

}

else

{

switch(input)

{

case

'+'://按了

加号

,那么第一个数输入完毕了.

oper

=

'+'//这里我也只是写个思路,不用这样等.

结束输入第一个数的循环

break

}

}

输入第二个数的逻辑差不多,就是最后输入完毕时候是输入符号后,要把值算出来.

switch(oper)

{

case

'+'://加法

result

=

num1+num2

break

case

'-'//减法

result

=

num1

-

num2

break

///其余类似

}

最后输出阶段:

输出那个result

从最高位开始输出:

int

t=0bool

first=true

for(int

l=maxl>0l--)//这里的max是显示部分能显示多少位

{

t

=

result/pow(10,l)

if(t!=0)

first

=false//第一个不是0了

if(!first)

{

output(t,l)//把t输出到LED的l位上

result

-=

t*pow(10,l)//输出一位少相应的值.

}

}//这个

算法

没有考虑小数.小数自己研究研究吧.

output(int

t,int

l)//大概这样的

{

switch(t)

{

case

'1':....

//把对应

电路

的位设置为高电位,比如8

case

'8':

电路控制端=number8//就是前面那个1111

1110,也就是0xfe.

其余数字的

组合方法

查LED

手册

.用的哪种LED就查哪种LED的手册.有的不一样

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7857221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存