計算機(jī)C51內(nèi)部函數(shù)等課件_第1頁
計算機(jī)C51內(nèi)部函數(shù)等課件_第2頁
計算機(jī)C51內(nèi)部函數(shù)等課件_第3頁
計算機(jī)C51內(nèi)部函數(shù)等課件_第4頁
計算機(jī)C51內(nèi)部函數(shù)等課件_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、C51內(nèi)部函數(shù) 有一些函數(shù),用匯編語言編寫非常直接、簡單、目標(biāo)代碼短,而用C編寫卻很長。對于用匯編語言編寫的這類庫函數(shù)叫內(nèi)部函數(shù)。內(nèi)部函數(shù)在C51中已按C的規(guī)范用匯編語言寫好。用戶右以直接當(dāng)作C語言函數(shù)調(diào)用。內(nèi)部函數(shù)原型說明放在intrans.h文件中。左/右移多位函數(shù)格式:_crol_/_iror_/_lrol_(參數(shù)表);原型說明:unsigned char _crol(unsigned char val,unsigned char n);unsigned int _irol(unsigned val,unsigned char n);unsigned long _lrol(unsigne

2、d long val,unsigned char n);第一個參數(shù)是被移位的變量,第二個是欲移位位數(shù):無符號字符型變量為0-7;無符號整型為0-15(右移為0-32);無符號長整型是0-31。例:#include void main() unsigned int y; y=0 x00FF; y=_irol_(y,4); 空操作函數(shù)格式:void _nop_(void);作用:產(chǎn)生單一匯編指令nop.執(zhí)行該函數(shù)實際上無實質(zhì)性操作,僅是延時一個機(jī)器周期.例:從P0.7輸出三個機(jī)器周期寬的正脈沖 P0 &=0 x80; P0 |=0 x80; _nop_; _nop_; P0 &= 0 x80;位測

3、試函數(shù)格式: bit _testbit_(bit x);說明:參數(shù)和返回值必須是位變量. 該函數(shù)產(chǎn)生匯編指令JBC X,- -。用于測試位變量是X,是0,還是1,并將其值經(jīng)CY返回.例: #include bit flag; char val; void main() if(!_teatbit_(flag) val- -; JBCflag ? C002 DECval C002: RET 檢查浮點數(shù)類型函數(shù)格式:_chkfloat_(float val);作用:檢查浮點數(shù)val的類型。返回值意義0標(biāo)準(zhǔn)浮點數(shù)1浮點02+INF正溢出3-INF負(fù)溢出4NaN非數(shù)函數(shù)式宏定義 行末標(biāo)志前加,則其后語句

4、將作為單個預(yù)處理命令.函數(shù)式宏定義聲明正式參數(shù)名,放在括號中,用逗號分隔;左括號與宏名之間不能有空格,如果出現(xiàn)空格,則定義成不帶參數(shù)的宏和以左括號開始的宏體.正式參數(shù)名應(yīng)為標(biāo)識符,參數(shù)不能重名,宏體中不一定要出現(xiàn)這些參數(shù)名.宏參數(shù)中可出現(xiàn)花括號和下標(biāo)方括號,但不能包含逗號.#define WR573(dat)P0 = dat;LE573 = 1;_nop_();LE573 = 0;中斷源的符號、名稱及產(chǎn)生的條件 INT0:外部中斷0,由P32端口線引入,低電平或下跳沿引起。INT1:外部中斷1,由P33端口線引入,低電平或下跳沿引起。T0:定時器計數(shù)器0中斷,由T0計滿回零引起。T1:定時器計

5、數(shù)器l中斷,由T1計滿回零引起。TIRI:串行IO中斷,串行端口完成一幀字符發(fā)送接收后引起。第一個任務(wù):流水燈以74HC573擴(kuò)展輸出端口的方法驅(qū)動8只LED,低電平點亮74HC573輸入接P0端口,輸出接8只LED,P1.4控制LED.第二個任務(wù):動態(tài)數(shù)碼管掃描兩片74HC573驅(qū)動動態(tài)數(shù)碼管,輸入端都接到P0端口,I/O方式控制。P1.2和P1.3分別控制兩個74HC573的LED信號,P1.2對應(yīng)位選、P1.3對應(yīng)段選。基礎(chǔ)知識 七段數(shù)碼管加上一個小數(shù)點,共計8段。因此LED顯示器提供的編碼正好是一個字節(jié)。0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d

6、 0 x07 0 x7f 0 12 3 4 5 6 7 80 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 0 x00 9 A B C D E F 無顯示靜態(tài)顯示方式 LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復(fù)雜,成本較高。動態(tài)顯示 動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。

7、所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。 定時器初值 計算設(shè)單片機(jī)晶振頻率為6MHZ,求方式1時的定時器初值 定時時間=(2X-初值)機(jī)器周期 X由定時器工作方式?jīng)Q定,分別為13、16、8. 機(jī)器周期12/單片機(jī)晶振頻率 fosc。由以上公式可知:定時lms所需的機(jī)器周期為2us.個數(shù)為500D,即0lF4H,工作方式為1(16位方式)時定時初值是01F4H.定時/計數(shù)器編程應(yīng)用初始化程序應(yīng)完成如下工作:1.對TMOD賦值,以確定T0和T1的工作方式。2.計算初值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論