资源描述:
《秒表设计c语言程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*-----------------------------------------------名称:数码管显示,按键控制秒表论坛:www.doflye.net编写:shifang日期:2009.5修改:无内容:中断按键控制,数码管显示,中断0控制计时和停止,中断1清零------------------------------------------------*/#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义unsignedintmsecond,second;//定义全局变量bitGoFlag;//定义停止,计时标志#defineDa
2、taPortP0//定义数据端口程序中遇到DataPort则用P0替换sbitLATCH1=P2^2;//定义锁存使能端口段锁存sbitLATCH2=P2^3;//位锁存unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0~9unsignedcharcodedofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码unsignedcharTempData[8];//存储显示
3、值的全局变量voidDelayUs2x(unsignedchart);//函数声明voidDelayMs(unsignedchart);voidDisplay(unsignedcharFirstBit,unsignedcharNum);voidInit_Timer0(void);voidCLR(void);/*------------------------------------------------主函数------------------------------------------------*/voidmain(void){unsignedcharnum=0;EX0=1;//外部
4、中断0开IT0=1;//IT1=0表示边沿触发EX1=1;//外部中断1开IT1=1;//IT1=1表示边沿触发Init_Timer0();while(1)//主循环{TempData[0]=dofly_DuanMa[second/10];//分解显示信息,如要显示68,则68/10=668%10=8TempData[1]=dofly_DuanMa[second%10];TempData[2]=0x40;//"-"TempData[3]=dofly_DuanMa[msecond/10];//分解显示信息,如要显示68,则68/10=668%10=8TempData[4]=dofly_DuanM
5、a[msecond%10];//主循环中添加其他需要一直工作的程序}}/*------------------------------------------------显示函数,用于动态扫描数码管输入参数FirstBit表示需要显示的第一位,如赋值2表示从第三个数码管开始显示如输入0表示从第一个显示。Num表示需要显示的位数,如需要显示99两位数值则该值输入2------------------------------------------------*/voidDisplay(unsignedcharFirstBit,unsignedcharNum){staticunsignedchar
6、i=0;DataPort=0;//清空数据,防止有交替重影LATCH1=1;//段锁存LATCH1=0;DataPort=dofly_WeiMa[i+FirstBit];//取位码LATCH2=1;//位锁存LATCH2=0;DataPort=TempData[i];//取显示数据,段码LATCH1=1;//段锁存LATCH1=0;i++;if(i==Num)i=0;}/*------------------------------------------------定时器初始化子程序------------------------------------------------*/voidI
7、nit_Timer0(void){TMOD
8、=0x01;//使用模式1,16位定时器,使用"
9、"符号可以在使用多个定时器时不受影响//TH0=0x00;//给定初值//TL0=0x00;EA=1;//总中断打开ET0=1;//定时器中断打开TR0=1;//定时器开关打开}/*------------------------------------------------定时器中断子程序------