采用AT89C2051制作的智能时钟31_第1页
采用AT89C2051制作的智能时钟31_第2页
采用AT89C2051制作的智能时钟31_第3页
采用AT89C2051制作的智能时钟31_第4页
采用AT89C2051制作的智能时钟31_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

采用AT89C2051制作的智能时钟一、智能电子钟的功能

1、全日历计时。

2、12/24小时转换。

3、8路定时输出(可关/开控制)

4、误差:15S+1uS

5、大、小月,润年,周,自动追踪

二、调校

上电后,电子钟显示“1:00”。

1、8路定时时间查询

按下K1键依此显示8路定时时间。星期位显示:“H”表示:打开当前定时输出;“L”表示:关闭当前定时输出。此时按K2键可进行“H”、“L”的切换。所有输出,均由蜂鸣器输出!

2、显示状态的控制

按下K2键可进入以下工作状态:

1)12小时/日月交替显示。

2)12小时固定显示。

3)24小时/日月交替显示。

4)24小时固定显示。

3、校时

按下K2键3S后,进入校时菜单。按下K1键依次进入校时状态:分、时、天、月、年、微调系数。此时按K2键,完成+1。当显示“d”时,表示要调整微调系数(0-99),其值越小,时钟走时越慢。当使用的6MHz的晶振偏差大时,应仔细调整微调系数!当显示“out”时,按K2键,即可退出!退出后,按任意键即可启动时钟。

4、设置定时时间

按下K1键3S后,进入设置菜单。按下K1键依次进入8路定时调整状态:时、分。此时按K2键,完成+1。当显示“out”时,按K2键,即可退出!

三、原理图和PCB图

下一页AT89C2051的智能时钟单片机源程序以下为AT89C2051的智能时钟的内部程序;2001.5.24

;***************

;all_clk1_program2000-10-12

;***************

fl_250msbit00h

fl_500msbitfl_250ms+1

set_clk_fbitfl_500ms+1

set_al4_fbitset_clk_f+1

am_fbitset_al4_f+1

fl_3sbitam_f+1

al1_fbitfl_3s+1

al2_fbitfl_3s+2

al3_fbitfl_3s+3

al4_fbitfl_3s+4

set_overbital4_f+1

ha_fbitset_over+1

ha_overbitha_f+1

fl_ms_fbitha_over+1

fl_s_fbitfl_ms_f+1

key_overbitfl_s_f+1

;**************************************************

key_dataequ08h

timersequkey_data+1

t_30msequtimers+1

t_20msequt_30ms+1

t_1sequt_20ms+1

k1_dataequt_1s+1

k2_dataequk1_data+1

stat_workequk2_data+1

stat_ledequstat_work+1

t_1msequstat_led+1

t_20mequt_1ms+1

beepequt_20m

al1equbeep+1

al2equbeep+2

al3equbeep+3

al4equbeep+4

al5equbeep+5

al6equbeep+6

al7equbeep+7

al8equbeep+8

ret_timerequal8+1

;**************************************************

secequ23h

minequsec+1h

hourequmin+1h

dayequhour+1h

monequday+1h

yearequmon+1h

w_adjequyear+1h

weekequw_adj+1h

;***************************************

al1_hequweek+1h

al1_mequal1_h+1h

al2_hequal1_m+1h

al2_mequal2_h+1h

al3_hequal2_m+1h

al3_mequal3_h+1h

al4_hequal3_m+1h

al4_mequal4_h+1h

al5_hequal4_m+1h

al5_mequal5_h+1h

al6_hequal5_m+1h

al6_mequal6_h+1h

al7_hequal6_m+1h

al7_mequal7_h+1h

al8_hequal7_m+1h

al8_mequal8_h+1h

beep_tequal8_m+1

fristequbeep_t+1

;**************************************

led1equfrist+1

led2equled1+1

led3equled2+1

led4equled3+1

led5equled4+1

sp_dataequled5+1

;**************************************

led_1bitp3.5

led_2bitp3.4

led_3bitp3.3

led_4bitp3.2

led_5bitp3.1beep_fBITP3.7

key_fbitp3.0;********************************************************

t_h_100msequ05dh;100msfor6MHz

t_l_100msequ07fh;c6for100ms

timer_noequ8d;3c90+30d=3cb0h

w_adj_datequ50d

key_daequ00000110b;*********************************************************

blk_ledequ20d

dot_ledequ21d

f_ledequ22d

n_ledequ23d

u_ledequ24d

t_ledequ25d

b_ledequ26d

d_ledequ27d

oRG0000H;;

sJMPstart

ORG0003H;;

reti;

ORG000BH;

;ajmpt0

reti;

ORG0013H

reti;

ORG001BH;

aJMPT1;

ORG0023H;

RETI;AJMPRS_485;;**************************************

start:

callclr_ram

MOVSP,#sp_data;

callint_t0

calltimer_int

calltimer_20ms

STAR_BI:

callclock

callweek_auto

callal_out

CALLKEY_bord

callkey_del

callset_clk_al

callkey_jmp

callreback

callled_jmp

sjmpstar_bi

;*******************************************

reback:

mova,stat_work

jzreback_end

jbal1_f,ka1

movret_timer,sec

setbal1_f

sjmpreback_end

ka1:

mova,ret_timer

adda,#05d

movb,#60d

divab

mova,sec

cjnea,b,reback_end

clral1_f

movstat_work,#00d

reback_end:

ret

key_jmp:

mova,key_data

jzkey_jmp_end

movret_timer,sec

cjnea,#01d,kk1

mova,stat_work

inca;k1_key

cjnea,#9d,kka1

mova,#00d

kka1:

movstat_work,a

sjmpkey_jmp_end

kk1:

mova,stat_work;k2_key

jnzkk2

mova,stat_led

inca

cjnea,#05d,kka2

mova,#00d

kka2:

movstat_led,a

sjmpkey_jmp_end

kk2:

acallall1

cpla

mov@r0,a

key_jmp_end:

retall1:

movr0,#al1

mova,stat_work

deca

adda,r0

movr0,a

mova,@r0

retled_jmp:

;**********************************

;movstat_work,#01d

;movstat_tw,#01dmova,stat_work

jnzled_al1

mova,stat_led

acallled_t_d

movled1,week

sjmpled_jmp_end

led_al1:

acallall1

movled1,#f_led

jnzle_t2

movled1,#n_led

le_t2:

jbfl_250ms,le_t4

movled1,#blk_led

le_t4:

acallal_led

led_jmp_end:

acallled

ret

;*************************************time_24:

mova,hour

acallbcd_8

movled2,a

jnztim4

movled2,#blk_led

tim4:

movled3,b

jbfl_500ms,tim1

mova,b

adda,#10d

movled3,a

tim1:

acallled_min

time_12_end:

ret

;***********************************

led_min:

mova,min

acallbcd_8

jbfl_500ms,tim2

adda,#10d

tim2:

movled4,a

movled5,b

ret

;*************************************

date_led:

mova,mon

acallbcd_8

movled2,a

jnzda1

movled2,#blk_led

da1:

mova,b

adda,#10d

movled3,a

mova,day

acallbcd_8

movled4,a

jnzda2

movled4,#blk_led

da2:

movled5,b

date_led_end:

ret;*************

;D_8=>BCD

;*************

BCD_8:

MOVB,#10D

DIVAB

RET

;****************************************

LED:

movp1,#0

movdptr,#led_asc

;***************************led1

mova,led1

movca,@a+dptr

movp1,a

clrled_1

acalltimer_1ms

acalltimer_1ms

;acalltimer_1ms

;acalltimer_1ms

;acalltimer_1mssetbled_1

;*************************led2

led_led2:

mova,led2

movca,@a+dptr

movp1,a

clrled_2

acalltimer_1ms

setbled_2

;*************************led3

led_led3:

mova,led3

movca,@a+dptr

movp1,a

clrled_3

acalltimer_1ms

setbled_3

;*************************led4

led_led4:

mova,led4

movca,@a+dptr

movp1,a

clrled_4

acalltimer_1ms

setbled_4

;*************************led5

led_led5:

mova,led5

movca,@a+dptr

movp1,a

clrled_5

acalltimer_1ms

setbled_5

;*************************

led_end:

movp1,#0

ret

;************************************

;bafhcdeg

led_asc:

db11101110B;0

db10001000B;1

db11000111B;2

db11001101B;3

db10101001B;4

db01101101B;5

db01101111B;6

db11001000B;7

db11101111B;8

db11101101B;9

db11111110B;0.=>10d

db10011000B;1.

db11010111B;2.

db11011101B;3.

db10111001B;4.

db01111101B;5.

db01111111B;6.

db11011000B;7.

db11111111B;8.

db11111101B;9.

DB00000000B;BLACK=>20d

DB00010000B;dot=>21d

DB00100110b;l=>22d

dB10101011B;h=>23d

DB10101110B;u=>24d

DB00100111B;t=>25d

dB00101111B;b=>26d

dB10001111B;d=>27d;bafhcdeg;**********************************

;delay

;********************************

timer_1ms:

movt_1ms,#030h

r2_1:

djnzt_1ms,r2_1

ret

timer_20ms:

movt_20m,#050d

r2_2:

callclock

callled

djnzt_20m,r2_2

callweek_auto

callal_out

ret

;#############################################

;ifmon<=2andyear=4Z(0,1,2,3...)

;gs1=>week=mod([5/4]*year+mon_asc(mon)+day-1)/7

;else

;gs2=>week=mod([5/4]*year+mon_asc(mon)+day)/7

week_auto:mova,YEAR

movb,#05

mulab

movr4,b

movr5,a

movr7,#04

callmul_2MOVDPTR,#MON_ASC

MOVA,MON

deca

MOVCA,@A+DPTR

ADDA,r3

;*********************

MOVB,DAY

ADDA,B

movr3,a;r3=gs2

;*******jbmon<=2******

MOVA,MON

CJNEA,#02D,WEEK_1

SJMPWEEK_2

WEEK_1:

JCWEEK_2

week_3:

mova,r3

movb,#07

divab

mova,b

sjmpweek_4

WEEK_2:

;*****jbyear=4N******

mova,year

movb,#04

divab

mova,b

jnzweek_3

mova,r3

deca

movb,#07

divab

mova,b

week_4:

MOVWEEK,a

jnzweek_end

movweek,#07h

week_end:

RET

MON_ASC:

DB6d,2d,2d,5d,0d,3d,5d,1d,4d,6d,2d,4d;2002.5.5

;r4r5/r7=r3

mul_2:

D457:CLRC

MOVA,R4

SUBBA,R7

JCDV50

SETBOV

RET

DV50:MOVR6,#8;;求平均值(R4R5/R7-→R3)

DV51:MOVA,R5

RLCA

MOVR5,A

MOVA,R4

RLCA

MOVR4,A

MOVF0,C

CLRC

SUBBA,R7

ANLC,/F0

JCDV52

MOVR4,A

DV52:CPLC

MOVA,R3

RLCA

MOVR3,A

DJNZR6,DV51

MOVA,R4;;四舍五入

ADDA,#0;R4

JCDV53

SUBBA,R7

JCDV54

DV53:INCR3

DV54:CLROV

RET

;*************************************************************

clr_ram:

MOVR7,#78h;

MOVR0,#0bH;

CLRA;

CR:INCR0;

MOV@R0,A;

djnzr7,cr;CLRRAM

ret

;**************INT_CTRL

int_t0:

setbet1

MOVTMOD,#00010001b;

movw_adj,#w_adj_dat

setbea

jmpadj_w

;**********************************************

al_led:

movr0,#al1_h

mova,stat_work

deca

rla

adda,r0

movr0,a

mova,@r0

acallbcd_8

movled2,a

jnzal_1

movled2,#blk_led

al_1:

mova,b

adda,#10d

movled3,a

incr0

mova,@r0

acallbcd_8

adda,#10d

movled4,a

movled5,b

al_led_end:

ret;********************************

set_clk_al:

jnbset_clk_f,see1

callset_clock

clrset_clk_f

sjmpsee2

see1:

jnbset_al4_f,see2

callset_al4

clrset_al4_f

see2:

ret

;*********************************

procled_t_d

led_t_d:

movdptr,#led_ord_3

movb,#02h

mulab

jmp@a+dptrled_ord_3:ajmpled_k0_2

ajmpled_k1_2

ajmpled_k2_2

ajmpled_k3_2

ajmpled_k4_2led_k0_2:;timer_12anddatetoled

acalltime_12

jnbfl_3s,lk1

acalldate_led

lk1:

ajmpled_jmp_5_end

led_k1_2:;timer_12toled

acalltime_12

ajmpled_jmp_5_end

led_k2_2:;timer_24anddatetoled

acalltime_24

jnbfl_3s,lk2

acalldate_led

lk2:

ajmpled_jmp_5_end

led_k3_2:;timer_24toled

acalltime_24

ajmpled_jmp_5_endled_k4_2:;sectoled

movled1,#blk_led

movled2,#blk_led

movled3,#dot_led

mova,sec

acallbcd_8

adda,#10d

movled4,a

movled5,b

led_jmp_5_end:

ret

end;****************************************

procset_al4

set_al4:

movk1_data,#01d

movk2_data,#01d

clrset_over

acallled_al

acallkey_bord

callsf_key

movkey_data,#0

movfrist,#0

set_al41:callclock

callweek_auto

acallled_al

acallkey_bord

callkey_del

acallkey_al

jnbset_over,set_al41

clra

movk1_data,a

movk2_data,a

movkey_data,a

movfrist,a

ret

end

;**************************************

prockey_al

key_al:

mova,key_data

jzkey_al_end

cjnea,#01d,k2_alinck1_data;(1-9)

mova,k1_data

cjnea,#19d,key_al_end

movk1_data,#01d

sjmpkey_al_end

k2_al:

mova,k1_data

cjnea,#018d,ke2

setbset_over

sjmpkey_al_end

ke2:

movr0,#al1_h

deca

adda,r0

movr0,a

inc@r0

acalljj_bit

movb,#24d

jnzke3

movb,#60d

ke3:

mova,@r0

divab

mova,b

mov@r0,a

key_al_end:

ret

end

jj_bit:

mova,k1_data

movb,#02d

divab

mova,b;(a=1,0)

ret

;*********************************

led_out1:

movled2,#00h

movled3,#u_led

movled4,#t_led

movled5,#blk_led

movled1,#blk_led

ret

;********************************

led_al:

mova,k1_data

cjnea,#017d,lo1

acallbeep_timer

sjmpled_al_end

lo1:

cjnea,#18d,ld1

acallled_out1

sjmpled_al_end

ld1:

inca

movb,#02d

divab

;**********

movled1,a

;**********

deca

rla

movr0,#al1_h

adda,r0

movr0,a

mova,@r0

acallbcd_8

movled2,a

jnzld2

movled2,#blk_led

ld2:

mova,b

adda,#10d

movled3,a

;************************************

incr0

mova,@r0

acallbcd_8

adda,#10d

movled4,a

movled5,b;***************************flashbit

jbfl_250ms,led_al_end

acalljj_bit

jnzled_al_e

movled4,#blk_led

movled5,#blk_led

sjmpled_al_end

led_al_e:

movled2,#blk_led

movled3,#blk_led

led_al_end:

acallled

ret

;***************************************

procset_clock

set_clock:

movk1_data,#01d

movk2_data,#01d

clrset_over

callled_cl

callkey_bord

callsf_key

movkey_data,#0

movfrist,#0

set_al41:

callclock

acallweek_auto

callal_out

acallled_cl

acallkey_bord

callkey_del

acallkey_cl

jnbset_over,set_al41

;acallkey_bord

clra

movk1_data,a

movk2_data,a

movkey_data,a

movfrist,a

ret

end

;**************************************

prockey_cl

key_cl:

mova,key_data

jzkey_al_end

cjnea,#01d,k2_alinck1_data;(1-8)

mova,k1_data

cjnea,#9d,key_al_end

movk1_data,#01d

sjmpkey_al_end

k2_al:

mova,k1_data

cjnea,#08d,ke2

setbset_over

sjmpkey_al_end

ke2:

deca

movdptr,#asc_h

movca,@a+dptr

movb,a

;********************************

movr0,#sec

mova,k1_data

deca

adda,r0

movr0,a

inc@r0

mova,@r0

divab

mova,b

mov@r0,a

key_al_end:

ret

end

asc_h:

db60d,60d,24d,32d,13d,100d,100dprocled_cl

led_cl:

movdptr,#led_ord_3

mova,k1_data

deca

movb,#02h

mulab

jmp@a+dptr

led_ord_3:ajmpled_k0_2

ajmpled_k1_2

ajmpled_k2_2

ajmpled_k3_2

ajmpled_k4_2

ajmpled_k5_2

ajmpled_k6_2

ajmpled_k7_2led_k0_2:;ledsec

movled2,#blk_led

movled3,#dot_led

mova,sec

acallbcd_8

adda,#10d

movled4,a

movled5,b

jbfl_250ms,lk1

movled4,#blk_led

movled5,#blk_led

lk1:

ajmpled_jmp_5_end

led_k1_2:;ledmin,hour

acallled_hour

jbfl_250ms,lk2

movled4,#blk_led

movled5,#blk_led

lk2:

ajmpled_jmp_5_end

led_k2_2:;ledmin,hour

acallled_hour

jbfl_250ms,lk3

movled2,#blk_led

movled3,#blk_led

lk3:

ajmpled_jmp_5_end

led_k3_2:;ledday,mon

acallled_mon

jbfl_250ms,lk4

movled4,#blk_led

movled5,#blk_led

lk4:

ajmpled_jmp_5_end

led_k4_2:;ledday,mon

acallled_mon

jbfl_250ms,lk5

movled2,#blk_led

movled3,#blk_led

lk5:

ajmpled_jmp_5_end

led_k5_2:;ledyear

movled2,#2d

movled3,#0d

mova,year

acallbcd_8

movled4,a

movled5,b

jbfl_250ms,lk6

movled4,#blk_led

movled5,#blk_led

lk6:

ajmpled_jmp_5_end

led_k6_2:;ledw_adj

movled2,#d_led

movled3,#blk_led

mova,w_adj

acallbcd_8

movled4,a

movled5,b

jbfl_250ms,lk7

movled4,#blk_led

movled5,#blk_led

lk7:

ajmpled_jmp_5_end

led_k7_2:;ledout

acallled_out1

led_jmp_5_end:

movled1,week

acallled

ret

endled_hour:

mova,hour

acallbcd_8

movled2,a

jnzlj1

movled2,#blk_led

lj1:

mova,b

adda,#10d

movled3,a

;*********************

mova,min

acallbcd_8

adda,#10d

movled4,a

movled5,b

ret

led_mon:

mova,mon

jnzlj5

incmon

mova,mon

lj5:

acallbcd_8

movled2,a

jnzlj2

movled2,#blk_led

lj2:

movled3,b

;*********************

mova,day

jnzlj4

incday

mova,day

lj4:

acallbcd_8

movled4,a

jnzlj3

movled4,#blk_led

lj3:

movled5,b

ret

;********************************************

al_out:

jbha_over,al_out_end

movr7,#8d

movr1,#al8_m

al_ch_1:

movr0,#min

movr6,#02d;minhour

al_l:

mova,@r0

movb,@r1

cjnea,b,al_ch

incr0

decr1

djnzr6,al_l

;**************************************************

mova,r7

deca

movr0,#al1

adda,r0

movr0,a

mova,@r0

movc,acc.0

cplc

anlc,fl_250ms

cplc

movbeep_f,c

acallbeep_out

al_ch:

clrc

mova,r1

subba,r6

movr1,a

djnzr7,al_ch_1

al_out_end:

retbeep_out:

jbha_f,ba1

movbeep,sec

setbha_f

ba1:

mova,beep

adda,beep_t

movb,#60d

divab

mova,sec

cjnea,b,beep_out_end

setbbeep_f

setbha_over

clrha_f

beep_out_end:

ret

timer_int:

MOVT_1S,#TIMER_no

movbeep_t,#15d

movyear,#01d

movmon,#011d

movday,#06d

movhour,#13d

movmin,#00d

movsec,#00d

movr7,#16

movdptr,#al_asc

movr0,#al1_h

al_read:

clra

movca,@a+dptr

mov@r0,a

incr0

incdptr

djnzr7,al_read

ret;************************************

beep_timer:

movled1,#blk_led

movled2,#b_led

movled3,#blk_led

mova,beep_t

acallbcd_8

movled4,a

movled5,b

jbfl_250ms,ft1

movled4,#blk_led

movled5,#blk_led

ft1:

rettime_12:

movdptr,#asc_12

mova,hour

rla

movca,@a+dptr

movled2,a

jnziu2

movled2,#blk_led

iu2:

incdptr

mova,hour

rla

movca,@a+dptr

jbfl_500ms,iu1

adda,#10d

iu1:

movled3,a;***************************************mintoled

acallled_min

time_24_end:

ret

asc_12:

db11d,2d,21d,1d,21d,2d,21d,3d,21d,4d,21d,5d,21d,6d,21d,7d

db21d,8d,21d,9d,11d,0d,11d,1d

db1d,2d,0d,1d,0d,2d,0d,3d,0d,4d,0d,5d,0d,6d,0d,7d,0d,8d,0d,9d

db1d,0,1d,1dclock:

;********************************

mova,sec

cjnea,#60d,clock_end;!!!!!!!!!!!!!!!!!!!!!!

movsec,#00hincmin

;**********

clrha_over;2001.5.6mova,min

cjnea,#60d,clock_end

movmin,#00hinchour

mova,hour

cjnea,#24d,clock_end

movhour,#00hmova,mon

xrla,#02d

jnzmm_1

movdptr,#year_d

mova,year

movca,@a+dptr

sjmpmm_2

mm_1:

mova,mon

deca

movdptr,#mou_12

movca,@a+dptr

mm_2:

movb,a

incb

incday;***************day+1

mova,day

cjnea,b,clck_end

sjmpclck1

clck_end:

jcclock_end

clck1:

movday,#01hincmon

mova,mon

cjnea,#13d,clock_end

movmon,#01dincyear

mova,year

cjnea,#100d,clock_end

movyear,#00d

clock_end:

callfl_out

ret

mou_12:

db31d,28d,31d,30d,31d,30d

db31d,31d,30d,31d,30d,31dyear_d:

db29d,28d,28d,28d,29d,28d,28d,28d,29d,28d

db28d,28d,29d,28d,28d,28d,29d,28d,28d,28d

db29d,28d,28d,28d,29d,28d,28d,28d,29d,28d

db28d,28d,29d,28d,28d,28d,29d,28d,28d,28d

db'lijie2000.5.15'

;***************************************

t1:

pusha

pushpsw

pushb

clrfl_ms_f

djnzt_1s,t1_end

clrfl_s_f

incsec

calladj_w

;********************************

t1_end:

popb

poppsw

popa

retiadj_w:

clrtr1

mova,#T_L_100ms

adda,w_adj;*******have5order

movtl1,a

mova,#T_H_100ms

addca,#00h

movth1,a

movt_1s,#timer_no

setbtr1

retfl_out:

jbfl_ms_f,fl_out_end

setbfl_ms_f

mova,t_1s

movb,#02d

divab

mova,b

jnzto_d1

cplfl_250ms

to_d1:

mova,t_1s

movb,#04d

divab

mova,b

jnzto_d2

cplfl_500ms

to_d2:

fl_out_end:

callsec_out

retsec_out:

jbfl_s_f,sec_out_end

setbfl_s_f

mova,sec

movb,#07d

jnbfl_3s,za1

movb,#02d

za1:

divab

mova,b

jnzsec_out_end

cplfl_3s

sec_out_end:

ret

;**********************************

key_del:

mova,key_data

jnzkl_12

mova,frist

jnzkl_13

ret

kl_13:

movkey_data,frist

movfrist,#0

clrkey_over

jmpsf_beep

kl_12:

jnbkey_over,kl11

mova,t_30ms

adda,#03

movb,#60d

divab

mova,sec

cjnea,b,key_del_end

clrkey_over

jmpset_key

kl11:

movt_30ms,sec

setbkey_over

key_del_end:

callsf_a

cjnea,#key_da,sfg_12

clrkey_over

jmpsf_beep

sfg_12:

movfrist,key_data

movkey_data,#0

ret

;****************************************

key_bord:

acallre_k

mova,key_data

jzkey_bord1_end

;acallpsf_key0

key_bord1_end:

setbkey_f

ret

set_key:

mova,key_data

cjnea,#01h,set_cc1

setbset_al4_f

sjmpsf23

set_cc1:

cjnea,#02h,sf23

setbset_clk_f

sf23:

ret

;************************************

sf_key:

callclock

callweek_auto

callal_out

setbkey_f

callled

callsf_a

cjnea,#key_da,sf_key

callsf_beep

retsf_beep:clrbeep_f

calltimer_20ms

setbbeep_f

ret

;********************************

re_k:

movkey_data,#00h

movp1,#00h

mova,p3

orla,#01111111b

movp3,a

clrkey_f

mova,p3

setbkey_f

movp1,#0ffh

anla,#00000110b

cjnea,#00000110b,you_key

re_k_end:

ret

you_key:

calltimer_20ms

;callled

movp1,#00h

mova,p3

orla,#01111111b

movp3,a

clrkey_f

mova,p3

setbkey_f

movp1,#0ffh

anla,#key_da

cjnea,#key_da,you_key1

ret;sjmpre_k_end

you_key1:

jbacc.1,key_kb

movkey_data,#02h

key_kb:

jbacc.2,sf_key0

movkey_data,#01h

sf_key0:

retsf_a:

movp1,#00h

mova,p3

orla,#01111111b

movp3,a

clrkey_f

mova,p3

setbkey_f

anla,#key_da

ret

al_asc:

db06d,40d,06d,50d,07d,00d,07d,10d;am4_al

db07d,15d,013d,40d,13d,45d,14d,15d;pm4_al附录资料:不需要的可以自行删除教你如何保护笔记本HYPERLINK""一、每天关机前要做的清洗:双击“我的电脑”——右键点C盘——点“属性”——点“磁盘清理”——点“确定”——再点“是”——再点“确定”。清理过程中,您可看得到未经您许可(您可点“查看文件”看,就知道了)进来的“临时文件”被清除了,盘的空间多了。对D,E,F盘也要用这法进行。二、随时要进行的清理:打开网页——点最上面一排里的“工具”——点“Internet选项”——再点中间的“Internet临时文件”中的“删除文件”——再在“删除所有脱机内容”前的方框里打上勾——再点“确定”——清完后又点“确定”。这样,可为打开网和空间提高速度。三、一星期进行的盘的垃圾清理:点“开始”——用鼠标指着“所有程序”,再指着“附件”,再指着“系统工具”,再点“磁盘粹片整理程序”——点C盘,再点“碎片整理”(这需要很长时间,最好在您去吃饭和没用电脑时进行。清理中您可看到您的盘里的状况,可将清理前后对比一下)——在跳出“清理完成”后点“关闭”。按上述,对D,E,F盘分别进行清理。电脑系统越来越慢,怎么删除临时文件啊1.关闭"休眠"方法:打开[控制面板]→[电源选项]→[休眠],把"启用休眠"前面的勾去掉说明:休眠是系统长时间一种待机状态,使您在长时间离开电脑时保存操作状态,如果您不是经常开着电脑到别处去的话,那就把它关了吧!☆立即节省:256M2.关闭"系统还原"方法:打开[控制面板]→[系统]→[系统还原],把"在所有驱动器上关闭系统还原'勾上说明:系统还原是便于用户误操作或产生软件问题时的一种挽救手段,可以回复到误操作以前的状态.不建议初级用户使用.当然,它采用的是跟踪手段,需要记录大量信息,所消耗的资源也要很大的.☆立即节省:数百M(根据还原点的多少而不同)您也可以在不关闭系统还原的前提下,相应的减少系统还原所占的磁盘空间,这只会减少可用还原点的数目,一般还原点有一两个就够了吧.方法:...[系统还原]-选择一个"可用驱动器"-[设置]-调整"要使用的磁盘空间"3.关闭"远程管理"方法:打开[控制面板]→[系统]→[远程],把"允许从这台计算机发送远程协助邀请"前面的勾去掉.说明:谁会经常用到这种功能呢?它占用的不是磁盘空间,但是会影响系统运行速度.☆提高系统性能4.关闭"自动更新"方法:打开[控制面板]→[自动更新]→选"关闭自动更新"说明:系统更新占用的也不是磁盘空间,您可以在有可用更新时到微软的更新页面上更新,而不是总需要一个进程监视那是不是有可用更新.☆提高系统性能5.关闭"索引服务"方法:[开始]→[运行]→输入"msconfig"→[服务]去掉indexingservise前面的勾说明:索引服务是提高系统搜索速的的,谁没事总在系统里搜来搜去啊☆提高系统性能6.减少开机加载的启动项方法:[开始]→[运行]→输入"msconfig"→[启动]去掉不必要的启动项说明:必要的启动项一般"系统盘\windows\system32下的最好不要去掉;而肯定能去掉的有TINTSETPIMJPMIGIMSCMIGQQ等☆加快开机速度7.合理设置虚拟内存方法:打开[控制面板]→[系统]→[高级]-[性能]设置-[高级]-[虚拟内存]更改-在"自定义大小"中填入数值说明:一般的最小值是物理内存的1.5倍,最大值是物理内存的3倍;如果您经常运行大型软件的话最小值应该设为(物理内存*1.5*0.2+物理内存*1.5),最大值应为(物理内存*3*0.2+物理内存*3)☆提高系统性能8.取消系统失败时的日志文件和询问打开[控制面板]→[系统]→[高级]→[启动和故障恢复]→[系统失败]去掉"将事件写入系统日志""发送错误警报"☆提高系统性能9.删除无用的文件方法:打开[控制面板]→[文件夹选项]→[查看]→[显示所有文件和文件夹]C:\DocumentsandSettings\用户名\Cookies\除index文件外的所有文件(浏览网页产生的记录文件)C:\DocumentsandSettings\用户名\LocalSettings\Temp\下的所有文件(用户临时文件)C:\DocumentsandSettings\用户名\LocalSettings\TemporaryInternetFiles\下的所有文件(浏览网页记录的多媒体信息,加速以后浏览)C:\DocumentsandSettings\用户名\LocalSettings\History\下的所有文件(访问历史纪录)C:\DocumentsandSettings\用户名\Recent\下的所有文件(最近浏览文件的快捷方式)C:\WINDOWS\Temp\下的所有文件(临时文件)C:\WINDOWS\ServicePackFiles下的所有文件(升级sp1或sp2后的备份文件)C:\WINDOWS\DriverCache\i386下的压缩文件(驱动程序的备份文件)C:\WINDOWS\SoftwareDistribution\download下的所有文件(未完成的软件下载)C:\Windows\下以$u...开头的隐藏文件(微软更新安装文件备份)☆立即节省:数百M10.磁盘碎片整理下面该做的就是磁盘碎片整理了,只有整理之后才能获得更多的空间哦^_^方法:[开始]→[程序]→[附件]→[系统工具]→[磁盘碎片整理]...(记得先"分析"后"整理")二。发信人:liushafeng(终结者),信区:Hardware标题:减少WinXP资源占用的八大技巧发信站:紫金飞鸿(SunJun416:25:482006)WindowsXP被微软称为其历史上最优秀的操作系统,有让你眼花缭乱的各种功能、更快的速度,当然这一切都对计算机的硬件提出了更高的要求,如果你希望WindowsXP能够尽可能少地占用你有限的虽然WindowsXP被微软自称为有史以来最稳定、功能最强大的Windows操作系统,并且运行速度飞快——启动速度甚至比同样配置的Win2000还要快许多,你可能依然不满足于此,希望一、使用朴素界面XP安装后默认的界面包括任务栏、开始选单、桌面背景、窗口、按钮等都采用的是XP的豪华、炫目的风格,但缺点显而易见,它们将消耗掉不少系统资源,但实用意义不大。[方法]鼠标右键单击桌面空白处,在弹出选单点击“属性”进入显示属性设置窗口,将“主题、外观”都设置为“Windows经典”,将桌面背景设置为“无”,按确定保存退出。二、减少启动时加载项目许多应用程序在安装时都会自作主张添加至系统启动组,每次启动系统都会自动运行,这不仅延长了启动时间,而且启动完成后系统资源已经被吃掉不少![方法]选择“开始”选单的“运行”,键入“msconfig”启动“系统配置实用程序”,进入“启动”标,在此窗口列出了系统启动时加载的项目及来源,仔细查看你是否需要它自动加载,否则清除项目前的复选框,加载的项目愈少,启动的速度自然愈快。此项需要重新启动方能生效。三、优化视觉效果[方法]选择“系统属性”中的“高级”标签进入“性能选项”界面,其中“视觉效果”中可供选择的包括:自动设置为最佳、最佳外观、最佳性能、自定义。选中的效果越多则占用的系统资源越多,选定“最佳性能”项将关闭列表中列出诸如淡入淡出、平滑滚动、滑动打开等所有视觉效果。四、关闭系统还原默认情况下系统还原功能处于启用状态,每个驱动器约被占用高达4%~12%的硬盘空间,并且系统还原的监视系统会自动创建还原点,这样在后台运行就会占用较多的系统资源。[方法]鼠标右键点击桌面“我的电脑”中的“属性”进入“系统属性”设置窗口,选择“系统还原”标签,将“在所有驱动器上关闭系统还原”置为选中状态五、加快选单显示速度[方法]运行注册表编辑器,进入“HKEY_CURRENT_USERControlPanelDesktop”,将名称为MenuShowDelay的数据值由原来默认的400修改为0,修改后XP的开始选单、甚至应用软件的选单显示速度都会明显加快。六、启用DMA传输模式所谓DMA,即直接存储器存储模式,指计算机周边设备(主要指硬盘)可直接与内存交换数据,这样可加快硬盘读写速度,提高速据传输速率。[方法]选择“系统属性”中的“硬件”标签,打开“设备管理器”,其中“IDE控制器”有两项“PrimaryIDEChannel”及“SecondaryIDEChannel”,依次进入“属性→高级设置”,该对话框会列出目前IDE接口所连接设备的传输模式,点击列表按钮将“传输模式”设置为“DMA(若可用七、移动临时文件储存路径多数应用软件在运行时都会产生临时文件,而且这些临时文件都默认保存于启动分区C盘,长时间频繁读写C盘极易产生大量文件碎片,从而影响C盘性能,而C盘又是储存系统启动核心文件的分区,C盘的性能直接影响到系统的稳定性与运行效率。应尽量将应用软件安装于启动盘以外的分区并定期对硬盘进行整理,此举可最大程度避免产生磁盘碎片,将启动或读写速度保持在最佳状态。InternetExplorer临时文件夹[方法]在IE主窗口中,依次进入“工具→Internet选项→常规”标签,打开“Internet临时文件”设置界面,点击“移动文件夹”按钮将原来保存于C盘的临时目录移动至C盘以外的驱动器中,如果你使用的是宽带,可将“临时文件夹”使用空间设置为最小值1M刻录时产生的临时文件[方法]文件在刻录之前都会保存于C盘的刻录临时文件夹中,进入资源管理器,选择刻录机盘符并单击鼠标右键选单的“属性”项,在“录制”标签下可将此临时文件夹安置于其它驱动器。我的文档[方法]鼠标右键点击“我的文档”,在属性设置项中可将“我的文档”默认的保存路径修改至其它盘符。八、增加虚拟内存[方法]进入“性能选项”的“高级”设置窗口,首先将“处理器计划”及“内存使用”都调整为“程序”优化模式。点击“更改”按钮进入虚拟内存设置窗口,若你的内存大于256M,建议你禁用分页文件。默认的分页文件为物理内存的1.5倍。禁用系统缓存需重新启动系统。如果你的内存低于256M,请勿禁用分页文件,否则会导致系统崩溃或无法再启动XP!三windows使用时间长了,自然就会产生这样那样的临时文件,影响系统速度,让人烦心。对于老鸟来说,可以通过修改注册表、手动优化系统性能来提高速度,而对新手来说比较困难。这里我们可以下载一些专门的系统优化软件,进行一些简单的设计,就能达到我们想要的效果。这里我推荐一些常用又好使的软件:WINDOWS优化王、优化大师、超级兔子等。其中WINDOWS优化王非常好用,一看就会、功能全面、省时省心。完全清理[毒]垃圾藏在XP中的一个秘密武器,可以完整清除垃圾文件藏在XP中的一个秘密武器,可以完整清除垃圾文件你有用过Windows内置的清理磁盘功能吗?它并不能完全地清洗Windows内不需要的档案,因为它的功能被隐藏了,本篇将会把它被封印了的功能完全打开。适用的窗口板本除了Win95及Win98外这个方法阶适用于Win98se、Win2000、WinME、WinXP现在介绍两个「清理磁盘」工具的指令:SAGESET及SAGERUN首先在「开始」>「执行」然后输入cleanmgr/sageset:99设定:特别模式「清理磁盘」工具会执行,你会发觉多了很多清理选择,选择你想要清理的档案,通常全部都可以删除,完成你的选择后再按「确定」。然后再打开「开始」>「运行」输入:cleanmgr/SAGERUN:99杀毒1这种情况往往表现在打开IE时,在IE界面的左下框里提示:正在打开网页,但老半天没响应。在任务管理器里查看进程,(进入方法,把鼠标放在任务栏上,按右键—任务管理器—进程)看看CPU的占用率如何,如果是100%,可以肯定,是感染了病毒,这时你想运行其他程序简直就是受罪。这就要查查是哪个进程贪婪地占用了CPU资源.找到后,最好把名称记录下来,然后点击结束,如果不能结束,则要启动到安全模式下把该东东删除,还要进入注册表里,(方法:开始—运行,输入regedit)在注册表对话框里,点编辑—查找,输入那个程序名,找到后,点鼠标右键删除,然后再进行几次的搜索,往往能彻底删除干净。杀毒2今天在这里为大家提供两则小技巧,以便帮你强行杀死顽固病毒进程。根据进程名查杀这种方法是通过WinXP系统下的taskkill命令来实现的,在使用该方法之前,首先需要打开系统的进程列表界面,找到病毒进程所对应的具体进程名。接着依次单击“开始→运行”命令,在弹出的系统运行框中,运行“cmd”命令;再在DOS命令行中输入“taskkill/imaaa”格式的字符串命令,单击回车键后,顽固的病毒进程“aaa”就被强行杀死了。比方说,要强行杀死“conime。exe”病毒进程,只要在命令提示符下执行“taskkill/imconime。exe”命令,要不了多久,系统就会自动返回结果。根据进程号查杀上面的方法,只对部分病毒进程有效,遇到一些更“顽固”的病毒进程,可能就无济于事了。此时你可以通过Win2000以上系统的内置命令——ntsd,来强行杀死一切病毒进程,因为该命令除System进程、SMSS。EXE进程、CSRSS。EXE进程不能“对付”外,基本可以对付其它一切进程。但是在使用该命令杀死病毒进程之前,需要先查找到对应病毒进程的具体进程号。考虑到系统进程列表界面在默认状态下,是不显示具体进程号的,因此你可以首先打开系统任务管理器窗口,再单击“查看”菜单项下面的“选择列”命令,在弹出的设置框中,将“PID(进程标志符)”选项选中,单击“确定”按钮。返回到系统进程列表页面中后,你就能查看到对应病毒进程的具体PID了。接着打开系统运行对话框,在其中运行“cmd”命令,在命令提示符状态下输入“ntsd-cq-pPID”命令,就可以强行将指定PID的病毒进程杀死了。例如,发现某个病毒进程的PID为“444”,那么可以执行“ntsd-cq-p444”命令,来杀死这个病毒进程。杀毒3Windows任务管理器是大家对进程进行管理的主要工具,在它的“进程”选项卡中能查看当前系统进程信息。在默认设置下,一般只能看到映像名称、用户名、CPU占用、内存使用等几项,而更多如I/O读写、虚拟内存大小等信息却被隐藏了起来。可别小看了这些被隐藏的信息,当系统出现莫名其妙的故障时,没准就能从它们中间找出突破口。1.查杀会自动消失的双进程木马前段时间朋友的电脑中了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论