AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc

一个基于AVR单片机的计算器程序

#include

#include//延时函数的头文件

#include // 中断函数的头文件

#define uint unsigned int

#define uchar unsigned char

#define BIT(k) (1<

#define DI PORTC //夜晶的数据输入端

#define No_key 255//没有按键按下的返回值

#define key_port PORTD//键盘输入

#define key_ddr DDRD

#define key_pin PIND //宏定义方便以后程序移植

#define lone_key_port PORTB //独立键盘接口 用于输入小数点

#define lone_key_ddr DDRB

#define lone_key_pin (PINB&BIT(0)) //读取独立键盘接口的电平

#define rs_0 PORTA&=~BIT(0) //RS复位

#define rs_1 PORTA|=BIT(0) //RS置位

#define en_0 PORTA&=~BIT(1) //使能端复位

#define en_1 PORTA|=BIT(1) //使能端置位

const uchar table1[]=" You are welcome!";//初始显示字符

const uchar table2[]="ERROR!";//出错提示字符

uchar a[7]={0,0,0,0,0,0,0},b[11]={0,0,0,0,0,0,0},a1[5]={0,0,0,0,0},b1[5]={0,0,0,0,0}; //用来存储输入的两个数字,位数不可超过10位

uchar aa,bb,cc,dd; //用来记数输入的位数

uchar sym; //用来保存符号

uchar flag;//起动标志

uchar fuhao; //符号标志

uchar deflag1 ; //小数点标志

uchar deflag2 ; //小数点标志

uchar overflag; //数值溢出标志

uchar allowflag=1; //符号允许标志,用于禁止连续两个符号的输出

uchar negative; //负数标志,当是负数要作相应的处理

long temp3,temp4; //计算的数值 得数用其中一个变量存储即可,不用再浪费内存开辟其他变量

float temp1, temp2;

const unsigned char key_table[16] =

{

7, 8, 9, 10,

4, 5, 6, 11,

1, 2, 3, 12,

50,0, 21,13

}; // 键盘编码可根据具体情况而设定

void port_init();//端口初始化

void device_init(); //夜晶初始化

void time_init();//定时器初始化

void wright_com(uchar com); //夜晶写指令函数

void wright_data(uchar date); //夜晶写数据函数

void lcd_handle(uchar temp); //夜晶显示处理,该显示什么,不该显示什么

uchar keyscan(); //键盘扫描

void judgechar(uchar t); //判断字符为符号还是数字

void decimal(uchar de) ; //判断是不是小数点,只能出现两个小数点,且不能连续出现

void reset() ; //复位函数

void calculate(void); //对数值进行计算

void result(long value); //显示结果

void flow_clew() ; //溢出提示函数

int main()

{

port_init();

device_init();

time_init(); //初始化

while(

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

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

相关文章

python 消息框但不影响程序执行_还在用print()查找错误?日志消息不香嘛?| 原力计划...

作者 | 灰小猿责编 | 王晓曼出品 | CSDN博客最近在做项目开发的时候&#xff0c;跟小伙伴聊到修 Bug 这件事。嗯&#xff0c;对于一只没技术的程序猿来说&#xff0c;修 Bug 的确是一件让人头疼的事情&#xff0c;尤其是对于比较大型的项目开发&#xff0c;在变量较多的时候&am…

vue中传值和传引用_vue prop属性传值与传引用示例

vue prop属性传值与传引用示例vue组件在prop里根据type决定传值还是传引用。简要如下&#xff1a;传值&#xff1a;String、Number、Boolean传引用&#xff1a;Array、Object若想将数组或对象类型也以值形式传递怎么办呢&#xff1f;如下方式可以实现&#xff1a;// component-…

.sql文件_Mysql分组排序及Sql文件执行

最近在做一个临时项目&#xff0c;采用的是mysql开发&#xff0c;主要涉及两个问题&#xff1a;1.一个是传参问题&#xff1b;2.另一个是实现对数据分组取前4的数据。个人感觉很有意义&#xff0c;特此记录一下。一.传参问题执行mysql文件&#xff0c;需要从外部传入参数时&…

laravel 异常捕获_Laravel框架捕获各种类型错误

Laravel 中的所有异常都由类App\Exceptions\Handler集中处理&#xff0c;这个类有两个方法&#xff1a;report 和 render。【report 方法】report 方法用于记录异常并将其发送给外部服务。默认情况下&#xff0c;report 方法只是将异常传递给异常基类并写入日志进行记录&#x…

android 动态库 后缀,Android Robolectric加载运行本地So动态库

前言Robolectric 是 Android 的单元测试框架&#xff0c;运行无需 Android 真机环境直接运行在 JVM 之上&#xff0c;所以在 test case 运行速度效率上有了很大提升&#xff0c;接近于 Java JUnit test(JUnit test > Robolectric ≫ androidTest)。不过框架本身并不支持 so …

java web输出语句到控制台_Java工程师(6).循环结构

搞清楚循环结构语句的执行效果与使用场景。程序中的循环流程程序中的循环流程试着编写程序实现下列功能&#xff1a;在控制台中输出100个Hello字符串。在控制台中输出从 1 到 100 的数字。… …循环结构的三要素循环结构必然包含如下三要素&#xff1a;循环变量 &#xff08;循…

sap生产工单报工_SAP系统PP (ProductionPlanning) 模块知识培训

SAP系统PP(ProductionPlanning)模块知识培训主要内容为支持生产系统规范使用SAP系统开展日常业务&#xff0c;掌握SAP系统常用操作和异常处理的方法&#xff0c;人力资源部在6月10日下午组织实施了一期《SAP系统PP模块知识》的培训。本次培训由信息技术部主管工程师解虎授课&am…

android加载百分比功能,android进度条怎么显示百分比

android布局文件里的ProgressBar长形进度条怎么自 在windows操作系统下Android studio按照如下步骤自动义ProgressBar长形进度条的样式。首先创建一个android项目&#xff0c;打开其中的XML布局文件&#xff0c;如下图&#xff1a;添加ProgressBar控件&#xff0c;如下图&#…

64位程序怎么判断指针是否有效_AArch64应用程序级编程模型

根据实现选择&#xff0c;体系结构支持多级执行特权&#xff0c;由从EL0到EL3的不同异常级别表示。EL0对应于最低的特权级别&#xff0c;通常被描述为无特权。应用层程序员模型是在EL0上执行软件的程序员模型。系统软件决定异常级别&#xff0c;因此决定软件运行的特权级别。当…

n个小球放入m个盒子中_飞么盒子卫生巾自助售卖机前景

嘿&#xff0c;你有没有经历过&#xff0c;出门在外来大姨妈却没带M巾呢&#xff1f;尴尬丛生的你选择怎么做&#xff1f;现在&#xff0c;有了新选择&#xff0c;这也是今天我们迫不及待想要和你们介绍的新朋友—飞么盒子&#xff0c;由Faimes飞么品牌自主研发出品的卫生巾售卖…

Android代码设置角标,Android上的Badge,快速实现给应用添加角标

应用角标是iOS的一个特点&#xff0c;原生Android并不支持。或许是由于当时iOS的通知栏比较鸡肋(固然如今已经改进了不少)&#xff0c;而Android的通知栏功能强大&#xff1f;因此才出现了一方依赖于数字角标&#xff0c;一方坚持强大的通知栏&#xff0c;在平常使用中这两种交…

opencv模糊图像变清晰_opencv-python 4.2图像模糊

图像模糊可以去除噪音。import cv2 import numpy as npimage cv2.imread("dogcat1.jpg") cv2.namedWindow("input image", cv2.WINDOW_AUTOSIZE) cv2.imshow("input image", image)#均值模糊 dst cv2.blur(image, (5, 5)) cv2.imshow("…

datatable怎么根据两列分组_公司要IT转型,我该怎么办?用Python进行数据处理

“ 以后数据处理&#xff0c;都用pandas”01 面临问题作为运维人员&#xff0c;每周要统计很多数据&#xff0c;特别是周四写周报的时候&#xff0c;基本要花半天时间。既然已经学了Python&#xff0c;那就试试优化它。以统计不同厂家、不同设备类型告警量为例。需要将多份类似…

C语言非常大的数组,关于最大子数组问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼纯新手&#xff0c;最近想学一下算法&#xff0c;上网看了个教程&#xff0c;看到了一个很经典的返回最大子数组之和的问题&#xff0c;然后我想问一下我用分治法把最大和求出来了&#xff0c;但是要怎么返回子数组本身呢&#xff…

pandas尾部添加一条_Numpy与Pandas

Numpy#导入numpy包 import numpy as np ##from numpy import * #定义数组 #一维数组 anp.array([1,2,3,4]) #二维数组 bnp.array([(1,2,3),(4,5,6)]) #定义数组类型 cnp.array([(1,2),(3,4)],dtypecomplex) #array([[ 1.0.j, 2.0.j],[ 3.0.j, 4.0.j]])#数组的维数 a.shape #(…

easyexcel 在 设置标题_阿里开源(EasyExcel)

阿里开源(EasyExcel)---导出EXCEL - 请叫我猿叔叔的博客 - CSDN博客https://blog.csdn.net/qq_35206261/article/details/88579151一. 简介导出是后台管理系统的常用功能&#xff0c;当数据量特别大的时候会内存溢出和卡顿页面&#xff0c;曾经自己封装过一个导出&#xff0c;P…

android webview 劫持,安卓包风险安全监测提示存在Activity劫持、WebView远程代码执行,请问怎么解决?...

挺着急的&#xff0c;请问这个怎么解决1、Activity劫持用例名称&#xff1a;Activity劫持风险系数&#xff1a;高风险编号&#xff1a;NESUN-2016-82091, CWE-94,风险描述&#xff1a;攻击者劫持目标Activity并制造跟目标Activity界面相似度很高的界面迷惑用户&#xff0c;可能…

python爬虫获取url_Python爬虫如何获取页面内所有URL链接?本文详解

如何获取一个页面内所有URL链接&#xff1f;在Python中可以使用urllib对网页进行爬取&#xff0c;然后利用Beautiful Soup对爬取的页面进行解析&#xff0c;提取出所有的URL。什么是Beautiful Soup&#xff1f; Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索…

iview table增加一行减少一行_PQ入门函数:Table.ReplaceValue

一、基础介绍Table.ReplaceValue函数的官方说明如下&#xff1a;Table.ReplaceValue(table as table, oldValue as any, newValue as any, replacer as function, columnsToSearch as list)该函数实现的功能是将Table中的值替换成新值&#xff0c;语法翻译成汉语大致如下&#…

android so文件崩溃,android 7.0 因为.so文件而崩溃事件解决

菜鸟进场&#xff0c;方圆十里&#xff0c;寸草不生现在基本都在用第三方的分享&#xff0c;但是不知道为什么&#xff0c;脑残的准备自己集成微博的第三方分享&#xff0c;本来一路躺坑都过来了&#xff0c;不过遇到一个奇葩的问题&#xff0c;软件在android N上会崩溃&#x…