一个基于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(

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

  1. 51单片机实现c语言字母滚动,基于51单片机的led点阵滚动显示上下左右c语言程序.docx...

    *********** * * *LED点阵实验(左右上下流动显示) ***************************************************************** ...

  2. 帮我写一个基于51单片机的智能刹车系统

    我可以为您提供一个基于51单片机的智能刹车系统设计方案.这个系统将包括一个51单片机.一块刹车片.控制电路和一个脚踏开关.它的工作原理是:通过51单片机对脚踏开关的输入进行解码,然后控制刹车片进行刹车 ...

  3. 用C语言编写一个Linux下的简单shell程序

    这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...

  4. java 插桩 工具_一个基于Eclipse的通用Java程序插桩工具.pdf

    第38卷第7期 计算机科学 V01.38NO.7 Science 2011 2011年7月 Computer July 一个基于Eclipse的通用Java程序插桩工具 郑晓梅 (南京中医药大学信息技 ...

  5. 单片机数字定时闹钟设计c语言,电子设计 基于51单片机的定时闹钟设计.doc

    电子设计 基于51单片机的定时闹钟设计 课件之家精心整理资料--欢迎你的欣赏 课件之家精心整理资料--欢迎你的欣赏 摘 要 单片计体积小.能耗低.成本低.功能强,广泛应用于智能产品和工业自动化上.本次 ...

  6. 51单片机八人抢答器c语言,抢答器 - 基于51单片机 - 8人有程序较完整.doc

    抢答器 - 基于51单片机 - 8人有程序较完整 课程题目: 基于单片机---8路抢答器 学 院: 职业技术学院 专 业: 电子信息科学与技术 年 级: 091 学 号: 0920020088 学生姓 ...

  7. c语言 计步算法,基于51单片机的计步器设计

    基于51单片机的计步器设计(任务书,开题报告,外文翻译,论文15000字) 摘  要 随着科技发展和国民健康意识的提高,许多检测健康状态的电子产品开始普及.电子计步器作为一种越来越流行的平民锻炼检测装 ...

  8. c语言源程序温室大棚,基于AT89C51的蔬菜大棚控制系统设计

    44780显示模块有8条数据线,3条控制线,可与微处理器或微控制器相连,通过输入数据和指令,就可使模块正常工作.44780显示模块和AT89C51单片机连接电路如图3所示. 2.5 电平转换器MAX2 ...

  9. 51单片机8255扩展c语言,参阅:基于51单片机的实时时钟的设计与开发8255扩展io口1V0.1...

    <基于51单片机的实时时钟的设计与开发(8255扩展io口) (1).doc>由会员分享,可免费在线阅读全文,更多与<基于51单片机的实时时钟的设计与开发(8255扩展io口) (1 ...

最新文章

  1. Nanopore测序
  2. 3D网页游戏场景打包与加载
  3. QT 字符串的使用技巧总结
  4. SpringMVC中 -- @RequestMapping的作用及用法
  5. Similar Pairs CodeForces - 1360C(图匹配+简单贪心)
  6. Path Sum I, II
  7. firebase使用_使用Firebase进行物联网原型设计:如何事半功倍
  8. 被400万人痛骂!在中国火了22年的“洋网红”,套路彻底失灵了?
  9. python内置函数下划线_python(内置函数)
  10. Java 源码 —— List
  11. php mysql join查询结果_PHP mySQL表JOIN查询 - 最有效的方法?
  12. jquery广告浮动插件
  13. 阿里云5天学习感悟与案例分享
  14. IDEA软件常见的使用方法
  15. 转:AIX菜鸟成长日志
  16. 穷人冲冲冲:7个有钱人买,穷人不买的东西
  17. 关于NTU-RGB+D数据集skeleton数据
  18. 函数传参问题,桶排序去重,分治递归,摩尔投票求数组众数,数组中心下标求法
  19. 95后离职汇智动力,现在月薪9k,哭着说出经历!
  20. 朴素贝叶斯算法和拉普拉斯平滑详细介绍及其原理详解

热门文章

  1. 不要用偏执毁掉一个产业
  2. git 上传代码到码云
  3. Oracle 一些常用函数
  4. 怎么把pdf转换为html,如何将PDF转换成HTML网页格式呢?
  5. mysql双机热备 配置文件,MYSQL 双机热备配置手册()
  6. [转载] 弄懂JDK、JRE和JVM到底是什么
  7. Java LinkedHashMap values()方法与示例
  8. php session bug,thinkphp2.x中session的BUG及解决办法
  9. 循环语句与条件语句_在PHP中混合条件语句和循环
  10. 工作中常用的 6 种设计模式!