這程序,汗!
不說規范和內容,直接說語法錯誤吧
1.
不能PUSH
R7,也不能PUSH
A。對A壓棧要用PUSH
ACC。
若要對R0-R7壓棧,可以用MOV
A,R7
再PUSH
ACC。彈出時,
可以用POP
ACC再MOV
R7,ACC
當然,也可以直接壓R7的地址,比如:PUSH
07H(BANK
0),但這樣可讀性很差。
2.你那兒的T1和TI是不一樣的。建議,不要取一些無意義的標號,混亂不堪。
② 51 單片機 匯編 編譯錯誤
DAT:DB 54H, F6H, 1BH, 20H,04H,C1H中逗號必須是半形字元,當十六進制數首位不是數字時,前面要加0。
要這樣:DAT:DB 54H,0F6H,1BH, 20H,04H,0C1H
CLR R6; CLR R7是指令應用錯誤,你不能對R0-R7直接清零。
要這樣:MOV R6,#0,MOV R7,#0或者CLR A,MOV R6,A;MOV R7,A
③ 51單片機程序編譯完後為什麼還是顯示錯誤,工程什麼的都已經建立好了。
工程什麼的都已經建立好了,只一個起步,不代表什麼的。
51單片機程序編譯完後為什麼還是顯示錯誤,這不可能,只要有錯誤,編譯就不會完成的。
你程序有錯誤,不等於編譯一遍就對了,不找錯誤,就是編譯一百遍也沒有用。
④ 51單片機,這個程序錯在哪裡呢編譯器總提示C(32): error C141: syntax error near 'u8'
main函數的while循環裡面,調用函數你還給參數加個類型,這是語法錯誤。
⑤ 51單片機編譯出錯
函數聲明void delay;是錯誤的,應該是void delay();,你少了括弧,所以你程序的11,13,17,22行的錯誤都指向這個函數。
⑥ 51單片機出編譯出錯,錯在哪裡
用 ^ 定義位是不能用define的需要改成sbit
直接用define就相當於P3^(5=0);常量不能給常量賦值,所以就會報錯
#define LCM_RS P3^5
#define LCM_E P3^4
改成
sbit LCM_RS= P3^5;
sbit LCM_E = P3^4;
sbit LCM_RW = P3^1;
即可
⑦ 51單片機 keil軟體編譯時出錯 Text1.asm(7): error A45: UNDEFINED SYMBOL (PASS-2)
你編輯的程序開頭位置出錯了,應該如下
ORG 0000H
LJMP MAIN
ORG 0030H ; 主程序入口
MAIN: SETB P2.6 ; 置無線發射模塊為發射狀態
CLR P1.0 ; P1.0口置0
MOV A,P2
JNB ACC.4,PR1
以下雷同
⑧ Keil 51編譯問題! 用Keil 51編譯程序時,出現警告: MISSING DEVICE(SECURITY KEY NOT FOUND) 不知道怎
LL TO SEGMENT
這個問題必須注意,可能引起程序沖突,假設你用於自動化領域,則可能導致信號產生尖峰。 產生這一警告的一個根源是:你在主循環里調用了一個函數(如aaa),而在中斷服務函數里,你用調用了這個函數(如aaa)。這樣當主循環運行到該函數中是,一旦產生中斷,則在中斷里又再次調用該函數!這時,很可能出錯! 避免這種情況的方法很多:如,在進中斷的時候置需調用該函數的標志,而在主循環中調用該函數
你可以在中斷函數設置標志 FLAG_Display = 1;
在主函數里判斷這個標志:
if(FLAG_Display)
ValueDisplay();
更新後,清除顯示標志: FLAG_Display = 0;
⑨ 51單片機工程程序都做好了,編譯出錯
程序中for語句是圓括弧,你卻用了大括弧
這處
while (1)
{
for (i=0;i<4;i++)//這是圓括弧
{
for (j=0;j<4;j++)//這是圓括弧
⑩ C51編譯時提示出錯,但我怎麼也找不出錯在哪裡了
你前面加了頭文件(*.h)沒有?
我加了個main函數,編譯之後 是沒有錯誤的啊
error C141: syntax error near 'void'可能是函數前後少了"{"或者"}",你應該仔細檢查一下的
還有,error C202: 'TempCyc': undefined identifier這一句錯誤可能是在main函數中也使用了TempCyc,而沒有在主函數中定義,這個變數在void Delay5Ms(void)中只是局部變數
#include "reg52.h"
void Delay5Ms(void)
{
unsigned int TempCyc;
TempCyc=5552;
while(TempCyc--);
}
//******400ms延時******
void Delay400Ms(void)
{
unsigned char TempCycA=5;
unsigned int TempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
}
}
void main()
{
while(1)
{
Delay5Ms();
Delay400Ms();
}
}