單片機應用編程技巧100問1.C語言和匯編語言在開發單片機時各有哪些優缺點?答:匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少、程序執行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。C語言是一種結構化的高級語言。其優點是可讀性好,移植容易,是普遍使用的一種計算機語言。缺點是占用資源較多,執行效率沒有匯編高。對于目前普遍使用的RISC架構的8bit MCU來說,其內部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機器碼,很容易出現ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應一個機器碼,每一步執行什幺動作都很清楚,并且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。所以在單片機開發中,我們還是建議采用匯編語言比較好。2.C或匯編語言可以用于單片機,C++能嗎?答:在單片機開發中,主要是匯編和C,沒有用C++的。3.搞單片機開發,一定要會C嗎?答:匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少、程序執行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。對于目前普遍使用的RISC架構的8bit MCU來說,其內部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機器碼,很容易出現ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應一個機器碼,每一步執行什么動作都很清楚,并且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。所以在資源較少單片機開發中,我們還是建議采用匯編語言比較好。
上傳時間: 2013-12-10
上傳用戶:busterman
//芯片資料請到www.elecfans.com查找 //DS1820 C51 子程序//這里以11.0592M晶體為例,不同的晶體速度可能需要調整延時的時間//sbit DQ =P2^1;//根據實際情況定義端口 typedef unsigned char byte;typedef unsigned int word; //延時void delay(word useconds){ for(;useconds>0;useconds--);} //復位byte ow_reset(void){ byte presence; DQ = 0; //pull DQ line low delay(29); // leave it low for 480us DQ = 1; // allow line to return high delay(3); // wait for presence presence = DQ; // get presence signal delay(25); // wait for end of timeslot return(presence); // presence signal returned} // 0=presence, 1 = no part //從 1-wire 總線上讀取一個字節byte read_byte(void){ byte i; byte value = 0; for (i=8;i>0;i--) { value>>=1; DQ = 0; // pull DQ low to start timeslot DQ = 1; // then return high delay(1); //for (i=0; i<3; i++); if(DQ)value|=0x80; delay(6); // wait for rest of timeslot } return(value);} //向 1-WIRE 總線上寫一個字節void write_byte(char val){ byte i; for (i=8; i>0; i--) // writes byte, one bit at a time { DQ = 0; // pull DQ low to start timeslot DQ = val&0x01; delay(5); // hold value for remainder of timeslot DQ = 1; val=val/2; } delay(5);} //讀取溫度char Read_Temperature(void){ union{ byte c[2]; int x; }temp; ow_reset(); write_byte(0xCC); // Skip ROM write_byte(0xBE); // Read Scratch Pad temp.c[1]=read_byte(); temp.c[0]=read_byte(); ow_reset(); write_byte(0xCC); //Skip ROM write_byte(0x44); // Start Conversion return temp.x/2;}
上傳時間: 2013-11-03
上傳用戶:hongmo
單片機教程內容有:CS-51單片機實用子程序庫,單片機編程入門26講,C51單片機C語言學習,單片機C語言教程,單片機應用等等。
上傳時間: 2013-10-17
上傳用戶:aysyzxzm
智能小車
標簽: 智能小車
上傳時間: 2013-10-09
上傳用戶:swaylong
小車
標簽: 智能小車
上傳時間: 2013-11-08
上傳用戶:geshaowei
今天,幾乎所有電子設備里面都包含了嵌入式的軟件系統。這些軟件隱藏在我們的手表里,錄像機里,手機里,甚至可能在烤面包中。這本書就是要教你怎樣在嵌入式系統中使用C和C的派生語言C++。即使你已經知道如何編寫嵌入式軟件,你還是可以從這本書里學到很多東西。 合適就看看吧。
標簽:
上傳時間: 2014-01-10
上傳用戶:徐孺
Source files for pxa ac97 sound driver The packet contains the files that is listed below driver files /SOURCE/drivers/sound Makefile ac97.c ac97.h ac97_codec.c pxa-ac97.c pxa-audio.c pxa-audio.h sound_core.c /SOURCE/include/linux soundcard.h
標簽: files contains Source driver
上傳時間: 2013-12-31
上傳用戶:qunquan
拷貝構造和賦值操作符,C#和本機 C++ 代碼的互用性
標簽: 操作符
上傳時間: 2014-01-25
上傳用戶:youlongjian0
文件功能 44binit.s----中斷初始化,存儲器,堆棧,系統初始化,建立C程序運行環境。 mencfg.s-----定義存儲器延時等參數 option.s-----定義系統時鐘頻率等 main.c-------主函數 44blib.c-----S3C44B0X的一些自己編寫的庫文件
上傳時間: 2015-04-14
上傳用戶:yuchunhai1990
這是我的課程設計 由于時間有限,程序難免有不足。 還請多多指教。 程序建議不要在win2000和win xp的cmd下運行。 推薦在win98或純dos中裝有UCDOS中文DOS平臺下運行。 主菜單程序為main.c 運行此程序,選擇相應的菜單,即可運行查看到其他程序。 wnl.c萬年歷 adstd.c 學生數據庫 ply.c小蜜蜂(UFO)游戲 tlife 生存模擬 但是要求main.c和其他程序的執行文件必須在同一目錄里(文件夾)。否則連接其他程序將失敗。 建議直接運行我已經編譯好的執行文件(在ok目錄下)運行main.exe即可通過菜單對四個程序進行調用。 如果發現不能正常使用本程序,請與我聯系。 寢室電話:0732-8370551 7324474 QQ176141729 email:coynnbai@163.com 學生:陳歡 班級:03級計算機6班
標簽:
上傳時間: 2014-01-27
上傳用戶:wuyuying