1. 51单片机电子时钟程序 只要时间调整部分 急求 谢谢
以下是一段按键调整时间的程序。
LED6:
LCALL DISPLAY
JNB P1.0,CLEAR //;判断键盘输入
JNB P1.1,SET_MINUTE
JNB P1.2,SET_HOUR
AJMP LED6
CLEAR:
LCALL DISPLAY
JNB P1.0,CLEAR
MOV 30H,#12H //;时钟显示复位 A键
MOV 31H,#0
MOV 32H,#0
SJMP LED6
SET_MINUTE:
LCALL DISPLAY
JNB P1.1,SET_MINUTE
MOV A,31H //;调节分加1 B键
CJNE A,#59H,MIN
MOV 31H,#0
SJMP LED6
SET_HOUR:
LCALL DISPLAY
JNB P1.2,SET_HOUR
MOV R1,#30H //;调节时加1 C键
MOV A,@R1
CJNE A,#23H,HOUR // 比较立即数和A,不相等则转移
MOV 30H,#0
MIN:
ADD A ,#1 //将1加到累加器
DA A // 累加器十进制调整
MOV 31H,A
LCALL DELAY1
AJMP LED6
HOUR:
ADD A,#1
DA A
MOV 30H,A
LCALL DELAY1
AJMP LED6
2. 51单片机定时器怎么设置时间
编个小程序,把你的时间,输入到单片机。
3. 51单片机通过串口调节时间和设定闹铃
设定好串口协议,程序中时间、闹钟等变量接收协议中需要更改的,就能实现了。
4. 51单片机怎样用按键设定定时时间
检测到按键按下后,变量的值加一或减一
5. 单片机定时的时间怎么改变
51单片机,根据晶振频率,计算指令周期,设置定时器的分频,然后设置定时器的工作方式tmod,最后设置初值th0
tl0
比如用的x
hz的晶振,stc的单片机有3种模式(x/12)x/6,还有单周期指令,
选择12分频的,t=1/(x/12)就是一个指令周期
,如果定时没有分频,(65536-z(初值))*t就是定时的时间
比如是12m的晶振那么
设置tmod=0x01;16位定时器模式
th0=(65536-20000)/256;
tl0=(65536-20000)%256;就是设置了20ms的定时
6. 单片机电子时钟 时间设置问题
SLCK
bit
p1.0
sDA
bit
p1.1
sCLK
bit
p1.2
ORG
0000H
LJMP
START
ORG
0003H
RETI
ORG
000BH
LJMP
INTT0
ORG
0013H
RETI
ORG
001BH
;
LJMP
INTT1
ORG
0023H
RETI
ORG
0040H
;
START:
MOV
R0,#30H
MOV
R1,#30H
MOV
R2,#07FH
MOV
R3,#8
MOV
20H,#00H
MOV
3AH,#02H
MOV
3BH,#01H
MOV
35H,#10H
MOV
32H,#10H
MOV
TMOD,#11H
MOV
TL0,#0B0H
MOV
TH0,#3CH
MOV
TL1,#0B0H
MOV
TH1,#3CH
SETB
EA
SETB
ET0
SETB
TR0
MOV
R4,#14H
START1:
LCALL
DISPLAY
SJMP
START1
INTT0:
PUSH
ACC
PUSH
PSW
CLR
ET0
CLR
TR0
mov
a,#0b7h
add
a,tl0
MOV
TL0,A
MOV
A,#3CH
ADDC
A,TH0
MOV
TH0,A
SETB
TR0
DJNZ
R4,OUTT0
ADDS:
MOV
R4,#14H
MOV
R0,#31H
ACALL
ADD1
MOV
A,40H
CLR
C
CJNE
A,#60H,ADDM
ADDM:
JC
OUTT0
ACALL
CLR0
mov
r0,#39H
ACALL
ADD1
MOV
A,40H
CLR
C
CJNE
A,#60H,ADDH
ADDH:
JC
OUTT0
ACALL
CLR0
MOV
R0,#3BH
ACALL
ADD1
MOV
A,40H
CLR
C
;
JB
03H,OUTT0
CJNE
A,#24H,HOUR
HOUR:
JC
OUTT0
ACALL
CLR0
OUTT0:
MOV
33H,38H
MOV
34H,39H
MOV
36H,3AH
MOV
37H,3BH
POP
PSW
POP
ACC
SETB
ET0
RETI
ADD1:
MOV
A,@R0
DEC
R0
SWAP
A
ORL
A,@R0
ADD
A,#01H
DA
A
MOV
40H,A
ANL
A,#0FH
MOV
@R0,A
MOV
A,40H
INC
R0
SWAP
A
ANL
A,#0FH
MOV
@R0,A
RET
CLR0:
CLR
A
MOV
@R0,A
DEC
R0
MOV
@R0,A
RET
DISPLAY:
CLR
SLCK
DISP:
MOV
A,R2
MOV
R5,#8
disp0:
clr
sclk
rLc
a
mov
sda,c
setb
sclk
djnz
r5,disp0
mov
r5,#8
mov
a,r2
RR
a
mov
r2,a
mov
a,@r1
MOV
DPTR,#TAB
MOVC
A,@A+DPTR
disp10:
clr
sclk
rlc
a
mov
sda,c
setb
sclk
djnz
r5,disp10
setb
slck
mov
r5,#8
inc
r1
LCALL
DL1MS
djnz
r3,display
mov
r3,#8
mov
r1,#30h
RET
DL1MS:
MOV
R6,#14H
DL1:
MOV
R7,#19H
DL2:
DJNZ
R7,DL2
DJNZ
R6,DL1
RET
tab:
DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB
7FH,6FH,77H,7CH,39H,5EH,79H,71H,40H
7. 我想用单片机的显示器写一电子钟可是不知道怎么编才能调整时间望高人指教我的程序如下:
能:
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键,即可退出!
8. 51单片机定时器怎么设置时间
51单片机(基本型)的任何设置参数都是无法保存的,要想保存设置参数有以下几种途径:
1、选用带EEPROM的51兼容型单片机,将设置参数写入EEPROM;
2、外扩一片串行EEPROM比如24C02之类的存储芯片专门用于存放设置参数。
9. 单片机c语言 时间调试
要多精确?你写的是什么程序?定时器写的?延时写的?
方法1、用你的1ms时间让单片机一个IO口产生方波,用示波器看就行,再调整。
方法2、如果你的硬件上有显示的话,用精确频率计产生1kHz脉冲,用你的1ms再定时1s读脉冲频率,把你测到的频率显示出来,调整时间,直到跟频率计的频率一样就行了。