找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 11834|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)編程和平時(shí)c語言編程的區(qū)別

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:470571 發(fā)表于 2019-1-20 09:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我這個(gè)問題主要是想問,單片機(jī)與電腦在對(duì)c語言代碼處理上有什么不同,不同在哪里,為什么用理解c語言編程的思路卻寫不好單片機(jī)編程等問題,希望有dalao能給我些解釋,在下是個(gè)菜鳥萌新,實(shí)在感謝如果有dalao可以給我解答

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2019-1-20 10:41 | 只看該作者
計(jì)算機(jī)只能識(shí)別機(jī)器碼,即0101,根據(jù)這些有序排列的機(jī)器碼的含義(即硬件指令=這些機(jī)器碼),來運(yùn)行程序。任何語言的程序最終都必須轉(zhuǎn)成機(jī)器碼,否則計(jì)算機(jī)不認(rèn)識(shí)。
但0101的機(jī)器碼太不方便記意了。于是就用方便記意的語句代替它,這就產(chǎn)生了兩個(gè)問題:
1、用什么語句替代機(jī)器碼?
2、誰把它再譯回到機(jī)器碼?
計(jì)算機(jī)是外國人發(fā)明的,自然用了英文的語句,不過又帶來了一個(gè)新的問題:
一個(gè)語句替代多少條機(jī)器碼指令?這是回答你問題的關(guān)鍵了:
匯編語言:一個(gè)語句替代一條機(jī)器碼指令,因此它最接近機(jī)器碼,最靈活,也最難掌握。
C語言:一個(gè)語句替代一條或多機(jī)器碼指令,因此它效率高,但不靈活。
至于“誰把它再譯回到機(jī)器碼?”,編程平臺(tái)幫你完成了,最常用的“翻譯”是KELL。
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2019-1-20 10:58 | 只看該作者
本帖最后由 yzwzfyz 于 2019-1-22 14:38 編輯

明白上述的道理后,就會(huì)明白:
C是由若干條匯編語句組成的。但這些,用C的人看不出來,因?yàn)镃不關(guān)心匯編,就沒有必要展示給你看,不過想看也看得到,每次對(duì)C程序編譯時(shí),也會(huì)生成匯編代碼。
由于C建立在匯編的基礎(chǔ)上,所以它的規(guī)矩多且嚴(yán)格,稍不小心,平臺(tái)就不認(rèn)識(shí),C語言強(qiáng)力地依賴庫函數(shù)(各種子程序),但通俗易懂易掌握。
匯編則只依據(jù)CPU的指令系統(tǒng)寫程序,天馬行空,任君游。但要求程序員有很強(qiáng)的邏輯、數(shù)學(xué)水平。
例如:開方。對(duì)C語言是一句話的事,而匯編,如你沒有很好的數(shù)學(xué)基礎(chǔ),是根本無法想像得出來的。不過最終的機(jī)器碼目標(biāo)還是一致的。雖然C是一語話的事,也是由匯編寫而來的,只不過不需要你寫,而是前輩們用匯編寫好了,做成了C函數(shù)庫,你直接引用就可以了。
記。河(jì)算機(jī)、單片機(jī)只認(rèn)識(shí)機(jī)器碼!
回復(fù)

使用道具 舉報(bào)

地板
ID:277550 發(fā)表于 2019-1-20 11:50 | 只看該作者

keil安裝后,在C51\hlp中有c51.chm 幫助文件,可以看語法等知識(shí)
回復(fù)

使用道具 舉報(bào)

5#
ID:439075 發(fā)表于 2019-1-20 13:18 | 只看該作者
單片機(jī)也可以用C語言,和PC機(jī)C語言相比,算法是一樣的,只是單片機(jī)編程要熟悉一些單片機(jī)的端口,內(nèi)部外設(shè)資源的配置等,這方面宏定義及指針變量用得較多。
回復(fù)

使用道具 舉報(bào)

6#
ID:469417 發(fā)表于 2019-1-20 23:47 | 只看該作者
本帖最后由 刀刀見紅 于 2019-1-21 04:21 編輯

區(qū)別?區(qū)別就如同當(dāng)初你上學(xué),吃穿都是你父母給你提供,你只上學(xué)就行,現(xiàn)在你成家了,吃穿要自己解決,要工作,也許邊工作邊學(xué)習(xí)!同理,當(dāng)初在PC上玩C,鍵盤是怎樣輸入,顯示器是怎樣顯示不用你操心,現(xiàn)在獨(dú)立了,那輸入輸出依然還是存在的,那就得你自己來認(rèn)識(shí)他,操作他!所以說懂了C只是萬里長征才走出了第一步,后面路還長,還要勤學(xué)苦練!

評(píng)分

參與人數(shù) 5黑幣 +92 收起 理由
jinsheng7533967 + 35 很給力!
Trump1438 + 15 很給力!
yoxi + 15 很給力!
Sawardeakar + 15
#include51.h + 12 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

7#
ID:142059 發(fā)表于 2019-1-21 03:43 來自手機(jī) | 只看該作者
PC上的C和單片機(jī)的C是差不多的,只有設(shè)計(jì)硬件的函數(shù)才可能用不了,比如scanf,printf等,但是在MDK里printf是可以重定向?qū)崿F(xiàn)調(diào)用,而string.h里的大部分函數(shù)都是可以直接用,因?yàn)槎际且恍┳址幚砗瘮?shù),純軟件,不涉及硬件,說到這應(yīng)該有個(gè)了解了吧,涉及單片機(jī)硬件的就和pc上不同,不涉及就一樣通用。
回復(fù)

使用道具 舉報(bào)

8#
ID:155507 發(fā)表于 2019-1-21 05:47 | 只看該作者
頭文件不同
集成開發(fā)環(huán)境不同。
最關(guān)鍵的是一般來說,嵌入式物理資源遠(yuǎn)比計(jì)算機(jī)少,比如內(nèi)存,緩存之類的

你會(huì)發(fā)現(xiàn)單片機(jī)編程的C語言和標(biāo)準(zhǔn)C會(huì)有差別,很多單片機(jī)C語言在標(biāo)準(zhǔn)C里是不被承認(rèn)的,這個(gè)也能說明單片機(jī)和電腦的區(qū)別吧。
回復(fù)

使用道具 舉報(bào)

9#
ID:342197 發(fā)表于 2019-1-21 09:58 | 只看該作者
物理層的硬件結(jié)構(gòu)大不相同,但是單片機(jī)C語言與計(jì)算機(jī)的C語言算法大致一致。
回復(fù)

使用道具 舉報(bào)

10#
ID:168777 發(fā)表于 2019-1-21 11:28 | 只看該作者
其實(shí)主要的語法是一樣的,只不過C語言只是一個(gè)實(shí)現(xiàn)結(jié)果的過程,是一種工具,單片機(jī)的實(shí)現(xiàn)不光要會(huì)c語言的語法知識(shí),還需要掌握單片機(jī)的硬件知識(shí)。這個(gè)是從單片機(jī)的思路來編程
回復(fù)

使用道具 舉報(bào)

11#
ID:453974 發(fā)表于 2019-1-21 12:04 | 只看該作者
自認(rèn)為沒啥區(qū)別,高級(jí)芯片,編程的語言該用上的也都用上了
回復(fù)

使用道具 舉報(bào)

12#
ID:21069 發(fā)表于 2019-1-21 13:17 | 只看該作者
后面的大家說的越說越靠譜,前面的有一種文不對(duì)題的感覺!樓主現(xiàn)在是碰到了C與單片機(jī)學(xué)習(xí)方法不同的困惑,單片機(jī)多了許多的硬件的東西(并不是說PC就沒有,只是學(xué)C時(shí)不用我們理會(huì)),也多了許多的電路,許多不同屬性的新器件。理所當(dāng)然的這與學(xué)C的思路就不一樣了.C學(xué)的好,并不代表就能搞定單片機(jī),假如說不會(huì)模電數(shù)電,那就是硬傷,想要的結(jié)果整不出來。調(diào)試遇到的問題也難分出是硬件還是軟件.單片機(jī)內(nèi)部還有獨(dú)有的定時(shí)器,中斷,ADC等資源,掌握不了這些就是軟傷了。所以說學(xué)單片機(jī)要掌握的東西很多,是綜合技能很強(qiáng)的事物!路很長,多加油!

評(píng)分

參與人數(shù) 4黑幣 +80 收起 理由
areyouok + 35 很給力!
#include51.h + 15 很給力!
刀刀見紅 + 15 贊一個(gè)!
shuisheng + 15 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

13#
ID:319023 發(fā)表于 2019-1-21 17:37 | 只看該作者
單片機(jī)編程就是更偏向硬件,C語言 編程自己定義就好了。
回復(fù)

使用道具 舉報(bào)

14#
ID:232052 發(fā)表于 2019-1-23 18:25 | 只看該作者
其實(shí)本質(zhì)是一樣的,只是用電腦編程是遵守電腦的規(guī)則去編程,用單片機(jī)是用單片機(jī)的規(guī)則去編程。
回復(fù)

使用道具 舉報(bào)

15#
ID:472248 發(fā)表于 2019-1-23 22:06 | 只看該作者
首先頭文件是不同的
所需實(shí)現(xiàn)的功能也不同
單片機(jī)c語言一般不會(huì)有返回值
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表