单片机器程序c语言,单片机计算器C语言程序

#include#define uchar unsigned charuchar keyval,keynum=0;void t1isr() interrupt 3{uchar sccode,recode;TH0=(65536-10000)/256;TL0=(65536-10000)%256;P3=0x0f; //发0扫描,列线输入if ((P3 & 0x0f) != 0x0f)keynum++; //有键按下else keynum=0;if(keynum>5)//按键保持在5次中断以上{keynum=0;sccode = 0xef; //逐行扫描初值while((sccode&0x01)!=0){ P3=sccode;if((P3&0x0f)!=0x0f){ recode=(P3&0x0f)|0xf0;getkey((~sccode)+(~recode)); } elsesccode=(sccode<<1)|0x01;}}getkey(0);}void getkey(uchar key){if(key==0){keyval=0xff;return;}switch(key){case 0x11:keyval=7;break;case 0x12:keyval=4;break;case 0x14:keyval=1;break;case 0x18:keyval=10;break;case 0x21:keyval=8;break;case 0x22:keyval=5;break;case 0x24:keyval=2;break;case 0x28:keyval=0;break;case 0x41:keyval=9;break;case 0x42:keyval=6;break;case 0x44:keyval=3;break;case 0x48:keyval=11;break;case 0x81:keyval=12;break;case 0x82:keyval=13;break;case 0x84:keyval=14;break;case 0x88:keyval=15;break;default:keyval=0xff;break;}}main(){ uchar mima[]="12345678"; uchar mmins[8]; uchar i,num,sc;TMOD=0x21;TH0=(65536-10000)/256;TL0=(65536-10000)%256;TR0=1;ET0=1;TH1=0xfd;TL1=0xfd;TR1=1;SCON=0x40;EA=1;num=0;while(1){if(keyval!=0xff){mmins[num]=keyval;num++;}if(num>=8) { num=0; sc=1; for(i=0;i<8;i++) { if(mmins[i]!=mima[i]){sc=0;break;} SBUF=sc; while(TI==0); TI=0; } }}}

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值