电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

51单片机+1602计算器

51单片机+1602计算器_第1页
1/6
51单片机+1602计算器_第2页
2/6
51单片机+1602计算器_第3页
3/6
#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define rs P3_5 //指令寄存器或数据寄存器的选择 #define e P3_4 //读写操作的使能信号 #define rw P2_7 //读写操作的选择 #define BF 0X80 //忙检测标志位 uchar code tab1[]={'c',0,'=','+',1,2,3,'-',4,5,6,'*',7,8,9,'/'}; //键盘的对应的数据 uchar number; //按键输入键盘号 bit flag0=0; //“=”号按键标志 bit flag1=0; //“+”号按键标志 bit flag2=0; //“-”号按键标志 bit flag3=0; //“*”号按键标志 bit flag4=0; //“/”号按键标志 bit fuhao=0; //正负号标志 bit point=0; //小数点标志 ulong a=0,b=0;//第一个整数存入a,第二个数整数存入b uchar code key[]={0xef,0xdf,0xbf,0x7f};//行扫描按键检测 void delay(uint z) //延时 1ms 子程序 { uint x,y; for(x=z;x>0;x--) for(y=115;y>0;y--); } /*************************************************** 1602 夜晶显示器 ***************************************************/ uchar busy() //1602 忙碌检测 { rs=0; rw=1; e=1; delay(1); while(P0&BF); e=0; return P0; } void wdat(uchar dat) //数据在 1602 显示 { P0=dat; busy(); rs=1; rw=0; delay(5); e=1; delay(5); e=0; } void wcmd(uchar cmd,uchar BFC) //写命令或写数据输出到 1602 的地址 { P0=cmd; if(BFC) busy(); rs=0; rw=0; delay(5); e=1; delay(5); e=0; } void init() //1602 初始化 { e=0; wcmd(0x38,0); wcmd(0x38,0); wcmd(0x38,0); wcmd(0x38,1); wcmd(0x08,1); wcmd(0x01,1); wcmd(0x06,1); wcmd(0x0c,1); } /****************************************** 4*4 键盘,并得到按键值 ******************************************/ void ankey() //取4*4 键盘输入代表键值number { uchar i,j,temp; for(i=0;i<4;i++) { P1=key[i]; temp=P1; temp=temp<<4|0x0f; for(j=0;j<4;j++) { if(key[j]==temp) { number=i*4+j;//按键对应的键号 switch(number)//对按键作相应的处理 { case 0:{wcmd(0x01,1);flag0=0;flag1=0;flag2=0;flag3=0;flag4=0;fuhao=0;point=0;} break; //清零按键 case 2:flag0=1;break; //“=”号...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

51单片机+1602计算器

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部