XP系统用批处理实现在指定时间日期运行指定程序

XP系统用批处理实现在指定时间日期运行指定程序,第1张

用批处理吧!将以下代码复制到 记事本 中,然后另存为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单片机简单电子时钟程序,通过按键设置时间,有图,有解析!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9796474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存