基于avr单片机设计的计算器程序

基于avr单片机设计的计算器程序

ID:10271629

大小:277.50 KB

页数:17页

时间:2018-06-14

基于avr单片机设计的计算器程序_第1页
基于avr单片机设计的计算器程序_第2页
基于avr单片机设计的计算器程序_第3页
基于avr单片机设计的计算器程序_第4页
基于avr单片机设计的计算器程序_第5页
资源描述:

《基于avr单片机设计的计算器程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、复位电路#include#include//延时函数的头文件#include//中断函数的头文件#defineuintunsignedint#defineucharunsignedchar#defineBIT(k)(1<

2、程序移植#definelone_key_portPORTB//独立键盘接口用于输入小数点#definelone_key_ddrDDRB#definelone_key_pin(PINB&BIT(0))//读取独立键盘接口的电平#definers_0PORTA&=~BIT(0)//RS复位#definers_1PORTA

3、=BIT(0)//RS置位#defineen_0PORTA&=~BIT(1)//使能端复位#defineen_1PORTA

4、=BIT(1)//使能端置位constuchartable1[]="Youarewelcome!";//初始显示字符constuchar

5、table2[]="ERROR!";//出错提示字符uchara[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位ucharaa,bb,cc,dd;//用来记数输入的位数ucharsym;//用来保存符号ucharflag;//起动标志ucharfuhao;//符号标志uchardeflag1;//小数点标志uchardeflag2;//小数点标志ucharoverflag;//数值溢出标志ucharallowflag=1;

6、//符号允许标志,用于禁止连续两个符号的输出ucharnegative;//负数标志,当是负数要作相应的处理longtemp3,temp4;//计算的数值得数用其中一个变量存储即可,不用再浪费内存开辟其他变量floattemp1,temp2;constunsignedcharkey_table[16]={7,8,9,10,4,5,6,11,1,2,3,12,50,0,21,13};//键盘编码可根据具体情况而设定voidport_init();//端口初始化voiddevice_init();//夜晶初始化voidtime_init();//定时器初始化voidwright

7、_com(ucharcom);//夜晶写指令函数voidwright_data(uchardate);//夜晶写数据函数voidlcd_handle(uchartemp);//夜晶显示处理,该显示什么,不该显示什么ucharkeyscan();//键盘扫描voidjudgechar(uchart);//判断字符为符号还是数字voiddecimal(ucharde);//判断是不是小数点,只能出现两个小数点,且不能连续出现voidreset();//复位函数voidcalculate(void);//对数值进行计算voidresult(longvalue);//显示结果voi

8、dflow_clew();//溢出提示函数intmain(){port_init();device_init();time_init();//初始化while(1){flow_clew();//溢出提示函数,一旦扫描到出错就会显示错误}}/***********中断服务程序***********/volatileunsignedinti;//中断服务程序中要使用全局变量,且要加volatileSIGNAL(SIG_OVERFLOW0){TCNT0=205;//重装初值i=keyscan();//返回键盘扫描值if(i!=No_key)//确认有按键按下{if(i==50){

9、wright_com(0x01);//清显示_delay_ms(10);//延时等待清屏指令完成wright_com(0x80);wright_data('0');//重新显示0reset();//初始化flag=1;//标志起动}if(i<50&&flag)//条件为已经启动而且输入的是有效字符{judgechar(i);//判断是不是操作符,要是则要作相应的处理decimal(i);//判断是不是小数点输入,要是则要作相应的处理lcd_handle(i);//对输入的数据进行合理存储并加以显示}if(i==21

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。