@a+dptr
mov p0.5,#0fh
mov 32h,06h,s_jian6
mov a,#00h
mov 22h,#01h
da a
mov 21h,#24h,a
cjne a:db 3fh,ly1
djnz r6,#tab
mov a,#00h
mov p2,22h
add a,#0ffh
mov a,a
mov p2,#0fh
mov 33h:
lcall display
jnb p1,20h
add a.4,s_jia1
jnb p1,#00h
lq,7dh,#01h
da a
mov 20h,#123
ly1,#01h
da a
mov 22h,lq
mov 22h,#60h,a
cjne a:
lcall display
jnb p1,s_jian5
jnb p1,#2
ly3,5bh.3,a
mov p2,#0fh
mov 31h,4fh:
mov 20h,#60h,#0ffh
mov p0,#59h
s_jian6,#00h
s_jian4,20h
anl a,#00h
mov 21h: ret
s_jia1:reti
ret
tab,#0fh
mov 35h.1,21h
add a,22h
add a:
lcall display
jnb p1,a
mov a,lzq
mov 20h,lzq
mov 22h,#99h
da a
mov 20h,#20
mov a,#0b0h
djnz 10h,#0ffh
mov a.0,21h
add a,30h
movc a,#0fh
mov 34h,21h
add a.2,@a+dptr
mov p0,#00h
mov p2,#40h
mov p2,lq
mov 20h,a
mov a:
mov r7,22h
anl a,a
mov a,20h
add a,lzq
mov 22h,#0fdh
lcall delay
mov p0,a
cjne a,#99h
da a
mov 22h,a
mov a,#0efh
lcall delay
mov p0,lzq
mov 21h:
jnb p1,22h
add a,#24h,@a+dptr
mov p0请各位高手能帮我解决这个分析的问题:
mov a,#3ch
mov tl0,#07fh
lcall delay
ret
time0,21h
anl a,ly2
djnz r7,#99h
da a
mov 21h,@a+dptr
mov p0,#60h,66h,a
cjne a.3,s_jia3
jnb p1,a
mov p2:mov r6,s_jia1
mov a,#0FH
mov 30h,7fh,#0ffh
mov a.2,#00h
ljmp lzq
s_jia2.0,s_jia2
jnb p1,s_jian5
mov a:
lcall display
lcall anj
sjmp loop
anj,@a+dptr
mov p0,#00h
mov a,20h
add a,#23h
s_jian5,#00h
mov 10h,#00h
mov p2,#0dfh
lcall delay
mov p0,#99h,#1
ly2,07h,#00h
mov p2,@a+dptr
mov p0.1,#0ffh
mov a,#60h,a
cjne a,s_jia2
mov a,21h
swap a
anl a,35h
movc a,a
mov p2,#01h
da a
mov 21h,lq
mov 21h,32h
movc a,31h
movc a,#00h
mov p2,#01h
da a
mov 22h,a
mov dptr:djnz r5,a
mov a,a
mov p2,#99h.5,s_jian4
mov a,#00h
mov a:
lcall display
jnb p1,lzq
mov 21h,33h
movc a!本人不甚感激~
详细的分析~谢谢
org 0000h
jmp main
org 000bh
ljmp time0
org 0030h
main,20h
swap a
anl a,#0b0h
mov tmod,#0feh
lcall delay
mov p0,#20
mov th0,6dh,a
cjne a,#99h,a
cjne a:
lcall display
jnb p1,#11h
setb ea
setb et0
setb tr0
loop,s_jia3
mov a,s_jian6
lzq,#40h
mov p2,a
cjne a,a
mov p2,6fh
ret
delay,#0ffh
mov a,#59h
ljmp lzq
display,s_jian4
jnb p1,#3ch
mov tl0,#00h
mov p2:mov r5:
chaizi,34h
movc a,#01h
da a
mov 20h,lzq
mov 20h,lq
mov 10h,a
cjne a:
mov th0,#0f7h
lcall delay
mov p0,#0bfh
lcall delay
mov p0,#0fbh
lcall delay
mov p0,22h
swap a
anl a:
lcall display
jnb p1,#00h
ljmp lzq
s_jia3.4
老师要问的,谢谢.我不知道分析还能希望在上面扩展一个日期显示功能或者闹钟功能并予以分析!
希望分析的是汇编而不是C 因为这是我们大学的考试题目.
单片机数字时钟汇编程序设计分析
答案:2 悬赏:80 手机版
解决时间 2021-12-26 00:12
- 提问者网友:绫月
- 2021-12-25 04:44
最佳答案
- 五星知识达人网友:十鸦
- 2021-12-25 05:28
nummiao=0;
P0=0x40;
aa=0xfe;
delayms(5);
numfen=0;
L2=0;
sbit L2=P2^1,numshi);
shifen=numfen/10;
#include <
void delayms(uchar xms)
{
uchar i.h>
delayms(5);
P0=0x40,t0;
L2=0;
dula=0,numfen;
L2=0!key4);
dula=0,shifen;
delayms(5);
if(key4==0)
{
while(;
numfen++;
P0=table[gefen],0x7c;
P0=table[shifen],numfen,0x7d;i--)
for(j=110;256;
EA=1;
}
void init()
{
TMOD=0x11;j>0,geshi;
L3=1;
delayms(5).h>
L2=0,numfen,
0x66;
ET0=1;
L1=0;
L1=1;
L1=0;
#define uchar unsigned char
sbit dula=P3^7;
display(nummiao;
TH0=(65536-50000)%256,0x4f;
L1=1;
L3=1;
sbit key3=P3^2;10,gemiao;
sbit key4=P3^3;
P0=table[geshi],0x06;
dula=1!key3);0;
}
}
if(key2==0)
{
delayms(10);
delayms(5);
L1=0;
L3=0,shimiao;
dula=1;
uchar aa;
geshi=numshi%10;
dula=1,0x79;
keyscan();
dula=1;
L3=1;
delayms(5);}
if(numshi==24)
numshi=0;
while(,0x77,numshi)
{
uchar shishi;
}
void display(uchar nummiao;
TL0=(65536-50000)/
L2=1;}
if(numfen==60)
{ numshi++;
}
}
if(key4==0)
{
delayms(10);
dula=0;256;
P0=table[gemiao],0x71
};
L3=1;
dula=0;
dula=0;
dula=1;
gemiao=nummiao%10;
while(1)
{
P1=aa;
L2=1;
dula=0;
L3=0;
P0=table[shishi];j--);
sbit L1=P2^0,numshi;
L2=1;
uchar code table[]={0x3f;
}
}
}
void main()
{
init();
uchar nummiao;
nummiao++;
}
void keyscan()
{
if(key1==0)
{
delayms(10),0x6d,0x6f;
if(key1==0)
{
numshi++;
dula=0;
while(;
L1=1,0x07;
while(;
if(key3==0)
{
nummiao=0;
t0++!key2),gefen;
dula=1;
if(nummiao==60)
{
numfen++;
L3=0;
}
}
if(key3==0)
{
delayms(10);
gefen=numfen%10;}
aa=_crol_(aa,0x5e;
delayms(5),
0x7f,j;
sbit L3=P2^2;
}
}
void t0time()interrupt 1
{
TH0=(65535-50000)/
L2=1;
TL0=(65535-50000)%256;
for(i=xms;
shimiao=nummiao/
L1=1;i>
dula=1;
dula=1;
sbit key1=P3^0;10;
TR0=~TR0;
delayms(5);
P0=table[shimiao];
sbit key2=P3^1;
shishi=numshi/
L3=0,0x5b;intrins;
dula=0;
if(key2==0)
{
if(numfen==60)
numfen=0,1)!key1);
L1=0;
if(numshi==24)
numshi=0;
if(t0==20)
{
t0=0时钟设计基本上就是通过电子 定时器定时 到1s给一个中断 让单片机去执行中断 跳转至相应的数码管位 然后修改当前显示值 再设置到10进位加一 之后就出来数字时钟的效果 弄懂定时器 一切就顺下来了
这是一个C得时钟程序 你看明白思想 就好说汇编的语句了
#include <,
0x39;reg52
P0=0x40;
aa=0xfe;
delayms(5);
numfen=0;
L2=0;
sbit L2=P2^1,numshi);
shifen=numfen/10;
#include <
void delayms(uchar xms)
{
uchar i.h>
delayms(5);
P0=0x40,t0;
L2=0;
dula=0,numfen;
L2=0!key4);
dula=0,shifen;
delayms(5);
if(key4==0)
{
while(;
numfen++;
P0=table[gefen],0x7c;
P0=table[shifen],numfen,0x7d;i--)
for(j=110;256;
EA=1;
}
void init()
{
TMOD=0x11;j>0,geshi;
L3=1;
delayms(5).h>
L2=0,numfen,
0x66;
ET0=1;
L1=0;
L1=1;
L1=0;
#define uchar unsigned char
sbit dula=P3^7;
display(nummiao;
TH0=(65536-50000)%256,0x4f;
L1=1;
L3=1;
sbit key3=P3^2;10,gemiao;
sbit key4=P3^3;
P0=table[geshi],0x06;
dula=1!key3);0;
}
}
if(key2==0)
{
delayms(10);
delayms(5);
L1=0;
L3=0,shimiao;
dula=1;
uchar aa;
geshi=numshi%10;
dula=1,0x79;
keyscan();
dula=1;
L3=1;
delayms(5);}
if(numshi==24)
numshi=0;
while(,0x77,numshi)
{
uchar shishi;
}
void display(uchar nummiao;
TL0=(65536-50000)/
L2=1;}
if(numfen==60)
{ numshi++;
}
}
if(key4==0)
{
delayms(10);
dula=0;256;
P0=table[gemiao],0x71
};
L3=1;
dula=0;
dula=0;
dula=1;
gemiao=nummiao%10;
while(1)
{
P1=aa;
L2=1;
dula=0;
L3=0;
P0=table[shishi];j--);
sbit L1=P2^0,numshi;
L2=1;
uchar code table[]={0x3f;
}
}
}
void main()
{
init();
uchar nummiao;
nummiao++;
}
void keyscan()
{
if(key1==0)
{
delayms(10),0x6d,0x6f;
if(key1==0)
{
numshi++;
dula=0;
while(;
L1=1,0x07;
while(;
if(key3==0)
{
nummiao=0;
t0++!key2),gefen;
dula=1;
if(nummiao==60)
{
numfen++;
L3=0;
}
}
if(key3==0)
{
delayms(10);
gefen=numfen%10;}
aa=_crol_(aa,0x5e;
delayms(5),
0x7f,j;
sbit L3=P2^2;
}
}
void t0time()interrupt 1
{
TH0=(65535-50000)/
L2=1;
TL0=(65535-50000)%256;
for(i=xms;
shimiao=nummiao/
L1=1;i>
dula=1;
dula=1;
sbit key1=P3^0;10;
TR0=~TR0;
delayms(5);
P0=table[shimiao];
sbit key2=P3^1;
shishi=numshi/
L3=0,0x5b;intrins;
dula=0;
if(key2==0)
{
if(numfen==60)
numfen=0,1)!key1);
L1=0;
if(numshi==24)
numshi=0;
if(t0==20)
{
t0=0时钟设计基本上就是通过电子 定时器定时 到1s给一个中断 让单片机去执行中断 跳转至相应的数码管位 然后修改当前显示值 再设置到10进位加一 之后就出来数字时钟的效果 弄懂定时器 一切就顺下来了
这是一个C得时钟程序 你看明白思想 就好说汇编的语句了
#include <,
0x39;reg52
全部回答
- 1楼网友:行雁书
- 2021-12-25 07:04
接线要看你的爱好,用哪个口都行,不过你的程序在网上很好找的,自己到一些论坛上看看,不要别人现成的东西你学得更快.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯