#include "intrins.h" unsigned char SystemError sbit SCL= P1^6 //定義串行時鐘線所在口 使用時根據自己的需要 sbit SDA= P1^7 //定義串行數據線所在口 使用時根據自己的需要 #define SomeNOP() {_nop_() _nop_() _nop_() _nop_() }
標簽: sbit SystemError unsigned include
上傳時間: 2015-08-30
上傳用戶:rocketrevenge
c51中的intrins.h庫函數 _crol_ 字符循環左移 _cror_ 字符循環右移 _irol_ 整數循環左移 _iror_ 整數循環右移 _lrol_ 長整數循環左移 _lror_ 長整數循環右移 _nop_ 空操作8051 NOP 指令 _testbit_ 測試并清零位8051 JBC 指令
上傳時間: 2014-01-14
上傳用戶:lili123
12864液晶原程序.#include <reg52.h> #include <intrins.h> typedef unsigned char BYTE typedef bit BOOL sbit rs=P2^0 sbit rw=P2^1 sbit e =P2^2 BYTE code dis[]={"www.zansi.com"} delay(BYTE ms) {
標簽: include unsigned intrins typedef
上傳時間: 2016-04-25
上傳用戶:zsjinju
單字右移1616點陣右移C程序16bit #include<reg51.h> #include<intrins.h> sbit DAT=P1^0 /*"74HC595第14腳 數據 ",0*/ sbit YW=P1^1 /*"74HC595第11腳 移位存 ",0*/ sbit SUO=P1^2 /*"74HC595第12腳 鎖存 ",0*/
上傳時間: 2016-05-19
上傳用戶:zhangyigenius
#include "REG51.H" #include <intrins.h> #include "Common.h" //#include "Remote.h" #define OSD_EN //typedef unsigned char uCHAR //#include "T100Data_A.h" //#include "T100Data_PA.h" //#include "T100Data_AU.h" //#include "T100Data_CPT.h" //#include "T100Data_PANASONIC.h" //#include "T100Data_PVI7.h" //#include "T100Data_LG.h" //#include "T100Data_FOX.h" #include "T100Data_PVI8.h" #ifdef OSD_EN #include "OSDFont1218_new.h" #include "OSD1218_new.h"
標簽: include intrins Common Remote
上傳時間: 2016-07-21
上傳用戶:x4587
#include <stc12c2052AD.H>// 標準庫的頭文件 #include <intrins.h> #include <absacc.h> #define uchar unsigned char #define uint unsigned int
上傳時間: 2016-08-29
上傳用戶:rocwangdp
1..怎么用C51寫一個NOP語句呢? 把頭文件intrins.h包含進來,然后在需用NOP處調用_nop_() 函數即可。 頭文件intrins.h包含進來,然后在需用NOP處調用_nop_() 函數即可。 2.c51中的intrins.h庫函數 _crol_ 字符循環左移 _cror_ 字符循環右移 _irol_ 整數循環左移 _iror_ 整數循環右移 _lrol_ 長整數循環左移 _lror_ 長整數循環右移 _nop_ 空操作8051 NOP 指令 _testbit_ 測試并清零位8051 JBC 指令
上傳時間: 2016-12-25
上傳用戶:yuzsu
PC與單片機雙向通訊智能溫控程序 #include <AT89X51.H> #include <intrins.h> #define Key_UP P1_0 #define Key_DOWN P1_1 #define Key_SET P1_2 #define RelayOutPort P2_0 #define LEDPort P0 #define DELPort P2_1 #define LEDTwoC P3_6 #define LEDThreeC P3_7 #define TMPort P2_7 #define INBUF_LEN 5 //數據長度 unsigned char inbuf1[INBUF_LEN]={ 0 , 0 , 0 , 0 , 0 } //發送緩沖區 unsigned char inbuf2[50] //接收緩沖區 unsigned char count3 void init_serialcomm( void ) { SCON = 0x50 //SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |= 0x20 //TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80 //SMOD=1 TH1 = 0xFA //Baud:4800 fosc=11.0592MHz IE |= 0x90 //Enable Serial Interrupt TR1 = 1 // timer 1 run } //向串口發送一個字符 void send_char_com( unsigned char ch) { SBUF=ch while (TI== 0 ) TI= 0
標簽: include intrins define Key_UP
上傳時間: 2014-11-29
上傳用戶:風之驕子
TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 TLC2543的特點 (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時間; (3)11個模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230
第五章 Keil C51庫函數參考 C51強大功能及其高效率的重要體現之一在于其豐富的可直接調用的庫函數,多使用庫函數使程序代碼簡單,結構清晰,易于調試和維護,下面介紹C51的庫函數系統。 1. 第一節 本征庫函數(intrinsic routines)和非本征證庫函數 C51提供的本征函數是指編譯時直接將固定的代碼插入當前行,而不是用ACALL和LCALL語句來實現,這樣就大大提供了函數訪問的效率,而非本征函數則必須由ACALL及LCALL調用。 C51的本征庫函數只有9個,數目雖少,但都非常有用,列如下: _crol_,_cror_:將char型變量循環向左(右)移動指定位數后返回 _iror_,_irol_:將int型變量循環向左(右)移動指定位數后返回 _lrol_,_lror_:將long型變量循環向左(右)移動指定位數后返回 _nop_: 相當于插入NOP _testbit_: 相當于JBC bitvar測試該位變量并跳轉同時清除。 _chkfloat_: 測試并返回源點數狀態。 使用時,必須包含#inclucle 一行。 如不說明,下面談到的庫函數均指非本征庫函數
上傳時間: 2013-10-19
上傳用戶:1184599859