基于at89c52的简易8路抢答器内容摘要:

x82,0xf8,0x80,0x90,0xff}。 /*sbit key1=P1^0。 sbit key2=P1^1。 sbit key3=P1^2。 sbit key4=P1^3。 sbit key5=P1^4。 sbit key6=P1^5。 sbit key7=P1^6。 sbit key8=P1^7。 */ sbit keyzhu=P3^0。 sbit clean=P3^1。 sbit keyf=P3^7。 //蜂鸣器 sbit wei1=P2^0。 //位选端口 sbit wei3=P2^2。 sbit wei4=P2^3。 //延时函数 void delay(uint xms) { uint i,j。 for(i=xms。 i0。 i) { for(j=120。 j0。 j) { } } } //初始化函数 void init() { TMOD=0x11。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 TH1=(6553650000)/256。 TL1=(6553650000)%256。 EA=1。 //开中断 ET0=1。 //定时 /计数器 T0 中断允许 TR0=0。 //T0 不工作 ET1=1。 //定时 /计数器 T1 中断允许 TR1=0。 //T1 不工作 x=15。 y=0。 m=30。 n=0。 shi=0。 ge=0。 haoma=0。 host=0。 f1=0。 f3=0。 keyf=0。 } //显示函数 void display(uint shi,uint ge,uint haoma) { wei3=0。 P0=table[shi]。 delay(5)。 wei3=1。 wei4=0。 P0=table[ge]。 delay(5)。 wei4=1。 wei1=0。 P0=table[haoma]。 delay(5)。 wei1=1。 } //扫描键盘 void keyscan() { if(ready==1) { if(host==0) { switch(P1) { case 0xfe: delay(10)。 if(P1==0xfe) { TR0=0。 host=1。 haoma=1。 T。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。