您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > 四位数码管动态显示c语言程序
//这是一个四位数码管动态显示c语言程序,每隔一秒加一,直至加到9999为止//使用时需采用锁存器#includereg52.h#includestdio.hunsignedcharcodeLED[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharLEDbuff[]={0xff,0xff,0xff,0xff};//定义数码管的位选段sbitSEG_bit_1=P0^1;sbitSEG_bit_2=P0^2;sbitSEG_bit_3=P0^3;sbitSEG_bit_4=P0^4;unsignedintcnt=0;unsignedintsec=0;unsignedintmini=0;unsignedinthour=0;unsignedchari=0;/*voiddelay(unsignedintz){unsignedintx,y;for(x=z;x0;x--)for(y=110;y0;y--);}*/voidinterrupttimer0()interrupt1/*设置中断函数*/{TH0=0xfc;TL0=0x18;cnt++;//P1=0x80;//delay(1);switch(i){case0:SEG_bit_1=0;SEG_bit_4=1;P1=LEDbuff[0];i++;break;case1:SEG_bit_4=0;SEG_bit_3=1;P1=LEDbuff[1];i++;break;case2:SEG_bit_3=0;SEG_bit_2=1;P1=LEDbuff[2]&;i++;break;case3:SEG_bit_2=0;SEG_bit_1=1;P1=LEDbuff[3];i=0;break;default:break;}}/************************************************voidserial_init(){//TMOD=0x20;//定时器T/C1工作方式2SCON=0x50;//串口工作方式1,允许串口接收(SCON=0x40时禁止串口接收)TH1=0xF3;//定时器初值高8位设置TL1=0xF3;//定时器初值低8位设置PCON=0x80;//波特率倍频(屏蔽本句波特率为2400)TR1=1;//定时器启动}**********************************************/voidmain(){//serial_init();//串口初始化//TMOD=0x21;/*设置定时器*/TMOD=0x01;TH0=0xfc;TL0=0x18;TR0=1;EA=1;/*设置中断*/ET0=1;while(1){if(0==TF0){if(cnt=1000){cnt=0;sec++;if(sec=60){sec=0;mini++;if(mini=60){mini=0;hour++;if(hour=24)hour=0;}}LEDbuff[0]=LED[sec%10];//*设置数码管显示位*/LEDbuff[1]=LED[sec/10%10];LEDbuff[2]=LED[mini%10];LEDbuff[3]=LED[mini/10%10];//TI=1;//使用printf函数前须先将发送标志位TI置1//printf(%4d%x,%x%x\n,sec,LEDbuff[0],LEDbuff[1],LEDbuff[2]);//TI=0;}}}}
本文标题:四位数码管动态显示c语言程序
链接地址:https://www.777doc.com/doc-4800496 .html