999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

試論C語言在單片機開發中的運用

2014-03-29 09:39:14李宛娜
赤峰學院學報·自然科學版 2014年18期
關鍵詞:單片機

李宛娜

(哈爾濱遠東理工學院,黑龍江 哈爾濱 150025)

試論C語言在單片機開發中的運用

李宛娜

(哈爾濱遠東理工學院,黑龍江 哈爾濱 150025)

對于研究生思想政治教育歷來受到國家的高度重視和關切,以及研究生群體的擴大和未來就業問題.研究生作為高學歷人群,群體多元化的結構,面對當代研究生思想政治教育的現狀,如何有效地解決和正確的分析,成為思想政治教育面臨的重要研究的問題.所以面對研究工作,要全力以赴開辟全新的方式和道路對于當代研究生思想政治教育研究是具有重大意義的.

C語言;單片機;開發

單片機的開發離不開大量的編程和算法設計.而在編程的過程中我們會發現,傳統的單片機編程用的更多的是匯編語言,而諸如C、C++在內的高級編譯語言用的卻很少.面對單片機系統日趨復雜以及功能要求不斷提高的現實,如何在單片機中引入高級語言,已經成為了一種必然的趨勢.

1 單片機及單片機開發的內涵與特征

單片機是以一種智能化工具出現在我們面前的,興起于近代,并且是微電子技術的一個鮮明代表.從計算機系統來說,單片機有兩種類型,即通用系統與嵌入系統,這兩種系統作為兩種類型共同引領著如今計算機系統的發展.單片機具有芯片小、性能強等特點,被廣泛運用于儀器制造、汽車機械以及家用電氣等職能設備之中.

單片機功能的發揮有賴于其背后的開發,這種開發并不是雜亂無序或者任意編碼的,它有著自己的特點.首先,外圍擴展需要使用串行方式,并需要廣泛使用單片機的在片程序存儲器技術;其次,它需要在8位機地位下進行全盤CMOS化.這種特性也就決定了其要借助C語言編程語言.就目前用于單片機開發的語言來說,主要包括匯編語言和以C語言為代表的高級編程語言.兩種編程語言各有千秋,匯編語言具有很高的可控性和簡便性,但C語言則有著很好的移植性和繼承性,因此受到單片機系統研究和開發者的高度重視,C語言在處理器中運用的增多就是最好的證明.

2 C語言的優勢及其運用到單片機開發中的可行性

C語言較匯編語言有著自身諸如可移植性強、繼承性強的優勢,使C語言運用于單片機開成為可能.C語言作為一種高級的編譯語言,有著匯編帶有的那種操作簡便、性能強等特點及強大的可移植性,極大地增加了單片機開發的便捷性.因為C語言倡導使用結構化的設計方式,并且依照自上而下的形式展開,這就使得相關單片機開發人員可以在不了解單片機內部硬件結構信息的情況下對整個存儲單位進行有效、合理的分配,使得單片機程序的運行十分可靠、便捷.

除其可移植性強外,C語言作為一種結構化的編譯程序在程序開發上也有自身的優點.一方面,它功能性強,結構性很好,可以在不同的機型上運行,并且憑借自身強大庫函數以及編譯運算能力而具有很強的可讀性;另一方面,相關程序人員在使用C語言進行編程時,可以專心地進行編程,不需要擔心硬件的不兼容,而且C語言的簡單好記、邏輯性強等特點也減輕了編程人員的壓力.另外,C語言也可以憑借著其修改和擴充簡單的優點而使得在進行模塊化程序設計時,因為其每個模塊都有很好的分工和任務,從而變得尤為簡便.

3 C 語言在單片機開發中的運用實例

在單片機開發中運用C語言時,需要依據專門的運用步驟.首先,我們需要對目標源程序進行編譯,并將目標代碼進行連接和替換;其次,在程序設計完成之后還需要將源程序轉換為單片機所能識別和運行的代碼形式.整個C語言的單片機開發過程可以簡要地概括為軟件安裝、創建C源文件、編譯并調試以及生成HEX文件等幾個步驟環節.

C語言能夠對單片機的系統資源進行合理、有效的分配,而這種分配實際上是以指針結構的合理配置、指針數組和關系理清等方面為前提的.也就是說,要將C語言運用到單片機開發當中,就需要加強對這幾方面的認識和控制.為了更好地說明C語言在單片機中的運用,本文從指針結構、指針尋址這兩個方面進行介紹和說明.

首先,是指針結構.一般來說,C語言中關于指針的聲明一般都是采用類型標識符*指針變量名的形式,而就單片機的存儲結構來說,C語言指針的定義,與普通的C語言定義,有著格式上的不同點,需要設立存儲指針變量的數據存儲區以及存儲指針變量指向數據的存儲區.因此我們在進行指針結構的聲明時,采用不一樣的聲明格式,即:類型標識符[存儲區類型];指針變量名[指針變量存儲區類型].其中,在對數據格式的設定上,主要包括data等幾種,并且在進行指針變量控制時,采用如下的應用格式:

unsigned char xdata indata[6];

unsigned char xdata*data yc;

yc=indata.

在將其進行匯編語言轉換過后,我們發現其編譯結果對應為:

MOV 08H,#00H;

其中0x08與0x09分別是指針變量地地址空間的所在.

其次,是對指針進行尋址.通常來說,在單片機系統中的C語言數組尋址方式與一般系統上的尋址方式是一樣的.由于數組存儲在單片機片內,而片內的RAM資源空間相對來說比較有限,因此我們在進行數組使用時,盡量避開過大的數組,從而簡化其數據結構.實際上,我們在進行指針尋址時,需要實現data區的指針尋址,通過A/D轉換的模式將外部數據轉進單片機之中.比如,在進行十次數據求和時,我們編寫了以下的程序代碼:

unsigned char data inputdata[10];

unsigned int data sum,i;

unsigned char data*data yc;

void main()

{sum=0;

collectdata();

yc=inputdata;

sum+=*yc;

}

當然,在實現指向data區的指針尋址之后,我們還需要實現其指向程序存儲區的指針尋址.然而,就指針指向數據存儲而言,它可以利用指針來實現對函數的調用,而這種調用一般來說需要依照特定的調用格式,即:類型標識符(*指針變量名)([參數1],[參數2]……).在對數據定義完整之后,我們在后續的代碼程序中,就可以使用(*指針變量名)([參數],[參數]……)的代碼對之前編寫好的函數進行調用,例如,我們事先編寫了一個查詢函數scan(),想在之后通過一個鍵盤對其進行調用,其可以用以下代碼實現:

Void scan()

Void main()

{void(*yc)();

Yc=scan;

高校思政實踐課旨在實踐中服務學生的成長與成才。大致流程如下:以實踐教學班級為主要目標,以一個完整學期作為朋輩導師的服務期限,在高年級學生中精心選拔出一批優秀分子作為儲備導師,并在實踐課前給予針對性的培訓,而后將其以“課程導師”的身份配備給每個教學班級,從思路拓展、實踐規劃、資源整合、團隊建設、條件保障、技能學習和提升、實踐過程監控和調整、實踐總結與展望等方面進行引導和幫扶,從而實現共同成長的目的。

For(;;)

{(*yc)();}

}

4 從C51 熱啟動代碼的編制看C語言在單片機開發中的運用

就目前的工業控制計算機來說,其由于缺乏看門狗電路,而在使計算機復位時,讓看門狗發生動作,這也就是習慣上的熱啟動.而在熱啟動的實際過程中,卻因為不允許從頭開始,而使得已有的測量值或計算值復位,并最終導致系統異常.為了應對這一問題,我們通常需要利用程序實現對其冷熱啟動進行判別.一般來說,我們要確立其標志位(通常以某內存單位為準),并讓計算機啟動時首先讀取這些帶有標志位的內容,如果該內容與預先設定的值相同,則稱其為熱啟動,否則為冷啟動.為了實現這一功能,我們設置了一個指針,并且使其指向特定的內存單元0x7f,編制了以下C語言程序:

void main()

{char data*HotPoint=(char*)0x7f;

if((*HotPoint==0xaa)&&(*(--HotPoi-nt)==0xaa))

{/*熱啟動的處理*/}

else

{HotPoint=0x7e;*HotPoint=0xaa;

*(++HotPoint)=0xaa;}

}

然而,我們在對其進行編譯和運行過后發現,無論是熱啟動還是冷啟動,開機后的內存單元復位均為0,這顯然無法滿足熱啟動的要求,因為用C語言編程時,開機時執行的代碼并非是從main()函數的第一句語句開始的.在main()函數的第一句語句執行前要先執行一段“起始代碼”,正是這段代碼執行了清零的工作.為此,我們需要對在編譯過后形成的startup.a51源文件進行修改,然后用編譯程序所附帶的a51.exe程序對startup.a51編譯,得到startup.obj文件,然后用這段代碼代替原來的起始代碼.

〔1〕孫靜.C語言在單片機開發中的應用[J].電子世界,2012(7).

TP368.1

A

1673-260X(2014)09-0026-02

黑龍江省科學技術研究指導項目:實踐教學中機器人技術的應用(12533044)

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 114级毛片免费观看| 国产成人高清精品免费5388| 欧美国产在线看| 美女潮喷出白浆在线观看视频| 久久九九热视频| 香蕉eeww99国产在线观看| 国产精品任我爽爆在线播放6080| 日韩av电影一区二区三区四区| 色婷婷亚洲综合五月| 在线免费不卡视频| 97视频免费在线观看| 婷婷伊人久久| 精品无码人妻一区二区| 亚洲成人免费看| 亚洲高清无在码在线无弹窗| 114级毛片免费观看| 国产成人精品一区二区三区| 欧美亚洲一区二区三区在线| 亚洲第一成年网| 在线播放国产一区| 真人高潮娇喘嗯啊在线观看| 免费国产无遮挡又黄又爽| 狠狠色综合久久狠狠色综合| 欧美日韩va| 亚洲第一网站男人都懂| 毛片基地视频| 国产成人精品日本亚洲| 国产精欧美一区二区三区| 99re热精品视频中文字幕不卡| 97人人做人人爽香蕉精品| 国产午夜小视频| 亚洲成人免费在线| 91久久偷偷做嫩草影院精品| 91精品国产一区自在线拍| 91精品aⅴ无码中文字字幕蜜桃| 一级毛片a女人刺激视频免费 | 日本三级欧美三级| 免费aa毛片| 久久毛片网| 无码啪啪精品天堂浪潮av| 免费看美女自慰的网站| 欧美一区二区三区不卡免费| 国产欧美成人不卡视频| 国产成人久视频免费| 九九热精品免费视频| 国产麻豆va精品视频| 日本亚洲欧美在线| 四虎永久免费地址在线网站| 日本不卡在线| 国产色偷丝袜婷婷无码麻豆制服| 日韩欧美中文在线| 亚洲欧洲国产成人综合不卡 | 在线观看精品自拍视频| 欧美区一区| 青草免费在线观看| 麻豆国产在线观看一区二区| www欧美在线观看| 九九九久久国产精品| 久久精品国产电影| www.狠狠| 亚洲AV无码乱码在线观看代蜜桃| 在线观看无码av五月花| 日韩国产一区二区三区无码| 美女被躁出白浆视频播放| 777国产精品永久免费观看| 亚洲乱码在线播放| 免费全部高H视频无码无遮掩| 亚洲国产综合精品一区| 美女扒开下面流白浆在线试听 | 老司国产精品视频| 中字无码精油按摩中出视频| 国产在线麻豆波多野结衣| 免费va国产在线观看| 色网在线视频| 亚洲伦理一区二区| 狠狠做深爱婷婷久久一区| 在线观看精品自拍视频| 91丝袜美腿高跟国产极品老师| 亚洲一本大道在线| 国产在线视频导航| 麻豆精品在线| 超级碰免费视频91|