网站大量收购闲置独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个基于AVR单片机的计算器程序 #includeavr/io.h #includeutil/delay.h //延时函数的头文件 #includeavr/interrupt.h // 中断函数的头文件 #define uint unsigned int #define uchar unsigned char #define BIT(k) (1k) //利用上ICC软件的优点 #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 (PINBBIT(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(1) {

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档