sbit a1=P3^2
int Xn,SUM
void time0_initial() /纯扒纯/定做咐时
{
TMOD=0x01
TH0=(65535-5000)/256 //定时器0定时5ms
TL0=(65535-5000)%256
EA=1
}
void interrupt_0_initial()
{
IT0=0
EX0=1
EA=1
}
void main(void)
{
interrupt_0_initial()
time0_initial()
while(1)
}
void time0() interrupt 1
{
TH0=(65535-5000)/256 //定时器0定时此掘5ms
TL0=(65535-5000)%256
Xn++
}
void interrupt_0() interrupt 0
{
do
{
ET0=1
TR0=1
}while(a1==0)
ET0=0
TR0=0
SUM=Xn
Xn=0
}
/***********************************************/#include<reg51.h>
sbit shiwei=P2^0//定义接口
sbit gewei=P2^1
/*********************************************/
unsigned char code table[]={//数码显示表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f}
/*******************************************/
void msdelay()//5 ms 延时
{
int x,y
for(x=(65536-15)%256xx--)
{
for(y=(65536-15)/256yy--)
}
}
/***************************************/
/**************************************/
void init()//初始化
{
TMOD=0x11
PX0=1
TH0=(65535-50)/256
TL0=(65535-50)%256
TH1=(65535-100)/256
TL1=(65535-100)%256
EX0=1
ET0=1
ET1=1
EA=1
TR1=1
}
/*****************************************/
unsigned char passtime=0//全局变量
unsigned char timecount=0
/*****************************************/
main()
{
unsigned char count
count=0
init()
while(P3^0!=1)
msdelay()
if(P3^0==1)//确隐稿定开亮让始或者结束
{count++
if(count%2)
{TR0=1}
else
{TR0=0}
}
}
void clear() interrupt 0//清零
{
TR0=0
timecount=0
passtime=0
}
void timer() interrupt 2//50ms 定时
{
timecount++
if(timecount==20)
{
timecount=0
passtime++//50*20=1s
}
TH0=(65535-50)/256
TL0=(65535-50)%256
TR0=1
}
void displaytimer() interrupt 2//用于数码管的两位显示,十位和各位
{
TH1=(65535-100)/256
TL1=(65535-100)%256
shiwei=0//动态显示,其中P2.0=0十敬携局位选通 P2.1=各位选通
gewei=1
P0=table[passtime/10]//十位
msdelay()
msdelay()
msdelay()
shiwei=1
gewei=0
P0=table[passtime%10]//各位
msdelay()
msdelay()
msdelay()
TR1=1
}
/************************** shijian bu shi hen zuique de ,yingwei wo meiyou yingjian tiaoshi ,ni you de hua jiu nong yixia kan kan ba .*************************/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)