『壹』 51單片機程序編譯出現『Argument':conversion:pointer to non-pointer
是指針轉換錯誤吧,你傳汪碰遞的是漢字,要看LCD的驅動Write_lcd()是否支持處理漢字,一般LCD廠家提供的處理漢字和字元的驅歲陵鄭動函數不一樣
Write_lcd(0,1,"液"); 傳遞給函數的是字元串的指針乎頌,但是函數原型Write_lcd(unsigned int x,unsigned int y,unsigned int word)定義的word是int 類型,也就是說Write_lcd()不支持指針和漢字。
『貳』 單片機程序,程序沒問題,編譯不出來怎麼回事
單片機的內存地址0003H是中斷子程序入口,你從000H開始編輯程序,然後接了個SJMP跳轉到START,但是你的START程序沒有另起地址,假設SJMP是兩個位元組指令的話,那麼你的START程序段的地址就是0003H,把中斷子程序入口堵住了,所以你的程序就產生了警告。
『叄』 不同的單片機如(stc AT PIC) 他們的編譯器是否一樣,還是要到生產廠家要的編譯器才可以把程序編進單片機里
用VC++6.0肯定不行的,用KEILC可以,基本上所有的單片機都可以用KEILC編譯。至於下載到單片機那就不一樣了,PIC有廠家提供的MPLAB ICD,STC也有廠家提供的專用下載軟體。還有部分晶元可用通用編程器寫入晶元的。
『肆』 如何在Atom編譯Arino程序和上傳到單片機
如果編譯和上傳分離到不同的機器上執行,可以使用下面方式。
依賴
安裝arino環境
sudo apt-get install arino
編譯
在Arino IDE環境下,寫好源碼程序(以.ino結尾的文件)。然後
Arino -> Preferences ->」Show verbose output ring」選擇」compilation」。點擊編譯,在下方的輸出框最後一行顯示如下內容
/usr/share/arino/hardware/tools/avr/bin/avr-obj -O ihex -R .eeprom /tmp/build355782919138539048.tmp/Blink.cpp.elf /tmp/build355782919138539048.tmp/Blink.cpp.hex
可以得知, 源碼(.ino)編譯後生成的二進制文件為/tmp/build355782919138539048.tmp/Blink.cpp.hex
上傳
把上一步編譯生成的二進制文件上傳到arino控制板上。
/usr/share/arino/hardware/tools/avrde -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build355782919138539048.tmp/Blink.cpp.hex:i
『伍』 單片機寫程序步驟
給單片機寫程序的步驟至少有以下幾點:
熟悉或了解目標單片機的性能、資源等等與編程有關的東西。
熟悉或熟練掌握一門編程語言。
准備、配置好一種編譯軟體。
准備、配置好目標單片機的燒錄裝置。
『陸』 請單片機高手為我解答,我的程序編譯不成功,KEIL給出了提示,我想知道錯在哪兒 不勝感激!完美者加分!
START:
MOV A, #01010101B
MOV P0,A
LCALL DELAY
; CPL P0 ; CPL 取反指令 為 位操作指令
MOV A, P0 ; 可以 用三條指令代替 ( 或者 用下面 兩條就可以 )
CPL A
MOV P0, A
LCALL DELAY
AJMP START
DELAY:
MOV R7, #250
D1:MOV R6,#250
D2:DJNZ R6,D2
DJNZ R7,D1
RET
END
『柒』 at89c51單片機 如何用c語言編程啊
隨著單片機硬體性能的提高,編寫應用程序更著重於程序本身的效率。
Franklin或KEII.C51交叉編譯器是專為51系列單片機設計的一種高效的C語言編譯器,用其開發的應用程序易於維護,可移植性好,是目前較流行的51系列單片機的開發工具。
一、C51語言程序設計的基本技巧
首先,C51語言程序設計要盡可能採用結構化的設計方法。可將整個程序按功能分成若干個模塊,不同的模塊完成不同的功能。對於不同的功能模塊,分別指定相應的入口參數和出口參數,而經常使用的一些程序最好編成函數,這樣既不會引起整個程序管理的混亂,還可使程序的可讀性、移植性增強。
C51語言的主程序結構:
#include
main0{while(1);}
這是最小的C程序,包括頭部文件和程序主體。頭部文件為引用的外部資源文件,包括硬體信息和外部模塊提供的可使用的函數和變數的說明。
語句定義後,就可以在C語言程序中像匯編一樣使用這些硬體設備。
在C5l中常用項目來管理,項目一般分為C文件塊和頭部文件塊,常把不同的功能寫在不同的C文件中,依靠項目的管理,最後把所有文件連接起來,這樣就可以得到燒錄的HEX文件或BIN文件。沒有在頭部文件中列出的文件,可以算是該C文件的內部函數和變數,外部C不能使用。另外,在程序設計過程中要充分利用C51語言的預處理命令。
對於一些常用的常數,如TRUE、FAlSE、PI,以及各種特殊功能寄存器,或程序中一些重要的依據外界條件可變的常量,可採用宏定義(#de-fine)或集中起來放在一個頭文件中進行定義,再採用文件包含命令(#in-elude)將其加入到程序中,這樣當需要修改某個參量時,只需修改相應的包含文件或宏定義,而不必對使用它們的每個程序文件都進行修改,有利於文件的維護和更新。
舉例:利用宏定義和條件編譯,源程序不作任何修改就可適用於不同時鍾頻率的單片機系統,並可根據情況的不同取不同的delay值,完成不同的目的。程序如下:
#define flag 1#ifdef flag==l#define fose 6Mdelay=10;#elif flag==0#define fose 8Mdelay=12;#else#define fosc 12Mdelay=20;#endiFMain0{ for(I=O;l