關於intrins.h頭文件的介紹,做流水燈時候更方便

先來個示例。。循環左移。。體現在開發板上是流水燈(從左到右)

#include <reg52.h>
#include<intrins.h>
#define uchar unsigned char

void delay(int n)
{
	while(n--);	
}

void main()
{
	uchar temp;
	
        temp=0xfe;//1111 1110
	delay(51000);
	while(1)
	{
		
		P1=temp;
		temp=_crol_(temp,1);//第一次後temp=1111 1101
       <span style="white-space:pre">	</span>	delay(51000);
		
	}
}

intrins.h頭文件中有如下函數及其作用


_crol_ 字符循環左移     //將char型變量循環向左(右)移動指定位數後返回
_cror_ 字符循環右移
_irol_ 整數循環左移
_iror_ 整數循環右移
_lrol_ 長整數循環左移
_lror_ 長整數循環右移
_nop_ 空操作 (相當於8051 NOP 指令)
_testbit_測試並清零位 (相當於8051 JBC 指令)//相當於JBC bitvar測試該位變量並跳轉同時清除

原型是

unsigned char _crol_/_cror_ (unsigned char val,unsigned char n);
unsigned int _irol_(unsigned int val,unsigned char n);
unsigned int _lrol_(unsigned int val,unsigned char n);
void _nop_ (void);_nop_產生一個NOP 指令,該函數可用作C 程序的時間比較。C51編譯器在_nop_函數工作期間不產生函數調用,即在程序中直接執行了NOP 指令。
bit _testbit_(bit x);
_testbit_產生一個JBC 指令,該函數測試一個位,當置位時返回1,否則返回0。如果該位置爲1,則將該位復位爲0。8051 的JBC 指令即用作此目的。_testbit_只能用於可直接尋址的位;在表達式中使用是不允許的。

發佈了47 篇原創文章 · 獲贊 29 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章