职位关键字 工作地点
工作名称 公司名称 校园招聘
中国最好的工作搜索引擎!
  回复留言  
  帮帮忙吧,谁有单片机秒表的程序设计!急有!要求可以实现一秒记时和10微妙记时,难度很大,必有重谢!
作者: 灵通BOY  01-01 08:00   回复  
 

  回复:帮帮忙吧,谁有单片机秒表的程序设计!急有!要求可以实现一秒记时和10微妙记时,难度很大,必有重谢!
作者: 86008123  09-22 19:08   回复  
 我有一段C51程序,其中LED显示和按钮输入你可以不用看,因为这是因硬件而异的。



/*********************************************************************/

// 采用6位LED动态扫描时钟演示程序

// 使用keil c51

// 2004.03.31

/*********************************************************************/

//使用AT89C51单片机,12MHZ晶振,P0口输出段码,P2口作列扫描,用共阳LED数码管

//key0调时位选用,key1加1键,key2为减1键

#include "reg51.h"

//

//

char code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};

/* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" */

char code scan_con[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; // 列扫描控制字

char data timedata[6]={0x00,0x00,0x00,0x00,0x00,0x00};//计时单元数据初值,共6个

char data dis[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00};//显示单元数据,共6个数据

char data con1s=0x00,con04s=0x00,con=0X00; //秒定时用

sbit key0=P1^0;

sbit key1=P1^1;

sbit key2=P1^2;

//

/****************/

//1毫秒延时函数//

/***************/

delay1ms(int t)

{

int i,j;

for(i=0;i<t;i++)

for(j=0;j<120;j++)

;

}

/****************/

// 键扫描子函数 //

/****************/

keyscan()

{

EA=0;

if(key0==0)

{

delay1ms(10);

while(key0==0);

if(dis[con]==10)

{dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];}

con++;TR0=0;ET0=0;TR1=1;ET1=1;

if(con>=6)

{con=0;TR1=0;ET1=0;TR0=1;ET0=1;}

}

//

if(con!=0)

{

if(key1==0)

{

delay1ms(10);

while(key1==0);

timedata[con]++;

if(timedata[con]>=10)

{timedata[con]=0;}

dis[con]=timedata[con];dis[6]=0x0a;

}

}

//

if(con!=0)

{

if(key2==0)

{

delay1ms(10);

while(key2==0);

if(timedata[con]==0)

{timedata[con]=0x09;}

else {timedata[con]--;}

dis[con]=timedata[con];dis[6]=0x0a;

}

}

EA=1;

}

//

/***********/

//显示函数//

/**********/

scan()

{

char k;

for(k=0;k<6;k++)

{

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

}

}

/*************/

//初始化函数//

/*************/

clearmen()

{

int i;

for(i=0;i<6;i++)

{

dis[i]=timedata[i];}

TH0=0x3C;TL0=0xB0;// ;50MS定时初值(T0计时用)

TH1=0x3C;TL1=0xB0;// ;50MS定时初值(T1计时用)

TMOD=0X11;ET0=1;ET1=1;TR1=0;TR0=1;EA=1;//

}

/**********/

//主函数//

/*********/

main()

{

clearmen();

while(1)

{

scan();

keyscan();

}

}

/********************/

//1秒中断处理函数 //

/*******************/

void time_intt0(void) interrupt 1

{

ET0=0;TR0=0;TH0=0x3C;TL0=0xB0;TR0=1;

con1s++;

if(con1s==20)

{

con1s=0x00;

timedata[0]++;

if(timedata[0]>=10)

{

timedata[0]=0;timedata[1]++;

if(timedata[1]>=6)

{

timedata[1]=0;timedata[2]++;

if(timedata[2]>=10)

{

timedata[2]=0;timedata[3]++;

if(timedata[3]>=6)

{

timedata[3]=0;timedata[4]++;

if(timedata[4]>=10)

{

timedata[4]=0;timedata[5]++;

}

if(timedata[5]==2 )

{

if(timedata[4]==4)

{

timedata[4]=0;timedata[5]=0;

}

}

}

}

}

}

dis[0]=timedata[0];dis[1]=timedata[1];dis[2]=timedata[2];

dis[3]=timedata[3];dis[4]=timedata[4];dis[5]=timedata[5];

}

ET0=1;

}

/********************/

//0.4秒闪烁中断函数 //

/*******************/

void time_intt1(void) interrupt 3

{

EA=0;TR1=0;TH1=0x3C;TL1=0xB0;TR1=1;

con04s++;

if(con04s==8)

{

con04s=0x00;

dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];

}

EA=1;

}

标 题:
内 容:
用户名:
 游客
 
 
Copyright©2005-2007, 版权所有 WWW.JOBMET.COM
ICP证:京ICP备06019556号