么,这不是一种时间的浪费吗,岂不是一个周期就可以完成。还有我用延迟函数做两位数的数码管倒计时60秒,一闪一闪的,根本做不到,但是能做成一位的倒计时,比如从9数到0。两位的只能用定时器,中断去做,我不明白,希望大家指导下,不要用定时器中断定时不占用CPU时间来解释,从两种不同的实际效果结合cpu执行情况给我解释下,回答好的给额外加分。
谢谢你的回答,你能在帮我看看这两个代码吗。,帮我解释下吧,分数上我会多给点的;
第一个倒计时60秒
while(1)
{
for(i=0;i<=60;i++)
{
wei=1;
P0=0xfd;
wei=0;
duan=1;
P0=sz[i%10];
duan=0;
delay(200);\\D
wei=1;
P0=0xfe;
wei=0;
duan=1;
P0=sz[i/10];
duan=0;
delay(200);
for(a=0;a<10000;a++)
{
for(b=0;b<123;b++);//1s时间
}
}
for(a=0;a<10000;a++) {
for(b=0;b<123;b++);//1s时间
}
----
原来是 C 语言 !
C 语言,那有时间概念 !
用汇编语言,才行。
用汇编语言编程,就连一个微秒,都不带错的。
用 C 语言,只能用定时器,才能保证定时精度。
----
两位数码,不用中断,程序如下:
while(1) {
for(i = 0; i <= 60; i++) { //0 ~ 59
for(a = 0; a < 1000; a++) { //这个1000,你可以随便改
wei=1; P0 = 0xfd; wei=0;
duan=1; P0 = sz[i % 10]; duan=0; delay(200);
wei=1; P0 = 0xfe; wei=0;
duan=1; P0 = sz[i / 10]; duan=0; delay(200);
} //循环 1000 遍,但愿正好是一秒
}
在51单片机的汇编语言中的双周期指令说第二个周期读入操作码并丢弃...
第一个问题:双周期指令,第二周期读的是操作数,只有在第一周期读操作码的,而有几条指令是单字节的,也需要两个周期,这不是浪费时间,是因一个周期是不能完成的,这不是你想像的那样。第二个问题:要做计时,不管是倒计时还是正常计时,用延迟函数来做,这种方法计时是不准确的,只有用定时器才...
如何区分51单片机中的单周期和双周期指令
5、位操作指令中,ANL和ORL是2周期指令 6、所有包含立即地址的指令,除INC direct及DEC direct外,均为2周期指令 7、剩下的均为单周期指令。
如何区分51单片机中的单周期和双周期指令
单双周期指的是指令的执行速度,现在很多单片机都对指令执行速度进行了优化,比如 4T \/ 3T \/1T等等,所以不同单片机的指令执行速度都不一样,建议参考数据手册的指令集。
单片机延时子程序流程图
1.机器周期是指单片机完成一个基本操作所花费的时间,一般使用微秒来计量单片机的运行速度, 51 单片机的一个机器周期包括12 个时钟振荡周期,也就是说如果51 单片机采用12MHz 晶振,那么执行 一个机器周期就只需要1μs;如果采用的是6MHz 的晶振,那么执行一个机器周期就需要2 μs。 2 .指令周期是指单片机执行一条...
汇编语言中,如何区分单\\双周期指令?
为什么要死记?通常没用,用到的时候去查表。如果是为了考试,我建议放弃这几分,去钻研点更有意义的东西。
“51单片机时钟周期”、“机器周期”和“指令周期”如何定义的?
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器...
单片机的一条指令: SJMP $ 是啥意思
即:取出指令码),然后把加2后的地址和rel相加作为目标转移地址。因此,短转移指令是一条相对转移指令,是一条双字节双周期指令,指令码格式为:80H rel(操作码 地址偏移量),这里,80H是SJMP指令的操作码;rel是地址偏移量,在程序中也常采用符号地址,上机运行前才被代真成二进制形式。
单片机中sjmp和ljmp是啥意思啊
…)表示,只有在上机执行前才被汇编(或代真)为16位二进制地址。长转移指令为三字节,双周期指令。上机试试吧!很直观的! For Example: LJMP F886H 注意:在下载的这个8051DEBUG软件中,不支持标号,且程序状态字PSW(Program State Word)中的D0位,即奇偶标志位P,与正确的正好相反,这一点...
51单片机短转移指令是什么?
C51单片机的跳转指令包括LJMP、SJMP、AJMP、JMP和DJNZ等:LJMP指令:长跳转指令,用于将程序跳转到指定的16位地址,指令格式为“LJMP A16”,其中A16表示跳转目标地址。SJMP指令:短跳转指令,用于将程序跳转到相对偏移量的16位地址,指令格式为“SJMP rel”,其中rel表示跳转目标的相对偏移量。AJMP指令:...
MCS-51单片机外接晶振频率6MZH时,它的双周期指令的指令周期是多少?
每个机器周期完成某些规定操作。指令周期:指令周期是指执行一条指令所占用的全部时间,一个指令周期通常含有1~4个机器周期(依指令类型而定)。显然,当震荡频率为12MHz时,一个机器周期为1us;当振荡频率为6MHz时,一个机器周期为2us。具体各指令周期时间见下图:...