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(
AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc相关推荐
- 51单片机实现c语言字母滚动,基于51单片机的led点阵滚动显示上下左右c语言程序.docx...
*********** * * *LED点阵实验(左右上下流动显示) ***************************************************************** ...
- 帮我写一个基于51单片机的智能刹车系统
我可以为您提供一个基于51单片机的智能刹车系统设计方案.这个系统将包括一个51单片机.一块刹车片.控制电路和一个脚踏开关.它的工作原理是:通过51单片机对脚踏开关的输入进行解码,然后控制刹车片进行刹车 ...
- 用C语言编写一个Linux下的简单shell程序
这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...
- java 插桩 工具_一个基于Eclipse的通用Java程序插桩工具.pdf
第38卷第7期 计算机科学 V01.38NO.7 Science 2011 2011年7月 Computer July 一个基于Eclipse的通用Java程序插桩工具 郑晓梅 (南京中医药大学信息技 ...
- 单片机数字定时闹钟设计c语言,电子设计 基于51单片机的定时闹钟设计.doc
电子设计 基于51单片机的定时闹钟设计 课件之家精心整理资料--欢迎你的欣赏 课件之家精心整理资料--欢迎你的欣赏 摘 要 单片计体积小.能耗低.成本低.功能强,广泛应用于智能产品和工业自动化上.本次 ...
- 51单片机八人抢答器c语言,抢答器 - 基于51单片机 - 8人有程序较完整.doc
抢答器 - 基于51单片机 - 8人有程序较完整 课程题目: 基于单片机---8路抢答器 学 院: 职业技术学院 专 业: 电子信息科学与技术 年 级: 091 学 号: 0920020088 学生姓 ...
- c语言 计步算法,基于51单片机的计步器设计
基于51单片机的计步器设计(任务书,开题报告,外文翻译,论文15000字) 摘 要 随着科技发展和国民健康意识的提高,许多检测健康状态的电子产品开始普及.电子计步器作为一种越来越流行的平民锻炼检测装 ...
- c语言源程序温室大棚,基于AT89C51的蔬菜大棚控制系统设计
44780显示模块有8条数据线,3条控制线,可与微处理器或微控制器相连,通过输入数据和指令,就可使模块正常工作.44780显示模块和AT89C51单片机连接电路如图3所示. 2.5 电平转换器MAX2 ...
- 51单片机8255扩展c语言,参阅:基于51单片机的实时时钟的设计与开发8255扩展io口1V0.1...
<基于51单片机的实时时钟的设计与开发(8255扩展io口) (1).doc>由会员分享,可免费在线阅读全文,更多与<基于51单片机的实时时钟的设计与开发(8255扩展io口) (1 ...
最新文章
- Nanopore测序
- 3D网页游戏场景打包与加载
- QT 字符串的使用技巧总结
- SpringMVC中 -- @RequestMapping的作用及用法
- Similar Pairs CodeForces - 1360C(图匹配+简单贪心)
- Path Sum I, II
- firebase使用_使用Firebase进行物联网原型设计:如何事半功倍
- 被400万人痛骂!在中国火了22年的“洋网红”,套路彻底失灵了?
- python内置函数下划线_python(内置函数)
- Java 源码 —— List
- php mysql join查询结果_PHP mySQL表JOIN查询 - 最有效的方法?
- jquery广告浮动插件
- 阿里云5天学习感悟与案例分享
- IDEA软件常见的使用方法
- 转:AIX菜鸟成长日志
- 穷人冲冲冲:7个有钱人买,穷人不买的东西
- 关于NTU-RGB+D数据集skeleton数据
- 函数传参问题,桶排序去重,分治递归,摩尔投票求数组众数,数组中心下标求法
- 95后离职汇智动力,现在月薪9k,哭着说出经历!
- 朴素贝叶斯算法和拉普拉斯平滑详细介绍及其原理详解
热门文章
- 不要用偏执毁掉一个产业
- git 上传代码到码云
- Oracle 一些常用函数
- 怎么把pdf转换为html,如何将PDF转换成HTML网页格式呢?
- mysql双机热备 配置文件,MYSQL 双机热备配置手册()
- [转载] 弄懂JDK、JRE和JVM到底是什么
- Java LinkedHashMap values()方法与示例
- php session bug,thinkphp2.x中session的BUG及解决办法
- 循环语句与条件语句_在PHP中混合条件语句和循环
- 工作中常用的 6 种设计模式!