久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> 關于單片機的C語言編程基礎知識(初學注意)

關于單片機的C語言編程基礎知識(初學注意)

關鍵字:單片機 8051 C語言 作者:admin 來源:不詳 發布時間:2018-05-19  瀏覽:64

80C51上的C語言編程 C51的特色:


(1)學習過C語言的同學在對單片機有了基本了解之后,就可以開始試著寫一兩個基于單片機的C語言的程序了。C51語言繼承了ANSI C 的絕大部分的特性,基本的語法相同,同學們上手會比較快。但是,由于C51語言是對硬件進行控制的編程語言,其本身又在硬件結構上有所擴展以增強C語言對硬件的控制,如關鍵字sbit,data,code等(后面會講他們是做什么的)。


(2)因為單片機不是我們平時用的計算機,他的英文名為MCU(微控制器),特點體現在這個“微”字。因而,它里面的硬件資源是非常少的,所以你在寫程序的時候就要注意對RAM(存儲數據)和ROM(存儲程序)的使用。說白了,就是也程序的時候要盡量精簡,如各種算法,不要讓系統負擔太大。少用浮點運算,能夠使用unsigned的無符號型數據,就不要使用有符號的(當你寫程序時,你會發現很多位置都用的unsigned,不像我們在ANSI C里面不同,不太注意,C51里面就非常注意資源的控制)。避免乘除,多用移位運算(寫走馬燈程序時,會使用到,很有意思,不是我們想象的用循環控制)。


基本的特性了解之后,我們來講下,具體的東西:


首先,是C51針對硬件控制增加的一些關鍵字,數據類型。


(1)bit : 和我們平時用的int,char相同,只不過int是兩個字節(16位,16bit),char是單字節(8位,8bit),bit就是一位,取值范圍是0和1,類似windows編程里的BOOL。


(2)sbit : sbit是對應可位尋址空間的一個位,可位尋址區:20H~2FH。一旦用了sbit xxx = REGE^6這樣的定義(例如,sibt a = P0^0,定義P0口的第0位為變量a,此時對a賦值0或者1時,就是在對P0口的第0位進行控制,賦低電平或高電平),這個sbit量就確定地址了。(sbit大部分是用在特殊功能寄存器中的,方便對寄存器的某位進行操作的。)


(3)sfr:用于定義特殊功能寄存器(8位的)(在程序中會寫頭文件#include,在Keil中右鍵點擊打開reg51.h,就可以看到很多sfr的定義),如sfr P0 = 0x80,就定義了端口P0。


(4)sfr16:同上用于16位的


其次,C51還提供了對8051所有存儲區的訪問。


8051芯片的存儲區從邏輯上分為內部數據存儲區,外部數據存儲區和程序存儲區(內外統一編址)。


80C51有4KB的內部程序存儲區(片內ROM)(0000H~0FFFH),其中前43單元有特殊用處,0000H~0002H無條件跳轉,0003H~002AH用于存放中斷程序(中斷程序這里不解釋)


256B的內部數據存儲區(片內RAM),分為低128B和高128B,有不同作用(可見硬件資源有多小了吧,所以我們要節省使用),低128B又分為為工作寄存器區,又稱通用寄存器(00H~1FH),位尋址區(20H~2FH,之前的sbit就是對應位尋址空間中的一位),數據緩沖區(30H~7FH,這個區域就是給用戶用得,沒有任何限制,一共80個單位)


高128B為特殊功能寄存器(就是上面說的sfr),具體的內容在很多書上面都有。


http://www.mytutorialcafe.com/Microcontroller%20Special%20Function%20Register.htm


給個英文的sfr的解釋的網址,不過沒必要看,看書就行了。


在這里講這么多的原因是因為C51中在對變量進行聲明的時候還可以明確的指定存儲空間。關鍵字有:DATA,IDATA,BDATA(RAM中高128B),CODE等。


(1)DATA指定RAM中低128B,可以在一個機器周期內直接尋址,尋址速度最快,所以應該把經常使用的變量放在DATA區


例如:unsigned char data system_status = 0;


(2)BDATA指定的是RAM中的位尋址區,在這個區域定義的變量可以進行位操作,什么意思呢?舉例吧


unsigned char bdata status_byte,這里定義變量status_byte,是一個單字節(8位)的數據變量,我們可以對這個變量中的一位進行置0或置1的操作。我們把 status_byte=0x00,即變量里面的8位都置為了0,前面講過一個sbit,用于位尋址區域中的一位,sbit a = status_byte^2;a = 1,表示把變量 status_byte的第2位置為了1(0,1,2,3,4,5,6,7共八位),于是變量 status_byte就等于了0x02;


(3)CODE 程序存儲區,他里面的內容是不變的,我們要使用的一些固定數據存于這個里面就不用占用RAM的空間了,比如我們學習數碼管顯示程序時,數碼管上面的每一個數字都對應一個16進制的數字,我們可以把它存到程序存儲區中去,例如:


unsigned char code table[]={


0x3f,0x06,0x5b,0x4f,


0x66,0x6d,0x7d,0x07,


0x7f,0x6f,0x77,0x7c,


0x39,0x5e,0x79,0x71};


關于特殊功能寄存器sfr的使用,我們以一個簡單的程序為例,在80C51芯片的P0^0上接上一個發光二極管LED,一個電阻RES和一個電源VCC,三者串聯,電流方向是從電源流向P0^0口。給80C51接上電源,接地,晶振,復位電路。如果使用proteus仿真,則這些電路不用接。


在Keil軟件中寫程序


#include


sbit a = P0^0;


void main(){


a = 0;


while(1);


}


因為芯片剛剛上電,P0管教為高電位,我們在程序中把它置為0;電流就可以流過LED,于是LED燈就會發光。并用while(1)讓程序停在這里。


一個最簡單的單片機C語言程序就寫完了。講了這么多希望同學們了解,C51對C語言的擴展有所了解,知道可以通過C語言對硬件進行控制,學會常用的關鍵字。看完全文了嗎?喜歡就一起來點個 贊 吧!

編輯:admin  最后修改時間:2018-05-19

聯系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市南山區桃源街道平山社區平山一路2號南山云谷創業園二期11棟410-411

Copyright © 2014-2026 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网
日本黄色片一级片| 日本激情综合网| 韩国一区二区在线播放| 黑森林精品导航| 99福利在线观看| 成人免费观看cn| 蜜臀av无码一区二区三区| 国产日产欧美一区二区| 国产九九九视频| 99精品一区二区三区的区别| 国产精品久久成人免费观看| 三年中文高清在线观看第6集| 自拍偷拍21p| 在线免费看v片| 亚洲欧美一区二区三区不卡| 天天干天天操天天干天天操| 欧美a级黄色大片| 一卡二卡三卡视频| 精品这里只有精品| 999精品视频在线| 污视频在线观看免费网站| 久久天天东北熟女毛茸茸| 久久久久久www| 黄色国产小视频| www.偷拍.com| av免费观看大全| 99久久久无码国产精品6| www.久久av.com| www.国产在线视频| 天堂在线资源视频| 免费极品av一视觉盛宴| 国产福利视频在线播放| 五月激情五月婷婷| www.av毛片| 亚洲精品综合在线观看| 久久久性生活视频| 黄色小视频免费网站| 一二三四视频社区在线| 日韩av片免费观看| 波多野结衣之无限发射| 奇米影视四色在线| 亚洲精品无码国产| 国产三级国产精品国产专区50| 国产又大又长又粗又黄| 国产午夜福利视频在线观看| 一级 黄 色 片一| 成熟老妇女视频| 国产青草视频在线观看| 国产野外作爱视频播放| 国产精品无码av在线播放| www.亚洲自拍| 北条麻妃av高潮尖叫在线观看| 国产在线视频综合| 91pony九色| 91丨九色丨蝌蚪| 久久久久免费精品| 国产淫片av片久久久久久| 一卡二卡三卡视频| 狠狠精品干练久久久无码中文字幕 | 蜜臀av午夜一区二区三区| 久久观看最新视频| 中文国产在线观看| 91小视频网站| 中文字幕在线观看日| www欧美激情| 亚洲一二三区av| 国产精品久久久久9999小说| 无码aⅴ精品一区二区三区浪潮 | 国产极品粉嫩福利姬萌白酱| a天堂资源在线观看| 日韩专区第三页| 日韩成人三级视频| 日本精品免费视频| 大胆欧美熟妇xx| 久久av综合网| 国产资源在线免费观看| 国产成人黄色片| 狠狠爱免费视频| 天天操天天爱天天爽| 性欧美在线视频| 超碰在线免费观看97| 国产一区二区三区在线免费| 国产视频九色蝌蚪| 狠狠97人人婷婷五月| 亚洲熟妇av一区二区三区| 91极品尤物在线播放国产| 伊人国产在线视频| 9l视频自拍9l视频自拍| 久久99久久99精品| 免费在线观看的毛片| 天天综合天天添夜夜添狠狠添| 黄色网址在线免费看| 777精品久无码人妻蜜桃| 日本激情视频在线| 波多野结衣 作品| 国产精品wwwww| 日韩高清在线一区二区| 青草网在线观看| 日本不卡一区二区在线观看| 2022中文字幕| 狠狠干狠狠操视频| 国产免费观看高清视频| 污免费在线观看| 91淫黄看大片| 欧美日韩性生活片| 美女在线免费视频| 男女爽爽爽视频| 日韩av综合在线观看| 三级av免费看| 第四色婷婷基地| 成人免费观看视频在线观看| 国产精品av免费| 欧美午夜性生活| 夫妻免费无码v看片| 欧美黄色免费网址| 男女视频在线观看网站| 色一情一乱一伦一区二区三区日本| 欧美交换配乱吟粗大25p| 中文字幕在线综合| 国产v亚洲v天堂无码久久久| 欧美一区二区视频在线播放| 国内精品国产三级国产aⅴ久| 波多野结衣家庭教师在线播放| 干日本少妇视频| 善良的小姨在线| 日韩高清在线一区二区| 污视频网站观看| 国产三级三级三级看三级| 5月婷婷6月丁香| 国内自拍在线观看| 国产aaa一级片| 91av在线免费播放| 免费在线观看毛片网站| 日韩精品视频久久| 国产福利影院在线观看| 亚洲色图久久久| 亚洲欧美日韩综合网| 日韩av.com| 最近中文字幕免费mv| 久久福利一区二区| 加勒比成人在线| 日本毛片在线免费观看| 日韩a在线播放| 亚欧激情乱码久久久久久久久| 精品999在线| 国产对白在线播放| 无码中文字幕色专区| 国产熟女高潮视频| 免费一区二区三区在线观看| 高潮一区二区三区| 99久久99久久精品| 可以在线看的黄色网址| 欧美三级午夜理伦三级富婆| 永久免费黄色片| 日本免费成人网| 精品国产成人av在线免| 欧美视频亚洲图片| a级黄色小视频| 午夜剧场在线免费观看| 最新av网址在线观看| 国产精品va无码一区二区| 国产又粗又长又大的视频| 无码毛片aaa在线| 国产熟人av一二三区| 强开小嫩苞一区二区三区网站| 精品久久久久久久久久中文字幕| 91视频免费版污| www插插插无码免费视频网站| 蜜臀久久99精品久久久酒店新书| 美国av在线播放| 青青在线视频免费观看| 不卡中文字幕在线| 糖心vlog在线免费观看| 国产极品尤物在线| 韩国视频一区二区三区| av日韩一区二区三区| 国产三级三级三级看三级| 日b视频免费观看| 午夜剧场在线免费观看| 久久婷婷五月综合色国产香蕉| www激情五月| 国产天堂在线播放| 日韩欧美视频网站| 日韩 欧美 视频| 亚洲精品第三页| www.com操| 免费在线观看的av网站| 成年丰满熟妇午夜免费视频| 一道本在线免费视频| 男人天堂成人在线| 久久久免费视频网站| 国产传媒久久久| 国产在线观看欧美| 欧洲精品视频在线| av电影一区二区三区| 一本之道在线视频| 99精品视频免费版的特色功能| 三级视频中文字幕| 不卡av免费在线| 波多野结衣天堂|