我的51程序中用到了位定義:bit flag;
這樣定義后,運行程序,下載到電路板上,發(fā)現(xiàn)flag根本不是按照自己設(shè)定的值,導(dǎo)致函數(shù)判斷錯誤;后來查找到了原因
將keil中options中 target中 Memory Mode中要選擇下圖那兩種方式才行;設(shè)置好后運行程序到電路板,果然成功正確運行了;
原因:之前設(shè)置成 Small:in DATA了,因為bit變量是位可尋址變量,而在51單片機RAM中有單獨的區(qū)域是可位尋址的,那就是 PDATA區(qū),至于為什么選擇XDATA也可以,
那是因為XDATA區(qū)已經(jīng)包括PDATA區(qū)了;