久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1686|回復: 0
收起左側

單片機編程中這個細節不注意,查錯要查到懷疑人生

[復制鏈接]
ID:404797 發表于 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);
}  

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

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

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久性av | 国产成在线观看免费视频 | 国产成人区 | 欧美成人第一页 | 欧美日韩黄色一级片 | 观看av| 手机av在线 | 99精品视频在线观看免费播放 | 日韩成人免费视频 | 久久久久香蕉视频 | 日韩在线小视频 | 国产精品视频观看 | 午夜看片网站 | 99福利视频 | 99精品久久久| 黄色在线免费观看视频 | a在线v| 国产精品久久久久久一区二区三区 | 一区二区高清不卡 | 久久久免费少妇高潮毛片 | 日韩有码一区 | 免费在线成人 | 天天干天天爱天天爽 | 日韩在线 | av免费在线播放 | 亚洲三区视频 | 国产精品久久久久久久久久妇女 | 成人一区二区三区在线观看 | 91麻豆产精品久久久久久 | 欧美亚洲在线视频 | 成人高清视频在线观看 | 精品一区在线 | 综合网在线 | 国产区在线免费观看 | 午夜精品 | 日韩视频 中文字幕 | 我爱操| www一级片| 成人妇女免费播放久久久 | 91精品国产综合久久久久久首页 | 日韩伦理一区二区 |