亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 單片機編程中這個細節不注意,查錯要查到懷疑人生 [打印本頁]

作者: zxwdown    時間: 2019-4-2 19:15
標題: 單片機編程中這個細節不注意,查錯要查到懷疑人生
   編程中,對于有些變量,可以不賦初值,但有些變量,一定要賦初值,如果沒有賦初值,就會出現錯誤,如果事先有所了解還好,知道查變量初值是不是沒有賦值,如果沒有這方面的經驗,可能要排查好久才能查出故障,有時甚至查不出故障。如下面這段單片機程序:

#include <reg52.h>
#define uchar unsigned char
sbit rs=P3^5;
sbit rw=P3^6;
sbit E=P3^7;
//================================
void delay(int ii){int i;for(i=0;i<ii;i++);}
//-------------------------------
void LM1602_write(uchar dat,char cd)
{E=0;rw=0;rs=cd;
P0=dat;
E=1;delay(5);E=0;
}
//--------------------------------
void Putstr(char *str)
{int i;
while(str[ i]!=0){LM1602_write(str[ i],1);i++;delay(50);}
}
//===============================
main()
{
LM1602_write(0x38,0);
LM1602_write(0x0f,0);
delay(50);
Putstr("Hello MCU!");Putstr("12345");
while(1);
}  

程序原意要在液晶顯示器上顯示出兩個字符,但運行結果如下。
    可以看出不如預期,這是因為變量Putstr(char *str)的變量i沒有賦初值,如果改成這樣就不會出現以上情況。
void Putstr(char *str)
{int i=0;
while(str[ i]!=0){LM1602_write(str[ i],1);i++;delay(50);}
}
此時運行情況如下:


程序運行達到預期。所以象這種變量大家要記得賦初值。





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1