历史上的今天
今天是:2024年10月17日(星期四)
2019年10月17日 | AVR单片机简单计算器的Proteus仿真实现+源码
2019-10-17 来源:51hei

单片机源程序如下:
#include "mega16.h"
#include "1602.h"
#include "key.h"
float k1,k2; //记录最终输入运算的两个数
uint one,two,three,four; //记录每次输入的数字
uint flag; //计数标志位
uint flag1,flag2; //第一个数 第二个数 完成标志位
uint flag3;//记录加减乘除标志位
long Result; //最后运算的结果
void main()
{
init(); //液晶初始化
// write_com(0x80+15);
// write_date('0');
Init_Keypad(); //键盘初始化
flag1 = 1;
while(1)
{
Key_Event(); //扫描键盘
if(key_Flag == 1)
{
key_Flag = 0;
if(key_val <= 10) //小于10 则为需要的数字
{
if(flag1) //flag1为1 表示正在输入第一个数字
{
switch(flag)
{
case 0:
flag = 1;
one = key_val%10;
write_com(0x80+6);
write_date(tab[key_val]);
k1 = (float)one;
break;
case 1:
flag = 2;
two = key_val%10;
write_com(0x80+7);
write_date(tab[key_val]);
k1 = (float)(one*10 + two);
break;
case 2:
flag = 3;
three = key_val%10;
write_com(0x80+8);
write_date(tab[key_val]);
k1 = (float)(one*100 + two * 10 + three);
break;
case 3:
flag = 4;
four = key_val%10;
write_com(0x80+9);
write_date(tab[key_val]);
k1 = (float)(one*1000 + two * 100 + three*10 + four);
break;
case 4:
flag = 0;
break;
}
}
if(flag2) //flag2为1 表示正在输入第2个数字
{
switch(flag)
{
case 0:
flag = 1;
one = key_val%10;
write_com(0x80+12);
write_date(tab[key_val]);
k2 = (float)one;
break;
case 1:
flag = 2;
two = key_val%10;
write_com(0x80+13);
write_date(tab[key_val]);
k2 = (float)(one*10 + two);
break;
case 2:
flag = 3;
three = key_val%10;
write_com(0x80+14);
write_date(tab[key_val]);
k2 = (float)(one*100 + two * 10 + three);
break;
case 3:
flag = 4;
four = key_val%10;
write_com(0x80+15);
write_date(tab[key_val]);
k2 = (float)(one*1000 + two * 100 + three*10 + four);
break;
case 4:
flag = 0;
break;
}
}
}
else if(key_val>=13 || key_val <= 16) //判断运算符
{
flag1 = 0;
flag2 = 1;
flag = 0;
switch(key_val)
{
case 13:
write_com(0x80+11);
write_date('+');
flag3 = 1;
break;
case 14:
write_com(0x80+11);
write_date('-');
flag3 = 2;
break;
case 15:
write_com(0x80+11);
write_date('*');
flag3 = 3;
史海拾趣
|
我小时候看过一部电影叫《回到未来》,里面可以乘坐超酷的时光飞车在现代和未来之间穿梭,当时觉得要是有这样的机器那真是酷毙了。而且,电影中未来世界里的汽车都是满天飞的,真是太符合我对未来的想象了。这几天,我在关注快速电梯“60年后的电梯 ...… 查看全部问答> |
|
Xilinx DDS Compiler IP核使用问题,用过的高手来看一下 我要在FPGA中做数字正交,故此要用到DDS IP核,5.0版本的,但是研究了两天始终无法产生比较满意的正玄波,用ChipScope采到的波形要不是就是像下图这种,要不就是一些比较混乱的,反正不是比较正常的正玄波。 设置如下,外面给的aclk是50Mhz的, ...… 查看全部问答> |




