freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

can中繼器的顯示和存儲設(shè)計畢業(yè)論文(參考版)

2025-06-22 14:00本頁面
  

【正文】 //打開串口中斷 EA = 1。 //等待發(fā)送完成 TI = 0。 //一字節(jié)發(fā)送完后清除標志位 SBUF = TXD_data。 //關(guān)閉串口中斷,采用查詢發(fā)送方式 TI = 1。}/////////////////////////////////////////////////函數(shù):RS232_TXD//說明:串口發(fā)送子函數(shù)//入口:無//返回:無////////////////////////////////////////////////* void RS232_TXD( void ){ EA = 0。 /*發(fā)送非應位*/ Stop_I2c()。 rdata=RcvByte()。 /*重新啟動總線*/ SendByte(sla+1)。 if(ack==0)return(0)。 /*發(fā)送器件子地址*/ if(ack==0)return(0)。 /*發(fā)送器件地址*/ if(ack==0)return(0)。 Start_I2c()。 功能: 從啟動總線到發(fā)送地址,子地址,讀數(shù)據(jù),結(jié)束總線的全過程,從器件 地址sla,子地址suba 注意: 使用前必須已結(jié)束總線。 /*結(jié)束總線*/ return(1)。 /*發(fā)送數(shù)據(jù)*/ if(ack==0)return(0)。 if(ack==0)return(0)。 /*發(fā)送器件子地址*/ if(ack==0)return(0)。 /*發(fā)送器件地址*/ if(ack==0)return(0)。********************************************************************/uchar ISendStr(uchar sla,uchar suba, uchar suba1,uchar sdata){ Start_I2c()。 如果返回1表示操作成功,否則操作有誤。 }/******************************************************************* 向有子地址器件發(fā)送1字節(jié)數(shù)據(jù)函數(shù)(16位) 函數(shù)原型: bit ISendStr(uchar sla,uchar suba,uchar s)。 /*清時鐘線,鉗住I2C總線以便繼續(xù)接收*/ _Nop()。 _Nop()。 /*時鐘低電平周期大于4μs*/ _Nop()。 _Nop()。 _Nop()。 _Nop()。功能: 主控器進行應答信號(可以是應答或非應答信號,由位參數(shù)a決定)********************************************************************/void Ack_I2c(bit a){ if(a==0)SDA=0。 return(retc)。 _Nop()。 _Nop()。 if(SDA==1)retc=retc+1。 _Nop()。 SCL=1。 //監(jiān)視SDA接收數(shù)據(jù) _Nop()。 _Nop()。 SCL=0。BitCnt8。 SDA=1。 uchar BitCnt。功能: 用來接收從器件傳來的數(shù)據(jù),并判斷總線錯誤(不發(fā)應答信號), 發(fā)完后請用應答函數(shù)應答從機。 _Nop()。 /*判斷是否接收到應答信號*/ SCL=0。 if(SDA==1)ack=0。 _Nop()。 SCL=1。 /*8位發(fā)送完后釋放數(shù)據(jù)線,準備接收應答位*/ _Nop()。 _Nop()。 SCL=0。 _Nop()。 _Nop()。 SCL=1。 /*判斷發(fā)送位*/ else SDA=0。BitCnt++) /*要傳送的數(shù)據(jù)長度為8位*/ { if((cBitCnt)amp。 for(BitCnt=0。=0表示被控器無應答或損壞。}/******************************************************************* 字節(jié)數(shù)據(jù)發(fā)送函數(shù) 函數(shù)原型: void SendByte(uchar c)。 _Nop()。 /*發(fā)送I2C總線結(jié)束信號*/ _Nop()。 _Nop()。 _Nop()。 /*結(jié)束條件建立時間大于4μs*/ _Nop()。 /*發(fā)送結(jié)束條件的數(shù)據(jù)信號*/ _Nop()。}/******************************************************************* 結(jié)束IIC總線函數(shù) 函數(shù)原型: void Stop_I2c()。 /*鉗住I2C總線,準備發(fā)送或接收數(shù)據(jù) */ _Nop()。 _Nop()。 _Nop()。 /*發(fā)送起始信號*/ _Nop()。 _Nop()。 _Nop()。 _Nop()。 /*發(fā)送起始條件的數(shù)據(jù)信號*/ _Nop()。 }/******************************************************************* 起動IIC總線函數(shù) 函數(shù)原型: void Start_I2c()。 Disp_number(60,RD_Num[7])。 Disp_number(56,RD_Num[6])。 Disp_number(52,RD_Num[5])。 Disp_number(48,RD_Num[4])。 Disp_number(44,RD_Num[3])。 Disp_number(40,RD_Num[2])。 Disp_number(36,RD_Num[1])。 Disp_number(32,RD_Num[0])。 Disp_word0(8,q,6)。 //顯示分站號碼 Delay(200)。// RS232_TXD()。 station=IRcvStr(0xa0,0x00,0x01)。 Disp_word0(0,q,5)。 Lcd_Clr()。 } if(0==i)Disp_char(pos,48)。addri。 i++。 while(d) { tab[i] = d%10。 uchar tab[5]={0}。 uchar i=0。(pos47)) { Disp_row(3,pos32,dat)。 } if((pos64)amp。amp。(pos15)) { Disp_row(1,pos16,dat)。 } if((pos32)amp。 Write_data(dat)。 } else { Write_((0x80+row)|pos0)。 if((pos+1)/2==pos0) { Write_((0x80+row)|pos0)。 row = row4。 uchar pos0。 p=p+2。 Write_data(p[1])。 } Write_(0x90|pos)。 } else { if(pos16) { pos =pos8。 Write_data(p[0])。(pos24))) { if(pos15)pos=pos8。 if((pos8)||((pos15)amp。in。 uchar pos。 return(d)。 LCD_WR = 0。 d = P1。 LCD_E = 1。 LCD_RS = 1。} /**************************************** 名稱: uchar Read_data(void)* 說明: * 功能: 讀LCD數(shù)據(jù)* 參數(shù): 無* 返回值: d:讀出數(shù)據(jù)****************************************/uchar Read_data(void){ unsigned char d = 0。 LCD_WR = 1。 Delay(40)。 P1 = d。 LCD_RS = 1。 Delay(100)。 LCD_E = 0。 LCD_E = 1。 LCD_WR = 0。 } /**************************************** 名稱: Write_(uchar d)* 說明: * 功能: 寫LCD命令字* 參數(shù): d:命令代碼* 返回值: 無****************************************/void Write_(uchar d){ LCD_RS = 0。 Write_(0x0c)。 Write_(0x06)。 Write_(0x01)。 Write_(0x30)。 Write_(0x34)。}/**************************************** 名稱: Lcd_system()* 說明: * 功能: LCD初始化* 參數(shù): 無* 返回值: 無****************************************/void Lcd_sys(void){ Delay(600)。 Write_(0x34)。i++) {。 for(i=0。 //B接口CAN總線片選無效,使得對數(shù)據(jù)總線的操作不會影響SJA1000。 //A接口CAN總線片選無效,使得對數(shù)據(jù)總線的操作不會影響SJA1000。 //打開串口中斷 EA = 1。 //開MCU外部中斷INT1 IT1 = 0。 //開MCU外部中斷INT0 IT0 = 0。 // 開定時器0中斷 TR0=1。 TF0=0。 //定時器0停止 TH0=0X3c。 //A接口CAN總線片選有效 SJAB_CS = 0。 //A接口CAN總線復位管腳復位無效 SJAB_RST = 1。k++)。 //B接口CAN總線復位管腳復位無效 for(k=0。 //B接口CAN總線復位管腳復位無效 SJAA_RST = 0。 //設(shè)定串口中斷的優(yōu)先級為最高 SJAA_RST = 1。 //串口發(fā)送中斷標志清零 RI = 0。 //串口波特率為9600bps TR1 = 1。 //定時器T0工作在方式1,T1工作在方式2 TH1=0xFA。 //串口工作于方式1 PCON = 0x80。 }}/////////////////////////////////////////////////函數(shù):init_mcu//說明:CPU初始化子程序//入口:無//返回:無///////////////////////////////////////////////void init_mcu( void ){ int k。 EA = 1。n8。 _nop_()。 Disp_all()。 //重新開啟中斷 } if( T_flag ) { EA = 0。 _nop_()。 //存儲分站號碼 Disp_all()。 //關(guān)閉CPU中斷 RXD_flag=0。 EA = 1。 //發(fā)送數(shù)據(jù)幀 _nop_()。 //關(guān)閉CPU中斷 CANBRx_flag = 0。 EA = 1。 //發(fā)送數(shù)據(jù)幀 _nop_()。 //關(guān)閉CPU中斷 CANARx_flag =
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1