当前位置:首页 > 基于AT89C51单片机六路抢答器的设计
合肥师范学院课程设计报告
3 软件设计
软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。
3.1 程序流程图
图3-1 程序流程图
图3-1为本实验的程序流程图。
3.2 系统程序
在本设计中包括了以下程序:主程序、p1.0-p1.5为六路抢答输入数码管段选P0口,位选P2口。
系统程序: #include
6
合肥师范学院课程设计报告
sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4; sbit k6=P1^5;
unsigned char DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82}; void delayms(unsigned int ms) {
unsigned int i,j; for(i=0;i void main() { unsigned char key,i; TMOD=0x01; TH0=0xff; TL0=0xff; while(1) { key=P1; if(key==0xff) { for(i=1;i<7;i++) { switch(i) { case 1:P2=0x01;break; case 2:P2=0x02;break; case 3:P2=0x04;break; case 4:P2=0x08;break; case 5:P2=0x10;break; case 6:P2=0x20;break; default : P2=0x01;break; } 7 合肥师范学院课程设计报告 P0=DSY_CODE[i]; delayms(10); } } if(key!=0xff) } } void Tim_T0() interrupt 1 using 0 { { P2=0xff; P0=DSY_CODE[1]; } if(k2==0&&k1!=0&&k3!=0&&k4!=0&&k5!=0&&k6!=0) { P2=0xff; P0=DSY_CODE[2]; } if(k3==0&&k1!=0&&k2!=0&&k4!=0&&k5!=0&&k6!=0) { P2=0xff; P0=DSY_CODE[3]; } if(k4==0&&k1!=0&&k2!=0&&k3!=0&&k5!=0&&k6!=0) { P2=0xff; P0=DSY_CODE[4]; } 8 {EA=1; ET0=1; TR0=1; } if(k1==0&&k2!=0&&k3!=0&&k4!=0&&k5!=0&&k6!=0) 合肥师范学院课程设计报告 if(k1!=0&&k6!=0&&k2!=0&&k3!=0&&k4!=0&&k5==0) { P2=0xff; P0=DSY_CODE[5]; } if (k6==0&&k1!=0&&k2!=0&&k3!=0&&k4!=0&&k5!=0) { P2=0xff; P0=DSY_CODE[6]; } } 9
共分享92篇相关文档