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

正文內(nèi)容

單片機串口通信設(shè)計方案(參考版)

2025-04-28 13:37本頁面
  

【正文】 我們用2D G。ARES 。緊接的工作就是將網(wǎng)表文件導(dǎo)入到ARES。雙擊ISP元器件, Package后面的問號,在Keywords輸入TRANS 10 DIL,點擊“OK”即可。但這個封裝并不一定適合系統(tǒng)的設(shè)計,因此需要重新添加適合的封裝。 系統(tǒng)總原理圖 ARES的最小系統(tǒng)PCB制作 串行通信最小系統(tǒng)的原理圖繪制完成以后,就可以利用Proteus ARES編輯環(huán)境進行PCB繪制工作,在PCB繪制過程中,要進行元器件的封裝、邊框大小的繪制、放置元件、根據(jù)原理圖連線、覆銅和加標(biāo)注以及3D預(yù)覽等工作。這些接口可供不同的串行通信作控制、指示和硬件調(diào)試備用。 RS232模塊電路圖 系統(tǒng)硬件PCB總原理圖根據(jù)AT89C51單片機串行通信最小系統(tǒng)模塊化電路設(shè)計,以及通用單片機實驗板設(shè)計思想,本系統(tǒng)設(shè)計所需要的器件如表6。通過RS232使用MODEM還可以通過電話線遠(yuǎn)距離傳送。其供電電壓為5V電源,片內(nèi)有升壓電路。RS232采用的是EAI電平,采用負(fù)邏輯,其電氣特性如下:邏輯0——+5V,+15V;邏輯1——5V,15V;波特率——20000bps之內(nèi);傳輸距離——15m以內(nèi)。如要增加傳輸距離,則通信信號需要驅(qū)動或調(diào)制。 LCD1602外圍電路 RS 232模塊電路設(shè)計串行通信的距離和傳輸率與電氣特性有關(guān),傳輸距離隨傳輸速度的增加而縮短。 AT89C51單片機外圍電路 LCD1602液晶顯示模塊電路LCD1602的接口可以和AT89C51單片機接口直接相連。另外,由于單片機的P0口的輸出電路時漏極開路電路,若想輸出高電平需要外接上拉電阻,所以在P0口處增加一個阻值為10KΩ的8引腳排阻。對于復(fù)位電路,選用了電容與電阻串聯(lián)的形式,另將一按鍵與電容并聯(lián)可實現(xiàn)手動復(fù)位,電容為電解電容C=100uF,電阻為R=10KΩ。外接電容CC2沒有十分嚴(yán)格的要求,單電容值的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶振,推薦電容使用,如果使用陶瓷諧振器建議選擇[13][15]。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激震蕩器。由于當(dāng)單片機的31引腳為高電平時,單片機從內(nèi)部程序存儲器開始訪問;當(dāng)為低電平時則只訪問外部程序存儲器,所以可以31引腳與電源相連接。對于一個能夠?qū)崿F(xiàn)串行通信的最小系統(tǒng)的單片機還應(yīng)有ISP下載端口、串行接口RS23MAX232電路、開關(guān)、按鍵、指示燈、顯示器、報警喇叭等部分組成。PCB經(jīng)加工成板,焊接元器件之后將串行通信最小系統(tǒng)人為規(guī)定為上位機或下位機,然后給進行下位機編號即可完成本系統(tǒng)的工作。 PCB設(shè)計本文所仿真的串行通信系統(tǒng),所有的上位機和下位機電路均放在一個原理圖中,但實際串行通信應(yīng)用中,常常上位機和下位機不在同一個地點工作。本章對串行通信系統(tǒng)控制進行了仿真與調(diào)試,以Proteus為平臺的實驗系統(tǒng)取代常規(guī)的單片機實驗平臺,其便捷的設(shè)計方式、靈活的設(shè)計手段都是硬件平臺無法比擬的。該界面是主機調(diào)試環(huán)境,圖中Keil環(huán)境和Proteus環(huán)境調(diào)試窗口中顯示“r0r8”的值依次為“0B、000、00、00、0030”,從機0、1和2機發(fā)送來的數(shù)據(jù)“0008”依次在數(shù)組rdata中,在數(shù)據(jù)存儲器中還顯示了主機處理后的數(shù)據(jù)排列“0002”。單擊菜單欄“Debug”“8051CPU/RegistersU1”打開單片機寄存器窗口,可以看到R0RSFR、SP、PC、PSW等寄存器中的值,以及將要執(zhí)行的指令等[16][17]。 在單片機應(yīng)用產(chǎn)品開發(fā)過程中,有時需要調(diào)試程序、修改電路以滿足產(chǎn)品要求;有時需要觀察程序運行情況,如觀察過程中單片機內(nèi)外RAM的情況、工作寄存器的情況、特殊功能寄存器SFR的情況等;PROTEUS提供了方便的仿真調(diào)試功能。 AT89C51單片機屬性對話框 仿真結(jié)果單擊仿真按鈕中最左邊的按鍵 ,則進入全速仿真,出現(xiàn)亮點流動現(xiàn)象。打開在Proteus ISIS已經(jīng)繪制好的仿真原理圖。 編譯并生成HEX文件 利用同樣的方法編譯0、1和2機的并生成“”、“”和“”三個單片機可執(zhí)行文件。單擊build taget圖標(biāo) ,對目標(biāo)文件進行編譯?!?,點擊“Output”,在“Create Executable”下面的復(fù)選對話框中,單擊Create HEX File前面的復(fù)選框,進行選中。在左側(cè)“Projece Workspace”欄中右擊“Taget1”,選擇“Optitions for Target 39。Targer 39。*.inc)”添加“”和“”文件。在源程序準(zhǔn)備好以后,要將這些文件添加到項目中,在左側(cè)“Projece Workspace”欄中右擊“Source Group 1”,選擇“Add Files to Group‘Source Group 1’”,再在彈出的對話框中,文件類型選擇“C Source file(*.c)”,添加“”和“”;文件類型選擇“Text file(*.txt。返回集成開發(fā)環(huán)境界面,單擊“Feil/New”,然后單擊“Feil/Save”,在彈出的對話框中輸入文件名“ ”(后綴名一定要有,本系統(tǒng)程序用C51語言編寫,),單擊“保存”將文件存儲到“串行通信主機程序”所在的文件夾中。 Keil uVision 3集成開發(fā)環(huán)境生成工程文件,單擊“Project/New uVision Project”,在彈出的對話框中,鍵入工程名為“串行通信主機程序”,單擊保存。應(yīng)用TCP/IP 協(xié)議,Proteus 與Keil 的聯(lián)調(diào)很好地解決了Proteus 自帶的編譯系統(tǒng)無法對C 語言進行編譯的問題[4]。 Proteus 軟件包括匯編語言編譯系統(tǒng),可以在軟件平臺上對單片機進行可視化調(diào)試。 //如果數(shù)據(jù)大于8,清零} 外部中斷服務(wù)程序流程圖本章主要完成系統(tǒng)的軟件設(shè)計,通過對功能的分析,軟件流程圖的繪制,編寫了系統(tǒng)的模塊化子程序,多機串行通信的主機和從機程序。系統(tǒng)從機外部中斷INT0中斷服務(wù)程序: void ISR0(void) interrupt 0{ tdata++。 //開串行中斷} }reback:。 //等待命令發(fā)送結(jié)束SM2=1。 //命令非法,發(fā)狀態(tài)while(TI!=1)。 //SM2置1,只接收地址幀ES=1。 TI=0。 //等待命令發(fā)送完成SBUF=tdata。 //回發(fā)命令幀0X02,從機準(zhǔn)備好發(fā)送數(shù)據(jù)while(TI!=1)。 ES=1。 RI=0。 //SM2置1,開串行中斷,跳轉(zhuǎn)到reback}rdata=SBUF。ES=1。 RI=0。 TI=0。 if(a==0x01) //從機接收主機的數(shù)據(jù){SBUF=0X01。goto reback。 //等待從機回發(fā)地址if(RB8==1) //如果RB8為1,是地址幀{SM2=1。 //等待地址發(fā)送結(jié)束while(RI!=1)。 //從機地址回送while(TI!=1)。 //開串行中斷,跳轉(zhuǎn)到標(biāo)號reback}SM2=0。 //關(guān)串口中斷if(SBUF!=SLAVE) //非本機地址繼續(xù)監(jiān)聽{ES=1。 //定義一個變量aRI=0。系統(tǒng)從機主程序與主機主程序相關(guān)部分基本相同,在此不再敘述。 //地址賦值0,準(zhǔn)備下一次循環(huán)}系統(tǒng)從機有3個,其編程基本完全相同,只是地址定義不同。EX0=1。} }reback:。 TI=0。0x01)==0x01) //如果接收的數(shù)據(jù)是01H{ SBUF=PL_data[SLAVE]。 //若主機命令非法,發(fā)復(fù)位信號給從機error()。 //接收從機返回的命令if((statusamp。RI=0。TI=0。 //清地址標(biāo)志位,準(zhǔn)備接收數(shù)據(jù)SBUF=0X01。 //等待數(shù)據(jù)接收完畢if(SBUF!=SLAVE) error()。 //如果地址大于2while(RI!=1)。 TI=0。SLAVE++){ SBUF=SLAVE。 //如果發(fā)送/接收標(biāo)志位為0......//將接收來的數(shù)據(jù)從小到大的順序排列......for(SLAVE=0。 //保護現(xiàn)場TB8=1。} } 。 //顯示2機發(fā)送的數(shù)據(jù) } Lable1:。 //顯示1機發(fā)送的數(shù)據(jù) LCD_set_position(0x43)。 //顯示0機發(fā)送的數(shù)據(jù) LCD_set_position(0x0b)。 //TB8賦值1,準(zhǔn)備接收下一幀地址}LCD_set_position(0x03)。 //等待從機發(fā)送數(shù)據(jù)結(jié)束rdata[SLAVE]=SBUF。0x02)==0x02) //若命令幀為02H,接收發(fā)送數(shù)據(jù) {while(RI!=1)。 //TB8賦值1,發(fā)復(fù)位信號給從機error()。 //接收從機返回的命令if((statusamp。RI=0。TI=0。 //清地址標(biāo)志位,準(zhǔn)備接收數(shù)據(jù)SBUF=0X02。 //等待從機回發(fā)地址if(SBUF!=SLAVE) error()。 //等待發(fā)送結(jié)束while(RI!=1)。 //發(fā)呼叫地址while(TI!=1)。SLAVE3。 //輸出send_data到LCDif(send_data==1) goto Lable1。 //發(fā)送/接收標(biāo)志位LCD_set_position(0x4b)。 //輸出一個字符串“R3:”到LCDwhile(1){init_serial()。 //輸出一個字符串“R2:”到LCDLCD_set_position(0x48)。 //輸出一個字符串“R1:”到LCDLCD_set_position(0x40)。 //輸出一個字符串“R0:”到LCDLCD_set_position(0x08)。 //LCD初始化 LCD_set_position(0)。 TI=0。 //定義兩個4維數(shù)組用于存放接收的數(shù)據(jù)void DispTable( unsigned int t);//聲明顯示數(shù)據(jù)的函數(shù)void error(void) //錯誤標(biāo)志函數(shù){ SBUF=0xff。 系統(tǒng)主機主程序流程圖系統(tǒng)主機主程序程序[7][8]如下:include //51單片機寄存器頭文件include //LCD1602頭文件include //硬件定義頭文件 define uchar unsigned charuchar SLAVE,status,send_data。 //endif 多機串行通信程序 主機程序是由主程序和外部INT0中斷服務(wù)程序組成,此外還用到錯誤標(biāo)志子程序和液晶顯示數(shù)據(jù)轉(zhuǎn)ASCⅡ碼子程序。 // sbit LCD_RS=P2^1。 //將BCD碼按字符串的方式輸出到LCD } 硬件接口定義模塊編程為了能夠集中管理硬件接口,在硬件接口有沖突時,方便改換接口,將用到的接口定義在“”頭文件[8]中,“”頭文件如下: ifndef __HARDWAR_H__ define __HARDWAR_H__ include define LCD_DATA P1 //LCD的數(shù)據(jù)接到AT89C51的P
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1