51单片机少写了一个循环语句,为什么还能执行循环,错在哪里呢?程序如下:#includevoid delay(unsigned int t);sbit duan=P2^6;sbit wei=P2^7;unsigned char a;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/26 12:37:24
51单片机少写了一个循环语句,为什么还能执行循环,错在哪里呢?程序如下:#includevoid delay(unsigned int t);sbit duan=P2^6;sbit wei=P2^7;unsigned char a;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
51单片机少写了一个循环语句,为什么还能执行循环,错在哪里呢?程序如下:
#include
void delay(unsigned int t);
sbit duan=P2^6;
sbit wei=P2^7;
unsigned char a;
unsigned char code table[]=
{
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void main()
{
wei=1;
P0=0xc0;
wei=0;
for(a=0;a0;i--)
for(j=200;j>0;j--);
}
这个程序应该是到显示FFFFFF,6个数码管都显示F就应该停止了吧.为什么会不停的又从0开始不停新循环呢,就好像加上了while(1).
51单片机少写了一个循环语句,为什么还能执行循环,错在哪里呢?程序如下:#includevoid delay(unsigned int t);sbit duan=P2^6;sbit wei=P2^7;unsigned char a;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
程序会一直运行至程序存储器的结尾,然后再从头开始运行.
因为程序容量不大,运行速度又很快,人还没有感觉出停顿,程序就又从头执行了.
只要有电源,复位正常,有时钟,PC指针就会按照时钟的振荡而不停的自加,除非程序中有改变PC指针的值的指令.所以当给一个内部没有程序的单片机上电,复位并供上时钟时,单片机不是静止的,而是一直在运行的,运行的方式是从头到尾的执行程序存储器中的指令.如果程序存储器中是全0,执行的是空指令,如果是全1,执行的是mov R7,A.