您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 59分59秒倒计时程序及仿真显示
一、59分59秒倒计时程序:/*倒计时及显示程序,适用于寻迹小车实验板*/#includereg51.h#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳七段编码uchartemp=0;//定义定时器溢出计数变量,每隔50ms产生1次溢出,temp加1/*uinttime=5959;//定义倒计时变量,当temp计数加20(20x50ms=1s)时,time减1*/ucharmiao=59;ucharfen=59;sbitP0_7=P0^7;/*--定时计数器T0及其中断初始化函数--*/voidtimer0init(void){TMOD=0x01;//设置定时器0为工作方式1TH0=(65536-50000)/256;//16位计数初值除以256得到高8位初值TL0=(65536-50000)%256;//16位计数初值除以256的余数得到低8位初值EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器0}/*----------延时函数---------------*/voiddelay(uintn){uinti,j;for(i=n;i0;i--)for(j=124;j0;j--);}/*定时计数器中断程序,每当定时计数器溢出时触发中断,执行该程序*/voidtime0()interrupt1{TH0=(65536-50000)/256;//重装初值TL0=(65536-50000)%256;if(temp==20){temp=0;if(miao==0){miao=59;if(fen==0)fen=59;elsefen--;}elsemiao--;}elsetemp++;}/*--------------显示函数------------*/voiddisplay(void){P1=0xfe;//输出个位的位码P0=table[miao%10];//输出时间个位的段码delay(5);//亮5msP1=0xfd;//输出十位的位码P0=table[miao/10];//输出时间十位的段码delay(5);//亮5msP1=0xfb;P0=table[fen%10];P0_7=0;delay(5);P1=0xf7;P0=table[fen/10];delay(5);}/*----------主函数-----------------*/voidmain(void){timer0init();//调用初始化函数对定时计数器进行初始化while(1){display();//调用显示函数显示时间}}二、仿真电路及显示图:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51234567891RP1RESPACK-8U2NOTU3NOTU4NOTU5NOT
本文标题:59分59秒倒计时程序及仿真显示
链接地址:https://www.777doc.com/doc-6040211 .html