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/06/24 11:00:20
![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](/uploads/image/z/2665410-42-0.jpg?t=51%E5%8D%95%E7%89%87%E6%9C%BA%E5%B0%91%E5%86%99%E4%BA%86%E4%B8%80%E4%B8%AA%E5%BE%AA%E7%8E%AF%E8%AF%AD%E5%8F%A5%2C%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%98%E8%83%BD%E6%89%A7%E8%A1%8C%E5%BE%AA%E7%8E%AF%2C%E9%94%99%E5%9C%A8%E5%93%AA%E9%87%8C%E5%91%A2%3F%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%B8%8B%EF%BC%9A%23includevoid+delay%28unsigned+int+t%29%3Bsbit+duan%3DP2%5E6%3Bsbit+wei%3DP2%5E7%3Bunsigned+char+a%3Bunsigned+char+code+table%5B%5D%3D%7B0x3f%2C0x06%2C0x5b%2C0x4f%2C0x66%2C0x6d%2C0x7d%2C0x07%2C0x7f)
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.