教学用电子打铃器总说明书 下载本文

{ char k;

dis[0]=timedata[0];dis[1]=timedata[0]/10;dis[2]=timedata[1];dis[3]=timedata[1]/10;dis[4]=timedata[2];dis[5]=timedata[2]/10;dis[7]=lessionNumber; for (k=0;k<8;k++) {

if(k==2)//第三个片选显示出右下角点 {

P0=dis_7_[dis[2]];P2=scan_con[k];delay1ms(1);P0=0x00;P2=0xff; }

else if(k==4)//第五个片选显示出右下角点 {

P0=dis_7_[dis[4]];P2=scan_con[k];delay1ms(1);P0=0x00;P2=0xff; }

else {P0=dis_7[dis[k]];P2=scan_con[k]; delay1ms(1);P0=0x00; P2 =0xff;} } }

// 主函数程序 main() {

TH0 =0x3c; TL0=0xb0;

TMOD=0x01; ET0=1; TR0=1; EA =1; while (1) {

scan(); bellTime();

13

keyscan(); } }

//定时器T0中断服务函数

void time_intt0(void ) interrupt 1

{ ET0=0 ; TR0=0; TH0=0x3c; TL0 =0xb0;TR0=1; ms50++; if(ms50==20) {

ms50=0x00;timedata[0]++; if(timedata[0]==60) {

timedata[0]=0; timedata[1]++; if(timedata[1]==60) {

timedata[1]=0; timedata[2]++; if(timedata[2]==24) {

timedata[2]=0; } } } } ET0=1; }

//打铃对比级打铃函数

bellTime()//响铃时间设置为11秒 {

switch(timedata[1]){ case 0:

14

if(timedata[2]==8) //第一节课上课时间8:00 //调用响铃程序,响铃,同时显示上课节数 { if(timedata[0]<11){ PinSpeaker=TRUE; lessionNumber=1; delay1ms(1); PinSpeaker=FALSE; delay1ms(1); } }

if(timedata[2]==14) //第三节课上课时间14:00 //调用响铃程序,响铃,同时修改上课节数 { if(timedata[0]<11){ PinSpeaker=TRUE; lessionNumber=3; delay1ms(1); PinSpeaker=FALSE; delay1ms(1); } } break; case 40:

if(timedata[2]==8) //第一节课下课时间8:40 //调用响铃程序,响铃 { if(timedata[0]<11){ PinSpeaker=TRUE; delay1ms(1); PinSpeaker=FALSE; delay1ms(1); }

15

}

if(timedata[2]==14) //第三节课下课时间14:40 //调用响铃程序,响铃 { if(timedata[0]<11){ PinSpeaker=TRUE; delay1ms(1); PinSpeaker=FALSE; delay1ms(1); } } break; case 50:

if(timedata[2]==8)//第二节课上课时间8:50 //调用响铃程序,响铃,同时修改上课节数 { if(timedata[0]<11){ PinSpeaker=TRUE; lessionNumber=2; delay1ms(1); PinSpeaker=FALSE; delay1ms(1); } }

if(timedata[2]==14) //第四节课上课时间14:50 //调用响铃程序,响铃,同时修改上课节数 { if(timedata[0]<11){ PinSpeaker=TRUE; lessionNumber=4; delay1ms(1); PinSpeaker=FALSE; delay1ms(1);

16