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

正文內(nèi)容

基于usb接口的編程器的設(shè)計畢業(yè)設(shè)計說明書-資料下載頁

2025-06-27 19:10本頁面
  

【正文】 附 錄附錄I 下位機調(diào)試程序/*********************************頭文件開始*******************************/includeinclude Typedef unsigned char BYTE。Typedef bit BOOL。unsigned char ComBuf[17]。Unsigned int nAddress, nTimeOut。sbit P3_2=P3^2。//RSTsbit P3_3=P3^3。//PROG/ALEsbit P3_4=P3^4。//sbit P3_5=P3^5。//CHOOSE 5/12Vsbit P3_6=P3^6。sbit P3_7=P3^7。sbit P2_6=P2^6。sbit P2_7=P2^7。/********************************函數(shù)聲明**********************************/void InitPro00()。 /* 編程前的準(zhǔn)備工作 */void ProOver00()。 /* 編程結(jié)束后的工作,設(shè)置合適的引腳電平 */void Erase00()。 /* 擦除器件 */void Delay_us(unsigned char nUs)。 /* 微秒級延時255us */void Delay_ms(unsigned int nMs)。 /* 豪秒級的延時65535ms */void SetVpp5V()。 /* 設(shè)置Vpp為5v */void SetVpp12V()。 /* 設(shè)置Vpp為12v */void Delay_ns()。 /* 延時1個機器周期 */void ReadSign00()。 /* 讀特征字 */BYTE Read00()。 /* 從器件讀一個字節(jié) */BOOL Write01(BYTE Data)。 /* 向器件寫一個字節(jié) */void Lock00()。 /* 寫鎖定位 */void init_serial( void )。 /* 串口通信初始設(shè)定 */BOOL WaitComm()。 /* 等待上位機的命令,18字節(jié) */BOOL WaitData()。 /* 寫器件時等待上位機數(shù)據(jù),18字節(jié),有超時限制 */ void SendData()。 /* 發(fā)送數(shù)據(jù)或回應(yīng)操作完成,18字節(jié) */void CPUstop()。 /* CPU停止運行 */void RstPro()。 /* 編程器復(fù)位 */void ReadSign()。 /* 讀特征字 */void Erase()。 /* 擦除器件 */void Write()。 /* 寫器件 */void Read()。 /* 讀器件 */void Lock()。 /* 寫鎖定位 */void readdata()。 /* 讀代碼 */void write16()。 /* 寫代碼 *//**********************************主函數(shù)**********************************/void main(void){ init_serial()。 /* 初始化串口 */ SetVpp5V()。 /* 先初始化Vpp為5v */ Delay_ms(1000)。 /* 延時1S后編程器自舉 */ while(1) { if(!WaitComm()) /* 如果超時,通訊出錯 */ { Delay_ms(500)。 ComBuf[0]=0。 /*讓編程器復(fù)位,使編程器就緒 */ } switch(ComBuf[0]) { case 0: RstPro()。 break。 case 1:ReadSign()。 break。 case 2: Erase()。 break。 case 3: write16()。 break。 case 4: readdata()。 break。 case 5: Lock()。 break。 case 6: SendData()。 break。 case 7: readdata()。 break。 case 8: reset()。 break。 case 9: CPUstop()。 break。 default:break。 } }}/***************************************************************************** 函數(shù)名稱 readdata** 函數(shù)功能 讀取單片機ROM區(qū)的一個數(shù)據(jù)** 入口參數(shù) 無** 出口參數(shù) MCU程序代碼值***************************************************************************/void readdata(){ int i。 SendData()。 nAddress=0x0000。 while(1) { if(WaitData()) { if(ComBuf[0]==12) /* ComBuf[0]==13表示讀結(jié)束 */ { break。 } else if(ComBuf[0]==0x13) /* 0x13表示重發(fā) */ { nAddress=nAddress0x0010。 } for(i=1。i=16。i++) { ComBuf[i]=Read00()。 nAddress++。 Delay_ms(100)。 } ComBuf[0]=15。 /*向上位機發(fā)送讀出的數(shù)據(jù)塊 */ SendData()。 } else { break。 } } ProOver00()。 ComBuf[0]=0。 /*通知上位機編程器進入就緒狀態(tài) */ SendData()。}/***************************************************************************** 函數(shù)名稱 RstPro** 函數(shù)功能 單片機復(fù)位函數(shù)** 入口參數(shù) 無** 出口參數(shù) 無***************************************************************************/void RstPro(){ ProOver00()。 /* 直接編程結(jié)束 */}/***************************************************************************** 函數(shù)名稱 ReadSign** 函數(shù)功能 讀特征字** 入口參數(shù) 無** 出口參數(shù) 無***************************************************************************/void ReadSign(){ ReadSign00()。 SendData()。}/***************************************************************************** 函數(shù)名稱 Erase** 函數(shù)功能 擦除器件** 入口參數(shù) 無** 出口參數(shù) 若成功,上位機接收到第一位的數(shù)據(jù)是數(shù)據(jù)是2,否則接收不到的數(shù)據(jù)***************************************************************************/void Erase(){ Erase00()。 Delay_ms(1000)。 SendData()。}/***************************************************************************** 函數(shù)名稱 write16** 函數(shù)功能 往單片機寫HEX數(shù)據(jù)** 入口參數(shù) 無** 出口參數(shù) 若成功,上位機接收的數(shù)據(jù)是14,否則退出程序***************************************************************************/void write16(){ BYTE i。 nAddress=0x0000。 Write01(ComBuf[0])。 Delay_ms(100)。 SendData()。 while(1) { if(WaitData()) { if(ComBuf[0]==11) { for(i=1。i17。i++) { if(!Write01(ComBuf[i])) { ProOver00()。 /* 出錯了就結(jié)束編程 */ ComBuf[0]=0x10。 SendData()。 return。 } nAddress++。 } ComBuf[1]=((BYTE*)(amp。nAddress))[1]。 /* 低地址 */ ComBuf[2]=((BYTE*)(amp。nAddress))[0]。 /* 高地址 */ ComBuf[0]=3。 SendData()。 } else if(ComBuf[0]==14) { for(i=1。i17。i++) { if(!Write01(ComBuf[i])) { ProOver00()。 /*出錯了就結(jié)束編程 */ ComBuf[0]=0x10。 SendData()。 return。 } nAddress++。 } break。 } else { ProOver00()。 return。 } } else { ProOver00()。 return。 } } ProOver00()。 Delay_ms(50)。 /* 延時等待上位機寫線程結(jié)束 */ ComBuf[0]=14。 /*通知上位機編程器進入就緒狀態(tài) */ SendData()。}/***************************************************************************** 函數(shù)名稱 Lock** 函數(shù)功能 寫鎖定位** 入口參數(shù) 無** 出口參數(shù) 若成功,上位機接收到第一位的數(shù)據(jù)是數(shù)據(jù)是5,否則接收不到的數(shù)據(jù)***************************************************************************/void Lock(){ Lock00()。 SendData()。}/***********************************************
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1