㈠ C語言怎麼寫進單片機
1:先把寫好的C語言進行編譯,生成*.hex或*.bin文件,推薦用keil C。
然後:
1:根據你單片機的型號買一個燒錄器,與PC連接好後,把單片機放在燒錄器的插座上(看你的單片機封裝,新手盡量用DIP的),根據燒錄器軟體提示把上述文件燒到單片機里,缺點:價格較高
2:用下載線,用法與燒錄器差不多,缺點:比較麻煩,要有一定經驗。
3:用學習板,一般學習板上面的單片機可以直接在線燒錄(如STC,SST系列的單片機),也就是說單片機不用拆下來,板子上做好了燒錄電路,可以在板子上燒錄,然後就可以直接驗證了。
4:自已做一個,用STC的單片機,只要用一個RS232的轉換電路(一片232IC,幾個電解電容就行了),STC的單片機可以通過串口燒錄程序,具體參見STC官網或其DATASHEET,有詳細介紹。缺點:要一定動手能力
推薦新手用第3方法,可以很快上手。
㈡ 單片機用C語言的基礎
單片機的外部結構:
1、 DIP40雙列直插;
2、 P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)
3、 電源VCC(PIN40)和地線GND(PIN20);
4、 高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位)
5、 內置振盪電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)
6、 程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序)
7、 P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1
單片機內部I/O部件:(所為學習單片機,實際上就是編程控制以下I/O部件,完成指定任務)
1、 四個8位通用I/O埠,對應引腳P0、P1、P2和P3;
2、 兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1)
3、 一個串列通信介面;(SCON,SBUF)
4、 一個中斷控制器;(IE,IP)
針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有埠的定義。針對MCS51系列單片機的C語言擴展變數類型。
C語言編程基礎:
1、 十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。
2、 如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。
3、 ++var表示對變數var先增一;var—表示對變數後減一。
4、 x |= 0x0f;表示為 x = x | 0x0f;
5、 TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。
6、 While( 1 ); 表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;}
㈢ 為什麼單片機用c語言開發
單片機產品的成本是非常敏感的。
想用python和ruby和java又沒內存處理器又太慢,想用.net又嫌貴(M¥有wince或micro framework),所以只能用C/C++了,無奈面對單片機的C++編譯器又沒有一個靠譜的,所以就只能用C語言了。
基於成本原因,對於單片機開發來說,最重要的是在極其有限的ROM和RAM中實現最多產品的功能。或者反過來說,實現相同的產品功能,所需要的ROM和RAM越小越好,因為一般來說ROM/RAM越小單片機越便宜。C++的高級特性引起的代碼體積膨脹比C大得多,這一缺陷是致命的。以前有過Embedded C++,去掉了一些標准C++的復雜特性,但是用的人不多,因為單片機產品的業務邏輯一般沒那麼復雜,用C就綽綽有餘。
㈣ 單片機編程可以用c語言嗎
當然可以,去問老師,都會的,在學校里用匯編編單片機的程序只是為了讓你練習匯編語言而已,單片機編程本來就是用c語言編的。
㈤ 單片機C語言
調用庫函數<intrins.h>;
這個函數定義了這些函數:
_crol_字元循環左移
_cror_字元循環右移
_irol_整數循環左移
_iror_整數循環右移
_lrol_長整數循環左移
_lror_長整數循環右移
_nop_空操作8051NOP指令
_testbit_測試並清零位8051JBC指令
因此,在程序里就可以直接使用上面想用的函數了。
當然,你可以在C:\Keil\C51\INC找到。
㈥ 單片機C語言和標準的C有什麼區別
語法一樣,編譯器不同 單片機針對自己的晶元來編譯,標准C一般都指在PC機上進行的,說白了也就是函數庫不同 學標准C就看看《C primer》,譚浩強的《C程序設計》入門也不錯的,不過他的書內容不怎麼全 單片機的你就看你想學的型號了,MCS-51 MCS-96 凌陽……都不同的 最好先看標准C,然後轉單片機
麻煩採納,謝謝!
㈦ 請問單片機所用的C語言,是C還是C++還是C+
單片機分兩種,一種是不帶操作系統的,如51系列,用c和匯編開發,且很多編譯器兩種語言混合使用。另一種帶操作系統,如ARM,把系統移植到單片機後,用c或者c++開發應用程序都可以,具體開系統的
㈧ 用c語言寫51單片機
#include<reg51.h>
#defineucharunsignedchar
sbitkey1=P1^0;
sbitkey2=P1^1;
sbitkey3=P1^2;
sbitkey4=P1^3;
sbitled1=P1^4;
sbitled2=P1^5;
main()
{
if(key1==0)
{
while(key1==0);
led1=0;
led2=1;
}
if(key2==0)
{
while(key2==0);
led1=1;
led2=0;
}
if(key3==0)
{
while(key3==0);
led1=0;
led2=0;
}
if(key4==0)
{
while(key4==0);
led1=1;
led2=1;
}
}
㈨ 單片機和C語言有什麼關系嗎
語法、運算符和變數規則都一樣,由於CPU不同,所以庫函數都不一樣。在普通C中常用的頭文件是stdio.h,在單片機(51為例)常用的頭文件是reg51.h或reg52.h。單片機面向的是硬體環境更多一些。常用函數printf,普通C中輸出到屏幕,單片機中輸出到串口。等等,具體的需要自己去挖掘。
㈩ C語言與單片機C語言的區別 急求
單片機c語言比起普通C語言增加了一些基本的指令,變數的賦值是16進制,當然單片機c語言只牽涉到普通c語言的基礎部分。具體體現在:
1、單片機中C的語法一般都對 ANSI C有些擴展,及一些特殊寫法 如C51擴展的 data xdata bit sbit 一類的,還有一些中斷程序寫法 void int() interrput 1 一類的。
2、C是一門語言,由對應平台的編譯器編譯成對應平台匯編的程序,各平台的匯編不一樣,當然編譯器也不一樣 DOS上的TC2 TC3 WINDOWS上的VC 8051的C51都有自已的編譯器 。具體區別是由編譯器決的,只能參考對應的編譯手冊,即使同種平台不同的編譯器對C的擴展也有不同。
3、單片機c語言編程是基於C語言的單片機編程。單片機的C語言採用C51編譯器(簡稱C51)。由C51產生的目標代碼短,運行速度高,存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言PL/M51語言目標代碼混合使用。
C51本質就是C,是為在單片機上使用C而出來的,如果C不牢固,還是多掌握一點C再學C51,不過新增的知識也不少,而且基本上跟C無關。
4、C只是一種高級語言。它除具有一般高級語言的功能特性外,它可以很好的操作底層的硬體介面。在C語言的基礎上,如果你把一些單片機的埠或特殊功能寄存器加於定義,使之方便於在 寫語句的時候,直接直觀的編寫。這樣就差不多是單片機C語言。
C語言的特性差不多都可以用於單片機C語言,因為它們的編譯機理都是一樣的。
(10)單片機用c擴展閱讀:
C語言:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
單片機的C語言:
單片機軟體設計使用C語言作為編程開發軟體,採用模塊化的程序結構,設計了按鍵模塊程序、RFID模塊程序、日歷時鍾模塊程序、GPRS模塊程序、顯示存儲模塊程序等,並編寫系統主程序,將五個程序模塊組合在一起,實現單片機控制系統的整體功能。
51單片機支持三種高級語言,即PL/M,C和BASIC。C語言是一種通用的程序設計語言,其代碼率高,數據類型及運算符豐富,並具有良好的程序結構,適用於各種應用的程序設計,是目前使用較廣的單片機編程語言。
單片機的C語言採用C51編譯器(簡稱C51)。有C51產生的目標代碼短,運行速度高,所需存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言或PL/M51語言目標代碼混合使用
C語言-網路
單片機C語言-網路