51单片机简易计算器-(可算小数)_第1页
51单片机简易计算器-(可算小数)_第2页
51单片机简易计算器-(可算小数)_第3页
51单片机简易计算器-(可算小数)_第4页
51单片机简易计算器-(可算小数)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

51 单片机简易计算器 include include define uchar unsigned char define uint unsigned int sbit beep P2 3 sbit dula P2 6 sbit wela P2 7 sbit rw P1 1 sbit rs P1 0 sbit lcden P2 5 void yunsuan void keyinput char s void write data char ddata void write com char command void display long a void init void dealerror void dataoverflow void welcome char code table1 0 xee 0 xde 0 xbe 0 x7e 0 xed 0 xdd 0 xbd 0 x7d 0 xeb 0 xdb 0 xbb 0 x7b 0 xe7 0 xd7 0 xb7 0 x77 char code table2 789 456 123 0 char j k temp temp1 temp2 key mchar m flag2 0 flag3 0 long x y num int operators input iny char error 5 error char overflow 8 overflow char welcome 16 welcome to use void delay uint x 延时 uint a b for a x a 0 a for b 10 b 0 b void delay ms uint x 延时 uint a b for a x a 0 a for b 110 b 0 b void write com uchar com 写命令 P0 com rs 0 lcden 0 delay 10 lcden 1 delay 10 lcden 0 void write data uchar date 写数据 P0 date rs 1 lcden 0 delay 10 lcden 1 delay 10 lcden 0 long ming int x long m switch x case 9 m return m break case 8 m return m break case 7 m return m break case 6 m return m break case 5 m return m break case 4 m 10000 return m break case 3 m 1000 return m break case 2 m 100 return m break case 1 m 10 return m break case 0 m 1 return m break void display long a long d int i flag1 0 temp c 1 init if a 0 i d ming i temp a d a a d if temp 0 else write data 0 x30 temp flag1 1 if i 2 write data flag1 1 void init LCD 初始化 rw 0 dula 0 wela 0 write com 0 x38 显示模式设置 16 2 显示 5 7 点阵 8 位数据接口 delay 20 write com 0 x0e 显示模式设置 delay 20 write com 0 x06 显示模式设置 光标右移 字符不移 delay 20 write com 0 x01 清屏幕指令 将以前的显示内容清除 delay 20 void yunsuan 运算 if iny switch operators case 1 x x y num x if num display num else dataoverflow break case 2 x x y num x if num display num else dataoverflow break case 3 x x y num x 100 if num display num else dataoverflow break case 4 if y 0 dealerror else if y 100 x x 100 y y 100 y y 100 x x y num x if num display num else dataoverflow break y 0 void dealerror 除数为 0 int i 0 write com 0 x01 for i 0 i 5 i write data error i void dataoverflow 数值溢出 int i 0 write com 0 x01 for i 0 i 8 i write data overflow i void welcome 欢迎界面 int i 0 write com 0 x01 for i 0 i 16 i write data welcome i void keyinput char s 键盘输入 if s 0 判断按下的键是否为数值 if flag3 0 num num 10 100 s 0 else num num 10 10 s 0 if flag2 1 num num 10 flag3 1 if operators 0 y num iny 1 else x num if num 当前数值是否超出限定范围 display num else dataoverflow else switch s case iny 0 operators 0 flag2 1 break case write data table2 14 delay 10 yunsuan iny 0 operators 0 num 0 flag2 0 flag3 0 break case if operators yunsuan operators 1 write data table2 15 num 0 flag2 0 flag3 0 break case if operators yunsuan operators 2 write data table2 11 num 0 flag2 0 flag3 0 break case if operators yunsuan operators 3 write data table2 7 num 0 flag2 0 flag3 0 break case if operators yunsuan operators 4 write data table2 3 num 0 flag2 0 flag3 0 break void main 主函数 char i char flag0 1 init welcome for i 0 i 10 i delay ms 100 init while 1 P3 0 x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论