樓上說的雖然大多是廢話,,對妳的項目可以沒多少幫助
但是至少有壹點是對的..設置成xdata可以解決妳的問題.
雖然不是什麽好辦法.
51的 ram 分外三種.
內部直接尋址妳的128byte 內部間接的128byte
還有就是外部 ram
妳的51單片機有512byte
那麽肯定是 內部 直接 間接各128
外加外部256字節
妳把那些大壹點的數據全部改成 xdata 聲明就可以了.
當然如果妳會控制ram大小的話..用idata 聲明效率更好壹點
例如 unsigned char yy;
寫個成 unsigned char xdata yy;
(妳看妳自己的編譯結果顯示 data=137, xdata=0, code=4856
就應該猜測壹下 xdata 幹嗎用的了
最後 建議樓主. 最好不用在keil c51裏面使用printf函數(浪費啊)
回去.仔細看壹遍51的結構..然後看看keil c51的區別於ansi c的東西
會對妳有幫助
如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!