欢迎来到天天文库
浏览记录
ID:56713214
大小:233.00 KB
页数:3页
时间:2020-07-05
《电子秒表原理图及程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#defineuintunsignedint#defineucharunsignedchar/**********************************数码管查表法*****************************************************/ucharcodedula[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//段码控制//此表为8个数码管位选控制,共阴数码管1-8个ucharcodewela[
2、]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};//位选控制查表的方法控制ucharcnt=0;ucharLedNumVal;sbitkey1=P1^0;//开始计时sbitkey2=P1^1;//暂停sbitkey3=P1^2;//复位/**********************************延迟函数********************************************************/voidDelay_ms(uinti){ucharj;for(;i>0;i--)
3、for(j=123;j>0;j--);}/**********************************定时器初始化程序************************************************/voidTimer_Init(void){TMOD
4、=0x01;//启用定时器1,模式1TH0=0x3c;//定时初值50msTL0=0xb0;ET0=1;//定时器0允许EA=1;//全局中断}/*********************************按键程序***************************
5、****************************/voidKey_Scan(void){if(!key1)//开始计时{Delay_ms(5);if(!key1){TR0=1;//开定时器}}if(!key2)//暂停{Delay_ms(5);if(!key2){TR0=0;//关定时器}}if(!key3)//复位{Delay_ms(5);if(!key3){LedNumVal=0;}}}/***********************************主函数***********************************
6、*********************/voidmain(void){ucharLedOut[2],i;Timer_Init();while(1){Key_Scan();if(cnt>20)//一秒到了{cnt=0;LedNumVal++;if(LedNumVal>99)LedNumVal=0;}LedOut[0]=dula[LedNumVal%100/10];//十位LedOut[1]=dula[LedNumVal%10];//个位for(i=0;i<2;i++){P0=LedOut[i];P2=wela[i];//使用查表法进行位选De
7、lay_ms(150);//扫描间隔时间(太长会数码管会有闪烁感)}}}/**********************************定时器服务程序*********************************************/voidTimer0_(void)interrupt1{TH0=0x3c;//启用定时器1,模式1TL0=0xb0;//定时初值50mscnt++;}
此文档下载收益归作者所有