AVR单片机计算器C语言源程序,AVR单片机简单计算器的Proteus仿真实现+源码

#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;

break;

case 16:

write_com(0x80+11);

write_date('/');

flag3 = 4;

break;

}

}

if(key_val == 12)           //等于

{

switch(flag3)

{

case 1:

Result = k1 + k2;

write_com(0xc0);

write_date(tab[Result/100000]);

write_date(tab[Result%100000/10000]);

write_date(tab[Result%10000/1000]);

write_date(tab[Result%1000/100]);

write_date(tab[Result%100/10]);

write_date(tab[Result%10]);

break;

case 2:

Result = k1 - k2;

write_com(0xc0);

if(Result < 0)

{

write_date('-');

Result = 0 - Result;

}

write_date(tab[Result/100000]);

write_date(tab[Result%100000/10000]);

write_date(tab[Result%10000/1000]);

write_date(tab[Result%1000/100]);

write_date(tab[Result%100/10]);

write_date(tab[Result%10]);

break;

case 3:

Result = k1 * k2;

write_com(0xc0);

write_date(tab[Result/100000]);

write_date(tab[Result%100000/10000]);

write_date(tab[Result%10000/1000]);

write_date(tab[Result%1000/100]);

write_date(tab[Result%100/10]);

write_date(tab[Result%10]);

break;

case 4:

//write_com(0x80+11);

//write_date('/');

Result = k1*100 / k2;

write_com(0xc0);

//write_date(tab[Result/100000]);

//write_date(tab[Result%100000/10000]);

write_date(tab[Result%10000/1000]);

write_date(tab[Result%1000/100]);

write_date('.');

write_date(tab[Result%100/10]);

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android上传图片文件至c 服务器,Android 史上最优雅的实现文件上传、下载及进度的监听...

本文已授权「刘望舒」微信公众号独家原创发布前言本文将直接使用RxHttp库实现文件上传、下载、断点下载、进度的监听&#xff0c;不对RxHttp做过多讲解&#xff0c;如果对RxHttp不了解&#xff0c;请移步本文目的在于让更多的读者知道RxHttp库&#xff0c;如果您已阅读上面4篇文…

Android中http断点下载,Android HttpURLConnection断点下载(单线程)

HttpCilent 跟 HttpURLConnection 是安卓原生的用来实现http请求的类&#xff1a;Android 6.0之后取消了HttpClient&#xff0c;不支持跟新 &#xff0c;今天小编使用的是HttpURLConnection &#xff1a;直接上代码&#xff1a;URL url null;BufferedInputStream bin null;Ht…

Android ui 单元测试 覆盖率,Android单元测试—UI测试(Espresso)

前言我们先回顾一下&#xff0c;在上一篇博客中&#xff0c;主要分享了Android单元测试的逻辑测试部分。接下来&#xff0c;我们重点讲解Android单元测试的UI测试部分&#xff01;何为UI测试呢&#xff1f;就是对用户界面的交互元素进行测试&#xff0c;如TextView、ImageView&…

android shape 圆角百分比,Android shape显示圆角问题

当需要定义一个圆角效果,当在ADT中预览,没有有效果时,只要运行就可以了&#xff01;xmlns:Android"http://schemas.android.com/apk/res/android">android:state_pressed"true">android:startColor"#ff8c00"android:endColor"#FFFFFF…

Android png模拟svg,Android 中使用svg图片

1. svg认识SVG&#xff1a;android5.0出现&#xff0c;w3c推出使用xml 描述二维图形语言,矢量图,放大缩小无影响为什么用svg,现在手机的短板是内存,不是cpu,svg通过cpu计算&#xff0c;png占用内存Android上对svg进行阉割&#xff0c;使用Vector Drawable对svg支持&#xff0c;…

android 删除垃圾文件夹,别再用手机管家清理垃圾了!删除这些文件夹,内存瞬间释放几个G...

随着手机使用时间的增加&#xff0c;手机中缓存的东西越来越多&#xff0c;这时候手机内存空间就会告急&#xff0c;从而影响手机的流畅性。那么在这种时候不要乱清理&#xff0c;我们只需要删除这几个文件夹&#xff0c;就可以帮手机轻松释放好几个G的内存。下面我们就一起来看…

android软件perthbus,Transit

v5.9.10版更新说明(2021-03-19)Whether you’re riding transit for business, pleasure, or to get shredded from a socially-spaced-out bus ballet, you’ll notice “Favourite destination” icons have been newly primped to prom perfection.What else? Hello Free2M…

HTML中scr是图片的什么,HTML中关于url、scr、href的区别

HTML中关于url、scr、href的区别URL是什么URL&#xff1a;Uniform Resource Locators(统一资源定位器)的简写&#xff0c;Web浏览器通过URL从Web服务器请求页面。url不是属性&#xff0c;src和href是属性&#xff0c;src用于替换当前元素&#xff0c;href用于在当前文档和引用资…

html5页面结构案例,前端学习笔记(五)HTML+CSS静态页面实战案例:幸福西饼首页和百度首页...

按照知乎上面汪小黑推荐的前端学习路径&#xff0c;在自学了HTML和CSS之后&#xff0c;开始尝试实战制作静态页面小项目。幸福西饼首页制作首先我在网上下载到了千锋教育提供的的幸福西饼官网静态页面的教学视频和图片素材、源码等。我是先看一集视频&#xff0c;然后关掉视频自…

计算机的应用技术课程的看法,统计教学与计算机应用的几点看法论文

统计教学与计算机应用的几点看法论文一、传统教学方法的局限性和弊端统计学是一门关于搜集、整理、汇总、描述和分析数据资料&#xff0c;并在此基础上进行推断和决策的方法论科学&#xff0c;具有很强的应用性、实践性。统计学课程是中等职业学校、财经类专业的基础核心课程。…

计算机应用基础试卷结果分析,计算机应用基础 试题

计算机应用基础 试题计算机应用基础的试题有哪些?打击知道吗?下面小编为大家带来计算机应用基础试题&#xff0c;仅供参考&#xff0c;希望能够帮到大家。计算机应用基础试题选择题:1、现代信息社会的主要标志是 ___ 。(A) 汽车的大量使用 (B) 人口的日益增长 (C) 自然环境的…

中国石油大学计算机专业调剂信息,2014年中国石油大学(北京)计算机专业考研调剂信息(新)...

写在前面&#xff1a;随着2014年34所自主划线院校考研分数线及国家线的公布&#xff0c;2014年考研复试、调剂工作也陆续拉开序幕。为了帮助更多考生顺利通过复试&#xff0c;考研论坛特开启复试调剂答疑活动&#xff0c;解答2014年考生有关考研复试和调剂的问题&#xff0c;为…

jupyter可以打开HTML文件吗,Jupyter ~ 像写文章般的 Coding (附:同一个ipynb文件,执行多语言代码)...

前面用了很久Notebook来交互式编程了&#xff0c;此次说说几个其余的选项&#xff1a;htmlNotebook Markdown此次选Markdown模式(关于Markdown基础能够看以前写的Markdown Base)python和代码同样&#xff0c;Shift回车就能够预览了&#xff0c;怎么样是否是很酷的感受&#xff…

计算机专业毕业论文指导记录详细,毕业论文指导记录怎么写 了解一下

1、指导记录总共6次&#xff0c;请各位同学按照法学院网站上公布的毕业论文写作进度确定每次指导记录的时间。同时根据自己的论文选题和实际情况&#xff0c;可稍作调整。2、第一次&#xff1a;根据学院的统一部署&#xff0c;布置学生毕业论文写作的总体要求与进度&#xff0c…

计算机专业会议评级,2018计算机专业工程教育认证研讨会

为帮助计算机专业了解我国工程教育认证进展、理解认证标准的本质、引导专业建立正确的认证观&#xff0c;落实以认证推进专业建设和完善内部质量保障体系、以认证工作推进一流专业建设&#xff0c;把认证和专业改革发展有机结合&#xff0c;提高计算机教学教育的质量。中国计算…

如何用计算机基础知识提问,职业学校《计算机应用基础》课的提问策略

【摘 要】《计算机应用基础》是中等职业学校的公共基础课&#xff0c;是一门融理论、技能、实训于一体的课程。本文简要分析《计算机应用基础》课的教学现状&#xff0c;通过对课堂教学现状的表现及原因的分析&#xff0c;从五个方便阐述职业学校《计算机应用基础》课的提问策略…

计算机网络技术基础教学内容,计算机网络技术基础

无计算机网络技术基础》课程教案一 计算机网络技术基础》课题&#xff1a; 课题&#xff1a;计算机网络概述(一) ) 教学顺序&#xff1a; 教学顺序&#xff1a;1 教学时数&#xff1a; 教学时数&#xff1a; 2 学时 教学目的&#xff1a;了解计算机网络产生的背景&#xff0c;掌…

淮阴工学院计算机答辩,淮阴工学院关于做好2014级研究生学位论文答辩工作的通知...

根据《淮阴工学院全日制工程硕士专业学位授予工作细则》(淮工院〔2013〕49号)(附件1)文件精神&#xff0c;淮阴工学院现将2014级研究生学位论文答辩相关工作事宜通知如下。下面&#xff0c;小编为大家分享淮阴工学院关于做好2014级研究生学位论文答辩工作的通知&#xff0c;全文…

计算机表格收入水平怎么算,怎么用excel计算工资所得税

利用Excel表格计算工资所得税?单位工资发放大多采用计算机管理,对一些小企业没有采用工资软件的,一般用Excel表来计算工资。下面小编就教你怎么用excel计算工资所得税。excel计算工资所得税的步骤&#xff1a;1、假设工资的所得税起征点为3500&#xff0c;具体阶段如下表。2、…

黔南民族师范学院计算机与信息学院,黔南民族师范学院

计算机与信息学院黔南民族师范学院计算机与信息学院成立于2000年9月&#xff0c;由原黔南师专计算机科学系、黔南教育学院微机培训中心、都匀民族师范学校计算机教研室组建而成。现下设系党政办公室、团委(学生工作办公室)、教务办公室、科研(学科建设)与研究生办公室、计算机实…