前 言
C語言是目前最為基礎、最為流行的程序設計語言,具有簡潔、緊湊、靈活、實用、高效、可移植性好等優點。C語言的數據類型豐富,可直接面向機器,既可用來編寫系統程序,又可用來編寫應用程序。目前,C語言已是嵌入式系統應用編程中最為重要的編程語言,是嵌入式應用學子不可或缺的編程語言。
本教材在編寫策略上,相比傳統C語言程序設計教材有較大的突破。將C語言與嵌入式應用領域緊密結合,將C語言課程與單片機課程有機融合,突顯C語言學習的應用性,做到有的放矢,又保證單片機學習的系統性,充分體現C語言與單片機在電子產品設計中的應用性。本教材是在大學“C語言課程”與“單片機課程”融合的背景下,選用當前市場占用率最高的STC單片機為教學平臺,以代表STC最新、最高水平的STC15W4K32S4系列單片機為教學機型,圍繞STC大學合作計劃贈送STC15實驗箱開發的。本書是STC大學計劃推薦教材,STC高性能單片機聯合實驗室上機實踐指導教材,STC杯單片機系統設計大賽參考教材,是STC推薦的全國大學生電子設計競賽STC單片機參考教材。使用本書作為教材的院校將優先免費獲得STC可仿真的STC15系列實驗箱的支持(主控芯片為STC可仿真的IAP15W4K58S4)。
本書注重實踐性、應用性與工程性,理論聯系實際,書中大部分例程具有一定的單片機應用系統功能,實驗、實踐操作性強。全書共13章,包括C語言概述、STC單片機開發環境的建立、IAP15W4K58S4單片機的存儲器與I/O口、函數、順序程序結構與應用編程、選擇程序結構與應用編程、循環程序結構與應用編程、數組與指針、IAP15W4K58S4單片機的定時/計數器、IAP15W4K58S4單片機中斷系統、IAP15W4K58S4單片機的串行口、C語言構造數據類型、IAP15W4K58S4單片機應用系統設計等。
為便于教學,向采用本教材教學的教師免費提供電子課件與例程的源程序。
本書由丁向榮編著,由STC單片機創始人姚永平先生主審。
由于編者水平有限。書中定有疏漏和不妥之處,敬請讀者不吝指正!書中相關勘誤或信息也會動態地公布在STC官網上:www.stcmcu.com。您有什么建議,可發電子郵件到:dingxiangrong65@163.com,與作者進一步溝通與交流
作 者
2015年6月于廣州
?
?
序
21世紀全球全面進入了計算機智能控制/計算時代,而其中的一個重要方向就是以單片機為代表的嵌入式計算機控制/計算。由于最適合中國工程師/學生入門的8051單片機有30多年的應用歷史,絕大部分工科院校均有此必修課,有幾十萬名對該單片機十分熟悉的工程師可以相互交流開發/學習心得,有大量的經典程序和電路可以直接套用,從而大幅降低了開發風險,極大地提高了開發效率,這也是STC.宏晶科技/南通國芯微電子有限公司基于8051系列單片機產品的巨大優勢。
Intel 8051技術誕生于上世紀70年代,不可避免地面臨著落伍的危險,如果不對其進行大規模創新,我國的單片機教學與應用就會陷入被動局面。為此,STC.宏晶科技對8051單片機進行了全面的技術升級與創新,經歷了STC89/90、STC10/11、STC12、STC15系列,累計上百種產品:全部采用Flash技術(可反復編程10萬次以上)和ISP/IAP(在系統可編程/在應用可編程)技術;針對抗干擾進行了專門設計,超強抗干擾;進行了特別加密設計,如STC15系列現無法解密;對傳統8051進行了全面提速,指令速度最快提高了24倍;大幅提高了集成度,如集成了A/D、CCP/PCA/PWM (PWM還可當D/A使用)、高速同步串行通信端口SPI、高速異步串行通信端口UART、定時器、看門狗、內部高精準時鐘(±1%溫飄,-40℃ ~ +85℃之間,可徹底省掉外部昂貴的晶振)、內部高可靠復位電路(可徹底省掉外部復位電路)、大容量SRAM、大容量EEPROM、大容量Flash程序存儲器等。針對大學教學,現STC15系列一個單芯片就是一個仿真器,定時器改造為支持16位自動重載(學生只需學一種模式),串行口通信波特率計算改造為[系統時鐘/4/(65536?重裝數)],極大地簡化了教學,針對實時操作系統RTOS推出了不可屏蔽的16位自動重載定時器,并且在最新的STC-ISP燒錄軟件中提供了大量的貼心工具,如范例程序/定時器計算器/軟件延時計算器/波特率計算器/頭文件/指令表/Keil仿真設置等。封裝也從傳統的PDIP40發展到DIP8/DIP16/DIP20/ SKDIP28,SOP8/SOP16/SOP20/SOP28,TSSOP20/TSSOP28,DFN8/QFN28/QFN32/QFN48/ QFN64,LQFP32/LQFP48/LQFP64S/LQFP64L,每個芯片的I/O口從6個到62個不等,價格從0.89元到5.9元不等, 極大地方便了客戶選型和設計。
2014年4月,STC宏晶科技重磅推出了STC15W4K32S4系列單片機,寬電壓工作范圍,不需要任何轉換芯片,STC15W4K32S4系列單片機可直接通過電腦USB接口進行ISP下載編程,集成了更多的SRAM(4K 字節)、定時器7個(5個普通定時器+CCP定時器2)、串口(4個),集成了更多的高性能部件(如比較器、帶死區控制的6路15位專用PWM等);開發了功能強大的STC-ISP在線編程軟件,包含了項目發布、脫機下載、RS-485下載、程序加密后傳輸下載、下載需口令等功能,并已申請專利。IAP15W4K58S4一個芯片就是一個仿真器(OCD,ICE),人民幣5.6元,是全球第一個實現一個芯片就可以仿真的,再也不需要啥J-Link/D-Link了。
在中國民間草根企業掌握了Intel 8051單片機技術,以“初生牛犢不怕虎”的精神,擊潰了歐美競爭對手之后,站在8051單片機發展的前沿,正在向32位前進的途中,STC感恩社會,回饋社會,全力支持我國的單片機/嵌入式系統教育事業,STC大學推廣計劃正在如火如荼地進行中,免費向一本、二本大學贈送可仿真的STC15系列實驗箱(仿真芯片IAP15W4K58S4),共建STC高性能單片機聯合實驗室。 本教材為STC大學推廣計劃的合作教材,也是STC杯單片機系統設計大賽的推薦教材。
對大學計劃與單片機教學的看法
STC大學計劃在如火如荼的進行中,第九屆“STC杯單片機系統設計大賽”剛成功落幕,全國數百所高校,1100支隊伍參賽;在國內多所大學建立了STC高性能單片機聯合實驗室,已建和在建的如上海交通大學、復旦大學、同濟大學、浙江大學、南京大學、東南大學、吉林大學、哈爾濱工業大學、哈爾濱工業大學(威海)、東北大學、蘭州大學、西安交通大學、西北工業大學、西北農林科技大學、南開大學、天津大學、中山大學、廈門大學、山東大學、四川大學、成都電子科技大學、中南大學、湖南大學、中國農業大學、中國海洋大學、中央民族大學、北京師范大學、北京航空航天大學、南京航空航天大學、沈陽航空航天大學、南昌航空大學、北京理工大學、大連理工大學、華南理工大學、南京理工大學、武漢理工大學、華東理工大學、太原理工大學、上海理工大學、浙江理工大學、河南理工大學、東華理工大學、蘭州理工大學、天津理工大學、天津工業大學、哈爾濱理工大學、哈爾濱工程大學、合肥工業大學、北京工業大學、南京工業大學、浙江工業大學、廣東工業大學、沈陽工業大學、河南工業大學、北京化工大學、北京工商大學、華北電力大學(北京)、華北電力大學(保定)、長安大學、西南大學、西南交通大學、福州大學、南昌大學、東華大學、上海大學、蘇州大學、江南大學、河海大學、江蘇大學、安徽大學、新疆大學、石河子大學、齊齊哈爾大學、中北大學、河北大學、河南大學、黑龍江大學、揚州大學、南通大學、寧波大學、深圳大學、北京林業大學、南京林業大學、東北林業大學、南京農業大學、大連海事大學、西安電子科技大學、杭州電子科技大學、桂林電子科技大學、南京郵電大學、西安郵電大學、西安科技大學、河南科技大學、天津財經大學、南京財經大學、首都師范大學、華南師范大學、上海師范大學、沈陽師范大學、河南師范大學、中國計量學院、中國石油大學、中國礦業大學等國內著名高校,以及廣東輕工職業技術學院、深圳信息職業技術學院、深圳職業技術學院等著名的職業高校。
上海交通大學/西安交通大學/浙江大學/山東大學/成都電子科技大學等著名高校的多位知名教授使用STC 1T 8051創作的全新教材也在陸續推出中。多所高校每年都有用STC單片機進行的全校創新競賽,如杭州電子科技大學/南通大學/湖南大學/哈爾濱工業大學(威海)/山東大學等。
現在學校的學生單片機入門到底應該先學32位好還是先學8位的8051好?我覺得還是8位的8051單片機好。因為現在大學嵌入式只有64個學時,甚至只有48個學時,學生能把8位的8051單片機學懂做出產品,今后只要給他時間,他就能觸類旁通了。但如果也只給48個學時去學ARM,學生沒有學懂,最多只能搞些函數調用,沒有意義,培養不出真正的人才。所以大家反思說,還是應該先以8位單片機入門。C語言要與8051單片機融合教學,大一第一學期就要開始學(現在有些中學的課外興趣小組都在學STC的8051 + C語言),大三學有余力的學生再選修32位嵌入式單片機課程。
對大學工科非計算機專業C語言教學的看法
再講講C語言,現在工科非計算機專業講C語言的書多是空中飄著,落不著地,學完之后不知道干什么。以前我們學BASIC/C,學完用DOS系統,也在DOS下開發軟件,F在學生學完C,要從Windows去返回DOS運行,學的C也不能在8051上運行。嵌入式C語言有多個版本,國內Keil C 流行,現我們也在開發我們中國人自己的C編譯器,F在學標準C語言,沒辦法落地了,學完了,PC上干不了事,單片機上也動不了
丁向榮,男,廣東輕工職業技術學院教授,多年從事單片機技術相關教學及科研工作,并積極參與和推進新型單片機在國內的研發與普及,其編寫的單片機教材在我社出版后,獲得市場的廣泛認可。