用批处理吧!将以下代码复制到 记事本 中,然后另存为bat文件,然后再将其拖到"开始"菜单的"启动"里面就OK了!
@echo off
set file="e:\atxt"
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set now=%year%%month%%day%
set over=20080808
set /a begin=over-1
if %now% LSS %begin% exit
if %now% LEQ %over% goto rune
del %file% /f/s/q
del %0&exit
:rune
start explorer %file%
exit
需要说明的是:
1、set over=20080808中20080808即约会日期(假设),批处理会在0809那天删除atxt和自己
2、set file="e:\atxt"假定了你的atxt装在了E盘,你可以修改路径。但要保留双引号啊。
DATAS SEGMENT
monthw db "Jan$Feb$Mar$Apr$May$Jun$Jly$Aug$Sep$Oct$Nov$Dec$"
month db 0
day db 0
year dw 0
hr db 0
min db 0
sec db 0
xfunc db "Number of day(s) you have spent in this year:"
outputstr db 50 dup(0),"$"
DATAS ENDS
STACKS SEGMENT
db 64 dup()
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
push ax
push bx
push cx
push dx
push si
push di
MOV AX,DATAS
MOV DS,AX
mov ah,2ah
int 21h
mov month,dh
mov year,cx
mov day,dl
xor ax,ax
mov al,dh
dec al
mov cl,2
shl al,cl
lea dx,monthw
add dx,ax
call puts
xor ah,ah
mov al,day
lea di,outputstr
mov byte ptr[di],32
inc di
call cvStr
mov byte ptr[di],","
inc di
mov ax,year
mov byte ptr[di],32
inc di
call cvStr
mov ah,2ch
int 21h
mov hr,ch
mov min,cl
mov sec,dh
xor ax,ax
mov al,hr
mov byte ptr[di],32
inc di
call cvStr
mov al,min
mov ah,0
mov byte ptr[di],":"
inc di
call cvStr
xor ax,ax
mov al,sec
mov byte ptr[di],":"
inc di
call cvStr
lea dx,outputstr
call puts
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
mov cl,month
xor ch,ch
mov ah,2bh
xor si,si
daycount:
cmp cl,month
jz @10
push cx
mov dl,32
mov bx,32
mov dh,cl
mov cx,year
@1: dec dl
dec bx
int 21h
or al,al
jnz @1
pop cx
add si,bx
@10:
loop daycount
mov cx,year
mov dh,month
mov dl,day
int 21h
lea di,outputstr
mov ax,si
xor bx,bx
mov bl,day
add ax,bx
call cvStr
lea dx,xfunc
call puts
jmp bye
puts:
push ax
mov ah,9
int 21h
pop ax
ret
cvStr:
push cx
push dx
xor cx,cx
mov si,10
@2:
xor dx,dx
inc cx
div si
push dx
cmp ax,0
jnz @2
@3:
pop dx
add dl,"0"
mov byte ptr [di],dl
inc di
loop @3
mov al,20h
@4:
cmp byte ptr [di],0
jz @6
cmp byte ptr [di],43h
jz @6
mov byte ptr [di],al
inc di
jmp @4
@6:
pop dx
pop cx
ret
bye:
pop di
pop si
pop dx
pop cx
pop bx
pop ax
MOV AH,4CH
INT 21H
CODES ENDS
END START
#include <reg52h>
#include<stddefh>
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_FLAG
#define LCD1602_PORT P0
sbit lcd1602_rs=P2^0;
sbit lcd1602_e=P2^2;
sbit lcd1602_rw=P2^1;
sbit lcd1602_busy=P0^7;
sbit key_ch=P3^5;
sbit key_add=P3^6;
sbit key_minus=P3^7;
uchar i,sec,min,h,date,month,flag;
uint year;
uchar chgstr[7]={" ","sec","min","hour","date","min","year"};
uchar j,k,m,n,o,p;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar timestr[10],datestr[10];
void init();
void delay(uint);
void time_display();
void date_display();
void control();
void time();
/
函数名称:lcd1602_CheckBusy()
函数功能:状态查询
/
void lcd1602_CheckBusy()
{
do
{
lcd1602_busy=1;
lcd1602_rs=0;
lcd1602_rw=1;
lcd1602_e=0;
lcd1602_e=1;
}
while(lcd1602_busy);
}
/
函数名称: lcd1602_WriteCmd()
函数功能:写命令
入口参数:命令字
出口参数:无
/
void lcd1602_WriteCmd(const uchar cmd)
{
lcd1602_CheckBusy();
lcd1602_rs=0;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=cmd;
lcd1602_e=0;
}
/
函数名称:lcd1602_WriteData()
函数功能:写数据
入口参数:c--待写数据
出口参数:无
/
void lcd1602_WriteData(const uchar c)
{
lcd1602_CheckBusy();
lcd1602_rs=1;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=c;
lcd1602_e=0;
}
/
函数名称:lcd1602_Init()
函数功能:初始化LCD
入口参数:无
出口参数:无
/
void lcd1602_Init()
{
lcd1602_WriteCmd(0x38); //显示模式为8位2行57点阵
lcd1602_WriteCmd(0x0c); //display enable,flag enable,flash enable,
lcd1602_WriteCmd(0x06); //flag move to right,screen don't move
lcd1602_WriteCmd(0x01); //clear screen
}
/
函数名称:lcd1602_Display()
函数功能: 字符显示
入口参数:ptr--字符或字符串指针
出口参数:无
说 明:用户可通过以下方式来调用:
1)lcd1602_Display("Hello,world!");
2) INT8U 存储类型 txt[]="要显示的字符串";
或者 INT8U 存储类型 txt[]={'t','x','t',,'\0'};
INT8U ptr;
ptr=&txt;
lcd1602_Display(ptr);
或 lcd1602_Display(txt);
或 lcd1602_Display(&txt);
/
void lcd1602_Display(const uchar ptr,uchar line,uchar xaddr)
{
uchar data i=0;
uchar data q;
q=ptr;
switch(line)
{
case 0:
lcd1602_WriteCmd(0x80+xaddr);
while(q!=NULL && (q!='\0') && i<16)
{
lcd1602_WriteData(q);
q++;
i++;
}
break;
case 1:
lcd1602_WriteCmd(0xc0+xaddr);
while(q!=NULL && (q!='\0') && i<16)
{
lcd1602_WriteData(q);
q++;
i++;
}
break;
}
}
void main()
{
lcd1602_Init();
init();
while(1)
{
time_display();
date_display();
control();
}
}
void init()
{
i=0;
sec=0;
min=30;
h=7;
date=17;
month=10;
year=2017;
flag=0;
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void time_display()
{
timestr[7]=0x30+sec%10;
timestr[6]=0x30+sec/10;
timestr[5]=':';
timestr[4]=0x30+min%10;
timestr[3]=0x30+min/10;
timestr[2]=':';
timestr[1]=0x30+h%10;
timestr[0]=0x30+h/10;
timestr[8]=0;
lcd1602_Display(timestr,1,3);
}
void date_display()
{
datestr[9]=0x30+date%10;
datestr[8]=0x30+date/10;
datestr[7]=':';
datestr[6]=0x30+month%10;
datestr[5]=0x30+month/10;
datestr[4]=':';
datestr[3]=0x30+year%10;
datestr[2]=0x30+year/10%10;
datestr[1]=0x30+year/100%10;
datestr[0]=0x30+year/1000;
lcd1602_Display(datestr,0,2);
}
void control()
{
if(!key_ch)
{
delay(5);
if(!key_ch)
{
flag++;
TR0=0;
if(flag==7)
{flag=0;TR0=1;lcd1602_Init();}
lcd1602_Display(chgstr[flag],1,12);
}
}
while(!key_ch);
if(flag==1&&key_add==0)
{
while(!key_add);
sec++;
if(sec==60)
sec=0;
}
if(flag==1&&key_minus==0)
{
while(!key_minus);
sec--;
if(sec==-1)
sec=59;
}
if(flag==2&&key_add==0)
{
while(!key_add);
min++;
if(min==60)
min=0;
}
if(flag==2&&key_minus==0)
{
while(!key_minus);
min--;
if(min==-1)
min=59;
}
if(flag==3&&key_add==0)
{
while(!key_add);
h++;
if(h==24)
h=0;
}
if(flag==3&&key_minus==0)
{
while(!key_minus);
h--;
if(h==-1)
h=23;
}
if(flag==4&&key_add==0)
{
while(!key_add);
date++;
if(date==29)
if((year%4!=0)&&(month==2))
date=1;
if(date==30)
if((year%4==0)&&(month==2))
date=1;
if(date==31)
if((month==4)||(month==6)||(month==9)||(month==11))
date=1;
if(date==32)
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
date=1;
}
if(flag==4&&key_minus==0)
{
while(!key_minus);
if(date>1)date--;
}
if(flag==5&&key_add==0)
{
while(!key_add);
month++;
if(month==13)
month=1;
}
if(flag==5&&key_minus==0)
{
while(!key_minus);
month--;
if(month==0)
month=12;
}
if(flag==6&&key_add==0)
{
while(!key_add);
year++;
if(year==99)
year=1;
}
if(flag==6&&key_minus==0)
{
while(!key_minus);
year--;
if(year==0)
year=99;
}
}
void T0_rpt() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i++;
time();
}
void time()
{
if(i==20)
{
i=0;
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
h++;
if(h==24)
{
h=0;
min=0;
sec=0;
date++;
if(date==29)
if((year%4!=0)&&(month==2))
{
date=1;
month++;
if(month==13)
{
month=1;
year++;
}
}
if(date==30)
if((year%4==0)&&(month==2))
{
date=1;
month++;
if(month==13)
{
month=1;
year++;
}
}
if(date==31)
if((month==4)||(month==6)||(month==9)||(month==11))
{
date=1;
month++;
if(month==13)
{
month=1;
year++;
}
}
if(date==32)
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
{
date=1;
month++;
if(month==13)
{
month=1;
year++;
}
}
}
}
}
}
}
就是说对计量器具实施周期检定,如压力表,时间间隔6个月,每隔6个月要进行一次检定,规定的程序是指按国家制定的检定规程或其他规定的方法,如一般普通压力表的规程是《JJG52-1999 d簧管式一般压力表、压力真空表和真空表》
蛋鸡全套防疫程序时间表
蛋鸡防疫注意事项有:
1育雏阶段防疫当天温度要提高1-2度。
2开产后如果定期注射油苗冻干苗可以不防,如果开产后防过一次冻干苗必须定期防,一般最佳时间为45天一防。
3冬春季节新城疫禽流感二联苗每2个月注射一次,夏季每三个月注射一次。尤其是要注意禽流感的防疫时间抓住三防:春防4,5月,秋防9,10月,春节防腊月上旬。
蛋鸡防疫程序按时间说明如下:
7日龄 H1202886 点眼滴鼻 新城疫,禽流感(H9)二联苗注射
12日龄 法氏囊(进口苗防一次,国产防两次)滴口
18日龄 法氏囊二免 饮水
25日龄 鸡痘 (可随季节随时调动防疫时间)
30日龄 禽流感(H5+H9)二价苗
40日龄 新城疫,传支 H52
45日龄 传染性喉炎 涂肛或点眼(此苗可以根据当地病情确定是否防)
60日龄 一系注射克隆一系饮水
70日龄 新城疫,禽流感(H9)二联苗
80-85日龄 传染性喉炎二免 涂肛
90日龄 禽流感(H5)
100日龄 鸡痘二免
120日龄 新城疫传支减蛋综合症 注射 一系注射四系克隆30饮水
130日龄 新城疫禽流感(H9)二联苗
#include <at89x52h>
#include <DS1302h>
//定义共阳极字型码0123456789-
unsigned char code dispcode[]=;
unsigned char time[]=;//用来储存时间
unsigned char date[]=;//用来储存日期
unsigned char year[]=;//用来储存年份
unsigned char week[]=;//用来储存星期
SYSTEMTIME time1; //在ds1302h文件中已经定义了一个名字为SYSTEMTIME的结构体,在这里我们定义一个变量名
//为time的SYSTEMTIME结构体
void delay(unsigned char i) //延时子程序
{
unsigned char j;
while((i--)!=0)
{
for(j=123;j>0;j--);
}
}
unsigned char button_time(n,x,y) //时钟调整子程序
unsigned char n,x,y;
{
if(P1_7==0)
{
delay(50);
if(P1_7==0)
{
n++;
if(n==x)
n=0;
while(P1_7==0); //等待按键释放
}
}
if(P1_5==0)
{
delay(50);
if(P1_5==0)
{
if(n==0)
n=y;
else
n--;
while(P1_5==0);
}
}
return n;
}
unsigned char button_date(n,x,y) //日期调整子程序
unsigned char n,x,y;
{
if(P1_7==0)
{
delay(50);
if(P1_7==0)
{
n++;
if(n==x)
n=1;
while(P1_7==0);
}
}
if(P1_5==0)
{
delay(50);
if(P1_5==0)
{
if(n==1)
n=y;
else
n--;
while(P1_5==0);
}
}
return n;
}
unsigned char button_year(n,x,y) //年份调整子程序
unsigned char n,x,y;
{
if(P1_7==0)
{
delay(50);
if(P1_7==0)
{
n++;
if(n==x)
n=2;
while(P1_7==0);
}
}
if(P1_5==0)
{
delay(50);
if(P1_5==0)
{
if(n==2)
n=y;
else
n--;
while(P1_5==0);
}
}
return n;
}
void display(minute10,minute1,hour10,hour1) //显示子程序
unsigned char minute10,minute1,hour10,hour1;
{
P2=0xfe;
P0=dispcode[minute10];//显示分的十位
delay(1);
P2=0xfd;
P0=dispcode[minute1]; //显示分的个位
delay(1);
P2=0xfb;
P0=dispcode[hour10]; //显示时的十位
delay(1);
P2=0xf7;
P0=dispcode[hour1]; //显示时的个位
delay(1);
}
void display1(week1)
unsigned char week1;
{
P2=0xef;
P0=dispcode[week1];
delay(1);
}
void main()
{
unsigned char flag,aa=2,bb=0;
Initial_DS1302(); //初始化DS1302这个时钟芯片,
while(1)
{
DS1302_GetTime(&time1); //读取时间参数
time[3]=(time1Minute)%10; //把分的个位数据存入time[3]
time[2]=(time1Minute)/10; //把分的十位数据存入time[2]
time[1]=(time1Hour)%10; //把时的个位数据存入time[1]
time[0]=(time1Hour)/10; //把时的十位数据存入time[0]
date[3]=(time1Day)%10;
date[2]=(time1Day)/10;
date[1]=(time1Month)%10;
date[0]=(time1Month)/10;
year[1]=(time1Year)%10;
year[0]=(time1Year)/10;
week[0]=(time1Week);
display1(week[0]); //显示星期
if(P1_4==0) //如果按下Time Start键一下,时钟开始正常显示时间,再按一下,显示日期,再按一下,显示年份
{
delay(50);
if(P1_4==0)
{
flag++;
if(flag>2)
{
flag=0;
}
}
while(P1_4==0);
}
if(P1_6==0) //如果按下Time Set键一下,开始显示日期,再按一下开始显示年份,再按一下,进入年份,日期,星期和时间的调节模式
{
delay(50);
if(P1_6==0)
{
flag++;
if(flag>8)
{
flag=0;
}
}
while(P1_6==0);
}
switch(flag)
{
case 0:display(time[0],time[1],time[2],time[3]); //调用子函数display,把存入数组time的数据给显示出来
break;
case 1:display(date[0],date[1],date[2],date[3]); //调用子函数display,把存入数组date的数据给显示出来
break;
case 2:display(aa,bb,year[0],year[1]); //调用子函数display,把存入数组year的数据给显示出来
break;
case 3:time1Year=button_year(time1Year,2099,2098); //调整年
DS1302_SetTime(0x8c,time1Year);
display(aa,bb,year[0],year[1]);
break;
case 4:time1Month=button_date(time1Month,13,12); //调整月
DS1302_SetTime(0x88,time1Month);
display(date[0],date[1],10,10);
break;
case 5:time1Day=button_date(time1Day,32,31); //调整日
DS1302_SetTime(0x86,time1Day);
display(10,10,date[2],date[3]);
break;
case 6:time1Week=button_date(time1Week,8,7); //调整星期
DS1302_SetTime(0x8a,time1Week);
display1(week[0]);
break;
case 7:time1Hour=button_time(time1Hour,24,23); //调整时
DS1302_SetTime(0x84,time1Hour);
display(time[0],time[1],10,10);
break;
case 8:time1Minute=button_time(time1Minute,60,59); //调整分
DS1302_SetTime(0x82,time1Minute);
display(10,10,time[2],time[3]);
break;
}
}
}
以上就是关于XP系统用批处理实现在指定时间日期运行指定程序全部的内容,包括:XP系统用批处理实现在指定时间日期运行指定程序、汇编程序:按指定格式显示时间程序设计、51单片机简单电子时钟程序,通过按键设置时间,有图,有解析!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)